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 to configure pricing in Payment Links, Checkout, and Subscriptions.
Related guides: Set up a subscription, share a Payment Link, accept payments with Checkout, and more about Products and Prices
Defined Under Namespace
Classes: Identifiers, ManagedPayments, MarketingFeature, PackageDimensions, TaxDetails
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 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.
-
#identifiers ⇒ Object
readonly
Attribute for field identifiers.
-
#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
If the object exists in live mode, the value is
true. -
#managed_payments ⇒ Object
readonly
Attribute for field managed_payments.
-
#marketing_features ⇒ Object
readonly
A list of up to 15 marketing features for this product.
-
#metadata ⇒ Object
readonly
Set of key-value pairs 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 ID.
-
#tax_details ⇒ Object
readonly
Tax details for this product, including the tax code and an optional performance location.
-
#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?, 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
#active ⇒ Object (readonly)
Whether the product is currently available for purchase.
129 130 131 |
# File 'lib/stripe/resources/product.rb', line 129 def active @active end |
#created ⇒ Object (readonly)
Time at which the object was created. Measured in seconds since the Unix epoch.
131 132 133 |
# File 'lib/stripe/resources/product.rb', line 131 def created @created end |
#default_price ⇒ Object (readonly)
The ID of the Price object that is the default price for this product.
133 134 135 |
# File 'lib/stripe/resources/product.rb', line 133 def default_price @default_price end |
#deleted ⇒ Object (readonly)
Always true for a deleted object
135 136 137 |
# File 'lib/stripe/resources/product.rb', line 135 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.
137 138 139 |
# File 'lib/stripe/resources/product.rb', line 137 def description @description end |
#id ⇒ Object (readonly)
Unique identifier for the object.
139 140 141 |
# File 'lib/stripe/resources/product.rb', line 139 def id @id end |
#identifiers ⇒ Object (readonly)
Attribute for field identifiers
141 142 143 |
# File 'lib/stripe/resources/product.rb', line 141 def identifiers @identifiers end |
#images ⇒ Object (readonly)
A list of up to 8 URLs of images for this product, meant to be displayable to the customer.
143 144 145 |
# File 'lib/stripe/resources/product.rb', line 143 def images @images end |
#livemode ⇒ Object (readonly)
If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
145 146 147 |
# File 'lib/stripe/resources/product.rb', line 145 def livemode @livemode end |
#managed_payments ⇒ Object (readonly)
Attribute for field managed_payments
147 148 149 |
# File 'lib/stripe/resources/product.rb', line 147 def managed_payments @managed_payments end |
#marketing_features ⇒ Object (readonly)
A list of up to 15 marketing features for this product. These are displayed in pricing tables.
149 150 151 |
# File 'lib/stripe/resources/product.rb', line 149 def marketing_features @marketing_features end |
#metadata ⇒ Object (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.
151 152 153 |
# File 'lib/stripe/resources/product.rb', line 151 def @metadata end |
#name ⇒ Object (readonly)
The product's name, meant to be displayable to the customer.
153 154 155 |
# File 'lib/stripe/resources/product.rb', line 153 def name @name end |
#object ⇒ Object (readonly)
String representing the object's type. Objects of the same type share the same value.
155 156 157 |
# File 'lib/stripe/resources/product.rb', line 155 def object @object end |
#package_dimensions ⇒ Object (readonly)
The dimensions of this product for shipping purposes.
157 158 159 |
# File 'lib/stripe/resources/product.rb', line 157 def package_dimensions @package_dimensions end |
#shippable ⇒ Object (readonly)
Whether this product is shipped (i.e., physical goods).
159 160 161 |
# File 'lib/stripe/resources/product.rb', line 159 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.
161 162 163 |
# File 'lib/stripe/resources/product.rb', line 161 def statement_descriptor @statement_descriptor end |
#tax_code ⇒ Object (readonly)
A tax code ID.
163 164 165 |
# File 'lib/stripe/resources/product.rb', line 163 def tax_code @tax_code end |
#tax_details ⇒ Object (readonly)
Tax details for this product, including the tax code and an optional performance location.
165 166 167 |
# File 'lib/stripe/resources/product.rb', line 165 def tax_details @tax_details 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.
167 168 169 |
# File 'lib/stripe/resources/product.rb', line 167 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.
169 170 171 |
# File 'lib/stripe/resources/product.rb', line 169 def unit_label @unit_label end |
#updated ⇒ Object (readonly)
Time at which the object was last updated. Measured in seconds since the Unix epoch.
171 172 173 |
# File 'lib/stripe/resources/product.rb', line 171 def updated @updated end |
#url ⇒ Object (readonly)
A URL of a publicly-accessible webpage for this product.
173 174 175 |
# File 'lib/stripe/resources/product.rb', line 173 def url @url end |
Class Method Details
.create(params = {}, opts = {}) ⇒ Object
Creates a new product object.
176 177 178 |
# File 'lib/stripe/resources/product.rb', line 176 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.
181 182 183 184 185 186 187 188 |
# File 'lib/stripe/resources/product.rb', line 181 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
233 234 235 |
# File 'lib/stripe/resources/product.rb', line 233 def self.field_remappings @field_remappings = {} end |
.inner_class_types ⇒ Object
223 224 225 226 227 228 229 230 231 |
# File 'lib/stripe/resources/product.rb', line 223 def self.inner_class_types @inner_class_types = { identifiers: Identifiers, managed_payments: ManagedPayments, marketing_features: MarketingFeature, package_dimensions: PackageDimensions, tax_details: TaxDetails, } 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.
201 202 203 |
# File 'lib/stripe/resources/product.rb', line 201 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
205 206 207 |
# File 'lib/stripe/resources/product.rb', line 205 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
209 210 211 |
# File 'lib/stripe/resources/product.rb', line 209 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.
214 215 216 217 218 219 220 221 |
# File 'lib/stripe/resources/product.rb', line 214 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.
191 192 193 194 195 196 197 198 |
# File 'lib/stripe/resources/product.rb', line 191 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 |