如何在 Sylius 中以编程方式将 "product" 添加到购物车

How to add "product" to the cart programatically in Sylius

给定当前购物车和变体 ID,如何以编程方式将此变体添加到购物车(无需额外的 HTTP 请求)?

查找您要添加的变体:

$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);