I am developing a subscription app and need to implement automated order creation based on the billing cycles. Could you please advise on the best approach to achieve this? Do we need to set up a cron job for this functionality?
For subscription apps, Shopify doesn’t automatically create the recurring orders, your app has to handle that part. The usual approach is to store each subscription’s next billing date, then run a scheduled job that checks which subscriptions are due and creates the orders through the Admin API.
Most apps handle this with a cron job or scheduled worker, so yes, that’s the normal setup. Your job just needs to run daily or more often and trigger order creation for any subscription cycle that’s due.
This keeps the order generation reliable and fully under your app’s control.
Shopify doesn’t automatically create renewal orders for subscriptions just because a billing cycle exists. Your app has to trigger the renewal by creating a billing attempt on the subscription contract. When that billing attempt succeeds Shopify creates the order.
The usual pattern is to run a scheduled background job (cron, serverless scheduler, queue worker etc.):
Looks up all subscription contracts in your own DB where the next billing date or billingAttemptExpectedDate is due.
Calls subscriptionBillingAttemptCreate (or the billing-cycle API) with an idempotencyKey.
Updates your records based on whether the billing attempt succeeded or failed and sets the next billing date.
Automated order bulk creationEnabled by a background jobYou are able to process your own job that checks active subscriptions and creates draft orders via Admin API. Derive cycles from stable billing information from your app, then push orders programmatically instead of waiting for Shopify schedulesThis makes the logic sane and predictable.