2009-06-17 21 views
5

下の画像に示す「商品名」の代わりにカスタム属性の値を表示する方法を見つける必要があります。Magento - グループ化された商品表のカスタム属性を表示

Grouped products table http://www.magentocommerce.com/images/uploads/grouped_prod_front.gif

私は以下のコードは動作しません/app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

で働いています(カスタム属性は年をとっています)。

<?php if (count($_associatedProducts)): ?> 
<?php foreach ($_associatedProducts as $_item): ?> 
    <tr> 
     <td><?php echo $this->htmlEscape($_item->getYearmade()) ?></td> 

助けてください。

編集:答えは非常に簡単であることが判明しました。あなたは私が上記に言及しなかったものが、実際に出力されていたということを見ていますが、それは単なる数字(例:52)でした。このカスタム属性値のID(これはカスタム属性のドロップダウンタイプ)であることがわかります。要約
でそう

これはtext型のカスタム属性のために働く:

echo $this->htmlEscape($_item->getYearmade()) 

しかし、カスタム属性の他のすべてのタイプのために(と思う)、以下を使用する必要があります。

echo $this->htmlEscape($_item->getAttributeText('yearmade')) 

私は、以下のAlan Stormが提供する最も優れた答えがなければ、これを発見することはできませんでした。ありがとうございます。

+0

まだ回答を得ていない人には、この質問が3yrs前に投稿されたことに注意してください。 Magentoのコードベースはそれ以来進化していますので、明らかに結果は異なります。 –

答えて

3

すべてのMagentoモデルには、キーと値のペアのPHP配列が返される「getData」メソッドがあります。あなたは、次のようになります出力が表示されるはずです

print('<pre>');print_r($_product->getData());print('</pre>'); 

($の_productが定義された後に)あなたのgrouped.phtmlファイルの先頭にこれを試してみてください。

Array 
(
    [store_id] => 1 
    [entity_id] => 3437 
    [entity_type_id] => 4 
    [attribute_set_id] => 27 
    [type_id] => grouped 
    [sku] => 
    [category_ids] => 
    [created_at] => 2009-04-16 03:37:51 
...  

したがって、プロパティの配列を取得してキーを抜くことができます。 Magentoの便利/魔法のgetXとsetXメソッドを使うこともできます。すべてのMagentoのモデルでは、カスタム属性名があり、あなたが得ることができる必要があります何でも、そう、名のキャメルケースのバージョンに基づいてメソッドを呼び出すことで、データ配列に

$created_at = $_product->getCreatedAt(); 
$_product->setCreatedAt($date); 

を任意のプロパティにアクセスすることができますgetData()によって返された配列の内容を単にprint_rまたはvar_dumpしていないかどうかを確認してください。カスタム属性は、関連製品の簡単な製品の一つである場合

は最後に、あなた'LL verはより多くのような

$_associatedProducts[0]->getCreatedAt(); 
+0

上記のコードでカスタム属性を取得できないようです。私は何か間違っているのですか?私は "product_type"というカスタムカテゴリを持っており、grouped.phtmlページにその値を表示したいと思います。 – Landitus

+0

どのように製品オブジェクトを作成していますか? –

0

何かを望んでいます。 1.3。また、1.4では、$ _itemではなく$ _productを使用する必要があります。これはグループ化可能なテーブルでもうまく動作します。

例:

<?php echo $_item->getAttributeText('your attribute'); ?> 
1

私は同じ問題がありました。

  1. あなたはgrouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. アイテムをゲット見つける必要があり、たとえば $_item[units]

  3. が表にセルを追加し、エコー$_item['units'];

  4. ザッツすべてを貼り付けます。 )

関連する問題