From 42a3087cdbba00c5aa123d8b6e3685b3279f98cc Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 28 Jun 2023 14:00:49 +0100 Subject: [PATCH] Remove :available_on attribute from Product class --- .../admin/bulk_product_update.js.coffee | 3 - app/components/product_component.rb | 2 - app/components/products_table_component.rb | 1 - app/controllers/api/v0/products_controller.rb | 6 - app/models/spree/product.rb | 10 +- app/models/spree/variant.rb | 3 +- .../api/admin/product_serializer.rb | 8 +- app/services/permitted_attributes/product.rb | 2 +- .../products/index/_products_head.html.haml | 2 - .../index/_products_product.html.haml | 2 - .../index/_products_variant.html.haml | 1 - app/webpacker/css/admin/products.scss | 3 - config/locales/en.yml | 3 - ...30628124224_remove_product_available_on.rb | 5 + db/schema.rb | 2 - .../column_preference_defaults.rb | 1 - spec/components/product_component_spec.rb | 27 -- .../api/v0/products_controller_spec.rb | 19 +- spec/factories/product_factory.rb | 1 - .../files/sample_file_120_products.csv | 242 +++++++++--------- .../admin/bulk_product_update_spec.js.coffee | 8 - spec/models/spree/product_spec.rb | 7 - spec/system/admin/bulk_product_update_spec.rb | 31 +-- 23 files changed, 140 insertions(+), 249 deletions(-) create mode 100644 db/migrate/20230628124224_remove_product_available_on.rb diff --git a/app/assets/javascripts/admin/bulk_product_update.js.coffee b/app/assets/javascripts/admin/bulk_product_update.js.coffee index d756fd4e9a..8d71c0ff46 100644 --- a/app/assets/javascripts/admin/bulk_product_update.js.coffee +++ b/app/assets/javascripts/admin/bulk_product_update.js.coffee @@ -352,9 +352,6 @@ filterSubmitProducts = (productsToFilter) -> if product.hasOwnProperty("inherits_properties") filteredProduct.inherits_properties = product.inherits_properties hasUpdatableProperty = true - if product.hasOwnProperty("available_on") - filteredProduct.available_on = product.available_on - hasUpdatableProperty = true if filteredMaster? filteredProduct.master_attributes = filteredMaster hasUpdatableProperty = true diff --git a/app/components/product_component.rb b/app/components/product_component.rb index e05bde0802..c3f859116c 100644 --- a/app/components/product_component.rb +++ b/app/components/product_component.rb @@ -43,8 +43,6 @@ class ProductComponent < ViewComponentReflex::Component @product.tax_category.name when 'inherits_properties' @product.inherits_properties - when 'available_on' - format_date(@product.available_on) when 'import_date' format_date(@product.import_date) end diff --git a/app/components/products_table_component.rb b/app/components/products_table_component.rb index 7d37a0f480..d092ee9c79 100644 --- a/app/components/products_table_component.rb +++ b/app/components/products_table_component.rb @@ -17,7 +17,6 @@ class ProductsTableComponent < ViewComponentReflex::Component label: I18n.t("admin.products_page.columns_selector.inherits_properties"), value: "inherits_properties" }, - { label: I18n.t("admin.products_page.columns_selector.available_on"), value: "available_on" }, { label: I18n.t("admin.products_page.columns_selector.import_date"), value: "import_date" } ].sort do |a, b| a[:label] <=> b[:label] diff --git a/app/controllers/api/v0/products_controller.rb b/app/controllers/api/v0/products_controller.rb index 40f83ae0a5..6b6baa311a 100644 --- a/app/controllers/api/v0/products_controller.rb +++ b/app/controllers/api/v0/products_controller.rb @@ -10,8 +10,6 @@ module Api respond_to :json DEFAULT_PER_PAGE = 15 - before_action :set_default_available_on, only: :create - skip_authorization_check only: [:show, :bulk_products, :overridable] def show @@ -145,10 +143,6 @@ module Api @product_params ||= params.permit(product: PermittedAttributes::Product.attributes)[:product].to_h end - - def set_default_available_on - product_params[:available_on] ||= Time.zone.now - end end end end diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb index eb9b7089f1..b0b65b956a 100755 --- a/app/models/spree/product.rb +++ b/app/models/spree/product.rb @@ -81,8 +81,6 @@ module Spree # these values are persisted on the product's variant attr_accessor :price, :display_as, :unit_value, :unit_description - after_initialize :set_available_on_to_now, if: :new_record? - before_save :add_primary_taxon_to_taxons after_save :remove_previous_primary_taxon_from_taxons @@ -201,9 +199,7 @@ module Spree return where('spree_products.supplier_id IN (?)', [enterprise.id] | permitted_producer_ids) } - scope :active, lambda { - where("spree_products.deleted_at IS NULL AND spree_products.available_on <= ?", Time.zone.now) - } + scope :active, lambda { where("spree_products.deleted_at IS NULL") } def self.group_by_products_id group(column_names.map { |col_name| "#{table_name}.#{col_name}" }) @@ -295,10 +291,6 @@ module Spree private - def set_available_on_to_now - self.available_on ||= Time.zone.now - end - def update_units return unless saved_change_to_variant_unit? || saved_change_to_variant_unit_name? diff --git a/app/models/spree/variant.rb b/app/models/spree/variant.rb index 9f4577f647..df7a588f14 100644 --- a/app/models/spree/variant.rb +++ b/app/models/spree/variant.rb @@ -23,8 +23,7 @@ module Spree belongs_to :product, -> { with_deleted }, touch: true, class_name: 'Spree::Product' - delegate_belongs_to :product, :name, :description, :available_on, - :tax_category_id, :shipping_category_id, + delegate_belongs_to :product, :name, :description, :tax_category_id, :shipping_category_id, :meta_keywords, :tax_category, :shipping_category has_many :inventory_units, inverse_of: :variant diff --git a/app/serializers/api/admin/product_serializer.rb b/app/serializers/api/admin/product_serializer.rb index 36f48acf70..f19b81f0a0 100644 --- a/app/serializers/api/admin/product_serializer.rb +++ b/app/serializers/api/admin/product_serializer.rb @@ -4,8 +4,8 @@ module Api module Admin class ProductSerializer < ActiveModel::Serializer attributes :id, :name, :sku, :variant_unit, :variant_unit_scale, :variant_unit_name, - :inherits_properties, :on_hand, :price, :available_on, - :tax_category_id, :import_date, :image_url, :thumb_url, :variants + :inherits_properties, :on_hand, :price, :tax_category_id, :import_date, + :image_url, :thumb_url, :variants has_one :supplier, key: :producer_id, embed: :id has_one :primary_taxon, key: :category_id, embed: :id @@ -36,10 +36,6 @@ module Api def price object.price.nil? ? '0.0' : object.price end - - def available_on - object.available_on.blank? ? "" : object.available_on.strftime("%F %T") - end end end end diff --git a/app/services/permitted_attributes/product.rb b/app/services/permitted_attributes/product.rb index 26f4217f23..ce61fe0d0c 100644 --- a/app/services/permitted_attributes/product.rb +++ b/app/services/permitted_attributes/product.rb @@ -6,7 +6,7 @@ module PermittedAttributes [ :id, :name, :description, :supplier_id, :price, :variant_unit, :variant_unit_scale, :unit_value, :unit_description, :variant_unit_name, - :display_as, :sku, :available_on, :group_buy, :group_buy_unit_size, + :display_as, :sku, :group_buy, :group_buy_unit_size, :taxon_ids, :primary_taxon_id, :tax_category_id, :shipping_category_id, :meta_keywords, :notes, :inherits_properties, { product_properties_attributes: [:id, :property_name, :value], diff --git a/app/views/spree/admin/products/index/_products_head.html.haml b/app/views/spree/admin/products/index/_products_head.html.haml index 4f549c73e7..09de5a1114 100644 --- a/app/views/spree/admin/products/index/_products_head.html.haml +++ b/app/views/spree/admin/products/index/_products_head.html.haml @@ -12,7 +12,6 @@ %col.category{ ng: { show: 'columns.category.visible' } } %col.tax_category{ ng: { show: 'columns.tax_category.visible' } } %col.inherits_properties{ ng: { show: 'columns.inherits_properties.visible' } } - %col.available_on{ ng: { show: 'columns.available_on.visible' } } %col.import_date{ ng: { show: 'columns.import_date.visible' } } %col.actions %col.actions @@ -36,7 +35,6 @@ %th.category{ 'ng-show' => 'columns.category.visible' }=t('.category') %th.tax_category{ 'ng-show' => 'columns.tax_category.visible' }=t('.tax_category') %th.inherits_properties{ 'ng-show' => 'columns.inherits_properties.visible' }=t('.inherits_properties?') - %th.available_on{ 'ng-show' => 'columns.available_on.visible' }=t('.av_on') %th.import_date{ 'ng-show' => 'columns.import_date.visible' }=t('.import_date') %th.actions %th.actions diff --git a/app/views/spree/admin/products/index/_products_product.html.haml b/app/views/spree/admin/products/index/_products_product.html.haml index 55643d74ea..c5d617b336 100644 --- a/app/views/spree/admin/products/index/_products_product.html.haml +++ b/app/views/spree/admin/products/index/_products_product.html.haml @@ -31,8 +31,6 @@ %option{value: ''}= t(:none) %td.inherits_properties{ 'ng-show' => 'columns.inherits_properties.visible' } %input{ 'ng-model' => 'product.inherits_properties', :name => 'inherits_properties', 'ofn-track-product' => 'inherits_properties', type: "checkbox" } - %td.available_on{ 'ng-show' => 'columns.available_on.visible' } - %input{ 'ng-model' => 'product.available_on', :name => 'available_on', 'ofn-track-product' => 'available_on', 'datetimepicker' => 'product.available_on', type: "text" } %td.import_date{ 'ng-show' => 'columns.import_date.visible' } %span {{(product.import_date | date:"MMMM dd, yyyy HH:mm") || ""}} %td.actions diff --git a/app/views/spree/admin/products/index/_products_variant.html.haml b/app/views/spree/admin/products/index/_products_variant.html.haml index 61db4e0ea7..5cb42f051e 100644 --- a/app/views/spree/admin/products/index/_products_variant.html.haml +++ b/app/views/spree/admin/products/index/_products_variant.html.haml @@ -23,7 +23,6 @@ %td{ 'ng-show' => 'columns.category.visible' } %td{ 'ng-show' => 'columns.tax_category.visible' } %td{ 'ng-show' => 'columns.inherits_properties.visible' } - %td{ 'ng-show' => 'columns.available_on.visible' } %td{ 'ng-show' => 'columns.import_date.visible' } %span {{variant.import_date | date:"MMMM dd, yyyy HH:mm"}} %td.actions diff --git a/app/webpacker/css/admin/products.scss b/app/webpacker/css/admin/products.scss index 1b10188baa..781d32514f 100644 --- a/app/webpacker/css/admin/products.scss +++ b/app/webpacker/css/admin/products.scss @@ -88,9 +88,6 @@ table#listing_products.bulk { &.category { width: 15%; } - &.available_on { - width: 15%; - } &.actions { width: 3%; } diff --git a/config/locales/en.yml b/config/locales/en.yml index 422f199e1b..fbd2515eae 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -517,7 +517,6 @@ en: on_demand: "On Demand" tax_category: "Tax Category" inherits_properties: "Inherits Properties?" - available_on: "Available On" import_date: "Import Date" columns_selector: unit: Unit @@ -529,7 +528,6 @@ en: on_demand: "On Demand" tax_category: "Tax Category" inherits_properties: "Inherits Properties?" - available_on: "Available On" import_date: "Import Date" adjustments: skipped_changing_canceled_order: "You can't change a cancelled order." @@ -741,7 +739,6 @@ en: category: Category tax_category: Tax Category inherits_properties?: Inherits Properties? - available_on: Available On av_on: "Av. On" import_date: Imported upload_an_image: Upload an image diff --git a/db/migrate/20230628124224_remove_product_available_on.rb b/db/migrate/20230628124224_remove_product_available_on.rb new file mode 100644 index 0000000000..a4b246823f --- /dev/null +++ b/db/migrate/20230628124224_remove_product_available_on.rb @@ -0,0 +1,5 @@ +class RemoveProductAvailableOn < ActiveRecord::Migration[7.0] + def change + remove_column :spree_products, :available_on + end +end diff --git a/db/schema.rb b/db/schema.rb index f41f2bf1e2..50dbd3f7b3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -741,7 +741,6 @@ ActiveRecord::Schema[7.0].define(version: 2023_06_28_131123) do create_table "spree_products", id: :serial, force: :cascade do |t| t.string "name", limit: 255, default: "", null: false t.text "description" - t.datetime "available_on", precision: nil t.datetime "deleted_at", precision: nil t.string "meta_keywords", limit: 255 t.integer "tax_category_id" @@ -758,7 +757,6 @@ ActiveRecord::Schema[7.0].define(version: 2023_06_28_131123) do t.integer "primary_taxon_id", null: false t.boolean "inherits_properties", default: true, null: false t.string "sku", limit: 255, default: "", null: false - t.index ["available_on"], name: "index_products_on_available_on" t.index ["deleted_at"], name: "index_products_on_deleted_at" t.index ["name"], name: "index_products_on_name" t.index ["primary_taxon_id"], name: "index_spree_products_on_primary_taxon_id" diff --git a/lib/open_food_network/column_preference_defaults.rb b/lib/open_food_network/column_preference_defaults.rb index cd162d2638..9bb09b2061 100644 --- a/lib/open_food_network/column_preference_defaults.rb +++ b/lib/open_food_network/column_preference_defaults.rb @@ -73,7 +73,6 @@ module OpenFoodNetwork category: { name: I18n.t("#{node}.category"), visible: false }, tax_category: { name: I18n.t("#{node}.tax_category"), visible: false }, inherits_properties: { name: I18n.t("#{node}.inherits_properties?"), visible: false }, - available_on: { name: I18n.t("#{node}.available_on"), visible: false }, import_date: { name: I18n.t("#{node}.import_date"), visible: false } } end diff --git a/spec/components/product_component_spec.rb b/spec/components/product_component_spec.rb index 540f4befef..904ed10fdc 100644 --- a/spec/components/product_component_spec.rb +++ b/spec/components/product_component_spec.rb @@ -67,31 +67,4 @@ describe ProductComponent, type: :component do end end end - - # This also covers import_date - describe 'available_on' do - let(:product) { create(:simple_product, available_on: available_on) } - let(:available_on) { Time.zone.now } - - before do - render_inline( - ProductComponent.new( - product: product, - columns: [{ label: "Available On", value: "available_on", sortable: false }] - ) - ) - end - - it 'returns formated available_on' do - expect(page.find('.available_on')).to have_content(available_on.strftime('%F %T')) - end - - context 'when available_on is nil' do - let(:available_on) { nil } - - it 'returns an empty string' do - expect(page.find('.available_on')).to have_content('') - end - end - end end diff --git a/spec/controllers/api/v0/products_controller_spec.rb b/spec/controllers/api/v0/products_controller_spec.rb index 3a376968f5..c48af9ba66 100644 --- a/spec/controllers/api/v0/products_controller_spec.rb +++ b/spec/controllers/api/v0/products_controller_spec.rb @@ -9,12 +9,10 @@ describe Api::V0::ProductsController, type: :controller do let(:supplier) { create(:supplier_enterprise) } let(:supplier2) { create(:supplier_enterprise) } let!(:product) { create(:product, supplier: supplier) } - let!(:inactive_product) { - create(:product, available_on: Time.zone.now.tomorrow, name: "inactive") - } + let!(:other_product) { create(:product) } let(:product_other_supplier) { create(:product, supplier: supplier2) } let(:product_with_image) { create(:product_with_image, supplier: supplier) } - let(:all_attributes) { ["id", "name", "available_on", "variants"] } + let(:all_attributes) { ["id", "name", "variants"] } let(:variants_attributes) { ["id", "options_text", "unit_value", "unit_description", "unit_to_display", "on_demand", "display_as", "display_name", "name_to_display", "sku", "on_hand", "price"] @@ -45,13 +43,6 @@ describe Api::V0::ProductsController, type: :controller do } ).to eq(true) end - it "cannot see inactive products" do - api_get :show, id: inactive_product.to_param - - expect(json_response["error"]).to eq("The resource you were looking for could not be found.") - expect(response.status).to eq(404) - end - it "returns a 404 error when it cannot find a product" do api_get :show, id: "non-existant" @@ -230,7 +221,7 @@ describe Api::V0::ProductsController, type: :controller do it "returns a list of products" do api_get :bulk_products, { page: 1, per_page: 15 }, format: :json expect(returned_product_ids).to eq [product4.id, product3.id, product2.id, - inactive_product.id, product.id] + other_product.id, product.id] end it "returns pagination data" do @@ -250,13 +241,13 @@ describe Api::V0::ProductsController, type: :controller do expect(returned_product_ids).to eq [product4.id, product3.id] api_get :bulk_products, { page: 2, per_page: 2 }, format: :json - expect(returned_product_ids).to eq [product2.id, inactive_product.id] + expect(returned_product_ids).to eq [product2.id, other_product.id] end it "filters results by supplier" do api_get :bulk_products, { page: 1, per_page: 15, q: { supplier_id_eq: supplier.id } }, format: :json - expect(returned_product_ids).to eq [product2.id, inactive_product.id, product.id] + expect(returned_product_ids).to eq [product2.id, other_product.id, product.id] end it "filters results by product category" do diff --git a/spec/factories/product_factory.rb b/spec/factories/product_factory.rb index ee71610ae6..7171f18351 100644 --- a/spec/factories/product_factory.rb +++ b/spec/factories/product_factory.rb @@ -6,7 +6,6 @@ FactoryBot.define do description { generate(:random_description) } price { 19.99 } sku { 'ABC' } - available_on { 1.year.ago } deleted_at { nil } supplier { Enterprise.is_primary_producer.first || FactoryBot.create(:supplier_enterprise) } diff --git a/spec/fixtures/files/sample_file_120_products.csv b/spec/fixtures/files/sample_file_120_products.csv index d40f26696d..3db9957021 100644 --- a/spec/fixtures/files/sample_file_120_products.csv +++ b/spec/fixtures/files/sample_file_120_products.csv @@ -1,121 +1,121 @@ -producer,sku,name,display_name,category,description,units,unit_type,variant_unit_name,price,on_hand,available_on,on_demand,shipping_category,tax_category -User Enterprise,1,Imported Product 1,Orange Tree,Vegetables,,1,g,,2,100,,,Shipping Category Name,Tax Category Name -User Enterprise,2,Imported Product 2,Orange Tree,Vegetables,,2,g,,3,101,,,Shipping Category Name,Tax Category Name -User Enterprise,3,Imported Product 3,Orange Tree,Vegetables,,3,g,,4,102,,,Shipping Category Name,Tax Category Name -User Enterprise,4,Imported Product 4,Orange Tree,Vegetables,,4,g,,5,103,,,Shipping Category Name,Tax Category Name -User Enterprise,5,Imported Product 5,Orange Tree,Vegetables,,5,g,,6,104,,,Shipping Category Name,Tax Category Name -User Enterprise,6,Imported Product 6,Orange Tree,Vegetables,,6,g,,7,105,,,Shipping Category Name,Tax Category Name -User Enterprise,7,Imported Product 7,Orange Tree,Vegetables,,7,g,,8,106,,,Shipping Category Name,Tax Category Name -User Enterprise,8,Imported Product 8,Orange Tree,Vegetables,,8,g,,9,107,,,Shipping Category Name,Tax Category Name -User Enterprise,9,Imported Product 9,Orange Tree,Vegetables,,9,g,,10,108,,,Shipping Category Name,Tax Category Name -User Enterprise,10,Imported Product 10,Orange Tree,Vegetables,,10,g,,11,109,,,Shipping Category Name,Tax Category Name -User Enterprise,11,Imported Product 11,Orange Tree,Vegetables,,11,g,,12,110,,,Shipping Category Name,Tax Category Name -User Enterprise,12,Imported Product 12,Orange Tree,Vegetables,,12,g,,13,111,,,Shipping Category Name,Tax Category Name -User Enterprise,13,Imported Product 13,Orange Tree,Vegetables,,13,g,,14,112,,,Shipping Category Name,Tax Category Name -User Enterprise,14,Imported Product 14,Orange Tree,Vegetables,,14,g,,15,113,,,Shipping Category Name,Tax Category Name -User Enterprise,15,Imported Product 15,Orange Tree,Vegetables,,15,g,,16,114,,,Shipping Category Name,Tax Category Name -User Enterprise,16,Imported Product 16,Orange Tree,Vegetables,,16,g,,17,115,,,Shipping Category Name,Tax Category Name -User Enterprise,17,Imported Product 17,Orange Tree,Vegetables,,17,g,,18,116,,,Shipping Category Name,Tax Category Name -User Enterprise,18,Imported Product 18,Orange Tree,Vegetables,,18,g,,19,117,,,Shipping Category Name,Tax Category Name -User Enterprise,19,Imported Product 19,Orange Tree,Vegetables,,19,g,,20,118,,,Shipping Category Name,Tax Category Name -User Enterprise,20,Imported Product 20,Orange Tree,Vegetables,,20,g,,21,119,,,Shipping Category Name,Tax Category Name -User Enterprise,21,Imported Product 21,Orange Tree,Vegetables,,21,g,,22,120,,,Shipping Category Name,Tax Category Name -User Enterprise,22,Imported Product 22,Orange Tree,Vegetables,,22,g,,23,121,,,Shipping Category Name,Tax Category Name -User Enterprise,23,Imported Product 23,Orange Tree,Vegetables,,23,g,,24,122,,,Shipping Category Name,Tax Category Name -User Enterprise,24,Imported Product 24,Orange Tree,Vegetables,,24,g,,25,123,,,Shipping Category Name,Tax Category Name -User Enterprise,25,Imported Product 25,Orange Tree,Vegetables,,25,g,,26,124,,,Shipping Category Name,Tax Category Name -User Enterprise,26,Imported Product 26,Orange Tree,Vegetables,,26,g,,27,125,,,Shipping Category Name,Tax Category Name -User Enterprise,27,Imported Product 27,Orange Tree,Vegetables,,27,g,,28,126,,,Shipping Category Name,Tax Category Name -User Enterprise,28,Imported Product 28,Orange Tree,Vegetables,,28,g,,29,127,,,Shipping Category Name,Tax Category Name -User Enterprise,29,Imported Product 29,Orange Tree,Vegetables,,29,g,,30,128,,,Shipping Category Name,Tax Category Name -User Enterprise,30,Imported Product 30,Orange Tree,Vegetables,,30,g,,31,129,,,Shipping Category Name,Tax Category Name -User Enterprise,31,Imported Product 31,Orange Tree,Vegetables,,31,g,,32,130,,,Shipping Category Name,Tax Category Name -User Enterprise,32,Imported Product 32,Orange Tree,Vegetables,,32,g,,33,131,,,Shipping Category Name,Tax Category Name -User Enterprise,33,Imported Product 33,Orange Tree,Vegetables,,33,g,,34,132,,,Shipping Category Name,Tax Category Name -User Enterprise,34,Imported Product 34,Orange Tree,Vegetables,,34,g,,35,133,,,Shipping Category Name,Tax Category Name -User Enterprise,35,Imported Product 35,Orange Tree,Vegetables,,35,g,,36,134,,,Shipping Category Name,Tax Category Name -User Enterprise,36,Imported Product 36,Orange Tree,Vegetables,,36,g,,37,135,,,Shipping Category Name,Tax Category Name -User Enterprise,37,Imported Product 37,Orange Tree,Vegetables,,37,g,,38,136,,,Shipping Category Name,Tax Category Name -User Enterprise,38,Imported Product 38,Orange Tree,Vegetables,,38,g,,39,137,,,Shipping Category Name,Tax Category Name -User Enterprise,39,Imported Product 39,Orange Tree,Vegetables,,39,g,,40,138,,,Shipping Category Name,Tax Category Name -User Enterprise,40,Imported Product 40,Orange Tree,Vegetables,,40,g,,41,139,,,Shipping Category Name,Tax Category Name -User Enterprise,41,Imported Product 41,Orange Tree,Vegetables,,41,g,,42,140,,,Shipping Category Name,Tax Category Name -User Enterprise,42,Imported Product 42,Orange Tree,Vegetables,,42,g,,43,141,,,Shipping Category Name,Tax Category Name -User Enterprise,43,Imported Product 43,Orange Tree,Vegetables,,43,g,,44,142,,,Shipping Category Name,Tax Category Name -User Enterprise,44,Imported Product 44,Orange Tree,Vegetables,,44,g,,45,143,,,Shipping Category Name,Tax Category Name -User Enterprise,45,Imported Product 45,Orange Tree,Vegetables,,45,g,,46,144,,,Shipping Category Name,Tax Category Name -User Enterprise,46,Imported Product 46,Orange Tree,Vegetables,,46,g,,47,145,,,Shipping Category Name,Tax Category Name -User Enterprise,47,Imported Product 47,Orange Tree,Vegetables,,47,g,,48,146,,,Shipping Category Name,Tax Category Name -User Enterprise,48,Imported Product 48,Orange Tree,Vegetables,,48,g,,49,147,,,Shipping Category Name,Tax Category Name -User Enterprise,49,Imported Product 49,Orange Tree,Vegetables,,49,g,,50,148,,,Shipping Category Name,Tax Category Name -User Enterprise,50,Imported Product 50,Orange Tree,Vegetables,,50,g,,51,149,,,Shipping Category Name,Tax Category Name -User Enterprise,51,Imported Product 51,Orange Tree,Vegetables,,51,g,,52,150,,,Shipping Category Name,Tax Category Name -User Enterprise,52,Imported Product 52,Orange Tree,Vegetables,,52,g,,53,151,,,Shipping Category Name,Tax Category Name -User Enterprise,53,Imported Product 53,Orange Tree,Vegetables,,53,g,,54,152,,,Shipping Category Name,Tax Category Name -User Enterprise,54,Imported Product 54,Orange Tree,Vegetables,,54,g,,55,153,,,Shipping Category Name,Tax Category Name -User Enterprise,55,Imported Product 55,Orange Tree,Vegetables,,55,g,,56,154,,,Shipping Category Name,Tax Category Name -User Enterprise,56,Imported Product 56,Orange Tree,Vegetables,,56,g,,57,155,,,Shipping Category Name,Tax Category Name -User Enterprise,57,Imported Product 57,Orange Tree,Vegetables,,57,g,,58,156,,,Shipping Category Name,Tax Category Name -User Enterprise,58,Imported Product 58,Orange Tree,Vegetables,,58,g,,59,157,,,Shipping Category Name,Tax Category Name -User Enterprise,59,Imported Product 59,Orange Tree,Vegetables,,59,g,,60,158,,,Shipping Category Name,Tax Category Name -User Enterprise,60,Imported Product 60,Orange Tree,Vegetables,,60,g,,61,159,,,Shipping Category Name,Tax Category Name -User Enterprise,61,Imported Product 61,Orange Tree,Vegetables,,61,g,,62,160,,,Shipping Category Name,Tax Category Name -User Enterprise,62,Imported Product 62,Orange Tree,Vegetables,,62,g,,63,161,,,Shipping Category Name,Tax Category Name -User Enterprise,63,Imported Product 63,Orange Tree,Vegetables,,63,g,,64,162,,,Shipping Category Name,Tax Category Name -User Enterprise,64,Imported Product 64,Orange Tree,Vegetables,,64,g,,65,163,,,Shipping Category Name,Tax Category Name -User Enterprise,65,Imported Product 65,Orange Tree,Vegetables,,65,g,,66,164,,,Shipping Category Name,Tax Category Name -User Enterprise,66,Imported Product 66,Orange Tree,Vegetables,,66,g,,67,165,,,Shipping Category Name,Tax Category Name -User Enterprise,67,Imported Product 67,Orange Tree,Vegetables,,67,g,,68,166,,,Shipping Category Name,Tax Category Name -User Enterprise,68,Imported Product 68,Orange Tree,Vegetables,,68,g,,69,167,,,Shipping Category Name,Tax Category Name -User Enterprise,69,Imported Product 69,Orange Tree,Vegetables,,69,g,,70,168,,,Shipping Category Name,Tax Category Name -User Enterprise,70,Imported Product 70,Orange Tree,Vegetables,,70,g,,71,169,,,Shipping Category Name,Tax Category Name -User Enterprise,71,Imported Product 71,Orange Tree,Vegetables,,71,g,,72,170,,,Shipping Category Name,Tax Category Name -User Enterprise,72,Imported Product 72,Orange Tree,Vegetables,,72,g,,73,171,,,Shipping Category Name,Tax Category Name -User Enterprise,73,Imported Product 73,Orange Tree,Vegetables,,73,g,,74,172,,,Shipping Category Name,Tax Category Name -User Enterprise,74,Imported Product 74,Orange Tree,Vegetables,,74,g,,75,173,,,Shipping Category Name,Tax Category Name -User Enterprise,75,Imported Product 75,Orange Tree,Vegetables,,75,g,,76,174,,,Shipping Category Name,Tax Category Name -User Enterprise,76,Imported Product 76,Orange Tree,Vegetables,,76,g,,77,175,,,Shipping Category Name,Tax Category Name -User Enterprise,77,Imported Product 77,Orange Tree,Vegetables,,77,g,,78,176,,,Shipping Category Name,Tax Category Name -User Enterprise,78,Imported Product 78,Orange Tree,Vegetables,,78,g,,79,177,,,Shipping Category Name,Tax Category Name -User Enterprise,79,Imported Product 79,Orange Tree,Vegetables,,79,g,,80,178,,,Shipping Category Name,Tax Category Name -User Enterprise,80,Imported Product 80,Orange Tree,Vegetables,,80,g,,81,179,,,Shipping Category Name,Tax Category Name -User Enterprise,81,Imported Product 81,Orange Tree,Vegetables,,81,g,,82,180,,,Shipping Category Name,Tax Category Name -User Enterprise,82,Imported Product 82,Orange Tree,Vegetables,,82,g,,83,181,,,Shipping Category Name,Tax Category Name -User Enterprise,83,Imported Product 83,Orange Tree,Vegetables,,83,g,,84,182,,,Shipping Category Name,Tax Category Name -User Enterprise,84,Imported Product 84,Orange Tree,Vegetables,,84,g,,85,183,,,Shipping Category Name,Tax Category Name -User Enterprise,85,Imported Product 85,Orange Tree,Vegetables,,85,g,,86,184,,,Shipping Category Name,Tax Category Name -User Enterprise,86,Imported Product 86,Orange Tree,Vegetables,,86,g,,87,185,,,Shipping Category Name,Tax Category Name -User Enterprise,87,Imported Product 87,Orange Tree,Vegetables,,87,g,,88,186,,,Shipping Category Name,Tax Category Name -User Enterprise,88,Imported Product 88,Orange Tree,Vegetables,,88,g,,89,187,,,Shipping Category Name,Tax Category Name -User Enterprise,89,Imported Product 89,Orange Tree,Vegetables,,89,g,,90,188,,,Shipping Category Name,Tax Category Name -User Enterprise,90,Imported Product 90,Orange Tree,Vegetables,,90,g,,91,189,,,Shipping Category Name,Tax Category Name -User Enterprise,91,Imported Product 91,Orange Tree,Vegetables,,91,g,,92,190,,,Shipping Category Name,Tax Category Name -User Enterprise,92,Imported Product 92,Orange Tree,Vegetables,,92,g,,93,191,,,Shipping Category Name,Tax Category Name -User Enterprise,93,Imported Product 93,Orange Tree,Vegetables,,93,g,,94,192,,,Shipping Category Name,Tax Category Name -User Enterprise,94,Imported Product 94,Orange Tree,Vegetables,,94,g,,95,193,,,Shipping Category Name,Tax Category Name -User Enterprise,95,Imported Product 95,Orange Tree,Vegetables,,95,g,,96,194,,,Shipping Category Name,Tax Category Name -User Enterprise,96,Imported Product 96,Orange Tree,Vegetables,,96,g,,97,195,,,Shipping Category Name,Tax Category Name -User Enterprise,97,Imported Product 97,Orange Tree,Vegetables,,97,g,,98,196,,,Shipping Category Name,Tax Category Name -User Enterprise,98,Imported Product 98,Orange Tree,Vegetables,,98,g,,99,197,,,Shipping Category Name,Tax Category Name -User Enterprise,99,Imported Product 99,Orange Tree,Vegetables,,99,g,,100,198,,,Shipping Category Name,Tax Category Name -User Enterprise,100,Imported Product 100,Orange Tree,Vegetables,,100,g,,101,199,,,Shipping Category Name,Tax Category Name -User Enterprise,101,Imported Product 101,Orange Tree,Vegetables,,101,g,,102,200,,,Shipping Category Name,Tax Category Name -User Enterprise,102,Imported Product 102,Orange Tree,Vegetables,,102,g,,103,201,,,Shipping Category Name,Tax Category Name -User Enterprise,103,Imported Product 103,Orange Tree,Vegetables,,103,g,,104,202,,,Shipping Category Name,Tax Category Name -User Enterprise,104,Imported Product 104,Orange Tree,Vegetables,,104,g,,105,203,,,Shipping Category Name,Tax Category Name -User Enterprise,105,Imported Product 105,Orange Tree,Vegetables,,105,g,,106,204,,,Shipping Category Name,Tax Category Name -User Enterprise,106,Imported Product 106,Orange Tree,Vegetables,,106,g,,107,205,,,Shipping Category Name,Tax Category Name -User Enterprise,107,Imported Product 107,Orange Tree,Vegetables,,107,g,,108,206,,,Shipping Category Name,Tax Category Name -User Enterprise,108,Imported Product 108,Orange Tree,Vegetables,,108,g,,109,207,,,Shipping Category Name,Tax Category Name -User Enterprise,109,Imported Product 109,Orange Tree,Vegetables,,109,g,,110,208,,,Shipping Category Name,Tax Category Name -User Enterprise,110,Imported Product 110,Orange Tree,Vegetables,,110,g,,111,209,,,Shipping Category Name,Tax Category Name -User Enterprise,111,Imported Product 111,Orange Tree,Vegetables,,111,g,,112,210,,,Shipping Category Name,Tax Category Name -User Enterprise,112,Imported Product 112,Orange Tree,Vegetables,,112,g,,113,211,,,Shipping Category Name,Tax Category Name -User Enterprise,113,Imported Product 113,Orange Tree,Vegetables,,113,g,,114,212,,,Shipping Category Name,Tax Category Name -User Enterprise,114,Imported Product 114,Orange Tree,Vegetables,,114,g,,115,213,,,Shipping Category Name,Tax Category Name -User Enterprise,115,Imported Product 115,Orange Tree,Vegetables,,115,g,,116,214,,,Shipping Category Name,Tax Category Name -User Enterprise,116,Imported Product 116,Orange Tree,Vegetables,,116,g,,117,215,,,Shipping Category Name,Tax Category Name -User Enterprise,117,Imported Product 117,Orange Tree,Vegetables,,117,g,,118,216,,,Shipping Category Name,Tax Category Name -User Enterprise,118,Imported Product 118,Orange Tree,Vegetables,,118,g,,119,217,,,Shipping Category Name,Tax Category Name -User Enterprise,119,Imported Product 119,Orange Tree,Vegetables,,119,g,,120,218,,,Shipping Category Name,Tax Category Name -User Enterprise,120,Imported Product 120,Orange Tree,Vegetables,,120,g,,121,219,,,Shipping Category Name,Tax Category Name +producer,sku,name,display_name,category,description,units,unit_type,variant_unit_name,price,on_hand,on_demand,shipping_category,tax_category +User Enterprise,1,Imported Product 1,Orange Tree,Vegetables,,1,g,,2,100,,Shipping Category Name,Tax Category Name +User Enterprise,2,Imported Product 2,Orange Tree,Vegetables,,2,g,,3,101,,Shipping Category Name,Tax Category Name +User Enterprise,3,Imported Product 3,Orange Tree,Vegetables,,3,g,,4,102,,Shipping Category Name,Tax Category Name +User Enterprise,4,Imported Product 4,Orange Tree,Vegetables,,4,g,,5,103,,Shipping Category Name,Tax Category Name +User Enterprise,5,Imported Product 5,Orange Tree,Vegetables,,5,g,,6,104,,Shipping Category Name,Tax Category Name +User Enterprise,6,Imported Product 6,Orange Tree,Vegetables,,6,g,,7,105,,Shipping Category Name,Tax Category Name +User Enterprise,7,Imported Product 7,Orange Tree,Vegetables,,7,g,,8,106,,Shipping Category Name,Tax Category Name +User Enterprise,8,Imported Product 8,Orange Tree,Vegetables,,8,g,,9,107,,Shipping Category Name,Tax Category Name +User Enterprise,9,Imported Product 9,Orange Tree,Vegetables,,9,g,,10,108,,Shipping Category Name,Tax Category Name +User Enterprise,10,Imported Product 10,Orange Tree,Vegetables,,10,g,,11,109,,Shipping Category Name,Tax Category Name +User Enterprise,11,Imported Product 11,Orange Tree,Vegetables,,11,g,,12,110,,Shipping Category Name,Tax Category Name +User Enterprise,12,Imported Product 12,Orange Tree,Vegetables,,12,g,,13,111,,Shipping Category Name,Tax Category Name +User Enterprise,13,Imported Product 13,Orange Tree,Vegetables,,13,g,,14,112,,Shipping Category Name,Tax Category Name +User Enterprise,14,Imported Product 14,Orange Tree,Vegetables,,14,g,,15,113,,Shipping Category Name,Tax Category Name +User Enterprise,15,Imported Product 15,Orange Tree,Vegetables,,15,g,,16,114,,Shipping Category Name,Tax Category Name +User Enterprise,16,Imported Product 16,Orange Tree,Vegetables,,16,g,,17,115,,Shipping Category Name,Tax Category Name +User Enterprise,17,Imported Product 17,Orange Tree,Vegetables,,17,g,,18,116,,Shipping Category Name,Tax Category Name +User Enterprise,18,Imported Product 18,Orange Tree,Vegetables,,18,g,,19,117,,Shipping Category Name,Tax Category Name +User Enterprise,19,Imported Product 19,Orange Tree,Vegetables,,19,g,,20,118,,Shipping Category Name,Tax Category Name +User Enterprise,20,Imported Product 20,Orange Tree,Vegetables,,20,g,,21,119,,Shipping Category Name,Tax Category Name +User Enterprise,21,Imported Product 21,Orange Tree,Vegetables,,21,g,,22,120,,Shipping Category Name,Tax Category Name +User Enterprise,22,Imported Product 22,Orange Tree,Vegetables,,22,g,,23,121,,Shipping Category Name,Tax Category Name +User Enterprise,23,Imported Product 23,Orange Tree,Vegetables,,23,g,,24,122,,Shipping Category Name,Tax Category Name +User Enterprise,24,Imported Product 24,Orange Tree,Vegetables,,24,g,,25,123,,Shipping Category Name,Tax Category Name +User Enterprise,25,Imported Product 25,Orange Tree,Vegetables,,25,g,,26,124,,Shipping Category Name,Tax Category Name +User Enterprise,26,Imported Product 26,Orange Tree,Vegetables,,26,g,,27,125,,Shipping Category Name,Tax Category Name +User Enterprise,27,Imported Product 27,Orange Tree,Vegetables,,27,g,,28,126,,Shipping Category Name,Tax Category Name +User Enterprise,28,Imported Product 28,Orange Tree,Vegetables,,28,g,,29,127,,Shipping Category Name,Tax Category Name +User Enterprise,29,Imported Product 29,Orange Tree,Vegetables,,29,g,,30,128,,Shipping Category Name,Tax Category Name +User Enterprise,30,Imported Product 30,Orange Tree,Vegetables,,30,g,,31,129,,Shipping Category Name,Tax Category Name +User Enterprise,31,Imported Product 31,Orange Tree,Vegetables,,31,g,,32,130,,Shipping Category Name,Tax Category Name +User Enterprise,32,Imported Product 32,Orange Tree,Vegetables,,32,g,,33,131,,Shipping Category Name,Tax Category Name +User Enterprise,33,Imported Product 33,Orange Tree,Vegetables,,33,g,,34,132,,Shipping Category Name,Tax Category Name +User Enterprise,34,Imported Product 34,Orange Tree,Vegetables,,34,g,,35,133,,Shipping Category Name,Tax Category Name +User Enterprise,35,Imported Product 35,Orange Tree,Vegetables,,35,g,,36,134,,Shipping Category Name,Tax Category Name +User Enterprise,36,Imported Product 36,Orange Tree,Vegetables,,36,g,,37,135,,Shipping Category Name,Tax Category Name +User Enterprise,37,Imported Product 37,Orange Tree,Vegetables,,37,g,,38,136,,Shipping Category Name,Tax Category Name +User Enterprise,38,Imported Product 38,Orange Tree,Vegetables,,38,g,,39,137,,Shipping Category Name,Tax Category Name +User Enterprise,39,Imported Product 39,Orange Tree,Vegetables,,39,g,,40,138,,Shipping Category Name,Tax Category Name +User Enterprise,40,Imported Product 40,Orange Tree,Vegetables,,40,g,,41,139,,Shipping Category Name,Tax Category Name +User Enterprise,41,Imported Product 41,Orange Tree,Vegetables,,41,g,,42,140,,Shipping Category Name,Tax Category Name +User Enterprise,42,Imported Product 42,Orange Tree,Vegetables,,42,g,,43,141,,Shipping Category Name,Tax Category Name +User Enterprise,43,Imported Product 43,Orange Tree,Vegetables,,43,g,,44,142,,Shipping Category Name,Tax Category Name +User Enterprise,44,Imported Product 44,Orange Tree,Vegetables,,44,g,,45,143,,Shipping Category Name,Tax Category Name +User Enterprise,45,Imported Product 45,Orange Tree,Vegetables,,45,g,,46,144,,Shipping Category Name,Tax Category Name +User Enterprise,46,Imported Product 46,Orange Tree,Vegetables,,46,g,,47,145,,Shipping Category Name,Tax Category Name +User Enterprise,47,Imported Product 47,Orange Tree,Vegetables,,47,g,,48,146,,Shipping Category Name,Tax Category Name +User Enterprise,48,Imported Product 48,Orange Tree,Vegetables,,48,g,,49,147,,Shipping Category Name,Tax Category Name +User Enterprise,49,Imported Product 49,Orange Tree,Vegetables,,49,g,,50,148,,Shipping Category Name,Tax Category Name +User Enterprise,50,Imported Product 50,Orange Tree,Vegetables,,50,g,,51,149,,Shipping Category Name,Tax Category Name +User Enterprise,51,Imported Product 51,Orange Tree,Vegetables,,51,g,,52,150,,Shipping Category Name,Tax Category Name +User Enterprise,52,Imported Product 52,Orange Tree,Vegetables,,52,g,,53,151,,Shipping Category Name,Tax Category Name +User Enterprise,53,Imported Product 53,Orange Tree,Vegetables,,53,g,,54,152,,Shipping Category Name,Tax Category Name +User Enterprise,54,Imported Product 54,Orange Tree,Vegetables,,54,g,,55,153,,Shipping Category Name,Tax Category Name +User Enterprise,55,Imported Product 55,Orange Tree,Vegetables,,55,g,,56,154,,Shipping Category Name,Tax Category Name +User Enterprise,56,Imported Product 56,Orange Tree,Vegetables,,56,g,,57,155,,Shipping Category Name,Tax Category Name +User Enterprise,57,Imported Product 57,Orange Tree,Vegetables,,57,g,,58,156,,Shipping Category Name,Tax Category Name +User Enterprise,58,Imported Product 58,Orange Tree,Vegetables,,58,g,,59,157,,Shipping Category Name,Tax Category Name +User Enterprise,59,Imported Product 59,Orange Tree,Vegetables,,59,g,,60,158,,Shipping Category Name,Tax Category Name +User Enterprise,60,Imported Product 60,Orange Tree,Vegetables,,60,g,,61,159,,Shipping Category Name,Tax Category Name +User Enterprise,61,Imported Product 61,Orange Tree,Vegetables,,61,g,,62,160,,Shipping Category Name,Tax Category Name +User Enterprise,62,Imported Product 62,Orange Tree,Vegetables,,62,g,,63,161,,Shipping Category Name,Tax Category Name +User Enterprise,63,Imported Product 63,Orange Tree,Vegetables,,63,g,,64,162,,Shipping Category Name,Tax Category Name +User Enterprise,64,Imported Product 64,Orange Tree,Vegetables,,64,g,,65,163,,Shipping Category Name,Tax Category Name +User Enterprise,65,Imported Product 65,Orange Tree,Vegetables,,65,g,,66,164,,Shipping Category Name,Tax Category Name +User Enterprise,66,Imported Product 66,Orange Tree,Vegetables,,66,g,,67,165,,Shipping Category Name,Tax Category Name +User Enterprise,67,Imported Product 67,Orange Tree,Vegetables,,67,g,,68,166,,Shipping Category Name,Tax Category Name +User Enterprise,68,Imported Product 68,Orange Tree,Vegetables,,68,g,,69,167,,Shipping Category Name,Tax Category Name +User Enterprise,69,Imported Product 69,Orange Tree,Vegetables,,69,g,,70,168,,Shipping Category Name,Tax Category Name +User Enterprise,70,Imported Product 70,Orange Tree,Vegetables,,70,g,,71,169,,Shipping Category Name,Tax Category Name +User Enterprise,71,Imported Product 71,Orange Tree,Vegetables,,71,g,,72,170,,Shipping Category Name,Tax Category Name +User Enterprise,72,Imported Product 72,Orange Tree,Vegetables,,72,g,,73,171,,Shipping Category Name,Tax Category Name +User Enterprise,73,Imported Product 73,Orange Tree,Vegetables,,73,g,,74,172,,Shipping Category Name,Tax Category Name +User Enterprise,74,Imported Product 74,Orange Tree,Vegetables,,74,g,,75,173,,Shipping Category Name,Tax Category Name +User Enterprise,75,Imported Product 75,Orange Tree,Vegetables,,75,g,,76,174,,Shipping Category Name,Tax Category Name +User Enterprise,76,Imported Product 76,Orange Tree,Vegetables,,76,g,,77,175,,Shipping Category Name,Tax Category Name +User Enterprise,77,Imported Product 77,Orange Tree,Vegetables,,77,g,,78,176,,Shipping Category Name,Tax Category Name +User Enterprise,78,Imported Product 78,Orange Tree,Vegetables,,78,g,,79,177,,Shipping Category Name,Tax Category Name +User Enterprise,79,Imported Product 79,Orange Tree,Vegetables,,79,g,,80,178,,Shipping Category Name,Tax Category Name +User Enterprise,80,Imported Product 80,Orange Tree,Vegetables,,80,g,,81,179,,Shipping Category Name,Tax Category Name +User Enterprise,81,Imported Product 81,Orange Tree,Vegetables,,81,g,,82,180,,Shipping Category Name,Tax Category Name +User Enterprise,82,Imported Product 82,Orange Tree,Vegetables,,82,g,,83,181,,Shipping Category Name,Tax Category Name +User Enterprise,83,Imported Product 83,Orange Tree,Vegetables,,83,g,,84,182,,Shipping Category Name,Tax Category Name +User Enterprise,84,Imported Product 84,Orange Tree,Vegetables,,84,g,,85,183,,Shipping Category Name,Tax Category Name +User Enterprise,85,Imported Product 85,Orange Tree,Vegetables,,85,g,,86,184,,Shipping Category Name,Tax Category Name +User Enterprise,86,Imported Product 86,Orange Tree,Vegetables,,86,g,,87,185,,Shipping Category Name,Tax Category Name +User Enterprise,87,Imported Product 87,Orange Tree,Vegetables,,87,g,,88,186,,Shipping Category Name,Tax Category Name +User Enterprise,88,Imported Product 88,Orange Tree,Vegetables,,88,g,,89,187,,Shipping Category Name,Tax Category Name +User Enterprise,89,Imported Product 89,Orange Tree,Vegetables,,89,g,,90,188,,Shipping Category Name,Tax Category Name +User Enterprise,90,Imported Product 90,Orange Tree,Vegetables,,90,g,,91,189,,Shipping Category Name,Tax Category Name +User Enterprise,91,Imported Product 91,Orange Tree,Vegetables,,91,g,,92,190,,Shipping Category Name,Tax Category Name +User Enterprise,92,Imported Product 92,Orange Tree,Vegetables,,92,g,,93,191,,Shipping Category Name,Tax Category Name +User Enterprise,93,Imported Product 93,Orange Tree,Vegetables,,93,g,,94,192,,Shipping Category Name,Tax Category Name +User Enterprise,94,Imported Product 94,Orange Tree,Vegetables,,94,g,,95,193,,Shipping Category Name,Tax Category Name +User Enterprise,95,Imported Product 95,Orange Tree,Vegetables,,95,g,,96,194,,Shipping Category Name,Tax Category Name +User Enterprise,96,Imported Product 96,Orange Tree,Vegetables,,96,g,,97,195,,Shipping Category Name,Tax Category Name +User Enterprise,97,Imported Product 97,Orange Tree,Vegetables,,97,g,,98,196,,Shipping Category Name,Tax Category Name +User Enterprise,98,Imported Product 98,Orange Tree,Vegetables,,98,g,,99,197,,Shipping Category Name,Tax Category Name +User Enterprise,99,Imported Product 99,Orange Tree,Vegetables,,99,g,,100,198,,Shipping Category Name,Tax Category Name +User Enterprise,100,Imported Product 100,Orange Tree,Vegetables,,100,g,,101,199,,Shipping Category Name,Tax Category Name +User Enterprise,101,Imported Product 101,Orange Tree,Vegetables,,101,g,,102,200,,Shipping Category Name,Tax Category Name +User Enterprise,102,Imported Product 102,Orange Tree,Vegetables,,102,g,,103,201,,Shipping Category Name,Tax Category Name +User Enterprise,103,Imported Product 103,Orange Tree,Vegetables,,103,g,,104,202,,Shipping Category Name,Tax Category Name +User Enterprise,104,Imported Product 104,Orange Tree,Vegetables,,104,g,,105,203,,Shipping Category Name,Tax Category Name +User Enterprise,105,Imported Product 105,Orange Tree,Vegetables,,105,g,,106,204,,Shipping Category Name,Tax Category Name +User Enterprise,106,Imported Product 106,Orange Tree,Vegetables,,106,g,,107,205,,Shipping Category Name,Tax Category Name +User Enterprise,107,Imported Product 107,Orange Tree,Vegetables,,107,g,,108,206,,Shipping Category Name,Tax Category Name +User Enterprise,108,Imported Product 108,Orange Tree,Vegetables,,108,g,,109,207,,Shipping Category Name,Tax Category Name +User Enterprise,109,Imported Product 109,Orange Tree,Vegetables,,109,g,,110,208,,Shipping Category Name,Tax Category Name +User Enterprise,110,Imported Product 110,Orange Tree,Vegetables,,110,g,,111,209,,Shipping Category Name,Tax Category Name +User Enterprise,111,Imported Product 111,Orange Tree,Vegetables,,111,g,,112,210,,Shipping Category Name,Tax Category Name +User Enterprise,112,Imported Product 112,Orange Tree,Vegetables,,112,g,,113,211,,Shipping Category Name,Tax Category Name +User Enterprise,113,Imported Product 113,Orange Tree,Vegetables,,113,g,,114,212,,Shipping Category Name,Tax Category Name +User Enterprise,114,Imported Product 114,Orange Tree,Vegetables,,114,g,,115,213,,Shipping Category Name,Tax Category Name +User Enterprise,115,Imported Product 115,Orange Tree,Vegetables,,115,g,,116,214,,Shipping Category Name,Tax Category Name +User Enterprise,116,Imported Product 116,Orange Tree,Vegetables,,116,g,,117,215,,Shipping Category Name,Tax Category Name +User Enterprise,117,Imported Product 117,Orange Tree,Vegetables,,117,g,,118,216,,Shipping Category Name,Tax Category Name +User Enterprise,118,Imported Product 118,Orange Tree,Vegetables,,118,g,,119,217,,Shipping Category Name,Tax Category Name +User Enterprise,119,Imported Product 119,Orange Tree,Vegetables,,119,g,,120,218,,Shipping Category Name,Tax Category Name +User Enterprise,120,Imported Product 120,Orange Tree,Vegetables,,120,g,,121,219,,Shipping Category Name,Tax Category Name diff --git a/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee b/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee index 5896939e2c..cae859743c 100644 --- a/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee +++ b/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee @@ -167,8 +167,6 @@ describe "filtering products for submission to database", -> ] it "returns stock properties of a product if no variant is provided", -> - available_on = new Date() - testProduct = id: 1 name: "TestProduct" @@ -183,13 +181,10 @@ describe "filtering products for submission to database", -> ] it "only returns the properties of products which ought to be updated", -> - available_on = new Date() - testProduct = id: 1 name: "TestProduct" description: "" - available_on: available_on deleted_at: null meta_keywords: null tax_category_id: null @@ -226,7 +221,6 @@ describe "filtering products for submission to database", -> variant_unit: 'volume' variant_unit_scale: 1 variant_unit_name: 'loaf' - available_on: available_on tax_category_id: null master_attributes: id: 2 @@ -978,12 +972,10 @@ describe "AdminProductEditCtrl", -> testProduct = testVariant = null beforeEach -> - available_on = new Date() testProduct = id: 1 name: "TestProduct" description: "" - available_on: available_on deleted_at: null meta_keywords: null tax_category_id: null diff --git a/spec/models/spree/product_spec.rb b/spec/models/spree/product_spec.rb index 20bf2204b7..9e1c98ceef 100644 --- a/spec/models/spree/product_spec.rb +++ b/spec/models/spree/product_spec.rb @@ -194,13 +194,6 @@ module Spree expect(build(:simple_product, supplier: nil)).not_to be_valid end - it "defaults available_on to now" do - Timecop.freeze do - product = Product.new - expect(product.available_on).to be_within(0.000001).of(Time.zone.now) - end - end - describe "tax category" do context "when a tax category is required" do it "is invalid when a tax category is not provided" do diff --git a/spec/system/admin/bulk_product_update_spec.rb b/spec/system/admin/bulk_product_update_spec.rb index 99a21a7804..565a74ef49 100644 --- a/spec/system/admin/bulk_product_update_spec.rb +++ b/spec/system/admin/bulk_product_update_spec.rb @@ -46,17 +46,6 @@ describe ' selected: s3.name end - it "displays a date input for available_on for each product, formatted to yyyy-mm-dd hh:mm:ss" do - p1 = FactoryBot.create(:product, available_on: Date.current) - p2 = FactoryBot.create(:product, available_on: Date.current - 1) - - visit spree.admin_products_path - toggle_columns "Available On" - - expect(page).to have_field "available_on", with: p1.available_on.strftime("%F %T") - expect(page).to have_field "available_on", with: p2.available_on.strftime("%F %T") - end - it "displays an on hand count in a span for each product" do p1 = FactoryBot.create(:product) v1 = p1.variants.first @@ -340,18 +329,17 @@ describe ' s2 = FactoryBot.create(:supplier_enterprise) t1 = FactoryBot.create(:taxon) t2 = FactoryBot.create(:taxon) - p = FactoryBot.create(:product, supplier: s1, available_on: Date.current, + p = FactoryBot.create(:product, supplier: s1, variant_unit: 'volume', variant_unit_scale: 1, primary_taxon: t2, sku: "OLD SKU") login_as_admin visit spree.admin_products_path - toggle_columns "Available On", /^Category?/i, "Inherits Properties?", "SKU" + toggle_columns /^Category?/i, "Inherits Properties?", "SKU" within "tr#p_#{p.id}" do expect(page).to have_field "product_name", with: p.name expect(page).to have_select "producer_id", selected: s1.name - expect(page).to have_field "available_on", with: p.available_on.strftime("%F %T") expect(page).to have_select2 "p#{p.id}_category_id", selected: t2.name expect(page).to have_select "variant_unit_with_scale", selected: "Volume (L)" expect(page).to have_checked_field "inherits_properties" @@ -359,7 +347,6 @@ describe ' fill_in "product_name", with: "Big Bag Of Potatoes" select s2.name, from: 'producer_id' - fill_in "available_on", with: 3.days.ago.beginning_of_day.strftime("%F %T") select "Weight (kg)", from: "variant_unit_with_scale" select2_select t1.name, from: "p#{p.id}_category_id" uncheck "inherits_properties" @@ -374,7 +361,6 @@ describe ' expect(p.supplier).to eq s2 expect(p.variant_unit).to eq "weight" expect(p.variant_unit_scale).to eq 1000 # Kg - expect(p.available_on).to eq 3.days.ago.beginning_of_day expect(p.primary_taxon.permalink).to eq t1.permalink expect(p.inherits_properties).to be false expect(p.sku).to eq "NEW SKU" @@ -403,7 +389,7 @@ describe ' it "updating a product with variants" do s1 = create(:supplier_enterprise) s2 = create(:supplier_enterprise) - p = create(:product, supplier: s1, available_on: Date.current, variant_unit: 'volume', variant_unit_scale: 0.001, + p = create(:product, supplier: s1, variant_unit: 'volume', variant_unit_scale: 0.001, price: 3.0, unit_value: 0.25, unit_description: '(bottle)' ) v = p.variants.first v.update_attribute(:sku, "VARIANTSKU") @@ -709,13 +695,10 @@ describe ' login_as_admin visit spree.admin_products_path - toggle_columns "Available On" - expect(page).to have_selector "th", text: "NAME" expect(page).to have_selector "th", text: "PRODUCER" expect(page).to have_selector "th", text: "PRICE" expect(page).to have_selector "th", text: "ON HAND" - expect(page).to have_selector "th", text: "AV. ON" toggle_columns /^.{0,1}Producer$/i @@ -723,7 +706,6 @@ describe ' expect(page).to have_selector "th", text: "NAME" expect(page).to have_selector "th", text: "PRICE" expect(page).to have_selector "th", text: "ON HAND" - expect(page).to have_selector "th", text: "AV. ON" end end @@ -777,7 +759,7 @@ describe ' create(:product, name: 'Product Permitted', supplier: supplier_permitted, price: 10.0) } let(:product_supplied_inactive) { - create(:product, supplier: supplier_managed1, price: 10.0, available_on: 1.week.from_now) + create(:product, supplier: supplier_managed1, price: 10.0) } let!(:supplier_permitted_relationship) do @@ -852,17 +834,13 @@ describe ' v.update_attribute(:on_demand, false) visit spree.admin_products_path - toggle_columns "Available On" within "tr#p_#{p.id}" do expect(page).to have_field "product_name", with: p.name expect(page).to have_select "producer_id", selected: supplier_permitted.name - expect(page).to have_field "available_on", with: p.available_on.strftime("%F %T") fill_in "product_name", with: "Big Bag Of Potatoes" select supplier_managed2.name, from: 'producer_id' - fill_in "available_on", with: 3.days.ago.beginning_of_day.strftime("%F %T"), - fill_options: { clear: :backspace } select "Weight (kg)", from: "variant_unit_with_scale" find("a.view-variants").click @@ -883,7 +861,6 @@ describe ' expect(p.supplier).to eq supplier_managed2 expect(p.variant_unit).to eq "weight" expect(p.variant_unit_scale).to eq 1000 # Kg - expect(p.available_on).to eq 3.days.ago.beginning_of_day expect(v.display_as).to eq "Big Bag" expect(v.price).to eq 20.0 expect(v.on_hand).to eq 18