When selling subscription products with delivery times, you may want to align the next recurring order with when customers actually receive their first shipment. This ensures customers don't get charged for their second order before they've even received the first one.
π¨ Note: Delaying the subscription start date won't delay the initial charge. The first charge and order happens when the customer places an order via Shopify checkout. Only the next order date will be delayed based on the delivery date you pass. |
Why delay subscription start date or next order date?
When a customer places their first subscription order with a delivery date (e.g., 7-14 days from current date), charging them again immediately after purchase doesn't make sense. By passing the expected delivery date, you can:
Ensure the cycle continues for subscription based on the date when customer has received the order rather than considering the date when they created a subscription. This will match subscription renewals to actual product usage patterns.
You want to start subscription only on specific months of the year or quarter. So irrespective of whenever the customer subscribes the next order date needs to be aligned accordingly.
How it works?
Recurpay supports passing cart attributes during checkout. By including a "Subscription start date" or "Delivery date" attribute with a dynamic delivery date, the system automatically calculates the next order date and delays the subscription start accordingly.
β
Step 1: Pass delivery date as cart attribute
β
You need to pass the expected delivery date to Recurpay using Shopify's cart attributes feature. The attribute must be passed in this exact format:
β
Attribute key: Subscription Start Date
βValue format: DD/MM/YYYY
β
For example, if the expected delivery is March 31st, 2026, you would pass: 31/03/2026
Using Shopify's cart attribute API, add the attribute before checkout:
β
var formattedDate = "31/03/2026"
fetch('/cart/update.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
attributes: {
'Subscription Start Date': formattedDate
}
})
})
.then(response => response.json())
.then(data => console.log('Cart attribute added:', data));
Step 2: Display Delivery Date in the Subscription Portal (Optional)
The passed delivery date can be accessed in the Recurpay subscription portal using the global JavaScript object:
window.recurpay_account
Using this object, you can fetch the delivery date and display it inside the subscription portal via custom JavaScript (Settings > General > Customer Portal), allowing customers to clearly see their upcoming delivery schedule.
β
βwindow.recurpay_account.subscription.order_data.note_attributes
β
Troubleshooting
Subscription start date not updating:
Verify the cart attribute key is exactly
Subscription Start Date(case-sensitive)Check that the date format is
DD/MM/YYYYEnsure the attribute is passed before checkout completion and is also displaying in order section on Shopify.
Next order scheduled incorrectly:
Confirm the date is in the future.
Review the subscription details page in the Recurpay admin to see what date was received on start date.
If you are facing any issues while setting this up, reach out to our team at help@recurpay.com. You can also start a live chat anytime we are available 24*7.


