My First (Public) Shopify App — Draft Order Attributes

Stephen Keable
3 min readMar 16, 2022


So let’s address the caveat first, it’s not my first Shopify App, I’ve built a few custom or private apps for merchants in the past. However Draft Order Attributes is the first I’ve built that’s available in the Shopify App Store.

A typical Draft Order in Shopify

So for those that don’t use the Draft Order system in Shopify, it’s a great feature, common use cases include:-

  • Over the phone/email based orders
  • Orders of custom quantities that aren’t usually available
  • Taking pre-orders for products
  • Adding bulk or wholesale discounts for customers
  • Creating quotes ahead of the actual sale

For all of these it allows you to set up the potential sale then send a link via email to allow the customer to pay for the order. Then the order flows into your usual fulfilment processes within Shopify. Meaning the order doesn’t get lost in an email chain or having to handle payment via transfer or cash if you don’t want to.

The missing puzzle piece

During your typical Shopify Online Store purchasing process you may have added additional fields on the cart page to allow customers to chose an option or supply some info, which alongside the Note field are Cart Attributes. These are often used to supply info like:-

  • Gift wrapping messaging and options
  • Order personalisation
  • Pick a delivery day for their order
  • Add a Purchase Order reference number for invoices

Although these cannot be added via the Shopify admin to draft orders, you can edit the values of these on orders from your Online Store. However they can be added to draft orders via the API.

Creating a new puzzle piece

As a result I’ve built a simple app which allows you to create a Draft Order with the additional attribute fields you might need.

It also allows editing of more than just the values of existing values and add extra fields after you have created the draft order (or online store order).

You can add it to your store for $5 a month after a 7 day trial.

The Development Process

It’s been really interesting building a Shopify app destined for their App Store, rather than a Custom App. Having recently built an iPhone app for the iOS store, I was used to needing things like privacy policy pages and setting up support inboxes etc.

Somethings around Shopify’s ecosystem are better, such as the revenue split being 100% up to $1m is nice, their review team also seem more hands on and approachable.

However some of the tech side of the process is less polished, such as having a sample app project which doesn’t meet the requirements of their own store (CSP and Webhooks), which I guess is a result of them moving fast development wise in recent years. Hopefully the new Express JS based sample app will solve these problems (back to the framework they used before next and koa).

Don’t add another feature until it’s launched!

It’s also been interesting product managing it so far, even if it just me building it, aiming to keep to a “MVP then iterate fast” process has been good. So I keep coming up with ideas of new features but benching them, so that I can actually launch the app first, rather than feature creeping for ages and never launching.

It does also mean that tackling the core functionality of adding and editing order attributes, along with understanding the app store process was just v1.0.

So the real work of building in the really fun features comes next.



Stephen Keable

Shopify partner, JavaScript/Liquid/Swift developer, convert to serverless architecture and builder of digital products people love to use since 1999.