西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

Magento调用产品自定义选项

时间:2016-12-30 12:20来源:未知 作者:好模板 点击:
客户需求在Magento中实现一款Buy Together的功能,通过整合Related Product之后实现起来相当简单。然而熟悉Magento的用户都知道,如果相关产品包含自定义选项,如尺寸、颜色的话,系统会做
客户需求在Magento中实现一款Buy Together的功能,通过整合Related Product之后实现起来相当简单。然而熟悉Magento的用户都知道,如果相关产品包含自定义选项,如尺寸、颜色的话,系统会做如下提示。
 
Please specify the product required option(s)
在添加多个产品的时候,magento会调用cart模型中的addProductByIds()方法,该方法没有传递request_info给quote中的addProduct(),所以会出现上述提示。为了能够方便用户更快捷的下单,增强buy together的用户体验。需要给有自定义选项的产品添加一个弹出层,用于选择自定义选项。
 
代码相当简单,在catalog.xml文件中都可以找到圆形。
 
 
class Ruiwant_Tpcore_Helper_Data extends Mage_Core_Helper_Abstract
{
    public function getProductOptionsHtml(Mage_Catalog_Model_Product $product)
    {
        $blockOption = Mage::app()->getLayout()->createBlock("Mage_Catalog_Block_Product_View_Options");
        $blockOption->addOptionRenderer("default","catalog/product_view_options_type_default","catalog/product/view/options/type/default.phtml");
        $blockOption->addOptionRenderer("text","catalog/product_view_options_type_text","catalog/product/view/options/type/text.phtml");
        $blockOption->addOptionRenderer("file","catalog/product_view_options_type_file","catalog/product/view/options/type/file.phtml");
        $blockOption->addOptionRenderer("select","catalog/product_view_options_type_select","catalog/product/view/options/type/select.phtml");
        $blockOption->addOptionRenderer("date","catalog/product_view_options_type_date","catalog/product/view/options/type/date.phtml") ;
        $blockOptionsHtml = null;
        if($product->getTypeId()=="simple"||$product->getTypeId()=="virtual"||$product->getTypeId()=="configurable")
        {
            $blockOption->setProduct($product);
            if($product->getOptions())
            {
                foreach ($product->getOptions() as $o)
                {
                    $blockOptionsHtml .= $blockOption->getOptionHtml($o);
                };
            }
        }
 
        return $blockOptionsHtml;
    }
}
上边的getProductOptionsHtml()方法位于tpcore/data助手类中,参数为产品对象。通过如下方式,可以在模板中调用。
 
1
echo Mage::helper("tpcore")->getProductOptionsHtml(Mage::getModel("catalog/product")->load($_item->getId()));
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容