Sha256: 247aff74af1818e9328908357332407ec3c69a8ba21f35266660bbe3ebb1d2b8

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

require "flex_commerce_api/api_base"

module FlexCommerce
  #
  # A flex commerce Order model
  #
  # This model provides access to the flex commerce order
  #
  #
  #
  class Order < FlexCommerceApi::ApiBase
    has_many :transactions, class_name: "::FlexCommerce::OrderTransaction"
    has_many :line_items, class_name: "::FlexCommerce::LineItem"
    has_many :coupons, class_name: "::FlexCommerce::ContainerCoupon"
    has_one :shipping_promotion, class_name: "::FlexCommerce::Promotion"
    has_one :shipping_address, class_name: "::FlexCommerce::Address"
    has_one :billing_address, class_name: "::FlexCommerce::Address"

    def self.path(params = nil, record = nil)
      if params && params[:filter] && (customer_id = params[:filter].delete(:customer_account_id))
        File.join("customer_accounts/%d" % customer_id, super)
      else
        super
      end
    end

  end

  def self.create(attributes = {})
    super(attributes.merge(extra_attributes))
  end

  def self.extra_attributes
    extras = {}
    extras.merge!(test: true) if FlexCommerceApi.config.order_test_mode
    extras
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
flex_commerce_api-0.8.3 app/models/order.rb
flex_commerce_api-0.8.2 app/models/order.rb
flex_commerce_api-0.8.1 app/models/order.rb
flex_commerce_api-0.7 app/models/order.rb
flex_commerce_api-0.6.57 app/models/order.rb