Class: Io::Flow::V0::Models::Order
- Inherits:
-
ExpandableOrder
- Object
- ExpandableOrder
- Io::Flow::V0::Models::Order
- Defined in:
- lib/flow_commerce/flow_api_v0_client.rb
Overview
An order represents all of the information about a particular set of line items, including pricing, currency rates, delivery options, etc. All information in an order is guaranteed by Flow - if an order is submitted before its expiration. The intended use case is to create an order as a consumer enters checkout, then to submit that order as part of the user submitting their order. Note that Flow will automatically mark an order submitted if we see payment authorization(s) covering the full balance of an order.
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
-
#balance ⇒ Object
readonly
Returns the value of attribute balance.
-
#customer ⇒ Object
readonly
Returns the value of attribute customer.
-
#delivered_duty ⇒ Object
readonly
Returns the value of attribute delivered_duty.
-
#deliveries ⇒ Object
readonly
Returns the value of attribute deliveries.
-
#destination ⇒ Object
readonly
Returns the value of attribute destination.
-
#experience ⇒ Object
readonly
Returns the value of attribute experience.
-
#expires_at ⇒ Object
readonly
Returns the value of attribute expires_at.
-
#geo ⇒ Object
readonly
Returns the value of attribute geo.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#identifiers ⇒ Object
readonly
Returns the value of attribute identifiers.
-
#items ⇒ Object
readonly
Returns the value of attribute items.
-
#lines ⇒ Object
readonly
Returns the value of attribute lines.
-
#merchant_of_record ⇒ Object
readonly
Returns the value of attribute merchant_of_record.
-
#number ⇒ Object
readonly
Returns the value of attribute number.
-
#order_type ⇒ Object
readonly
Returns the value of attribute order_type.
-
#payments ⇒ Object
readonly
Returns the value of attribute payments.
-
#prices ⇒ Object
readonly
Returns the value of attribute prices.
-
#promotions ⇒ Object
readonly
Returns the value of attribute promotions.
-
#rules ⇒ Object
readonly
Returns the value of attribute rules.
-
#selections ⇒ Object
readonly
Returns the value of attribute selections.
-
#submitted_at ⇒ Object
readonly
Returns the value of attribute submitted_at.
-
#tax_registration ⇒ Object
readonly
Returns the value of attribute tax_registration.
-
#total ⇒ Object
readonly
Returns the value of attribute total.
Attributes inherited from ExpandableOrder
Instance Method Summary collapse
- #copy(incoming = {}) ⇒ Object
-
#initialize(incoming = {}) ⇒ Order
constructor
A new instance of Order.
- #subtype_to_hash ⇒ Object
- #to_json ⇒ Object
Methods inherited from ExpandableOrder
Constructor Details
#initialize(incoming = {}) ⇒ Order
Returns a new instance of Order.
45250 45251 45252 45253 45254 45255 45256 45257 45258 45259 45260 45261 45262 45263 45264 45265 45266 45267 45268 45269 45270 45271 45272 45273 45274 45275 45276 45277 45278 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45250 def initialize(incoming={}) super(:discriminator => ExpandableOrder::Types::ORDER) opts = HttpClient::Helper.symbolize_keys(incoming) HttpClient::Preconditions.require_keys(opts, [:id, :number, :customer, :delivered_duty, :destination, :expires_at, :items, :deliveries, :selections, :prices, :total, :attributes], 'Order') @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String) @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String) @order_type = (x = (x = opts.delete(:order_type); x.nil? ? "standard" : x); x.is_a?(::Io::Flow::V0::Models::OrderType) ? x : ::Io::Flow::V0::Models::OrderType.apply(x)) @merchant_of_record = (x = opts.delete(:merchant_of_record); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderMerchantOfRecord) ? x : ::Io::Flow::V0::Models::OrderMerchantOfRecord.apply(x))) @experience = (x = opts.delete(:experience); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ExpandableExperience) ? x : ::Io::Flow::V0::Models::ExpandableExperience.from_json(x))) @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::OrderCustomer) ? x : ::Io::Flow::V0::Models::OrderCustomer.new(x)) @delivered_duty = (x = opts.delete(:delivered_duty); x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x)) @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::OrderAddress) ? x : ::Io::Flow::V0::Models::OrderAddress.new(x)) @expires_at = HttpClient::Preconditions.assert_class('expires_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:expires_at)), DateTime) @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LocalizedLineItem) ? x : ::Io::Flow::V0::Models::LocalizedLineItem.new(x)) } @deliveries = HttpClient::Preconditions.assert_class('deliveries', opts.delete(:deliveries), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Delivery) ? x : ::Io::Flow::V0::Models::Delivery.from_json(x)) } @selections = HttpClient::Preconditions.assert_class('selections', opts.delete(:selections), Array).map { |v| HttpClient::Preconditions.assert_class('selections', v, String) } @prices = HttpClient::Preconditions.assert_class('prices', opts.delete(:prices), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::OrderPriceDetail) ? x : ::Io::Flow::V0::Models::OrderPriceDetail.new(x)) } @total = (x = opts.delete(:total); x.is_a?(::Io::Flow::V0::Models::LocalizedTotal) ? x : ::Io::Flow::V0::Models::LocalizedTotal.new(x)) @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h } @submitted_at = (x = opts.delete(:submitted_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('submitted_at', HttpClient::Helper.to_date_time_iso8601(x), DateTime)) @lines = (x = opts.delete(:lines); x.nil? ? nil : HttpClient::Preconditions.assert_class('lines', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Line) ? x : ::Io::Flow::V0::Models::Line.new(x)) }) @identifiers = (x = opts.delete(:identifiers); x.nil? ? nil : HttpClient::Preconditions.assert_class('identifiers', x, Array).map { |v| HttpClient::Preconditions.assert_class('identifiers', v, String) }) @promotions = (x = opts.delete(:promotions); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Promotions) ? x : ::Io::Flow::V0::Models::Promotions.new(x))) @payments = (x = opts.delete(:payments); x.nil? ? nil : HttpClient::Preconditions.assert_class('payments', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::OrderPayment) ? x : ::Io::Flow::V0::Models::OrderPayment.new(x)) }) @balance = (x = opts.delete(:balance); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::LocalizedTotal) ? x : ::Io::Flow::V0::Models::LocalizedTotal.new(x))) @rules = (x = opts.delete(:rules); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderRulesSummary) ? x : ::Io::Flow::V0::Models::OrderRulesSummary.new(x))) @tax_registration = (x = opts.delete(:tax_registration); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TaxRegistration) ? x : ::Io::Flow::V0::Models::TaxRegistration.new(x))) @geo = (x = opts.delete(:geo); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderGeo) ? x : ::Io::Flow::V0::Models::OrderGeo.new(x))) end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def attributes @attributes end |
#balance ⇒ Object (readonly)
Returns the value of attribute balance.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def balance @balance end |
#customer ⇒ Object (readonly)
Returns the value of attribute customer.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def customer @customer end |
#delivered_duty ⇒ Object (readonly)
Returns the value of attribute delivered_duty.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def delivered_duty @delivered_duty end |
#deliveries ⇒ Object (readonly)
Returns the value of attribute deliveries.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def deliveries @deliveries end |
#destination ⇒ Object (readonly)
Returns the value of attribute destination.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def destination @destination end |
#experience ⇒ Object (readonly)
Returns the value of attribute experience.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def experience @experience end |
#expires_at ⇒ Object (readonly)
Returns the value of attribute expires_at.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def expires_at @expires_at end |
#geo ⇒ Object (readonly)
Returns the value of attribute geo.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def geo @geo end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def id @id end |
#identifiers ⇒ Object (readonly)
Returns the value of attribute identifiers.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def identifiers @identifiers end |
#items ⇒ Object (readonly)
Returns the value of attribute items.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def items @items end |
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def lines @lines end |
#merchant_of_record ⇒ Object (readonly)
Returns the value of attribute merchant_of_record.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def merchant_of_record @merchant_of_record end |
#number ⇒ Object (readonly)
Returns the value of attribute number.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def number @number end |
#order_type ⇒ Object (readonly)
Returns the value of attribute order_type.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def order_type @order_type end |
#payments ⇒ Object (readonly)
Returns the value of attribute payments.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def payments @payments end |
#prices ⇒ Object (readonly)
Returns the value of attribute prices.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def prices @prices end |
#promotions ⇒ Object (readonly)
Returns the value of attribute promotions.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def promotions @promotions end |
#rules ⇒ Object (readonly)
Returns the value of attribute rules.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def rules @rules end |
#selections ⇒ Object (readonly)
Returns the value of attribute selections.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def selections @selections end |
#submitted_at ⇒ Object (readonly)
Returns the value of attribute submitted_at.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def submitted_at @submitted_at end |
#tax_registration ⇒ Object (readonly)
Returns the value of attribute tax_registration.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def tax_registration @tax_registration end |
#total ⇒ Object (readonly)
Returns the value of attribute total.
45248 45249 45250 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45248 def total @total end |
Instance Method Details
#copy(incoming = {}) ⇒ Object
45284 45285 45286 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45284 def copy(incoming={}) Order.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming))) end |
#subtype_to_hash ⇒ Object
45288 45289 45290 45291 45292 45293 45294 45295 45296 45297 45298 45299 45300 45301 45302 45303 45304 45305 45306 45307 45308 45309 45310 45311 45312 45313 45314 45315 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45288 def subtype_to_hash { :id => id, :number => number, :order_type => order_type.value, :merchant_of_record => merchant_of_record.nil? ? nil : merchant_of_record.value, :experience => experience.nil? ? nil : experience.to_hash, :customer => customer.to_hash, :delivered_duty => delivered_duty.value, :destination => destination.to_hash, :expires_at => expires_at, :items => items.map { |o| o.to_hash }, :deliveries => deliveries.map { |o| o.to_hash }, :selections => selections, :prices => prices.map { |o| o.to_hash }, :total => total.to_hash, :attributes => attributes, :submitted_at => submitted_at, :lines => lines.nil? ? nil : lines.map { |o| o.to_hash }, :identifiers => identifiers.nil? ? nil : identifiers, :promotions => promotions.nil? ? nil : promotions.to_hash, :payments => payments.nil? ? nil : payments.map { |o| o.to_hash }, :balance => balance.nil? ? nil : balance.to_hash, :rules => rules.nil? ? nil : rules.to_hash, :tax_registration => tax_registration.nil? ? nil : tax_registration.to_hash, :geo => geo.nil? ? nil : geo.to_hash } end |
#to_json ⇒ Object
45280 45281 45282 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45280 def to_json JSON.dump(to_hash) end |