【问题标题】:mangento add product options into wishlistmagento 将产品选项添加到愿望清单中
【发布时间】:2015-06-30 01:24:59
【问题描述】:

我们的商店有一些复杂的配置选项。我知道您可以在报价和销售项目中存储自定义选项,但愿望清单的两个表 wishlistwishlist_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 的全局选项,该选项将应用于任何产品,然后传递此选项 ID 和序列化数组。我该怎么做?谢谢

【问题讨论】:

    标签: magento options


    【解决方案1】:

    我为此困扰了很久。我试图复制 Magento 添加到愿望清单控制器的操作。但是,它对我不起作用。

    在调试 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')
    );
    

    如果您这样做,您可以将您的可配置选项添加到您的愿望清单中的项目中。

    【讨论】:

      【解决方案2】:

      打开 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 文件。您还可以为此功能创建观察者。

      在 _addItemToWishList() 函数中添加以下代码。在 $requestParams = $this->getRequest()->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++;
      }
      

      注意:以上代码仅适用于具有 select(Dropdown) 自定义选项的产品,例如尺寸、颜色..

      代码取自:http://chandreshrana.blogspot.in/2016/08/how-to-add-product-in-wishlist-with.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多