如何在狂欢中获得购物车订单项?
How to get cart line items in spree?
我需要帮助来获取添加到购物车中的所有项目。
我实际上显示了添加到购物车中的每种产品的数量。
我试过 current_order 但它表现得很奇怪,有时它是正确的但有时即使购物车是空的它也会在 current_order 中显示产品所以如果购物车更新它就会中断。
你们能给我推荐一种直接获取购物车商品的方法吗?
已更新
在视图中
<% count = count_in_cart(simple_current_order, product) %>
<span class="badge badge-notify rounded-bottom"><%=count%></span>
在应用程序助手中
def count_in_cart(current_order, product)
return 0 unless current_order
product = current_order.line_items.select{|item| item.variant_id ==product.id}.last
product.present? ? product.quantity : 0
end
它在本地就像一个魅力,但在 heroku 上它不显示计数。
有人可以指导我做错了什么吗?
Spree 版本为 3.7.2
问题出在您的 count_in_cart 函数上。您编写的函数获取最后一个 line_item 的数量,但您实际想要的是计算每个产品。
def count_in_cart(current_order, product)
current_order.where(product: product).to_a.sum(&:quantity)
end
看起来这些东西在视图文件中表现得很奇怪,因为可能是内存中存储了对象。
我设法通过创建一个新的 API 并在该控制器中计算乘积来修复它。
@cart_items_order = simple_current_order if simple_current_order.present?
render json: @cart_items_order&.line_items
真是太棒了。
对于以后寻找这个东西的任何人。
谢谢。
我需要帮助来获取添加到购物车中的所有项目。 我实际上显示了添加到购物车中的每种产品的数量。 我试过 current_order 但它表现得很奇怪,有时它是正确的但有时即使购物车是空的它也会在 current_order 中显示产品所以如果购物车更新它就会中断。 你们能给我推荐一种直接获取购物车商品的方法吗?
已更新
在视图中
<% count = count_in_cart(simple_current_order, product) %>
<span class="badge badge-notify rounded-bottom"><%=count%></span>
在应用程序助手中
def count_in_cart(current_order, product)
return 0 unless current_order
product = current_order.line_items.select{|item| item.variant_id ==product.id}.last
product.present? ? product.quantity : 0
end
它在本地就像一个魅力,但在 heroku 上它不显示计数。 有人可以指导我做错了什么吗?
Spree 版本为 3.7.2
问题出在您的 count_in_cart 函数上。您编写的函数获取最后一个 line_item 的数量,但您实际想要的是计算每个产品。
def count_in_cart(current_order, product)
current_order.where(product: product).to_a.sum(&:quantity)
end
看起来这些东西在视图文件中表现得很奇怪,因为可能是内存中存储了对象。
我设法通过创建一个新的 API 并在该控制器中计算乘积来修复它。
@cart_items_order = simple_current_order if simple_current_order.present?
render json: @cart_items_order&.line_items
真是太棒了。
对于以后寻找这个东西的任何人。
谢谢。