如何在Sylius中以编程方式将“产品”添加到购物车

时间:2018-11-13 14:22:31

标签: sylius

给出当前购物车和商品ID,如何以编程方式将此商品添加到购物车(无需其他HTTP请求)?

1 个答案:

答案 0 :(得分:2)

找到要添加的变体:

$variant = $this->container->get('sylius.repository.product_variant')->findOneById(123);

创建新订单商品

$orderItem = $this->container->get('sylius.factory.order_item')->createNew();

设置变体以订购商品实体

$orderItem->setVariant($variant);

修改订单商品数量(即使以1个单位也必须这样做,否则会出现无法添加0数量订单商品的错误)

$this->container->get('sylius.order_item_quantity_modifier')->modify($orderItem, 3);

将订单商品添加到订单

$order->addItem($orderItem);

最终触发订单处理程序(税金,促销等。)

$this->container->get('sylius.order_processing.order_processor')->process($order);