Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于CodeIgniter的电子商店、配送和礼品地址设计问题_Php_Codeigniter_E Commerce_Cart_Shipping - Fatal编程技术网

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

Php 基于CodeIgniter的电子商店、配送和礼品地址设计问题,php,codeigniter,e-commerce,cart,shipping,Php,Codeigniter,E Commerce,Cart,Shipping,在构建电子商务平台时,我遇到了设计问题。我正在使用内置的CodeIgniter的cart类。它在会话中存储所有购物车信息。假设购物车已经装满了产品,用户点击了结账。我应该何时在数据库中存储订单?就在那次点击之后,还是在收集信息并在会话中存储信息的几个步骤之后?如何处理其他功能,如不同的运输方式?我是否应该先将其添加到购物篮中,然后在会话中获得额外的(礼品地址)?我不想存储在数据库中,因为礼品地址和订单之间的关系是必需的,因为我不知道订单的ID是什么。我很困惑:)此外,我认为让购物车了解运输方式和

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


简言之,处理结帐的最佳做法是什么?

您可以通过使用向购物车项目添加其他属性(如装运选项)

请记住,您不需要数据库中的增量ID;您可以使用或创建唯一ID

既然你在征求意见。。。您应该在与用户相关的单独通讯簿表中存储不同的发货地址,而不是加入订单。当您最终创建订单作为结帐的一部分时,您应该将所有数据(地址数据和相关产品数据)复制到单独的订单表中,因为产品数据和通讯簿数据可能会更改;除状态外,订单数据应写入一次且从不更新。保存订单后,您可以删除会话数据

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

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