所以我试图修改一个插件,以满足我对Magento的需求。
我有以下代码:
<?php foreach($_order->getAllVisibleItems() as $_item): ?>
<?php if($_item->getParentItem()) continue; ?>
sa('ecommerce', 'addItem', JSON.stringify({
'order_id': '<?php echo $_order->getData($this->getTransactionIdField()) ?>',
'product_id': '<?php echo $_item->getSku() ?>',
'name': '<?php echo str_replace('\'','', $_item->getName()) ?>',
'price': '<?php echo number_format($_item->getPriceInclTax(), 2) ?>',
'quantity': '<?php echo (int) $_item->getQtyOrdered() ?>'
}));
<?php endforeach;?>
我想将product_id更改为自定义字段。我尝试将其更改为:
'product_id': '<?php echo $_item->getData('barcode') ?>',
没有任何运气。条形码是产品中设置的属性,与sku不同。我错过了什么?
答案 0 :(得分:0)
$_item
的 $_order->getAllVisibleItems()
返回Mage_Sales_Model_Order_Item
,而不是Mage_Catalog_Model_Product
您有两个选择:
Mage::getModel('catalog/product')->load($_item->getId())->getData('barcode');
答案 1 :(得分:0)
您可以通过从订单项加载产品来获取产品属性barcode
,如:
$_item->getProduct()->getBarcode()
所以完整的代码就像:
<?php foreach($_order->getAllVisibleItems() as $_item): ?>
<?php if($_item->getParentItem()) continue; ?>
sa('ecommerce', 'addItem', JSON.stringify({
'order_id': '<?php echo $_order->getData($this->getTransactionIdField()) ?>',
'product_id': '<?php echo $_item->getProduct()->getBarcode() ?>',
'name': '<?php echo str_replace('\'','', $_item->getName()) ?>',
'price': '<?php echo number_format($_item->getPriceInclTax(), 2) ?>',
'quantity': '<?php echo (int) $_item->getQtyOrdered() ?>'
}));
<?php endforeach;?>