使用事件销售(订单)(地点)(后处理)';t返回magento中的自定义产品属性

使用事件销售(订单)(地点)(后处理)';t返回magento中的自定义产品属性,magento,Magento,我试着去买已经买过的产品。 这是我的代码: /** @var $order Mage_Sales_Model_Order */ $order = $eventObserver->getOrder(); /** @var $items Mage_Sales_Model_Resource_Order_Collection */ $items = $order->getItemsCollection(array(), TRUE); /** @va

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

    /** @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'));
    }
语言是一种自定义属性。在这种情况下,它是空的,我不知道为什么。所有默认属性,如名称、id或sku都正常工作

此语言用作可配置属性

要获得值,我必须做什么?

尝试以下方法:

$items = $order->getAllVisibleItems()
试试这个:

$items = $order->getAllVisibleItems()
明白了! 当我获取产品ID并再次加载产品时:

$product = $item->getProduct();
$product = Mage::getModel('catalog/product')->load( $product->getId() );
我得到的语言是数字。

得到了! 当我获取产品ID并再次加载产品时:

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

我得到的语言是数字。

属性的输入类型是什么?它是文本字段、文本区域、日期、是/否、多选还是下拉列表?它是多选。如果使用:$product->getAttributeText('language'),是否会获得一些数据?返回FALSE。但是当我使用
$product->getAttributes()
时,会列出language属性(以及其他为空的自定义属性)。属性的输入类型是什么?它是文本字段、文本区域、日期、是/否、多选还是下拉列表?它是多选。如果使用:$product->getAttributeText('language'),是否会获得一些数据?返回FALSE。但是当我使用
$product->getAttributes()
时,会列出语言属性(以及其他自定义属性,它们是空的)。当我使用它时,我只会得到可配置的产品(好的,这很有意义,它们是可见的)。但是可配置产品不包含该语言。所以我需要得到一个简单的产品,它已经被订购了。当我使用它时,我只得到可配置的产品(好的,这很有意义,它们是可见的)。但是可配置产品不包含该语言。因此,我需要获得已订购的简单产品。正确并为了更好的性能检查此问题:“如果我知道产品ID而不加载整个产品,如何获得特定的产品属性值?”-正确并为了更好的性能检查此问题:“如果我知道产品ID而不加载整个产品,如何获取特定的产品属性值?”-