Magento 2:如何生成添加到购物车URL

时间:2016-06-08 14:35:06

标签: magento2

我在主页上循环某些特定产品但无法在magento 2中生成ADD TO CART URL

如何在循环中显示产品时生成添加到CART网址

5 个答案:

答案 0 :(得分:4)

我知道这已经过去了一年,但是由于我已经完成了所要求的工作,我认为我可以发布我的解决方案以帮助他人。

其他答案可行,但仅适用于不需要进一步输入的简单产品(例如选择选项)。使用getAddToCartUrl()时,Magento首先检查产品是否需要选择任何选项;如果是,那么它只会将URL提供给产品页面。

要跳过所有这些检查并直接获取添加到购物车网址,请改用 Magento \ Checkout \ Helper \ Cart 帮助程序。如果您在.phtml文件中,那么只需拨打$this->helper

即可使用
$cartHelper = $this->helper('Magento\Checkout\Helper\Cart');

从那里,您可以通过getAddUrl()生成添加到购物车的网址,确保您将产品对象作为参数传递:

echo $cartHelper->getAddUrl($product)

要使其完全正常工作,您必须为其他答案中描述的表单密钥设置隐藏字段,并且如果相关产品具有可供选择的强制选项(例如可配置产品),请确保包括这些字段也是如此,否则您将被重定向到产品页面本身,并显示一条消息,通知用户需要选项。

答案 1 :(得分:3)

使用表单键将您的按钮代码添加到表单中..它将起作用

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();

$listBlock = $objectManager->get('\Magento\Catalog\Block\Product\ListProduct');

$addToCartUrl =  $listBlock->getAddToCartUrl($product);

<form data-role="tocart-form" action="<?php echo $addToCartUrl; ?>" method="post">
    <?php echo $block->getBlockHtml('formkey')?>
       <button type="submit"
               title="Add to Cart"
               class="action tocart primary">
               <span>Add to Cart</span>
        </button>
 </form>

答案 2 :(得分:2)

使用以下命令在magento2中生成添加到购物车网址:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();

$listBlock = $objectManager->get('\Magento\Catalog\Block\Product\ListProduct');

$addToCartUrl =  $listBlock->getAddToCartUrl($product);

答案 3 :(得分:1)

优秀的解决方案是使用

$cartHelper = $this->helper('Magento\Checkout\Helper\Cart');

然后是

echo $cartHelper->getAddUrl($product);

这每次都会添加到购物车网址 (对于简单产品,对于具有自定义选项的简单产品,等等)

答案 4 :(得分:0)

您可以通过以下代码生成“添加到购物车”网址:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$listBlock = $objectManager->get('\Magento\Catalog\Block\Product\ListProduct');
$addToCartUrl =  $listBlock->getAddToCartUrl($_product);