class Seko::Order
Constants
- CANCEL_CODES
Public Class Methods
address(address, email)
click to toggle source
# File lib/seko/order.rb, line 59 def self.address(address, email) { "City" => address[:city], "CountryCode" => address[:country], "County" => address[:state], "EmailAddress" => email, "FirstName" => address[:first_name], "LastName" => address[:last_name], "Line1" => address[:address1], "Line2" => address[:address2], "PhoneNumber" => address[:phone], "PostcodeZip" => address[:zipcode].empty? ? '-----' : address[:zipcode] } end
build_request(attributes, type = nil)
click to toggle source
# File lib/seko/order.rb, line 21 def self.build_request(attributes, type = nil) formatted = format(attributes, type) formatted["Request"].merge!(company(attributes[:company])) if attributes[:company] formatted end
company(company)
click to toggle source
# File lib/seko/order.rb, line 87 def self.company(company) { "ShipToCompany" => { "CompanyCode" => company[:code], "CompanyDescription" => company[:description] } } end
courier_attributes(order)
click to toggle source
# File lib/seko/order.rb, line 43 def self.courier_attributes(order) if has_courier?(order) { "CourierName" => order[:shipping_carrier], "CourierService" => order[:shipping_method] } else {} end end
format(order, order_prefix = nil)
click to toggle source
# File lib/seko/order.rb, line 27 def self.format(order, order_prefix = nil) { "Request" => { "DeliveryDetails" => address(order[:shipping_address], order[:email]), "List" => { "SalesOrderLineItem" => line_items(order) }, "SalesOrderHeader" => { "DCCode" => order[:warehouse] }, "#{order_prefix}SalesOrder" => { "SalesOrderDate" => order[:date], "SalesOrderNumber" => order[:number] }.merge(courier_attributes(order)) } } end
has_courier?(order)
click to toggle source
# File lib/seko/order.rb, line 54 def self.has_courier?(order) order[:shipping_carrier] != nil && order[:shipping_carrier] != 'N/A' end
line_items(order)
click to toggle source
# File lib/seko/order.rb, line 74 def self.line_items(order) order[:line_items].collect.with_index do |line_item, index| { "LineNumber" => index + 1, "ProductCode" => line_item[:sku], "Quantity" => line_item[:quantity], "UnitPrice" => line_item[:price], "CurrencyCode" => order[:currency], "VAT" => line_item[:vat] || 0 } end end
submit(attributes)
click to toggle source
# File lib/seko/order.rb, line 17 def self.submit(attributes) build_request(attributes) end
websubmit(attributes)
click to toggle source
# File lib/seko/order.rb, line 13 def self.websubmit(attributes) build_request(attributes, "Web") end