将新添加的属性从产品详细信息页面传递到购物车页面(magento)

时间:2013-05-21 11:57:54

标签: magento magento-1.7

我使用的是Magento 1.7.0版本

我在产品详细信息页面中添加了衬衫尺寸(新添加的属性)下拉框。使用下面的代码

  

应用\设计\前端\默认{mytempalte} \模板\目录\产品\ view.phtml

 <?php $product = $_product->getAttributeText('size_chart'); ?>    shirt size
<select name="size_chart">
<option value="Select">Select</option>
<?php for($i = 0;$i < count($product);$i++) { ?>
<option value="<?php echo $product[$i]; ?>"><?php echo $product[$i]; ?></option>
<?php } ?>
</select>

顾客可以选择衬衫尺码。选择衬衫尺码后,我需要在购物车和结帐页面上显示衬衫尺寸。

如何将衬衫尺码值从产品细节传递到其他页面?。

由于

1 个答案:

答案 0 :(得分:0)

实际上,在购物车页面中,您可能会在报价对象中获得购物车商品。

$cart = Mage::getModel('checkout/cart')->getQuote();
$items = $cart->getAllVisibleItems();
foreach ($items as $item){
    $options = $item->getProductOptions();
    $superAttributes = $options['info_buyRequest']['super_attribute'];

    if (!!$superAttributes){
        $attributeObjSize = Mage::getModel('eav/config')->getAttribute(Mage_Catalog_Model_Product::ENTITY,'size_chart');
        $attributeObjSizeId = $attributeObjSize->getAttributeId();

        foreach ($superAttributes as $code=>$superAttribute){
            if ($attributeObjSizeId == $code){
                $sizeCode = $superAttribute;
                $sizeLabel = $attributeObjSize->getSource()->getOptionText($sizeCode);
            }
        }
    }
}

$ sizeLabel应该是您想拥有的。希望它有效。