Why a sweater with a leash hole is its own item
Sizes, colours, a cuff sleeve, a leash hole: every version of a product that a buyer would not accept in place of another is its own item in Intakes. Here is the rule that decides it, how a whole range is kept in one grid, and how a marketplace listing with only a couple of variation slots still lands every order on the exact item.
Intakes has one rule for what an item is, and it decides more than it looks like it should:
An item is a set of things you would hand to any buyer interchangeably.
Five olive size-L sweaters are one item with five pieces in stock. Whichever one you pull off the shelf, the buyer gets what they ordered. That interchangeability is what everything else rests on: reserving stock for a sale, counting what is available, warning you when it runs low, picking the oldest piece first, knowing whether a marketplace listing still has anything behind it. All of those work by counting pieces of an item, and counting only works when the pieces are the same.
So the question for any variation — a size, a colour, a shorter sleeve, a hole for a leash — is one sentence: would the next buyer of the plain one accept this instead? If not, it is a different item.
The return is the proof
Suppose the leash hole were not its own item, and instead a note on the sale: “add a leash hole to this one”. The sweater goes out. A month later it comes back. It is restocked as an olive size-L sweater, because that is what it is, and it sits beside four others.
The next order for an olive size-L sweater takes the oldest piece on the shelf. Nothing in the system knows one of the five has a hole in it. Someone who never asked for a leash hole receives one.
That is not a bug in how returns work. It is what happens when two things that are not interchangeable share one item. The only place the difference can live safely is on the item itself, which is why in Intakes a leash-hole sweater, a cuff-sleeve sweater and a short-body sweater are each their own item, with their own stock, their own cost and their own place in every report.
Where the variations live
Ninety items for one product sounds like a lot to manage. It is not, because Intakes never asks you to manage them one by one.
- Attributes are the ways a product can vary, in your own words and your own order: Colour, Size, Sleeve, Leash hole. Each has the values you use — XS to XL, Olive to Oatmeal, Full or Cuff, No or Yes.
- An item family is the product itself, and it declares which attributes its members vary along. Every member carries exactly one value on each of those, and no two members carry the same combination. That is what stops “Olive L Cuff” from being created twice under two spellings.
- Members are created from a grid, not typed in. Tick the values on each attribute and Intakes creates every combination, named from the family and its values in the order you chose: Dog Sweater Olive L Cuff. Add a new attribute to a family later and every existing member takes one value in a single click; the names catch up when you say so, never behind your back.
- Create the whole grid. Make every combination you sell, not just the ones you have made so far. A member that has not sold yet is simply an item with no stock, and it is the reason an order for it can land on the right thing on the day it arrives, with nobody creating an item at that moment. Which members never move is something the reports will then tell you, which they cannot if the members do not exist.
The family is also what lets the reports answer the questions a range raises. Sales by colour, margin by size, and a rollup of how the whole product did across its variants — with the ones that sold nothing listed as zeros, because “which sizes never move” is most of the point.
What is not a variant
The rule cuts the other way too, and it matters that it does.
- A one-off is not an item. A name embroidered on a sweater produces a piece that no other buyer will ever want. It does not need an item of its own: the piece carries a note saying what was done to it, the sale’s price carries the surcharge, and if it ever comes back it is written off rather than restocked. The test still decides it — nobody else would accept it — but the answer is “no item at all”, not “another item”.
- Something sold alongside is its own item, on the sale. A soft measuring tape offered with the sweater is not a version of the sweater. It is a second thing in the parcel, with its own stock and its own cost, and it goes on the sale as its own line.
- A service that leaves the good unchanged is just price. Gift wrapping, a rush fee: the sweater that comes back is the same sweater. Nothing about the item changes, so nothing in the catalog needs to.
Making the variants
If you make what you sell, a variant that differs by how it is made is exactly what a recipe describes, and a product may have more than one recipe because there is often more than one way to make it.
A leash-hole sweater can be sewn from scratch — fabric, thread, the grommet — or made from a finished plain sweater of the same colour and size plus the grommet alone. Both are recipes for the same output item. The second one consumes the plain sweater as a material, so its cost rolls forward: the leash-hole sweater carries the plain one’s cost plus the hole’s, exactly.
Recipes only go one way, and that is the model being honest. You can cut a full sleeve down to a cuff; you cannot put it back. There is a recipe from plain to leash-hole and none from leash-hole to plain, and the stock of each is counted separately because they are different things.
For a whole family the recipes are stated once, on a grid with one row per member: filter to olive and set the fabric, filter to size L and set the yardage, filter to Leash hole: Yes and add the grommet. Every row becomes that member’s own recipe.
A marketplace only has a few variation slots
Etsy allows a listing only a few variation properties, and most shops use two of them. A product that varies four ways does not fit, so sellers do what the marketplace lets them: Colour and Size become the listing’s variations, and the rest become options the buyer picks at checkout — Cuff sleeve? No / Yes — under Etsy’s personalization. That is a sensible listing. It is also a listing whose 35 variations stand for 140 things you actually sell.
Intakes reads the listing as the marketplace states it: its variations, and its options with each of their choices. You then say, once, what each of them means in your catalog:
- A variation is an item. “Olive / L” is Dog Sweater Olive L Full, the default the listing sells. One answer per variation, and a whole shop’s worth can be answered from one page.
- An option’s choice is an attribute value, or nothing. Cuff sleeve: Yes means Sleeve = Cuff. Leash hole: Yes means Leash hole = Yes. Soft measuring tape: Yes means nothing about the item, and you say so. Because the answer is a value on an attribute rather than a list of items, one answer covers all 35 variations and every other listing that asks the same question.
When an order arrives, the two work together. The variation names the member; the buyer’s choices move along the family’s other attributes; the line lands on Dog Sweater Olive L Cuff with nothing to decide, and the sale reserves that item’s stock — or, if you make to order, the work order it creates makes that item with that item’s recipe. Nobody opens the order to say which sweater it really is, and nobody creates an item on the day a buyer wanted one.
Answer the listing’s variations and options once, with the whole grid already created, and every order of that listing resolves itself from then on. If a choice ever points at a combination the family does not have, Intakes says which member is missing rather than guessing — but with the grid created up front, it will not.
Why not a simpler model?
Two alternatives come up, and both were rejected for the same reason.
A tag on the piece. Keep one item and mark the individual sweater “has a leash hole”. Then every place that counts pieces of an item would have to count pieces with this mark, which is what an item already is, and measured goods — fabric by the yard — have no individual pieces to mark at all. It is a second kind of item wearing a different name, and the mental load of variation at two levels is exactly what the one rule avoids.
A service on the sale. Keep one item and record “add a leash hole” on the order. That is the returned-sweater story above: the moment the piece comes back, the system has lost the fact that made it different.
So Intakes keeps one grain. A sale names items. A work order makes items. Stock is counted in items. What a marketplace calls a variation or an option is translated into your catalog’s attributes once, at the listing, and after that everything speaks the same language.
Variants, families and the matrix are on the product page. How a purchase’s price becomes each piece’s cost is the mixed-lot costing concept.