Magento 2.3.5:将产品添加到购物车,并提供自定义选项和价格。

问题描述 投票:0回答:1

为什么Magento的文档这么差?要为它建立一个插件是相当困难的。无论如何,我试图添加一个自定义价格和选项的产品。在WooCommerce中,这是很容易做到的。

我的代码是这样的。

protected $_cart;
protected $_productFactory;

构造者:

public function __construct(
    \Magento\Checkout\Model\Cart $cart,
    \Magento\Catalog\Model\ProductFactory $productFactory
) {
    $this->_cart = $cart;
    $this->_productFactory = $productFactory;
}

Execute:

$product = $this->_productFactory->create()->load($product_id);     

$params = array(
    'qty' => 1,
    'price' => 100,
    'product' => $product_id,
    'options' => array(
        "test" => array(
            'label' => 'Print Style',
            'value' => 'Test'
        )
    )
);

$this->_cart->addProduct($product, $params);
$this->_cart->save();

控制器通过ajax post请求被调用。产品将被添加到购物车,产品的数量等于我在数组中所说的数量。

但是有几个问题。

  1. 只有在通过常规的添加到购物车按钮添加不同的产品到购物车后,产品才会在购物车中显示。

  2. 价格没有调整。使用的是正常价格。

  3. 自定义选项不可见。自定义选项应该在购物车、结账时和订单详情中可见。

我怎样才能做到这一点?我感谢你的帮助。

谢谢你的帮助。

php magento module cart options
1个回答
0
投票

你可以使用OOTB Magento的API端点来添加产品到购物车。

下面是对不同产品类型的payload数据的解释,可以帮助你。https:/devdocs.magento.comguidesv2.3resttutorialsordersorder-add-items.html。

但是Magento不允许你通过payload数据将产品添加到购物车中并自定义价格,你必须添加观察者并实现围绕定价的逻辑。你将不得不添加观察者,并实现围绕定价的逻辑。更多细节在这里。https:/www.mageplaza.comdevdocsadd-product-to-cart-with-custom-price-magento-2.html

© www.soinside.com 2019 - 2024. All rights reserved.