2011-12-22 14 views
4

こんにちは私はこれについて多くの記事を読んできましたが、それは完了していません。list.phtmlの商品属性を表示する - Magento

たとえば、属性1 =靴のサイズ、肌の色2 =靴の色。 どちらもドロップダウンにあり、カテゴリーページ内の商品ごとに考えられるすべての属性色をリストしたいと思います。

問題:コードをテストすると、すべてのポビビットの代わりに最初のシューカラーのみが表示されます。私はここで間違って何をしていますか?

ここに3つの例があります。すべてのコードは機能しますが、最初の属性の色しか表示されません。 例1:

<!-- Find the following loop --> 
<?php foreach ($_productCollection as $_product): ?> 
<!-- Inside it insert one of the following codes as needed --> 
<!-- Use this for regular text attributes --> 
<?php echo $_product->getMyAttribute() ?> 
<?php echo $_product->getAnotherCustomAttribute() ?> 

<!-- Use this for dropdown attributes --> 
<?php echo $_product->getAttributeText('shoecolor') ?> 
<?php endforeach?> 
<!-- ... --> 

例2

<?php echo $_product->getResource()->getAttribute('shoecolor')->getFrontend()->getValue($_product) ?> 

例ここでは3

<?php $type = "simple"; $p = "0" ?> 
<?php foreach ($_productCollection as $_product): ?> 
<?php $custom = Mage::getModel('catalog/product_type_configurable')->setProduct($_product); ?> 
<?php $col = $custom->getUsedProductCollection()->addAttributeToSelect('shoecolor')->addFilterByRequiredOptions(); ?> 
<?php foreach($col as $simple_product) { $p=$simple_product->getId(); $type="configurable"; } ?> 

<?php if($type == "configurable"): ?> 
<h5><?php echo $_product->load($p)->getAttributeText('shoecolor'); ?><?php $type="simple" ?></h5> 
<?php endif; ?> 
+0

私はあなたの問題を理解しませんでした。 「可能なアトリビュートカラーすべてをリストアップする」という意味ですか?製品ページに設定可能な値が表示されているはずです。 –

答えて

1

は、コードはそれがどんな製品

に属していないことを名前と属性値を取得することです
$attributeCode = 'YOUR_ATTRIBUTE_CODE'; 

$product = Mage::getModel('catalog/product'); 

$productCollection = Mage::getResourceModel('eav/entity_attribute_collection') 
    ->setEntityTypeFilter($product->getResource()->getTypeId()) 
    ->addFieldToFilter('attribute_code', $attributeCode); 

$attribute = $productCollection->getFirstItem()->setEntity($product->getResource()); 
print_r($attribute->getData()); // print out the available attributes 

$options = $attribute->getSource()->getAllOptions(false); 
print_r($options); // print out attribute options 
6

別の方法

$_product = Mage::getModel('catalog/product')->load($this->getProduct()->getId()); 

あなたはあなたの "SHOESIZE" などの属性を作成した場合、あなたは、コードに従うことによってアクセスすることができます。

属性タイプのテキストフィールドは、($ _productがロードされなければならない)場合:

<?php 
    echo $_product->getShoesize(); 
    // if your arribute was shoe_size then 
    echo $_product->getShoeSize(); 
?> 

属性タイプ複数選択するか、ドロップダウンした場合、すべての属性値を取得します

<?php 
    echo $_product->getAttributeText('shoesize'); 
?> 
14

あなただけの製品リストで使用される属性の編集ページ

でそれを設定できるの - >はい

+1

ベストアンサーウェア!属性は$ _productに含まれており、別のクエリを開始しません!すばらしいです! –

0

はこれを試してみてください:コード

<?php $i=0; foreach ($_productCollection as $_product): ?> 
     <?php if ($i++%$_columnCount==0): ?> 

属性:

$_pp2 = Mage::getModel('catalog/product')->load( $_product->getId() ); 
echo $_pp2->getdm(); 

にDM

Type: Text area 

in view.phtml

echo $_product->get>getdm(); ?> 
関連する問題