1

e コマース プラットフォームを構築しているときに、設計上の問題に遭遇しました。組み込みの CodeIgniter のカート クラスを使用しています。すべてのカート情報をセッションに保存します。カートがすでに商品で満たされ、ユーザーがチェックアウトをクリックしたとします。いつ注文をデータベースに保存する必要がありますか? クリックした直後ですか、それとも情報を収集してセッションに保存するいくつかの手順の後ですか? さまざまな配送方法などの追加機能に対処するにはどうすればよいですか? 最初にバスケットに追加して、セッションに追加の (ギフト アドレス) を取得する必要がありますか? ギフトアドレスと注文の関係が必要であり、注文のIDがわからないため、データベースに保存したくありません。私は困惑しています:

手短に言えば、チェックアウトを処理するためのベストプラクティスは何ですか?

4

1 に答える 1

3

カートの「options」値を使用して、カートアイテムに属性(配送オプションなど)を追加できます。

$data = array(
           'id'      => 'sku_123ABC',
           'qty'     => 1,
           'price'   => 39.95,
           'name'    => 'T-Shirt',
           'options' => array('shipId' => '1234abcd5678efghi')
        );

$this->cart->insert($data);

データベースからの増分IDは必要ないことに注意してください。uniqid()またはcom_create_guid( )を使用して一意のIDを作成できます。

あなたは意見を求めているので...あなたは注文に参加するのではなく、ユーザーに関連する別の名簿テーブルに異なる配送先住所を保存する必要があります。チェックアウトの一部として最終的に注文を作成するときは、製品データとアドレス帳データが変更される可能性があるため、すべてのデータ(アドレスデータと関連する製品データ)を別々の注文テーブルにコピーする必要があります。注文データは、ステータスを除いて、一度だけ書き込まれ、更新されないようにする必要があります。注文が保存されたら、セッションデータを削除できます。

于 2010-12-23T04:51:30.997 に答える