Class: Stripe::Product
- Inherits:
-
APIResource
- Object
- StripeObject
- APIResource
- Stripe::Product
- Extended by:
- APIOperations::Create, APIOperations::List, APIOperations::NestedResource, APIOperations::Search
- Includes:
- APIOperations::Delete, APIOperations::Save
- Defined in:
- lib/stripe/resources/product.rb
Overview
Products describe the specific goods or services you offer to your customers. For example, you might offer a Standard and Premium version of your goods or service; each version would be a separate Product. They can be used in conjunction with [Prices](stripe.com/docs/api#prices) to configure pricing in Payment Links, Checkout, and Subscriptions.
Related guides: [Set up a subscription](stripe.com/docs/billing/subscriptions/set-up-subscription), [share a Payment Link](stripe.com/docs/payment-links), [accept payments with Checkout](stripe.com/docs/payments/accept-a-payment#create-product-prices-upfront), and more about [Products and Prices](stripe.com/docs/products-prices/overview)
Defined Under Namespace
Classes: CreateParams, DeleteParams, ListParams, MarketingFeature, PackageDimensions, SearchParams, UpdateParams
Constant Summary collapse
- OBJECT_NAME =
"product"
Constants inherited from StripeObject
StripeObject::RESERVED_FIELD_NAMES
Instance Attribute Summary collapse
-
#active ⇒ Object
readonly
Whether the product is currently available for purchase.
-
#created ⇒ Object
readonly
Time at which the object was created.
-
#default_price ⇒ Object
readonly
The ID of the [Price](stripe.com/docs/api/prices) object that is the default price for this product.
-
#deleted ⇒ Object
readonly
Always true for a deleted object.
-
#description ⇒ Object
readonly
The product’s description, meant to be displayable to the customer.
-
#id ⇒ Object
readonly
Unique identifier for the object.
-
#images ⇒ Object
readonly
A list of up to 8 URLs of images for this product, meant to be displayable to the customer.
-
#livemode ⇒ Object
readonly
Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.
-
#marketing_features ⇒ Object
readonly
A list of up to 15 marketing features for this product.
-
#metadata ⇒ Object
readonly
Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object.
-
#name ⇒ Object
readonly
The product’s name, meant to be displayable to the customer.
-
#object ⇒ Object
readonly
String representing the object’s type.
-
#package_dimensions ⇒ Object
readonly
The dimensions of this product for shipping purposes.
-
#shippable ⇒ Object
readonly
Whether this product is shipped (i.e., physical goods).
-
#statement_descriptor ⇒ Object
readonly
Extra information about a product which will appear on your customer’s credit card statement.
-
#tax_code ⇒ Object
readonly
A [tax code](stripe.com/docs/tax/tax-categories) ID.
-
#type ⇒ Object
readonly
The type of the product.
-
#unit_label ⇒ Object
readonly
A label that represents units of this product.
-
#updated ⇒ Object
readonly
Time at which the object was last updated.
-
#url ⇒ Object
readonly
A URL of a publicly-accessible webpage for this product.
Attributes inherited from APIResource
Attributes inherited from StripeObject
Class Method Summary collapse
-
.create(params = {}, opts = {}) ⇒ Object
Creates a new product object.
-
.delete(id, params = {}, opts = {}) ⇒ Object
Delete a product.
- .field_remappings ⇒ Object
- .inner_class_types ⇒ Object
-
.list(params = {}, opts = {}) ⇒ Object
Returns a list of your products.
- .object_name ⇒ Object
- .search(params = {}, opts = {}) ⇒ Object
- .search_auto_paging_each(params = {}, opts = {}, &blk) ⇒ Object
-
.update(id, params = {}, opts = {}) ⇒ Object
Updates the specific product by setting the values of the parameters passed.
Instance Method Summary collapse
-
#delete(params = {}, opts = {}) ⇒ Object
Delete a product.
Methods included from APIOperations::Create
Methods included from APIOperations::List
Methods included from APIOperations::NestedResource
Methods included from APIOperations::Search
Methods included from APIOperations::Save
Methods included from APIOperations::Delete
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
Methods inherited from StripeObject
#==, #[], #[]=, #_get_inner_class_type, 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
#active ⇒ Object (readonly)
Whether the product is currently available for purchase.
475 476 477 |
# File 'lib/stripe/resources/product.rb', line 475 def active @active end |
#created ⇒ Object (readonly)
Time at which the object was created. Measured in seconds since the Unix epoch.
477 478 479 |
# File 'lib/stripe/resources/product.rb', line 477 def created @created end |
#default_price ⇒ Object (readonly)
The ID of the [Price](stripe.com/docs/api/prices) object that is the default price for this product.
479 480 481 |
# File 'lib/stripe/resources/product.rb', line 479 def default_price @default_price end |
#deleted ⇒ Object (readonly)
Always true for a deleted object
513 514 515 |
# File 'lib/stripe/resources/product.rb', line 513 def deleted @deleted end |
#description ⇒ Object (readonly)
The product’s description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
481 482 483 |
# File 'lib/stripe/resources/product.rb', line 481 def description @description end |
#id ⇒ Object (readonly)
Unique identifier for the object.
483 484 485 |
# File 'lib/stripe/resources/product.rb', line 483 def id @id end |
#images ⇒ Object (readonly)
A list of up to 8 URLs of images for this product, meant to be displayable to the customer.
485 486 487 |
# File 'lib/stripe/resources/product.rb', line 485 def images @images end |
#livemode ⇒ Object (readonly)
Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.
487 488 489 |
# File 'lib/stripe/resources/product.rb', line 487 def livemode @livemode end |
#marketing_features ⇒ Object (readonly)
A list of up to 15 marketing features for this product. These are displayed in [pricing tables](stripe.com/docs/payments/checkout/pricing-table).
489 490 491 |
# File 'lib/stripe/resources/product.rb', line 489 def marketing_features @marketing_features end |
#metadata ⇒ Object (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.
491 492 493 |
# File 'lib/stripe/resources/product.rb', line 491 def @metadata end |
#name ⇒ Object (readonly)
The product’s name, meant to be displayable to the customer.
493 494 495 |
# File 'lib/stripe/resources/product.rb', line 493 def name @name end |
#object ⇒ Object (readonly)
String representing the object’s type. Objects of the same type share the same value.
495 496 497 |
# File 'lib/stripe/resources/product.rb', line 495 def object @object end |
#package_dimensions ⇒ Object (readonly)
The dimensions of this product for shipping purposes.
497 498 499 |
# File 'lib/stripe/resources/product.rb', line 497 def package_dimensions @package_dimensions end |
#shippable ⇒ Object (readonly)
Whether this product is shipped (i.e., physical goods).
499 500 501 |
# File 'lib/stripe/resources/product.rb', line 499 def shippable @shippable end |
#statement_descriptor ⇒ Object (readonly)
Extra information about a product which will appear on your customer’s credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments.
501 502 503 |
# File 'lib/stripe/resources/product.rb', line 501 def statement_descriptor @statement_descriptor end |
#tax_code ⇒ Object (readonly)
A [tax code](stripe.com/docs/tax/tax-categories) ID.
503 504 505 |
# File 'lib/stripe/resources/product.rb', line 503 def tax_code @tax_code end |
#type ⇒ Object (readonly)
The type of the product. The product is either of type ‘good`, which is eligible for use with Orders and SKUs, or `service`, which is eligible for use with Subscriptions and Plans.
505 506 507 |
# File 'lib/stripe/resources/product.rb', line 505 def type @type end |
#unit_label ⇒ Object (readonly)
A label that represents units of this product. When set, this will be included in customers’ receipts, invoices, Checkout, and the customer portal.
507 508 509 |
# File 'lib/stripe/resources/product.rb', line 507 def unit_label @unit_label end |
#updated ⇒ Object (readonly)
Time at which the object was last updated. Measured in seconds since the Unix epoch.
509 510 511 |
# File 'lib/stripe/resources/product.rb', line 509 def updated @updated end |
#url ⇒ Object (readonly)
A URL of a publicly-accessible webpage for this product.
511 512 513 |
# File 'lib/stripe/resources/product.rb', line 511 def url @url end |
Class Method Details
.create(params = {}, opts = {}) ⇒ Object
Creates a new product object.
516 517 518 |
# File 'lib/stripe/resources/product.rb', line 516 def self.create(params = {}, opts = {}) request_stripe_object(method: :post, path: "/v1/products", params: params, opts: opts) end |
.delete(id, params = {}, opts = {}) ⇒ Object
Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.
521 522 523 524 525 526 527 528 |
# File 'lib/stripe/resources/product.rb', line 521 def self.delete(id, params = {}, opts = {}) request_stripe_object( method: :delete, path: format("/v1/products/%<id>s", { id: CGI.escape(id) }), params: params, opts: opts ) end |
.field_remappings ⇒ Object
570 571 572 |
# File 'lib/stripe/resources/product.rb', line 570 def self.field_remappings @field_remappings = {} end |
.inner_class_types ⇒ Object
563 564 565 566 567 568 |
# File 'lib/stripe/resources/product.rb', line 563 def self.inner_class_types @inner_class_types = { marketing_features: MarketingFeature, package_dimensions: PackageDimensions, } end |
.list(params = {}, opts = {}) ⇒ Object
Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first.
541 542 543 |
# File 'lib/stripe/resources/product.rb', line 541 def self.list(params = {}, opts = {}) request_stripe_object(method: :get, path: "/v1/products", params: params, opts: opts) end |
.object_name ⇒ Object
22 23 24 |
# File 'lib/stripe/resources/product.rb', line 22 def self.object_name "product" end |
.search(params = {}, opts = {}) ⇒ Object
545 546 547 |
# File 'lib/stripe/resources/product.rb', line 545 def self.search(params = {}, opts = {}) request_stripe_object(method: :get, path: "/v1/products/search", params: params, opts: opts) end |
.search_auto_paging_each(params = {}, opts = {}, &blk) ⇒ Object
549 550 551 |
# File 'lib/stripe/resources/product.rb', line 549 def self.search_auto_paging_each(params = {}, opts = {}, &blk) search(params, opts).auto_paging_each(&blk) end |
.update(id, params = {}, opts = {}) ⇒ Object
Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
554 555 556 557 558 559 560 561 |
# File 'lib/stripe/resources/product.rb', line 554 def self.update(id, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/products/%<id>s", { id: CGI.escape(id) }), params: params, opts: opts ) end |
Instance Method Details
#delete(params = {}, opts = {}) ⇒ Object
Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.
531 532 533 534 535 536 537 538 |
# File 'lib/stripe/resources/product.rb', line 531 def delete(params = {}, opts = {}) request_stripe_object( method: :delete, path: format("/v1/products/%<id>s", { id: CGI.escape(self["id"]) }), params: params, opts: opts ) end |