Class: FriendlyShipping::Services::UpsFreight::GenerateCommodityInformation

Inherits:
Object
  • Object
show all
Defined in:
lib/friendly_shipping/services/ups_freight/generate_commodity_information.rb

Class Method Summary collapse

Class Method Details

.call(shipment:, options:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/friendly_shipping/services/ups_freight/generate_commodity_information.rb', line 7

def self.call(shipment:, options:)
  shipment.packages.flat_map do |package|
    package_options = options.options_for_package(package)
    package.items.map do |item|
      item_options = package_options.options_for_item(item)
      {
        # This is a required field
        Description: item.description || 'Commodities',
        Weight: {
          UnitOfMeasurement: {
            Code: 'LBS' # Only Pounds are supported
          },
          Value: item.weight.convert_to(:pounds).value.to_f.round(2).to_s
        },
        NumberOfPieces: '1', # We won't support this yet.
        PackagingType: {
          Code: item_options.packaging_code
        },
        FreightClass: item_options.freight_class
      }
    end
  end
end