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, ListLineItemsParams, ListParams, Payment, ReopenParams, 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_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).



2656
2657
2658
# File 'lib/stripe/resources/order.rb', line 2656

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).



2658
2659
2660
# File 'lib/stripe/resources/order.rb', line 2658

def amount_total
  @amount_total
end

#applicationObject (readonly)

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



2660
2661
2662
# File 'lib/stripe/resources/order.rb', line 2660

def application
  @application
end

#automatic_taxObject (readonly)

Attribute for field automatic_tax



2662
2663
2664
# File 'lib/stripe/resources/order.rb', line 2662

def automatic_tax
  @automatic_tax
end

#billing_detailsObject (readonly)

Customer billing details associated with the order.



2664
2665
2666
# File 'lib/stripe/resources/order.rb', line 2664

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.



2670
2671
2672
# File 'lib/stripe/resources/order.rb', line 2670

def client_secret
  @client_secret
end

#createdObject (readonly)

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



2672
2673
2674
# File 'lib/stripe/resources/order.rb', line 2672

def created
  @created
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).



2674
2675
2676
# File 'lib/stripe/resources/order.rb', line 2674

def currency
  @currency
end

#customerObject (readonly)

The customer which this orders belongs to.



2676
2677
2678
# File 'lib/stripe/resources/order.rb', line 2676

def customer
  @customer
end

#descriptionObject (readonly)

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



2678
2679
2680
# File 'lib/stripe/resources/order.rb', line 2678

def description
  @description
end

#discountsObject (readonly)

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



2680
2681
2682
# File 'lib/stripe/resources/order.rb', line 2680

def discounts
  @discounts
end

#idObject (readonly)

Unique identifier for the object.



2682
2683
2684
# File 'lib/stripe/resources/order.rb', line 2682

def id
  @id
end

#ip_addressObject (readonly)

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



2684
2685
2686
# File 'lib/stripe/resources/order.rb', line 2684

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.



2686
2687
2688
# File 'lib/stripe/resources/order.rb', line 2686

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.



2688
2689
2690
# File 'lib/stripe/resources/order.rb', line 2688

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.



2690
2691
2692
# File 'lib/stripe/resources/order.rb', line 2690

def 
  @metadata
end

#objectObject (readonly)

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



2692
2693
2694
# File 'lib/stripe/resources/order.rb', line 2692

def object
  @object
end

#paymentObject (readonly)

Attribute for field payment



2694
2695
2696
# File 'lib/stripe/resources/order.rb', line 2694

def payment
  @payment
end

#shipping_costObject (readonly)

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



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

def shipping_cost
  @shipping_cost
end

#shipping_detailsObject (readonly)

Customer shipping information associated with the order.



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

def shipping_details
  @shipping_details
end

#statusObject (readonly)

The overall status of the order.



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

def status
  @status
end

#tax_detailsObject (readonly)

Attribute for field tax_details



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

def tax_details
  @tax_details
end

#total_detailsObject (readonly)

Attribute for field total_details



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

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.



2717
2718
2719
2720
2721
2722
2723
2724
# File 'lib/stripe/resources/order.rb', line 2717

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.



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

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.



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

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.



2747
2748
2749
2750
2751
2752
2753
2754
# File 'lib/stripe/resources/order.rb', line 2747

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.



2767
2768
2769
2770
2771
2772
2773
2774
# File 'lib/stripe/resources/order.rb', line 2767

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



2787
2788
2789
2790
2791
2792
2793
2794
# File 'lib/stripe/resources/order.rb', line 2787

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.



2797
2798
2799
2800
2801
2802
2803
2804
# File 'lib/stripe/resources/order.rb', line 2797

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.



2707
2708
2709
2710
2711
2712
2713
2714
# File 'lib/stripe/resources/order.rb', line 2707

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.



2737
2738
2739
2740
2741
2742
2743
2744
# File 'lib/stripe/resources/order.rb', line 2737

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.



2757
2758
2759
2760
2761
2762
2763
2764
# File 'lib/stripe/resources/order.rb', line 2757

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



2777
2778
2779
2780
2781
2782
2783
2784
# File 'lib/stripe/resources/order.rb', line 2777

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