0

プロジェクトで SyliusCartBundle、SyliusFlowBundle、および SyliusOrderBundle を使用しています。そのため、独自の Cart、CartItem モデル、および CartManager を宣言しました。問題なくカートを使用していますが、このカートを注文に変換するにはどうすればよいですか?

常に注文モデルを処理する必要がありますか?

Sylius でこのユースケースを処理するには、どのような方法が望ましいでしょうか?

http://docs.sylius.org/en/latest/bundles/SyliusOrderBundle/builder.htmlはどこにありますか? SyliusOrderBundle に OrderBuilder クラスが見つかりません。

4

1 に答える 1

1

私が考えたのは、Sylius では、カートと注文の唯一の違いはステータスにあるということです。

つまり、order テーブルと order items テーブルが 1 つしかないということです。アイテムをカートに追加すると、特定のステータスで注文/注文アイテムテーブルに保存されます。これは、チェックアウトしたり、支払いが成功したりすると変更されます。

考えてみれば当然です。

したがって、カートのエントリを注文のエントリに変換するのは、コントローラーによってトリガーされたカート/注文のライフサイクル イベントに応答するイベント リスナーです。あなたの場合、チェックアウトフローによる。

ドキュメントは少し古く、書き直されている途中です (私はそう思います)。私の意見では、あなたの最善の選択肢は、 https://github.com/Sylius/Syliusをチェックすることです。 これは、すべての sylius バンドルに基づいた完全に機能するアプリであり、それを使ってどのように機能するかを理解することができます。CoreBundle が登録するイベント リスナーを確認してください。

CoreBundle/Model フォルダーを調べると、Sylius\Bundle\CoreBundle\Model\Order extends Sylius\Bundle\CartBundle\Model\Cart が表示されます。

HTH

于 2014-04-07T22:38:35.113 に答える