我正在用laravel 5.2建立一个电子商务网站。
我可以将我的产品添加到购物车中,购物车存储在一个会话中。我可以查看我的购物车&当我点击确认时,我会进入结账页面。
购物车(按预期工作):

结帐页面上的所有项目仍然只在会话中。这是一个很好的实践吗?或者在我进入结帐页面之后,我应该把东西存储在de数据库中吗?
在我的结帐页面上,我有几个单选按钮来选择发货方法。我想根据我的选择做一个计算。处理这件事最好的方法是什么?我想避免在单选按钮下面放置一个提交按钮来确认选择。一个重要的注意事项是,我在这个页面上也有一个优惠券代码的字段,我使用get请求来计算这个字段。因此,刷新页面并不是一个真正的选择,因为我的优惠券计算将消失。
结帐页面:(单选按钮在这里)

2我能想到的两种选择:
发布于 2016-04-20 09:52:40
我最近实施了类似的措施。
我有一张推车桌。

我还有一张定货单。

对我来说,将手推车存储在桌子中更有意义,因为我可以很容易地将购物车中的内容与订单联系起来。另外,我也不必担心会议即将结束,如果他们在几周后回来,他们的车仍将处于他们离开的状态。
当用户完成购买时,我用相应的order_id更新购物车表,并将其标记为完整的订单。
它在订单表中,我在那里存储账单和发货信息。
如果用户输入优惠券,我将更新购物车表中商品的价格。我使用ajax调用处理所有优惠券和发货计算,以维护页面的状态。
拥有购物车表的好处之一是在我的用户模型中,我可以定义一种关系,使我能够快速获取用户购物车中的所有项。
public function cart()
{
return $this->hasMany('App\Cart')->where('complete', 0);
}这样我就可以在集合中使用Laravel的sum功能
// Get the total value of items currently in user's cart.
$total = $user->cart->sum(function ($item) {
return $item->price * $item->qty;
});希望这能给你指明正确的方向。
其他问题只要喊一声就行了。
https://stackoverflow.com/questions/36737147
复制相似问题