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.
Requirements
Anchor link to section titled "Requirements"- Your app can make authenticated requests to the GraphQL Admin API.
Your app has the
merchant_managed_fulfillment_orders
andthird_party_fulfillment_orders
access scopes. Learn how to configure your access scopes using Shopify CLI.You're familiar with how prepaid subscriptions work.
You have a prepaid subscription order that has scheduled fulfillment orders.
Manually open a fulfillment order
Anchor 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 fulfillAt
date.
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 order
Anchor 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 order
Anchor 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 date
Anchor 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 fulfillment
Anchor 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.