2012-04-22 2 views
2

Я разрабатываю специальный способ доставки для Magento. Для этого метода доставки мне нужно установить пользовательский атрибут продукта (airfreight_allowed). Метод доставки проверяет, установлен ли для настраиваемого атрибута значение true для всех продуктов.Как загрузить пользовательский атрибут продукта в элемент предложения?

Я добавил атрибут продукта с инсталляционного скрипта:

$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 в элемент котировки? И как я могу убедиться, что этот атрибут содержит значение соответствующего атрибута продукта?

ответ

10

Добавьте к этому config.xml вашего модуля:

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

Установите свойство атрибута «используется в список продуктов» истина.

Затем вы можете получить доступ к атрибуту, как это:

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

Может кто-нибудь помочь установить выше в Magento 2? –

Смежные вопросы