Class: Stripe::Order

Inherits:
APIResource show all
Extended by:
APIOperations::Create, APIOperations::List
Includes:
APIOperations::Save
Defined in:
lib/stripe/resources/order.rb

Overview

An Order describes a purchase being made by a customer, including the products & quantities being purchased, the order status, the payment information, and the billing/shipping details.

Related guide: Orders overview

Defined Under Namespace

Classes: AutomaticTax, BillingDetails, Payment, ShippingCost, ShippingDetails, TaxDetails, TotalDetails

Constant Summary collapse

OBJECT_NAME =
"order"

Constants inherited from StripeObject

StripeObject::RESERVED_FIELD_NAMES

Instance Attribute Summary collapse

Attributes inherited from APIResource

#save_with_parent

Attributes inherited from StripeObject

#last_response

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIOperations::Create

create

Methods included from APIOperations::List

list

Methods included from APIOperations::Save

included, #save

Methods inherited from APIResource

class_name, custom_method, #refresh, #request_stripe_object, resource_url, #resource_url, retrieve, save_nested_resource

Methods included from APIOperations::Request

included

Methods inherited from StripeObject

#==, #[], #[]=, #_get_inner_class_type, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, field_encodings, #hash, #initialize, #inspect, #keys, #marshal_dump, #marshal_load, protected_fields, #serialize_params, #to_hash, #to_json, #to_s, #update_attributes, #values

Constructor Details

This class inherits a constructor from Stripe::StripeObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Stripe::StripeObject

Instance Attribute Details

#amount_subtotalObject (readonly)

Order cost before any discounts or taxes are applied. A positive integer representing the subtotal of the order in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency).



823
824
825
# File 'lib/stripe/resources/order.rb', line 823

def amount_subtotal
  @amount_subtotal
end

#amount_totalObject (readonly)

Total order cost after discounts and taxes are applied. A positive integer representing the cost of the order in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). To submit an order, the total must be either 0 or at least $0.50 USD or equivalent in charge currency.



825
826
827
# File 'lib/stripe/resources/order.rb', line 825

def amount_total
  @amount_total
end

#applicationObject (readonly)

ID of the Connect application that created the Order, if any.



827
828
829
# File 'lib/stripe/resources/order.rb', line 827

def application
  @application
end

#automatic_taxObject (readonly)

Attribute for field automatic_tax



829
830
831
# File 'lib/stripe/resources/order.rb', line 829

def automatic_tax
  @automatic_tax
end

#billing_detailsObject (readonly)

Customer billing details associated with the order.



831
832
833
# File 'lib/stripe/resources/order.rb', line 831

def billing_details
  @billing_details
end

#client_secretObject (readonly)

The client secret of this Order. Used for client-side retrieval using a publishable key.

The client secret can be used to complete a payment for an Order from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.

Refer to our docs for creating and processing an order to learn about how client_secret should be handled.



837
838
839
# File 'lib/stripe/resources/order.rb', line 837

def client_secret
  @client_secret
end

#createdObject (readonly)

Time at which the object was created. Measured in seconds since the Unix epoch.



839
840
841
# File 'lib/stripe/resources/order.rb', line 839

def created
  @created
end

#currencyObject (readonly)

Three-letter ISO currency code, in lowercase. Must be a supported currency.



841
842
843
# File 'lib/stripe/resources/order.rb', line 841

def currency
  @currency
end

#customerObject (readonly)

The customer which this orders belongs to.



843
844
845
# File 'lib/stripe/resources/order.rb', line 843

def customer
  @customer
end

#descriptionObject (readonly)

An arbitrary string attached to the object. Often useful for displaying to users.



845
846
847
# File 'lib/stripe/resources/order.rb', line 845

def description
  @description
end

#discountsObject (readonly)

The discounts applied to the order. Use expand[]=discounts to expand each discount.



847
848
849
# File 'lib/stripe/resources/order.rb', line 847

def discounts
  @discounts
end

#idObject (readonly)

Unique identifier for the object.



849
850
851
# File 'lib/stripe/resources/order.rb', line 849

def id
  @id
end

#ip_addressObject (readonly)

A recent IP address of the purchaser used for tax reporting and tax location inference.



851
852
853
# File 'lib/stripe/resources/order.rb', line 851

def ip_address
  @ip_address
end

#line_itemsObject (readonly)

A list of line items the customer is ordering. Each line item includes information about the product, the quantity, and the resulting cost. There is a maximum of 100 line items.



853
854
855
# File 'lib/stripe/resources/order.rb', line 853

def line_items
  @line_items
end

#livemodeObject (readonly)

If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.



855
856
857
# File 'lib/stripe/resources/order.rb', line 855

def livemode
  @livemode
end

#metadataObject (readonly)

Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.



857
858
859
# File 'lib/stripe/resources/order.rb', line 857

def 
  @metadata
end

#objectObject (readonly)

String representing the object's type. Objects of the same type share the same value.



859
860
861
# File 'lib/stripe/resources/order.rb', line 859

def object
  @object
end

#paymentObject (readonly)

Attribute for field payment



861
862
863
# File 'lib/stripe/resources/order.rb', line 861

def payment
  @payment
end

#shipping_costObject (readonly)

The details of the customer cost of shipping, including the customer chosen ShippingRate.



863
864
865
# File 'lib/stripe/resources/order.rb', line 863

def shipping_cost
  @shipping_cost
end

#shipping_detailsObject (readonly)

Customer shipping information associated with the order.



865
866
867
# File 'lib/stripe/resources/order.rb', line 865

def shipping_details
  @shipping_details
end

#statusObject (readonly)

The overall status of the order.



867
868
869
# File 'lib/stripe/resources/order.rb', line 867

def status
  @status
end

#tax_detailsObject (readonly)

Attribute for field tax_details



869
870
871
# File 'lib/stripe/resources/order.rb', line 869

def tax_details
  @tax_details
end

#total_detailsObject (readonly)

Attribute for field total_details



871
872
873
# File 'lib/stripe/resources/order.rb', line 871

def total_details
  @total_details
end

Class Method Details

.create(params = {}, opts = {}) ⇒ Object

Creates a new open order object.



874
875
876
# File 'lib/stripe/resources/order.rb', line 874

def self.create(params = {}, opts = {})
  request_stripe_object(method: :post, path: "/v1/orders", params: params, opts: opts)
end

.field_remappingsObject



925
926
927
# File 'lib/stripe/resources/order.rb', line 925

def self.field_remappings
  @field_remappings = {}
end

.inner_class_typesObject



913
914
915
916
917
918
919
920
921
922
923
# File 'lib/stripe/resources/order.rb', line 913

def self.inner_class_types
  @inner_class_types = {
    automatic_tax: AutomaticTax,
    billing_details: BillingDetails,
    payment: Payment,
    shipping_cost: ShippingCost,
    shipping_details: ShippingDetails,
    tax_details: TaxDetails,
    total_details: TotalDetails,
  }
end

.list(params = {}, opts = {}) ⇒ Object

Returns a list of your orders. The orders are returned sorted by creation date, with the most recently created orders appearing first.



879
880
881
# File 'lib/stripe/resources/order.rb', line 879

def self.list(params = {}, opts = {})
  request_stripe_object(method: :get, path: "/v1/orders", params: params, opts: opts)
end

.object_nameObject



16
17
18
# File 'lib/stripe/resources/order.rb', line 16

def self.object_name
  "order"
end

.submit(id, params = {}, opts = {}) ⇒ Object

Submitting an Order transitions the status to processing and creates a PaymentIntent object so the order can be paid. If the Order has an amount_total of 0, no PaymentIntent object will be created. Once the order is submitted, its contents cannot be changed, unless the reopen method is called.



894
895
896
897
898
899
900
901
# File 'lib/stripe/resources/order.rb', line 894

def self.submit(id, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(id) }),
    params: params,
    opts: opts
  )
end

.update(id, params = {}, opts = {}) ⇒ Object

Updates the specific order by setting the values of the parameters passed. Any parameters not provided will be left unchanged.



904
905
906
907
908
909
910
911
# File 'lib/stripe/resources/order.rb', line 904

def self.update(id, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/orders/%<id>s", { id: CGI.escape(id) }),
    params: params,
    opts: opts
  )
end

Instance Method Details

#submit(params = {}, opts = {}) ⇒ Object

Submitting an Order transitions the status to processing and creates a PaymentIntent object so the order can be paid. If the Order has an amount_total of 0, no PaymentIntent object will be created. Once the order is submitted, its contents cannot be changed, unless the reopen method is called.



884
885
886
887
888
889
890
891
# File 'lib/stripe/resources/order.rb', line 884

def submit(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end