Class: Seko::Order
- Inherits:
-
Object
- Object
- Seko::Order
- Defined in:
- lib/seko/order.rb
Constant Summary collapse
- CANCEL_CODES =
{ '001' => 'Customer Request', '002' => 'Order Delayed', '003' => 'Duplicate', '004' => 'Item not available', '005' => 'Cannot ship to address', '006' => 'Other' }
Class Method Summary collapse
- .address(address, email) ⇒ Object
- .build_request(attributes, type = nil) ⇒ Object
- .company(company) ⇒ Object
- .format(order, order_prefix = nil) ⇒ Object
- .line_items(items) ⇒ Object
- .submit(attributes) ⇒ Object
- .websubmit(attributes) ⇒ Object
Class Method Details
.address(address, email) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/seko/order.rb', line 43 def self.address(address, email) { "City" => address[:city], "CountryCode" => address[:country], "EmailAddress" => email, "FirstName" => address[:first_name], "LastName" => address[:last_name], "Line1" => address[:address1], "Line2" => address[:address2], "PhoneNumber" => address[:phone], "PostcodeZip" => address[:zipcode] } end |
.build_request(attributes, type = nil) ⇒ Object
21 22 23 24 25 |
# 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) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/seko/order.rb', line 67 def self.company(company) { "ShipToCompany" => { "CompanyCode" => company[:code], "CompanyDescription" => company[:description] } } end |
.format(order, order_prefix = nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# 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[:line_items]) }, "SalesOrderHeader" => { "DCCode" => order[:warehouse] }, "#{order_prefix}SalesOrder" => { "SalesOrderDate" => order[:date], "SalesOrderNumber" => order[:number] } } } end |
.line_items(items) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/seko/order.rb', line 57 def self.line_items(items) items.collect.with_index do |line_item, index| { "LineNumber" => index + 1, "ProductCode" => line_item[:sku], "Quantity" => line_item[:quantity] } end end |
.submit(attributes) ⇒ Object
17 18 19 |
# File 'lib/seko/order.rb', line 17 def self.submit(attributes) build_request(attributes) end |
.websubmit(attributes) ⇒ Object
13 14 15 |
# File 'lib/seko/order.rb', line 13 def self.websubmit(attributes) build_request(attributes, "Web") end |