我希望与观察者一起捕获所有下订单,以便在进一步的过程中使用数据。 在我的观察者中,我写道:
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
答案 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();
}
值得尝试。
干杯