如何将SyliusCart转换为SyliusOrder

时间:2014-04-01 08:37:55

标签: symfony sylius

我在项目中使用SyliusCartBundle,SyliusFlowBundle和SyliusOrderBundle。所以我宣布了一个自己的Cart,CartItem模型和一个CartManager。我没有问题地使用购物车,但是如何将此购物车转换为订单?

我是否必须始终处理订单模型?

在Sylius处理此用例的首选方法是什么?

http://docs.sylius.org/en/latest/bundles/SyliusOrderBundle/builder.html在哪里?我无法在SyliusOrderBundle中找到OrderBuilder类。

1 个答案:

答案 0 :(得分:1)

我认为在Sylius中,购物车与订单之间的唯一区别在于状态。

我的意思是只有一个订单表和一个订单商品表。当您将某个商品添加到购物车时,它会被保存到具有特定状态的订单/订单商品表中,一旦您结帐,成功支付等等,这些商品会发生变化。

如果你考虑它就有意义。

因此,将您的购物车条目转换为订单条目的是响应由控制器触发的购物车/订单生命周期事件的事件监听器。在您的情况下,结帐流程。

文档有点陈旧,正在被重写(我认为)。 在我看来,你最好的选择是结帐https://github.com/Sylius/Sylius 它是一个基于所有sylius捆绑包的完整工作应用程序,您可以使用它来了解它的工作原理。查看CoreBundle注册的事件监听器。

如果您查看CoreBundle / Model文件夹,您会看到Sylius \ Bundle \ CoreBundle \ Model \ Order扩展了Sylius \ Bundle \ CartBundle \ Model \ Cart

HTH