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, Credit, 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

#==, #[], #[]=, 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



168
169
170
# File 'lib/stripe/resources/order.rb', line 168

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



170
171
172
# File 'lib/stripe/resources/order.rb', line 170

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



172
173
174
# File 'lib/stripe/resources/order.rb', line 172

def amount_total
  @amount_total
end

#applicationObject (readonly)

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



174
175
176
# File 'lib/stripe/resources/order.rb', line 174

def application
  @application
end

#automatic_taxObject (readonly)

Attribute for field automatic_tax



176
177
178
# File 'lib/stripe/resources/order.rb', line 176

def automatic_tax
  @automatic_tax
end

#billing_detailsObject (readonly)

Customer billing details associated with the order.



178
179
180
# File 'lib/stripe/resources/order.rb', line 178

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.



184
185
186
# File 'lib/stripe/resources/order.rb', line 184

def client_secret
  @client_secret
end

#createdObject (readonly)

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



186
187
188
# File 'lib/stripe/resources/order.rb', line 186

def created
  @created
end

#creditsObject (readonly)

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



188
189
190
# File 'lib/stripe/resources/order.rb', line 188

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



190
191
192
# File 'lib/stripe/resources/order.rb', line 190

def currency
  @currency
end

#customerObject (readonly)

The customer which this orders belongs to.



192
193
194
# File 'lib/stripe/resources/order.rb', line 192

def customer
  @customer
end

#descriptionObject (readonly)

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



194
195
196
# File 'lib/stripe/resources/order.rb', line 194

def description
  @description
end

#discountsObject (readonly)

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



196
197
198
# File 'lib/stripe/resources/order.rb', line 196

def discounts
  @discounts
end

#idObject (readonly)

Unique identifier for the object.



198
199
200
# File 'lib/stripe/resources/order.rb', line 198

def id
  @id
end

#ip_addressObject (readonly)

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



200
201
202
# File 'lib/stripe/resources/order.rb', line 200

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.



202
203
204
# File 'lib/stripe/resources/order.rb', line 202

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.



204
205
206
# File 'lib/stripe/resources/order.rb', line 204

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.



206
207
208
# File 'lib/stripe/resources/order.rb', line 206

def 
  @metadata
end

#objectObject (readonly)

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



208
209
210
# File 'lib/stripe/resources/order.rb', line 208

def object
  @object
end

#paymentObject (readonly)

Attribute for field payment



210
211
212
# File 'lib/stripe/resources/order.rb', line 210

def payment
  @payment
end

#shipping_costObject (readonly)

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



212
213
214
# File 'lib/stripe/resources/order.rb', line 212

def shipping_cost
  @shipping_cost
end

#shipping_detailsObject (readonly)

Customer shipping information associated with the order.



214
215
216
# File 'lib/stripe/resources/order.rb', line 214

def shipping_details
  @shipping_details
end

#statusObject (readonly)

The overall status of the order.



216
217
218
# File 'lib/stripe/resources/order.rb', line 216

def status
  @status
end

#tax_detailsObject (readonly)

Attribute for field tax_details



218
219
220
# File 'lib/stripe/resources/order.rb', line 218

def tax_details
  @tax_details
end

#total_detailsObject (readonly)

Attribute for field total_details



220
221
222
# File 'lib/stripe/resources/order.rb', line 220

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.



233
234
235
236
237
238
239
240
# File 'lib/stripe/resources/order.rb', line 233

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.



243
244
245
# File 'lib/stripe/resources/order.rb', line 243

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

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

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



248
249
250
# File 'lib/stripe/resources/order.rb', line 248

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



263
264
265
266
267
268
269
270
# File 'lib/stripe/resources/order.rb', line 263

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.



283
284
285
286
287
288
289
290
# File 'lib/stripe/resources/order.rb', line 283

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.



303
304
305
306
307
308
309
310
# File 'lib/stripe/resources/order.rb', line 303

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.



313
314
315
316
317
318
319
320
# File 'lib/stripe/resources/order.rb', line 313

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.



223
224
225
226
227
228
229
230
# File 'lib/stripe/resources/order.rb', line 223

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.



253
254
255
256
257
258
259
260
# File 'lib/stripe/resources/order.rb', line 253

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.



273
274
275
276
277
278
279
280
# File 'lib/stripe/resources/order.rb', line 273

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.



293
294
295
296
297
298
299
300
# File 'lib/stripe/resources/order.rb', line 293

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