2

Magento のカスタム配送方法を開発しています。この配送方法では、カスタム商品属性 (airfreight_allowed) を設定する必要があります。配送方法は、すべての商品のカスタム属性が true に設定されているかどうかを確認します。

インストール スクリプトを使用して製品属性を追加しました。

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

shipping モジュールでは、次のように見積もりアイテムにアクセスします。

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

しかし、見積品目には airfreight_allowed 属性が含まれていません。airfreight_allowed 属性を見積もりアイテムに追加するにはどうすればよいですか? また、この属性に対応する商品属性の値が含まれていることを確認するにはどうすればよいですか?

4

1 に答える 1

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;
}
于 2012-04-22T11:38:59.817 に答える