情况: 我把这个单一产品推车作为我的购物车页面上的规则。我所做的是我检测到用户添加的其他产品并在购物车顶部显示它。看到这张照片:

我希望在点击“继续”按钮时,购物车上的产品将是空的,并由通知上列出的产品替换。 可以是/结账/购物车//的链接吗?ID=那样吗? 如果不是可能的事情是什么?
注意:这是在购物车页面上。

有帮助吗?

解决方案

你需要为此有点幻想。在模块中扩展购物车控制器并添加一些函数,让我们说出来的singlecartaction。它看起来像这样:

public function singlecartAction() {
    $cart   = $this->_getCart();
    $params = $this->getRequest()->getParams();

    Mage::getSingleton('checkout/cart')->truncate();

    try {
        if (isset($params['qty'])) {
            $filter = new Zend_Filter_LocalizedToNormalized(
                array('locale' => Mage::app()->getLocale()->getLocaleCode())
            );
            $params['qty'] = $filter->filter($params['qty']);
        }

        $product = $this->_initProduct();
        $related = $this->getRequest()->getParam('related_product');

        if (!$product) {
            $this->_goBack();
            return;
        }

        $cart->addProduct($product, $params);
        if (!empty($related)) {
            $cart->addProductsByIds(explode(',', $related));
        }

        $cart->save();

        $this->_getSession()->setCartWasUpdated(true);

        Mage::dispatchEvent('checkout_cart_add_product_complete',
            array('product' => $product, 'request' => $this->getRequest(), 'response' => $this->getResponse())
        );

        if (!$this->_getSession()->getNoCartRedirect(true)) {
            if (!$cart->getQuote()->getHasError()) {
                $message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
                $this->_getSession()->addSuccess($message);
            }
            $this->_goBack();
        }
    } catch (Mage_Core_Exception $e) {
        if ($this->_getSession()->getUseNotice(true)) {
            $this->_getSession()->addNotice(Mage::helper('core')->escapeHtml($e->getMessage()));
        } else {
            $messages = array_unique(explode("\n", $e->getMessage()));
            foreach ($messages as $message) {
                $this->_getSession()->addError(Mage::helper('core')->escapeHtml($message));
            }
        }

        $url = $this->_getSession()->getRedirectUrl(true);
        if ($url) {
            $this->getResponse()->setRedirect($url);
        } else {
            $this->_redirectReferer(Mage::helper('checkout/cart')->getCartUrl());
        }
    } catch (Exception $e) {
        $this->_getSession()->addException($e, $this->__('Cannot add the item to shopping cart.'));
        Mage::logException($e);
        $this->_goBack();
    }
}
.

基本上,我只是组合清空购物车并将产品添加到购物车的功能。如果您愿意,您可以将一些尝试捕获捕获并删除一些额外的代码。

其他提示

那很容易 在定义$ _product之后,在产品视图页面中使用以下代码。

清空车

Mage::getSingleton('checkout/cart')->truncate();
Mage::getSingleton('checkout/session')->clear();
.

通过链接添加产品

$_formKey= Mage::getSingleton('core/session')->getFormKey();     
$_productAddToCartLink= Mage::getUrl('checkout/cart/add',array('product'=>$_product->getId(), 'form_key'=> $_formKey));

<a href="<?php echo $_productAddToCartLink?>">Product Add To Cart Link</a>
.

许可以下: CC-BY-SA归因
scroll top