如何将 EAV 值传递给 Paypal 支付信息

How to pass an EAV value to the Paypal payment information

我为客户对象引入了自定义 EAV 属性。让我们称之为我的价值。在 magento 的几个地方,我正在打印这样的值:

echo Mage::getSingleton('customer/session')->getCustomer()->getMyvalue();

当客户使用paypal 付款时,我希望在原因中添加myvalue 作为订单号的补充。我的目的是将订单与一些店面流程相匹配。

那么,如何将 myvalue 传递给 paypal 以使其与订单号一起可见?

您可以尝试将 class Mage_Paypal_Block_Standard_Redirect 改写成这样:

protected function _toHtml()
{
    $standard = Mage::getModel('paypal/standard');

    //...

    foreach ($standard->getStandardCheckoutFormFields() as $field=>$value) {
        if ($field == 'REASON_CODE') {
            $myvalue = Mage::getSingleton('customer/session')->getCustomer()->getMyvalue();
            $value .= $myvalue;
        }
        $form->addField($field, 'hidden', array('name'=>$field, 'value'=>$value));
    }

    //...

    return $html;
}

我在 foreach 中添加了一个条件,以使用您的特殊客户价值编辑原因。

我不知道你所说的代码是什么,如果你不知道你可以先在 foreach 中记录它:

Mage::log($field);
Mage::log($value);

然后不要忘记在我的示例中编辑 'REASON_CODE'getCustomer()->getMyvalue()