Manage fulfillments for prepaid subscriptions
After a prepaid subscription has been billed for, the merchant or customer might want to make changes to the subscription contract or order. For example, they might want to reschedule a shipment or refund one of the scheduled fulfillments.
This guide shows how to manage and make changes to scheduled fulfillments for prepaid subscriptions.
RequirementsAnchor link to section titled "Requirements"
- Your app can make authenticated requests to the GraphQL Admin API.
Your app has the
third_party_fulfillment_ordersaccess scopes. For more information on requesting access scopes when your app is installed, refer to Getting started with OAuth.
You're familiar with how prepaid subscriptions work.
You have a prepaid subscription order that has scheduled fulfillment orders.
Manually open a fulfillment orderAnchor link to section titled "Manually open a fulfillment order"
Merchants can opt to Fulfill early for scheduled fulfillments in the Shopify admin. For scheduled fulfillment orders, this changes the fulfillment order's status to
OPEN ahead of the
You can also use the
fulfillmentOrderOpen mutation to set a fulfillment order's status to
OPEN, as demonstrated in the following example:
Skip a fulfillment orderAnchor link to section titled "Skip a fulfillment order"
A customer might want to skip a scheduled fulfillment of a product. For example, in the case of a three-month prepaid coffee subscription, a customer might decide to skip fulfillment because they already have enough coffee that month.
To skip a fulfillment order, you need to reschedule the fulfillment order and change the subscription contract's renewal date if applicable.
Reschedule a fulfillment orderAnchor link to section titled "Reschedule a fulfillment order"
Pass a new
fulfillAt date to the
fulfillmentOrderReschedule mutation to reschedule a fulfillment order. In this example, the fulfillment order is rescheduled from Feb 15 to Apr 15.
Change the contract renewal dateAnchor link to section titled "Change the contract renewal date"
To change the contract renewal date, you can use the
subscriptionContractSetNextBillingDate mutation. Because the previous example rescheduled a fulfillment order from Feb 15 to Apr 15, the renewal date is changed to May 15 for the following example:
Refund a scheduled fulfillmentAnchor link to section titled "Refund a scheduled fulfillment"
A customer might want to refund one or more of their scheduled fulfillments. Fulfillment order cancellations and refunds are processed in reverse chronological order. You can pass the
quantity to the
refundCreate mutation to determine how many subscription cycles should be cancelled.
The following example cancels the last four months of a six-month prepaid subscription:
- Learn how to manage orders for prepaid subscriptions by keeping subscription contract and order information in sync.