Magento 2.3.5:使用自定义选项和价格将产品添加到购物车

Posted

技术标签:

【中文标题】Magento 2.3.5:使用自定义选项和价格将产品添加到购物车【英文标题】:Magento 2.3.5: Add product to cart with custom options and price 【发布时间】:2020-09-06 00:52:21 【问题描述】:

为什么 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;

执行:

$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 发布请求调用控制器。产品将被添加到购物车中,产品数量等于我在数组中声明的数量。

但有几个问题:

    该产品只有在通过常规添加到购物车按钮添加不同产品后才能在购物车中显示。

    价格未调整。使用正常价格。

    自定义选项不可见。自定义选项应在购物车、结帐时和订单详细信息中可见。

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

谢谢。

【问题讨论】:

什么是产品类型?可配置?让我知道产品类型,我可以为您提供帮助。 【参考方案1】:

您可以使用 OOTB Magento API 端点将产品添加到购物车。

以下是针对不同产品类型的有效负载数据的说明,它可能会有所帮助。 https://devdocs.magento.com/guides/v2.3/rest/tutorials/orders/order-add-items.html

但 Magento 不允许您通过有效负载数据以自定义价格将产品添加到购物车。 您将不得不添加观察者并实现定价逻辑。 更多细节在这里。 https://www.mageplaza.com/devdocs/add-product-to-cart-with-custom-price-magento-2.html

【讨论】:

感谢您的回复。如何使用 API 添加自定义选项?这可能吗? 是的,这里有一个例子devdocs.magento.com/guides/v2.3/rest/tutorials/orders/… 我不确定这是否是我想要的。本文介绍了如何向可配置产品添加选项。但是我使用的是单个产品(可以在管理员中向单个产品添加选项,例如文本区域,但是如何将自定义选项集成到我的 API 有效负载中?)。如果您参考可配置产品,本文将展示如何为配置分配固定值,但我需要添加完全自定义的值。

以上是关于Magento 2.3.5:使用自定义选项和价格将产品添加到购物车的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Magento 1 中应用我的自定义目录价格规则条件?

如何在 magento 中获取自定义价格格式(3 精度)

Magento MAGMI - 自定义选项无法正常工作

使用自定义文本将项目添加到 Magento 购物车

批量从自定义选项magento中删除所需的参数

Magento 分层导航“您不能多次定义相关名称‘mycustomattribute’”