基于CodeIgniter的电子商店、送货和礼品地址设计问题

xvw2m8pv  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(92)

在构建一个电子商务平台时,我遇到了一些设计问题。我正在使用CodeIgniter的内置购物车类。它在会话中存储所有购物车信息。假设购物车已经装满了产品,用户点击了“结帐”。我应该在什么时候将订单存储到数据库中?是在点击之后还是在收集信息并将其存储到会话中的几个步骤之后?如何处理额外的功能,如不同的运输方式?我应该先添加到购物篮,并获得额外的(礼物地址)会话?我不想将其存储在数据库中,因为礼物地址和订单之间的关系是必要的,因为我不知道订单的ID是什么。我很困惑:)此外,我认为保持购物车了解运输方式和额外购买的服务是至关重要的(通过选择礼物地址有额外的费用),因为购物车的内容就像一个接收?
简而言之,处理 checkout 的最佳实践是什么?

lvjbypge

lvjbypge1#

您可以使用"options" value of the cart向购物车项目添加其他属性(如运输选项)。

$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。
由于您正在征求意见...您应该将不同的送货地址存储在与用户相关的单独的地址簿表中,而不是联接到订单中。当您最终创建订单作为结帐的一部分时,您应该将所有数据(地址数据和相关产品数据)复制到单独的订单表中,因为产品数据和地址簿数据可能会更改;除了状态之外,订单数据应该只写入一次,并且永远不会更新。2一旦订单被保存,您就可以删除会话数据。

相关问题