Merge pull request #3892 from coopdevs/hide-product-from-shopfront-when-out-of-stock

Hide product from shopfront when out of stock
This commit is contained in:
Luis Ramos
2019-05-31 19:21:47 +01:00
committed by GitHub
4 changed files with 21 additions and 2 deletions

View File

@@ -0,0 +1,7 @@
Spree::StockItem.class_eval do
after_save :refresh_products_cache
def refresh_products_cache
OpenFoodNetwork::ProductsCache.variant_changed(variant)
end
end

View File

@@ -0,0 +1,10 @@
require 'spec_helper'
describe Spree::StockItem do
let!(:variant) { create(:variant) }
it 'refreshes the products cache on save' do
expect(OpenFoodNetwork::ProductsCache).to receive(:variant_changed).with(variant)
variant.on_hand = -2
end
end

View File

@@ -166,7 +166,8 @@ module Spree
let(:variant) { create(:variant) }
it "refreshes the products cache on save" do
expect(OpenFoodNetwork::ProductsCache).to receive(:variant_changed).with(variant)
# When creating the variant both the Variant and StockItem callbacks get executed
expect(OpenFoodNetwork::ProductsCache).to receive(:variant_changed).with(variant).twice
variant.sku = 'abc123'
variant.save
end
@@ -182,7 +183,8 @@ module Spree
it "refreshes the products cache for the entire product on save" do
expect(OpenFoodNetwork::ProductsCache).to receive(:product_changed).with(product)
expect(OpenFoodNetwork::ProductsCache).to receive(:variant_changed).never
# The StockItem callback is still executed
expect(OpenFoodNetwork::ProductsCache).to receive(:variant_changed).once
master.sku = 'abc123'
master.save
end