Magento:捕获已下订单,但交易ID为空

时间:2013-10-23 14:50:17

标签: magento

我希望与观察者一起捕获所有下订单,以便在进一步的过程中使用数据。 在我的观察者中,我写道:

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应该可用。但由于某种原因,它不可用。

有什么想法吗?也许是一个解决方法?

非常感谢高级,

Hannes

1 个答案:

答案 0 :(得分:1)

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

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

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

付款的additional_data为您提供有关交易的信息。 我从订单的aditional_data获取频道,付款,channel_order_id,channel_final_fee,transaction_id,费用,金额和交易日期。可以在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();         
   }

值得尝试。

干杯