【问题标题】:Checkout form calculation based on radio-button - Laravel 5.2基于单选按钮的结帐表单计算 - Laravel 5.2
【发布时间】:2016-04-20 07:48:12
【问题描述】:

我正在使用 laravel 5.2 构建一个电子商务网站

我可以将我的产品添加到我的购物车中,该购物车存储在会话中。我可以查看我的购物车,当我点击确认时,我会转到结帐页面。

购物车(按预期工作)

我在结帐页面上的所有项目仍然只在会话中。这是一种好的做法还是应该在我进入结帐页面后将东西存储在数据库中? .

在我的结帐页面上,我有几个单选按钮来选择送货方式。我想根据我的选择进行计算。处理这个问题的最佳方法是什么?我想避免在单选按钮下方放置一个提交按钮来确认选择。一个重要的通知是,我在此页面上还有一个优惠券代码字段,我使用获取请求进行计算。所以刷新页面并不是一个真正的选择,因为我的优惠券计算将消失。

结帐页面:(单选按钮在这里)

我能想到的2个选项:

  • 使用 javascript 在客户端进行计算,并添加隐藏的输入字段,以便在用户单击确认订单时将它们保存到订单数据库表中。

  • 购物车后开始在de库中保存数据,这种做法的问题是还是有很多数据丢失。喜欢正确的送货/账单地址。

【问题讨论】:

  • 这个答案可以接受吗?
  • @Anderscc 。你的回答很好,这就是为什么我赞成它。但我更倾向于使用 JQuery/javascript 进行计算并将我的购物车保留在会话中

标签: javascript php html laravel


【解决方案1】:

我最近实现了类似的东西。

我有一个购物车桌。

而且我有一个订单表。

对我来说,将购物车存放在桌子上更有意义,因为我可以轻松地将购物车中的物品与订单相关联。此外,我不必担心会话过期,如果他们几周后回来,他们的购物车仍然会保持原来的状态。

当用户完成购买时,我使用相应的 order_id 更新购物车表并将其标记为完整订单。

它在我存储帐单和运输信息的订单表中。

如果用户输入优惠券,我会更新购物车表中商品的价格。我正在使用 ajax 调用处理所有优惠券和运费计算,以维护页面的状态。

我发现拥有购物车表的好处之一是在我的用户模型中,我可以定义一种关系,使我能够快速获取用户购物车中的所有商品

public function cart()
{
    return $this->hasMany('App\Cart')->where('complete', 0);
}

这将允许我在集合上使用 Laravel 的求和功能

 // Get the total value of items currently in user's cart.
    $total = $user->cart->sum(function ($item) {
        return $item->price * $item->qty;
    });

希望这可以为您指明正确的方向。

还有什么问题可以私信我。

【讨论】:

    猜你喜欢
    • 2020-09-08
    • 2012-10-22
    • 1970-01-01
    • 2015-09-06
    • 2020-06-28
    • 1970-01-01
    • 2015-04-26
    • 2016-04-17
    • 1970-01-01
    相关资源
    最近更新 更多