1

我到处研究过,而且是 Magento 开发的新手,我很难思考如何完成这项任务。

我们的商店有一个会员资格,它被设置为它自己的简单产品。会员项目的价格为 5 美元。问题是这个会员资格只能添加到购物车中添加另一个项目(一顶帽子)。

因此,为了购买会员资格,您的购物车中必须有一顶 x、y 或 z 类别的帽子。

关于最好的编码方法有什么想法吗?是否可以通过简单的设置或者我需要深入研究一些核心代码?任何帮助都会非常有帮助——尤其是代码示例、我应该查看的特定文件名/路径。

如果有帮助,我正在使用 Magento Enterprise V. 1.12.0.2

4

1 回答 1

1

您可以创建一个观察者add_to_cart_before,以查看用户在他们的购物车中有哪些产品

 <add_to_cart_before>
      <observers>
          <add_to_cart_before>
               <class>dispatcher/observer</class>
              <method>hookToAddToCartBefore</method>
          </add_to_cart_before>
      </observers>
 </add_to_cart_before>

在您的观察者中(查看如何创建观察者

$cartHelper = Mage::helper('checkout/cart');
$items = $cartHelper->getCart()->getItems();
$category_in_cart_ids = array();
foreach ($items as $item) {
    array_push($category_in_cart_ids, $item->getProduct()->getCategoryIds());  // append category array to category_in_cart_ids
}

if(specific item id){
   if(in_array('your category ids', $category_in_cart_ids)){
     // product specific category in cart
   }
   else{
     //dont add this product to cart/ remove
   }
}

请参阅http://incho.net/ecommerce/magento/dispatching-before-and-after-events-to-magento-core-actions/

于 2013-01-03T21:01:11.650 回答