我们的商店有一些复杂的配置选项。我知道您可以在报价和销售项目中存储自定义选项,但愿望清单wishlist
和wishlist_item
的两个表格不会显示存储此类信息的任何字段。
我在搜索后找到了这段代码:
$wishlist=Mage::helper('wishlist')->getWishlist();
$storeId = Mage::app()->getStore()->getId();
$model = Mage::getModel('catalog/product');
$_product = $model->load($productId);
$params = array('product' => $productId,
'qty' => 1,
'store_id' => $storeId,
'options' => array('optionId'=>'optionValue')
);
$request = new Varien_Object();
$request->setData($params);
$result = $wishlist->addNewItem($_product, $request);
现在这将项目添加到心愿单确定,但它不会添加'选项'数组或至少我能看到的任何地方。
此外,我对Magento不熟悉,不知道选择哪个选项,即上面显示的'optionId',甚至是要查看的表格。
我想创建一个名为additional_config
的GLOBAL选项,该选项适用于任何产品,然后传递此选项ID和序列化数组。我该怎么做?感谢
答案 0 :(得分:0)
我多年来一直遇到麻烦。我试图复制Magento添加到wishlist控制器的动作。但是,它对我不起作用。
在调试 admin 面板的控制器时,我发现Varien_Object应该具有以下键:例如product='99', qty='1', super_attribute[133]='3'
所以你的代码几乎是正确的,除了你需要'super_attribute'而不是'options'。
$params = array('product' => $productId,
'qty' => 1,
'store_id' => $storeId,
'super_attribute' => array('optionId'=>'optionValue')
);
如果这样做,您可以将可配置选项添加到心愿单中的项目。
答案 1 :(得分:0)
打开app / design / frontend / default / yourtheme / template / catalog / product / view.phtml
删除默认添加到心愿单按钮并替换下面的
<?php $_wishlistSubmitUrl = $this->helper('wishlist')->getAddUrl($_product); ?>
<span onclick="wishlistWithOption('<?php echo $_wishlistSubmitUrl; ?>');" style="cursor:pointer"><i class="pd-wishlist"></i>Add to Wishlist</span>
在此代码之后放入以下javascript函数
<script type="text/javascript">
function wishlistWithOption(url){
var sel = jQuery('select').attr("id");
if(sel){
var selId = sel.split('_');
setLocation(url+selId[1]+'/'+jQuery('#'+sel).val());
}else{
setLocation(url);
}
}
</script>
现在打开app / code / core / Mage / Wishlist / controllers / IndexController.php文件。你也可以为这个功能创建Observer。
在_addItemToWishList()函数中添加以下代码。 $ requestParams = $ this-&gt; getRequest() - &gt; getParams();之后线。
$i = 1;
foreach($requestParams as $key=> $_requestParams){
if($i == 3){
$requestParams = array(
'product' => $productId,
'store_id' => $storeId,
'qty' => 1,
'options' => array($key=>$_requestParams)
);
}
$i++;
}
注意:以上代码仅适用于具有选择(下拉)自定义选项的产品,如尺寸,颜色..
代码来自:http://chandreshrana.blogspot.in/2016/08/how-to-add-product-in-wishlist-with.html