是否有允许我仅显示具有库存变体的产品的范围?
Is there a scope to allow me to show only products with variants with stock?
我想更改 "products" 我的 Spree 3.0.x 商店的概览,以仅显示具有一种或多种可供应变体的产品。这将在正常范围之上(可用,以当前货币计价)。
它也会影响分类列表。
不过,我不想影响搜索页面:搜索时,应该会显示不可用的产品。
据我所知,在 Spree:Product
和 Spree::Product scopes.rb
上都没有这样的范围。
如果没有这样的作用域,joins
- 和 includes
的正确链是什么来将这个作用域写在 Product
上?
我可能会从以下内容开始:
Spree::Product.joins(
variants_including_master: :stock_items
).group('spree_products.id').having("SUM(count_on_hand) > 0")
这应该让您接近您正在寻找的东西。
您可以使用此扩展程序:
https://github.com/swrobel/spree_zero_stock_products/
默认情况下,它只是将范围添加到 Spree::Product
,而不更改默认搜索范围。您可以方便地使用提供的 :on_hand
范围。
我想更改 "products" 我的 Spree 3.0.x 商店的概览,以仅显示具有一种或多种可供应变体的产品。这将在正常范围之上(可用,以当前货币计价)。 它也会影响分类列表。
不过,我不想影响搜索页面:搜索时,应该会显示不可用的产品。
据我所知,在 Spree:Product
和 Spree::Product scopes.rb
上都没有这样的范围。
如果没有这样的作用域,joins
- 和 includes
的正确链是什么来将这个作用域写在 Product
上?
我可能会从以下内容开始:
Spree::Product.joins(
variants_including_master: :stock_items
).group('spree_products.id').having("SUM(count_on_hand) > 0")
这应该让您接近您正在寻找的东西。
您可以使用此扩展程序:
https://github.com/swrobel/spree_zero_stock_products/
默认情况下,它只是将范围添加到 Spree::Product
,而不更改默认搜索范围。您可以方便地使用提供的 :on_hand
范围。