Class: WhopSDK::Resources::Plans
- Inherits:
-
Object
- Object
- WhopSDK::Resources::Plans
- Defined in:
- lib/whop_sdk/resources/plans.rb,
sig/whop_sdk/resources/plans.rbs
Overview
A Plan defines how customers buy a product. It controls pricing, billing cadence, availability, tax behavior, checkout fields, and purchase visibility.
Use the Plans API to create plans for products, list existing plans, retrieve or update plan configuration, calculate tax for checkout, and delete plans that should no longer be offered.
Instance Method Summary collapse
-
#calculate_tax(id, address: nil, ip_address: nil, tax_ids: nil, request_options: {}) ⇒ WhopSDK::Models::PlanCalculateTaxResponse
Some parameter documentations has been truncated, see Models::PlanCalculateTaxParams for more details.
-
#create(account_id: nil, adaptive_pricing_enabled: nil, billing_period: nil, checkout_styling: nil, currency: nil, custom_fields: nil, description: nil, expiration_days: nil, image: nil, initial_price: nil, internal_notes: nil, legacy_payment_method_controls: nil, metadata: nil, override_tax_type: nil, payment_method_configuration: nil, plan_type: nil, product_id: nil, release_method: nil, renewal_price: nil, split_pay_required_payments: nil, stock: nil, three_ds_level: nil, title: nil, trial_period_days: nil, unlimited_stock: nil, visibility: nil, request_options: {}) ⇒ WhopSDK::Models::Plan
Some parameter documentations has been truncated, see Models::PlanCreateParams for more details.
-
#delete(id, request_options: {}) ⇒ Boolean
Permanently delete a plan from a product.
-
#initialize(client:) ⇒ Plans
constructor
private
A new instance of Plans.
-
#list(account_id:, after: nil, before: nil, created_after: nil, created_before: nil, direction: nil, first: nil, last: nil, order: nil, plan_types: nil, product_ids: nil, release_methods: nil, visibilities: nil, request_options: {}) ⇒ WhopSDK::Internal::CursorPage<WhopSDK::Models::PlanListResponse>
Returns a paginated list of plans belonging to an account, with optional filtering by visibility, type, release method, and product.
-
#retrieve(id, request_options: {}) ⇒ WhopSDK::Models::Plan
Retrieves the details of an existing plan.
-
#update(id, adaptive_pricing_enabled: nil, billing_period: nil, checkout_styling: nil, currency: nil, custom_fields: nil, description: nil, expiration_days: nil, image: nil, initial_price: nil, internal_notes: nil, legacy_payment_method_controls: nil, metadata: nil, offer_cancel_discount: nil, override_tax_type: nil, payment_method_configuration: nil, renewal_price: nil, stock: nil, strike_through_initial_price: nil, strike_through_renewal_price: nil, three_ds_level: nil, title: nil, trial_period_days: nil, unlimited_stock: nil, visibility: nil, request_options: {}) ⇒ WhopSDK::Models::Plan
Some parameter documentations has been truncated, see Models::PlanUpdateParams for more details.
Constructor Details
#initialize(client:) ⇒ Plans
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Plans.
280 281 282 |
# File 'lib/whop_sdk/resources/plans.rb', line 280 def initialize(client:) @client = client end |
Instance Method Details
#calculate_tax(id, address: nil, ip_address: nil, tax_ids: nil, request_options: {}) ⇒ WhopSDK::Models::PlanCalculateTaxResponse
Some parameter documentations has been truncated, see Models::PlanCalculateTaxParams for more details.
Previews tax for a plan before checkout, based on the buyer's location.
266 267 268 269 270 271 272 273 274 275 |
# File 'lib/whop_sdk/resources/plans.rb', line 266 def calculate_tax(id, params = {}) parsed, = WhopSDK::PlanCalculateTaxParams.dump_request(params) @client.request( method: :post, path: ["plans/%1$s/calculate_tax", id], body: parsed, model: WhopSDK::Models::PlanCalculateTaxResponse, options: ) end |
#create(account_id: nil, adaptive_pricing_enabled: nil, billing_period: nil, checkout_styling: nil, currency: nil, custom_fields: nil, description: nil, expiration_days: nil, image: nil, initial_price: nil, internal_notes: nil, legacy_payment_method_controls: nil, metadata: nil, override_tax_type: nil, payment_method_configuration: nil, plan_type: nil, product_id: nil, release_method: nil, renewal_price: nil, split_pay_required_payments: nil, stock: nil, three_ds_level: nil, title: nil, trial_period_days: nil, unlimited_stock: nil, visibility: nil, request_options: {}) ⇒ WhopSDK::Models::Plan
Some parameter documentations has been truncated, see Models::PlanCreateParams for more details.
Create a new pricing plan for a product. The plan defines the billing interval, price, and availability for customers.
77 78 79 80 |
# File 'lib/whop_sdk/resources/plans.rb', line 77 def create(params = {}) parsed, = WhopSDK::PlanCreateParams.dump_request(params) @client.request(method: :post, path: "plans", body: parsed, model: WhopSDK::Plan, options: ) end |
#delete(id, request_options: {}) ⇒ Boolean
Permanently delete a plan from a product. Existing memberships on this plan will not be affected.
237 238 239 240 241 242 243 244 |
# File 'lib/whop_sdk/resources/plans.rb', line 237 def delete(id, params = {}) @client.request( method: :delete, path: ["plans/%1$s", id], model: WhopSDK::Internal::Type::Boolean, options: params[:request_options] ) end |
#list(account_id:, after: nil, before: nil, created_after: nil, created_before: nil, direction: nil, first: nil, last: nil, order: nil, plan_types: nil, product_ids: nil, release_methods: nil, visibilities: nil, request_options: {}) ⇒ WhopSDK::Internal::CursorPage<WhopSDK::Models::PlanListResponse>
Returns a paginated list of plans belonging to an account, with optional filtering by visibility, type, release method, and product.
212 213 214 215 216 217 218 219 220 221 222 223 |
# File 'lib/whop_sdk/resources/plans.rb', line 212 def list(params) parsed, = WhopSDK::PlanListParams.dump_request(params) query = WhopSDK::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "plans", query: query, page: WhopSDK::Internal::CursorPage, model: WhopSDK::Models::PlanListResponse, options: ) end |
#retrieve(id, request_options: {}) ⇒ WhopSDK::Models::Plan
Retrieves the details of an existing plan.
93 94 95 96 97 98 99 100 |
# File 'lib/whop_sdk/resources/plans.rb', line 93 def retrieve(id, params = {}) @client.request( method: :get, path: ["plans/%1$s", id], model: WhopSDK::Plan, options: params[:request_options] ) end |
#update(id, adaptive_pricing_enabled: nil, billing_period: nil, checkout_styling: nil, currency: nil, custom_fields: nil, description: nil, expiration_days: nil, image: nil, initial_price: nil, internal_notes: nil, legacy_payment_method_controls: nil, metadata: nil, offer_cancel_discount: nil, override_tax_type: nil, payment_method_configuration: nil, renewal_price: nil, stock: nil, strike_through_initial_price: nil, strike_through_renewal_price: nil, three_ds_level: nil, title: nil, trial_period_days: nil, unlimited_stock: nil, visibility: nil, request_options: {}) ⇒ WhopSDK::Models::Plan
Some parameter documentations has been truncated, see Models::PlanUpdateParams for more details.
Update a plan's pricing, billing interval, visibility, stock, and other settings.
165 166 167 168 169 170 171 172 173 174 |
# File 'lib/whop_sdk/resources/plans.rb', line 165 def update(id, params = {}) parsed, = WhopSDK::PlanUpdateParams.dump_request(params) @client.request( method: :patch, path: ["plans/%1$s", id], body: parsed, model: WhopSDK::Plan, options: ) end |