2016-04-15 101 views
0

是否有可能在自定義模塊中以某種方式重用magentos 2 add to cart form?我在標籤當前產品的所有子產品,我想,讓客戶添加到購物車的產品,讓這就是如何在這個狀態Magento2重用添加到購物車表單模板

<?php 
if ($currentProduct = $block->getCurrentProduct()) { 
    $variants = $block->getVariants($currentProduct); 
    if($variants) { ?> 
     <ul id="product-variants"> 
     <?php foreach ($variants as $_product) : ?> 
      <li> 
       <form> 
        <?php echo $_product->getName(); ?> 
        SKU: <?php echo $_product->getSku(); ?> 
        Brutto: <?php echo $_product->getPrice(); ?> 

        <input type="text" placeholder="Stück"> 
        <button>Add to cart</button> 

       </form> 
      </li> 
     <?php endforeach; ?> 
     </ul> 
    <?php }; 
    } 
?> 

回答

0

您可以在自定義的PHTML文件中添加按鈕,跟隨,我看我的代碼這樣做的自定義模塊

在您的塊文件

use Magento\Catalog\Block\Product\ListProduct; 
<?php 
public function __construct(
     \Magento\Backend\Block\Template\Context $context, 
     \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, 
     \Magento\Catalog\Block\Product\ListProduct $listProductBlock, 
     array $data = [] 
    ) { 
     parent::__construct($context, $data); 
     $this->_productCollectionFactory = $productCollectionFactory; 
     $this->listProductBlock = $listProductBlock; 
    } 

public function getProductCollection() 
{ 
    /** @var $collection \Magento\Catalog\Model\ResourceModel\Product\Collection */ 
    $collection = $this->_productCollectionFactory->create()->addAttributeToSelect('*')->load(); 
    return $collection; 
} 
public function getAddToCartPostParams($product) 
{ 
    return $this->listProductBlock->getAddToCartPostParams($product); 
} 
?> 

獲取產品列表中查看文件

<?php 
const PARAM_NAME_BASE64_URL = 'r64'; 
const PARAM_NAME_URL_ENCODED = 'uenc'; 
use Magento\Framework\App\Action\Action; 
$_productCollection = $block->getProductCollection(); 
?> 
<?php foreach ($_productCollection as $_product): ?> 
    <?php $postParams = $block->getAddToCartPostParams($_product); ?> 
    <?php echo $_product->getName()?> 
    <form data-role="tocart-form" action="<?php /* @escapeNotVerified */ echo $postParams['action']; ?>" method="post"> 
     <input type="hidden" name="product" value="<?php /* @escapeNotVerified */ echo $postParams['data']['product']; ?>"> 
     <input type="hidden" name="<?php /* @escapeNotVerified */ echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php /* @escapeNotVerified */ echo $postParams['data'][Action::PARAM_NAME_URL_ENCODED]; ?>"> 
     <?php echo $block->getBlockHtml('formkey')?> 
     <?php $storeManager = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Store\Model\StoreManagerInterface'); ?> 
      <button type="submit" 
        title="<?php echo $block->escapeHtml(__('Add to Cart')); ?>" 
        class="action tocart primary"> 
       <span><?php /* @escapeNotVerified */ echo __('Add to Cart') ?></span> 
      </button> 
    </form> 
<?php endforeach;?>