So I’m currently building an app for managing subscriptions on shopify but I’m not understanding the Subscription Drafts. I’ve already been able to create them modify and commit them but how do I associate them to a contract? How can I modify an existing contract? (Ex: How to pause/cancel a contract?)
Topic summary
The discussion centers on working with Shopify’s Subscription Drafts API and how to associate them with subscription contracts.
Core Question:
How to link subscription drafts to existing contracts and modify/pause/cancel contracts.
Key Technical Points:
- When committing a subscription draft, changes apply directly to the associated contract
- If no contract exists, committing creates a new one automatically
- Use
subscriptionContractCreatemutation to create drafts - Use
subscriptionContractUpdatemutation to modify existing contracts
Reported Issues:
- Users experiencing problems where
subscriptionDraftCommitreturnsnilcontract despite no errors - Error encountered:
INVALID_LINES- “Contract draft must have at least one line” - Multiple commit attempts fail silently with null responses
Status:
The discussion remains unresolved with users requesting help from community members. The main blocker appears to be draft commits failing validation or returning null contracts without clear error messages.
When you commit a subscription draft the changes are applied to the contract itself. If there is no contract, a new one will be created: https://shopify.dev/api/admin/graphql/reference/orders/subscriptiondraftcommit
To get a contract draft from an existing contract you can use the subscriptionContractUpdate mutation: https://shopify.dev/api/admin/graphql/reference/orders/subscriptioncontractupdate#interactive-example-2021-07
You can get more information on this here: https://shopify.dev/apps/subscriptions/contracts
Hi, I am able to create a Subscription contract draft, with subscriptionContractCreate mutation. I get the draft id & I immediately would like to commit it because i am creating a new contract, but I get {“data”=>{“subscriptionDraftCommit”=>{“contract”=>nil}} a nil contract with no errors at all. several attempts still return nil. What am I doing wrong? Please help me out.
I am also facing this error? Could anybody help out from these error?
In my case, I am getting errors like these:
[
{ code: ‘INVALID’, field: null, message: ‘is invalid’ },
{
code: ‘INVALID_LINES’,
field: [ ‘draftId’ ],
message: ‘Contract draft must have at least one line.’
}
]
Please help @ThomazReis !!!