I’m taking another tilt at a windmill: “slot-based” inventory or variant inventory pooling as a platform feature in Shopify.
We’re a small clothing manufacturer. All our products are made to order. When we sew a garment, we also make it fit well for a specific customer. Taking some tricks from the Toyota manufacturing playbook, we’ve been able to create a garment factory here, in Portland, that can produce made-to-measure clothing as efficiently as “standard” sizes. This is big deal for the fashion industry; somewhere between 40% and 60% of clothing made never gets bought. Overproducing clothing because we can’t guess what people will buy is one of the culprits. Even when we guess demand correctly, if we make clothing that doesn’t fit, it won’t sell.
Shopify could help us tackle this, but the platform doesn’t support inventory for a made-to-order business, where multiple “variants” are all pulled from a shared inventory pool. Yes, I can only offer one variant, say “made-to-measure,” but problems downstream ripple from that approach: our ad and social shopping infrastructure feeds require a variant-based catalog with a size taxonomy in order to sell our clothing.
Here’s an example: https://shop.dillonmontara.com/collections/mens/products/mens-chore-coat-black The “size” buttons are purely advisory for us; we can make a coat in a “stock” size, as described in the size chart, or can change the pattern for an individual. For instance, if you’re tall, fit our “size” medium, but can never get sleeves long enough, we’ll give you longer sleeves. We don’t mind, as it takes us the same amount of time to make the jacket, even if we change the pattern for you. The variant buttons are on the product page because you understand “sizes” when you’re buying clothing.
Behind the scenes, my “inventory” is gated by the amount of fabric I have for a particular garment style. Gender and size don’t matter much to our inventory tracking. If I have enough fabric for 20 coats, I can only sell 20 coats, no matter whether they’re men’s or women’s styles or what size they are. I cannot run past my inventory, because I may only have enough fabric for a fixed number of pieces. (And yes, my example above only has one variant under the covers, so I get faux inventory pooling. But, I can’t bridge inventory between the men’s and women’s products, even though they’re cut from the same roll of fabric.)
To forestall any suggestions that we just use an app for this, let’s look at the performance envelope needed, and why app-based inventory management will not work. It takes Shopify a long time to send an order to an app, in the range of 14-20 seconds. Fast apps can usually take under a second to process requests, and then any inventory updates will take about half a second for each item updated. (Timing as of last June.) In my business, we typically need to share an inventory pool across two products, each with at least 7 size variants. All told, that’s 22-28 seconds of latency from sale capture to finishing inventory updates. For any time-critical use, this won’t work, even before you account for possible race conditions from overlapping updates and API throttling.
And in our case, we do clothing that might be made from scarce or deadstock fabrics, and the pieces are sometimes very popular. We can sell out of a run very quickly. “Time-critical” might mean selling through those 20 coats before the first sale transaction even reaches the inventory app.
So, Team Shopify: give us a solution for slot-based inventory instead of variant-based. (There might even be a low-hanging solution for this. The platform already tracks SKU uniqueness, but doesn’t enforce it. Add a product-level switch to track inventory against a SKU rather than a variant ID. It would require linking inventory updates for all IDs sharing a SKU.)
As a manufacturer, I’ve been kludging around this problem since I launched my first apparel site on Shopify more than a decade ago. You have a chance to do some good for the fashion industry. Give us a platform that lets us deliver on the promise of made-to-order for the world.
(As a sweetener, I’ll make a chore coat in Japanese denim for every dev involved in writing the code, on me.)
Rick Levine