Magento,将getSku()更改为其他字段

时间:2016-07-05 15:24:04

标签: magento

所以我试图修改一个插件,以满足我对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不同。我错过了什么?

2 个答案:

答案 0 :(得分:0)

来自$_item

$_order->getAllVisibleItems()返回Mage_Sales_Model_Order_Item,而不是Mage_Catalog_Model_Product

您有两个选择:

  1. 加载原始产品并从那里检索自定义属性: Mage::getModel('catalog/product')->load($_item->getId())->getData('barcode');
  2. 将产品属性传递给订单商品:product attribute to quote item and order item

答案 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;?>