Lately I’m working with custom storefront development making use of buybuttonjs where I have to maxmize the use of draft order and I came to know various limitations that exists. Making use of draftorder api has enhanced the application functionalities in so many ways but still these limitations are strage and has added bulk of unnecessary work on my end.

Discount code field NOT available on draft order checkout.

On a normal checkout scenario, if no discount code is generated in the backend then the discount code input field isn’t available on checkout which makes sense. But when you have active discount codes setup and you are taking your customer checkout via draft order the discount code input field isn’t available. This is strange, isn’t it.

Workaround – If you are creating draft order via api then we can add discount code making use of `applied_discount` attribute. I guess there is no way we can have the discount input field on checkout. All we can do is pass discount code applied to draft order.

NO custom product images

With draft order you can create custom product. This really really is helpful when you have to add product with any* price. I said any price because shopify doesn’t allow product to change price and add to cart in general unless it’s with variants, also with variants there are limited price you can assign. But in a scenario where the customer input like width and height would define the price of product case, this is really helpful. The problem with this is the custom product can’t be added and a default image thumbnail would show up and it doesn’t look good.

Workaround – We hopefully through via GTM we can update the custom product image, but it looks like the GTM is restricted to run script on checkout page.

Attributes property NOT availble on draft order invoice notification template

We can add cart attributes from draft order api but the attribute isn’t available on draft order invoice email notification template. Reference that attributes property isn’t available in order invoice

Workaround – It looks like there is no workdaround for this as these aren’t available as according to the document provided.

If you guys have any workaround for any of these then please do comment I would love to hear about it.


Suman K.C

eCommerce Developer, writes about stuff related to eCommerce development. Currently based in Kathmandu, loves reading about startups & new technology, introvert nature, fond of traveling & playing futsal.

More Posts