2016-06-08 63 views

回答

0

使用後產生添加到購物車URL中magento2:

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

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

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

它會生成URL,但是當我點擊這個鏈接時,它會把我帶到CART而不是項目。 (您的購物車裏沒有商品。) –

+0

我也是,我現在就去尋找解決方案 –

+0

您是否找到解決方案? –

2

添加按鈕代碼爲形式形式鍵 ..它會工作

$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> 
0

我知道它已經一年以來,一直被觸及,但由於我剛剛完成了所要求的工作,我認爲我可以發佈我的解決方案來幫助其他人。

其他答案將可用,但只適用於不需要進一步輸入(例如選擇選項)的簡單產品。當使用getAddToCartUrl()時,Magento首先檢查產品是否需要選擇任何選項;如果是這樣,那麼它只會將該URL提供給產品頁面。

要跳過所有這些檢查並直接獲取添加到購物車的URL,請使用Magento \ Checkout \ Helper \ Cart輔助工具。如果你是一個.phtml文件中,那麼可以簡單地通過調用$this->helper利用:

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

從那裏,你可以生成通過getAddUrl()添加到購物車網址,確保你通過產品對象作爲參數:

echo $cartHelper->getAddUrl($product) 

要使其充分發揮作用,必須有在其他的答案中描述的形式鍵隱藏字段,如果有問題的產品具有強制性的選項(像是一個可配置的產品)進行選擇,然後請確保您也包含這些字段,否則您將被重定向到產品頁面本身w ith通知用戶需要選項。

相關問題