Guides

Purchase options allow you to sell a single product in multiple ways, with different pricing and fulfillment settings. The default is a one-time purchase. Currently, you can also offer subscriptions—with more options like preorders and try-before-you-buy coming soon.

This is the most traditional way to sell—the full price is paid at checkout and you fulfill the product once. One-time pricing allows for setting the product's list price as well as defining a sale_price. The sale price can be enabled and disabled with the toggle—enabling will designate the product is on sale and the product's sale price will be reflected in your storefront.

In addition to the base list price and sale price, One-time pricing also supports additional price rules. These can be added to accommodate use cases such as:

  • Providing different prices per customer group
  • Specifying prices for a set maximum or minimum quantity of items purchased

Swell can handle subscriptions for physical and virtual products, including different billing and fulfillment schedules.

For virtual subscriptions, the customer is billed on a regular basis according to the plan they choose. An order is generated for the initial purchase, and invoices for subsequent intervals.

For physical subscriptions, invoices are generated according to the billing schedule, and orders according to the fulfillment schedule. This ensures that your operations team can ensure items are fulfilled in a timely manner.

Enabling the subscription pricing allows for the creation of subscription plans. Each subscription plan has its own interval, price, and also supports a trial period. Specifying the trial period allows for a customer to try your product subscription for the duration—billing cycles will begin once the trial period ends.

If you have been using Swell and were selling subscriptions with the old configuration for subscriptions involving the use of bundle items, you will encounter a message both on the Storefront tab and on the particular product that features the legacy subscription setup.

In order to upgrade the product subscription, there are two areas that will need to be updated: your product(s) and your Storefront.

You can update your subscription plans through the API console in the dashboard directly with the following PUT request—you can also write a script to automate the process.

Update subscription purchase option
PUT /products/<id> { type: 'physical' or 'digital' }
💡

Specify the request with the type set to 'physical' for a subscription plan that has physical products, or 'digital' if the subscription has digital products.

This requires the affected product's id. This can be obtained by navigating to the product, clicking the </> icon on the top right to view the product in the console, and copying the id found at the end of the GET request (after /product/).

👉

Dev tools will need to be enabled for the </> icon to be visible

This id can then be used to enter the above PUT request within the Console. The API console is found under Developer > Console in the dashboard nav.

To create the request:

  1. Select PUT
  2. Choose /products under Collection
  3. Paste the product id in the URI field
  4. Enter type: 'digital' or 'physical' in the Body based on the product
  5. Press Run to make the change to the product.

Lastly, go to the product page and press Save product to finalize the update. Your product will now be configured with the updated Subscription purchase option.

⚠️

If you do not save the product from the product page, the change will not take effect.

In addition to updating your product purchase options, your storefront needs to be updated to support the new purchase options. Changes to the product without also adjusting the storefront can lead to issues when trying to purchase a product.

If you are using a Swell theme, you can remedy this by updating to the latest build of your theme. If you need assistance updating your theme, see our guide for updating your Swell theme with git.

For custom storefronts, a solution can be implemented via Frontend API. See an example.

Once changes have been made to both the product and the storefront, you should no longer see the error message display, and your storefront will be fully compatible with your new product subscription options.