使用事件sales_order_place_after不会返回magento中的自定义产品属性

时间:2012-09-06 10:50:43

标签: magento

我试着买到已经买过的产品。 这是我的代码:

    /** @var $order Mage_Sales_Model_Order */
    $order = $eventObserver->getOrder();

    /** @var $items Mage_Sales_Model_Resource_Order_Collection */
    $items = $order->getItemsCollection(array(), TRUE);

    /** @var $item Mage_Sales_Model_Order_Item */
    foreach($items as $item) {
        $product = $item->getProduct();
        var_dump($product->getData('language'));
    }

语言是自定义属性。在这种情况下它是空的,我不知道为什么。所有默认属性(如name,id或sku)都在起作用。

此语言用作可配置属性。

我该怎么做才能获得价值?

2 个答案:

答案 0 :(得分:0)

试试这个:

$items = $order->getAllVisibleItems()

答案 1 :(得分:0)

知道了! 当我拿到产品ID并再次加载产品时:

$product = $item->getProduct();
$product = Mage::getModel('catalog/product')->load( $product->getId() );

我将语言作为数字。