Note: Enabling subscriptions can only be completed after you finish integration work for the new simplified Shops ads experiences feature.
We offer two solutions for you to add subscriptions products into your Meta catalog. (Estimated effort <1 week)
Solution | PDP Screenshot | Suited For |
---|---|---|
| ||
|
PDP | Cart | Checkout via Seller’s Website in IAB |
---|---|---|
Our initial lightweight setup solution models subscriptions as a variant of the one-time purchasable product and utilizes the “additional_variant_attributes” field in the feed.
id
- This is the product_id
that Meta will pass to you in the checkout URL.
product_id
. We suggest appending “_subscription” to the end of the original ID.item_group_id
- This ID needs to be the same across all of the variants (including the one-time purchase variant if applicable) so the product variants can be grouped together on the PDP.additional_variant_attribute
- A list of <key:value>
pairs
sale_price
- Current price of the subscription product.price
- Price of the of the one-time purchase.id | title | item_group_id | price | sale_price | additional_variant_attribute |
---|---|---|---|---|---|
razor_refill_cartridge | 4-blade razor refill (one time) | razor_refill | 6.99 | subscription:One-time purchase | |
razor_refill_cartridge_every_month | 4-blade razor refill (every month) | razor_refill | 6.99 | 5.99 | subscription:Deliver every month |
When integrating subscription products, consider the following scenarios:
https://your-website.com/any-url?products=<product-id:1>&coupon=<promo>
product_id
.https://your-website.com/any-url?products=<product-id_subscription:1>&coupon=<promo>
A new field “subscription_plans” in the catalog is now supported. This field is a JSON encoded string with fields “requires_subscription_plan” and “plans”.
Attribute | Required | Description |
---|---|---|
requires_subscription_plan bool | true | If true, the product item only supports subscription purchase. One-time purchase is not supported. If false, both subscription purchase and one-time purchase are supported. |
plans list<SellingPlan> | true | A list of SellingPlan |
Attribute | Required | Description |
---|---|---|
id string | true | The id of the subscription plan, Meta will be passing this within the checkout URL. |
billing_frequency BillingFrequency | false | The billing frequency |
delivery_frequency DeliveryFrequency | false | The delivery frequency |
price_adjustment PriceAdjustment | false | The price adjustment |
Attribute | Required | Description |
---|---|---|
interval string | true | Supported values: day, month, week, year |
interval_count integer | true | Frequency of billing Example value: 1 |
Attribute | Required | Description |
---|---|---|
interval string | true | Supported values: day, month, week, year |
interval_count integer | true | Frequency of delivery Example value: 1 |
Attribute | Required | Description |
---|---|---|
adjustment_value_type string | true | Supported values: fixed_amount, percentage |
adjustment_percent_value float | false | The percent off for percentage type Example value: 10 |
adjustment_fixed_value_amount float | false | The amount off for fixed_amount type Example value: 20 |
{ "requires_subscription_plan": true, "plans": [ { "id": "monthly plan", "delivery_frequency": { "interval": "month", "interval_count": 1 } }, { "id": "monthly plan with 10% off", "delivery_frequency": { "interval": "month", "interval_count": 1 }, "price_adjustment": { "adjustment_value_type": "percentage", "adjustment_percent_value": 10, "adjustment_fixed_value_amount": null } }, { "id": "monthly plan with $10 off and annual bill", "delivery_frequency": { "interval": "month", "interval_count": 1 }, "price_adjustment": { "adjustment_value_type": "fixed_amount", "adjustment_percent_value": 10, "adjustment_fixed_value_amount": null }, "billing_frequency": { "interval": "year", "interval_count": 1 } } ] }
You will need to make changes to the custom checkout url that allows Meta to send a buyer to your checkout screen.
Query Parameter | Description | Examples |
---|---|---|
| Required. Your web server should provide an API similar to decodeURIComponent to parse these parameters. Products with comma (,) or colon (:) characters in their ID are not supported. |
** This example cart has the following two products:
|
| Optional. |
|
| Optional. | Encoded example: Decoded example: |
https://your-website.com/any-url?products=<product-id:1>&coupon=<promo>
https://your-website.com/any-url?products=<product-id:1>&coupon=<promo>&products_json=<products_json>