1

我想用观察者捕捉所有下达的订单,以便在进一步的过程中使用数据。在我的观察者中,我写道:

class Custom_CrmApi_Model_Observer extends Varien_Object {
….
public function placeOrder( $observer ){

    $order = $observer->getOrder();
    $payment = $order->getPayment();

            $transId = $order->getPayment()->getTransactionId();           
            //$transId = $order->getPayment()->getLastTransId();
....

但是所有ebay订单的交易ID都是空的(但不在后台)。我正在使用 M2E 扩展来进行 ebay 集成。但这不应该是问题,因为观察者捕捉到任何下达的订单,或者?此时交易ID应该是可用的。但由于某种原因,它不可用。

有任何想法吗?也许可以解决?

非常感谢您在高级,

汉内斯

4

1 回答 1

1

对你来说可能为时已晚,但可能对其他人有用。

我使用此代码获取报告的事务 ID。它与 m2epro 订单的正常位置不同。

            $additional_data = $order->getPayment()->getData();
            //print_r($additional_data['additional_data']);
            $component_mode = $additional_data['additional_data'];

付款中的附加数据为您提供有关交易的信息。我从订单的附加数据中获取渠道、付款、channel_order_id、channel_final_fee、transaction_id、fee、sum 和 transaction_date。在 m2epro 的 placeOrder 函数中,可以从同一位置获取相同的数据。

app\code\community\Ess\M2ePro\Model\Magento\Order.php -> placeOrder

    if (version_compare(Mage::helper('M2ePro/Magento')->getVersion(false), '1.4.1', '>=')) {
        /** @var $service Mage_Sales_Model_Service_Quote */
        $service = Mage::getModel('sales/service_quote', $this->quote);
        $service->submitAll();

        // You can get this order before you return it and get the data maybe! 
        return $service->getOrder();         
   }

值得一试。

干杯

于 2014-04-30T15:19:51.940 回答