Sha256: 5847608dad86892324b0441ede7290ad0076fc38635e9659f968298c572ed6f0

Contents?: true

Size: 769 Bytes

Versions: 3

Compression:

Stored size: 769 Bytes

Contents

module Spree
  module Stock
    InventoryUnitBuilder.class_eval do
      def units
        @order.line_items.flat_map do |line_item|
          line_item.quantity_by_variant.flat_map do |variant, quantity|
            quantity.times.map { build_inventory_unit(variant, line_item) }
          end
        end
      end

      def build_inventory_unit(variant, line_item)
        @order.inventory_units.includes(
          variant: {
            product: {
              shipping_category: {
                shipping_methods: [:calculator, { zones: :zone_members }]
              }
            }
          }
        ).build(
          pending: true,
          variant: variant,
          line_item: line_item,
          order: @order
        )
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
solidus_product_bundle-1.0.1 app/models/spree/stock/inventory_unit_builder_decorator.rb
solidus_product_bundle-1.0.0 app/models/spree/stock/inventory_unit_builder_decorator.rb
solidus_product_assembly-1.0.0 app/models/spree/stock/inventory_unit_builder_decorator.rb