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](stripe.com/docs/orders)

Defined Under Namespace

Classes: AutomaticTax, BillingDetails, CancelParams, CreateParams, Credit, ListLineItemsParams, ListParams, Payment, ReopenParams, RetrieveParams, ShippingCost, ShippingDetails, SubmitParams, TaxDetails, TotalDetails, UpdateParams

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

#==, #[], #[]=, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, #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_remainingObject (readonly)

Attribute for field amount_remaining



2696
2697
2698
# File 'lib/stripe/resources/order.rb', line 2696

def amount_remaining
  @amount_remaining
end

#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](stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency).



2698
2699
2700
# File 'lib/stripe/resources/order.rb', line 2698

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](stripe.com/docs/currencies#zero-decimal) (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](stripe.com/docs/currencies#minimum-and-maximum-charge-amounts).



2700
2701
2702
# File 'lib/stripe/resources/order.rb', line 2700

def amount_total
  @amount_total
end

#applicationObject (readonly)

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



2702
2703
2704
# File 'lib/stripe/resources/order.rb', line 2702

def application
  @application
end

#automatic_taxObject (readonly)

Attribute for field automatic_tax



2704
2705
2706
# File 'lib/stripe/resources/order.rb', line 2704

def automatic_tax
  @automatic_tax
end

#billing_detailsObject (readonly)

Customer billing details associated with the order.



2706
2707
2708
# File 'lib/stripe/resources/order.rb', line 2706

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](stripe.com/docs/orders-beta/create-and-process) to learn about how client_secret should be handled.



2712
2713
2714
# File 'lib/stripe/resources/order.rb', line 2712

def client_secret
  @client_secret
end

#createdObject (readonly)

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



2714
2715
2716
# File 'lib/stripe/resources/order.rb', line 2714

def created
  @created
end

#creditsObject (readonly)

The credits applied to the Order. At most 10 credits can be applied to an Order.



2716
2717
2718
# File 'lib/stripe/resources/order.rb', line 2716

def credits
  @credits
end

#currencyObject (readonly)

Three-letter [ISO currency code](www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](stripe.com/docs/currencies).



2718
2719
2720
# File 'lib/stripe/resources/order.rb', line 2718

def currency
  @currency
end

#customerObject (readonly)

The customer which this orders belongs to.



2720
2721
2722
# File 'lib/stripe/resources/order.rb', line 2720

def customer
  @customer
end

#descriptionObject (readonly)

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



2722
2723
2724
# File 'lib/stripe/resources/order.rb', line 2722

def description
  @description
end

#discountsObject (readonly)

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



2724
2725
2726
# File 'lib/stripe/resources/order.rb', line 2724

def discounts
  @discounts
end

#idObject (readonly)

Unique identifier for the object.



2726
2727
2728
# File 'lib/stripe/resources/order.rb', line 2726

def id
  @id
end

#ip_addressObject (readonly)

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



2728
2729
2730
# File 'lib/stripe/resources/order.rb', line 2728

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.



2730
2731
2732
# File 'lib/stripe/resources/order.rb', line 2730

def line_items
  @line_items
end

#livemodeObject (readonly)

Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.



2732
2733
2734
# File 'lib/stripe/resources/order.rb', line 2732

def livemode
  @livemode
end

#metadataObject (readonly)

Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.



2734
2735
2736
# File 'lib/stripe/resources/order.rb', line 2734

def 
  @metadata
end

#objectObject (readonly)

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



2736
2737
2738
# File 'lib/stripe/resources/order.rb', line 2736

def object
  @object
end

#paymentObject (readonly)

Attribute for field payment



2738
2739
2740
# File 'lib/stripe/resources/order.rb', line 2738

def payment
  @payment
end

#shipping_costObject (readonly)

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



2740
2741
2742
# File 'lib/stripe/resources/order.rb', line 2740

def shipping_cost
  @shipping_cost
end

#shipping_detailsObject (readonly)

Customer shipping information associated with the order.



2742
2743
2744
# File 'lib/stripe/resources/order.rb', line 2742

def shipping_details
  @shipping_details
end

#statusObject (readonly)

The overall status of the order.



2744
2745
2746
# File 'lib/stripe/resources/order.rb', line 2744

def status
  @status
end

#tax_detailsObject (readonly)

Attribute for field tax_details



2746
2747
2748
# File 'lib/stripe/resources/order.rb', line 2746

def tax_details
  @tax_details
end

#total_detailsObject (readonly)

Attribute for field total_details



2748
2749
2750
# File 'lib/stripe/resources/order.rb', line 2748

def total_details
  @total_details
end

Class Method Details

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

Cancels the order as well as the payment intent if one is attached.



2761
2762
2763
2764
2765
2766
2767
2768
# File 'lib/stripe/resources/order.rb', line 2761

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

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

Creates a new open order object.



2771
2772
2773
# File 'lib/stripe/resources/order.rb', line 2771

def self.create(params = {}, opts = {})
  request_stripe_object(method: :post, path: "/v1/orders", params: params, opts: opts)
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.



2776
2777
2778
# File 'lib/stripe/resources/order.rb', line 2776

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

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

When retrieving an order, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.



2791
2792
2793
2794
2795
2796
2797
2798
# File 'lib/stripe/resources/order.rb', line 2791

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

.object_nameObject



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

def self.object_name
  "order"
end

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

Reopens a submitted order.



2811
2812
2813
2814
2815
2816
2817
2818
# File 'lib/stripe/resources/order.rb', line 2811

def self.reopen(id, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(id) }),
    params: params,
    opts: opts
  )
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](stripe.com/docs/api#reopen_order) method is called.



2831
2832
2833
2834
2835
2836
2837
2838
# File 'lib/stripe/resources/order.rb', line 2831

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.



2841
2842
2843
2844
2845
2846
2847
2848
# File 'lib/stripe/resources/order.rb', line 2841

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

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

Cancels the order as well as the payment intent if one is attached.



2751
2752
2753
2754
2755
2756
2757
2758
# File 'lib/stripe/resources/order.rb', line 2751

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

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

When retrieving an order, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.



2781
2782
2783
2784
2785
2786
2787
2788
# File 'lib/stripe/resources/order.rb', line 2781

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

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

Reopens a submitted order.



2801
2802
2803
2804
2805
2806
2807
2808
# File 'lib/stripe/resources/order.rb', line 2801

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

#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](stripe.com/docs/api#reopen_order) method is called.



2821
2822
2823
2824
2825
2826
2827
2828
# File 'lib/stripe/resources/order.rb', line 2821

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