如何将自定义产品属性加载到报价项中?

时间:2012-04-22 10:39:33

标签: magento

我正在为Magento开发一种自定义送货方式。对于此送货方式,我需要设置自定义产品属性(airfreight_allowed)。 shipping方法检查所有产品的自定义属性是否设置为true。

我已使用安装脚本添加了product属性:

$installer->addAttribute('catalog_product', 'airfreight_allowed', array(
'input'         => 'select',
'source'        => 'eav/entity_attribute_source_boolean'
...
));

在发货模块中,我访问以下引用项:

foreach ($request->getAllItems() as $item) {   /* Mage_Shipping_Model_Rate_request */
    if($item->getAirfreightAllowed() != 1)
        return false; /* Airfreight not allowed */
}

但引用项目不包含airfreight_allowed属性。如何将airfreight_allowed属性添加到报价项?如何确保此属性包含相应产品属性的值?

1 个答案:

答案 0 :(得分:10)

将其添加到模块的config.xml:

<global>
  <sales>
     <quote>
        <item>
            <product_attributes>
                <airfreight_allowed />
            </product_attributes>
        </item>
    </quote>
  </sales>
</global>

将属性的属性“在产品列表中使用”设置为true。

然后你可以像这样访问属性:

foreach ($request->getAllItems() as $item) {   
    if($item->getProduct()->getAirfreightAllowed() != 1)
        return false;
}