2016-08-19 4 views
3

私はカートの商品情報を確認したいと思っています。Magento - カートの商品情報をも確認する

$items = $observer->getCart()->getItems(); 
foreach ($items as $item) { 
    $product = $item->getProduct(); 
    if ($product->getData('my_attribute')) { 
     // My logic 
    } 
} 

しかし、私のビジネスロジックは$item->getProduct()情報にセットされていませんmy_attributeとして実行されることはありません:

私は製品をロードするには、これらの項目の属性。

私は​​3210ファイルにこのコードを追加しようとしました

<config> 
    <global> 
     <sales> 
      <quote> 
       <item> 
        <product_attributes> 
         <my_attribute /> 
        </product_attributes> 
       </item> 
      </quote> 
     </sales> 

私の作品だけでコードが個別に製品をロードしている:

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

のロードの違いは何商品はcatalog\productから、商品はカートの商品に含まれていますか?

+0

以下の回答から解決策はありますか? –

答えて

0

あなたはこの命令に従うことができます:

enter image description here

これはあなたのconfig.xmlに次のコードを追加することにより、XMLで行うことができます。attribute1とattribute2のは、あなたの属性です

<global> 
    <sales> 
     <quote> 
      <item> 
       <product_attributes> 
        <attribute1 /> 
        <attribute2 /> 
       </product_attributes> 
      </item> 
     </quote> 
    </sales> 
</global> 

コード。次に、以下のコードを使用して属性にアクセスできます。

$item->getData('attribute1'); 
//if you use observer or quote object: 
$item->getProduct()->getData('attribute1'); 
+0

私はそのコードも試してみますが、なぜ '$ item-> getProduct()'が 'config.xml'でそれらを追加した後でも属性をロードしないのはなぜですか? – nano

+0

この参照を確認してください:https://www.atwix.com/magento/accessing-custom-attribute-at-checkout-or-cart/ –

+0

私のコードはそのページのものとまったく同じですが、私の新しい属性はロードされません'$ item-> getProduct() - > getData( 'my_attribute')'を使用します。 ($ item-> getProductId()); ' – nano

関連する問題