Subscription - send hardware only once

Shopify Partner
11 0 0


I built a subscription app that uses Shopify GraphQL.

How can I configure a selling plan where the user pays every month or every year, but an order is created only once?

The idea is that the customer will get the hardware for free, and will pay for the software periodically.


The best idea I can think of now is having a delivery policy of "every 100 years".


          deliveryPolicy: {
          	recurring: {
              interval: YEAR
              intervalCount: 100


But I'm worried that this "every 100 years" info will appear in some automatic email or something like that. 

Is there a better solution?

Replies 3 (3)

Shopify Staff
15 1 3

Hey there Sophief,
Cool to hear you've been working on a subs app!
With Shopify, an order should be your go-to solution for a completed transaction.

I think your problem describes itself with a decent solution though: split the hardware and software into two different products. The hardware can be a physical, one-time purchase product, while the software can be a virtual, subscription product. Thus, when recurring orders are created for the software, you will not have physical stock limitations changing or have shipping / fulfillment be a concern.

Hopefully that helps!
-Daniel, Subscriptions Dev

To learn more visit the Shopify Help Center or the Community Blog.

Shopify Partner
11 0 0

Hi @dwyckoff , thanks for your reply!

I see that there's an "automatic Buy X Get Y discount" I can use to set the hardware price to 0.

I wonder if there's a way to enforce that it will be impossible to buy the subscription without also having the hardware in the cart. Must I use an app for that? (like in this forum thread?) Or maybe it's something I can do with shopify API or shopify GraphQL?

Shopify Staff (Retired)
14 4 5

Hi Sophief!

Unfortunately I don't think you will be able to use the "Automatic Buy X Get Y discount" since it is not currently supported for subscription. We currently only support shopify code discounts, and manual custom discounts (more information available here).


With regards to your question about enforcing that a product can only be purchased when another specific item is added to the cart, I believe that this is only possible using apps such as the ones in the thread you had linked.

However, if you do go with that approach, one solution that comes to mind is that you can have two different variants of the hardware product, one with the full price which can be purchased in a standalone manner, and the other with a zero price which can only be purchased alongside the subscription product.

To learn more visit the Shopify Help Center or the Community Blog.