How to add a new color to a product you already carry
Max Pechonis · Founder, Rebridge ·
Add the colorway to the variant group you already have, as new children, rather than creating a separate product. Creating a new product for a color you already carry is the single largest source of duplicate SKUs, and it fragments every number you buy from.
Why this decision comes up constantly
It is not an edge case. It is the most frequent decision in receiving, and it recurs every time a vendor refreshes a range. A shop carrying forty styles, where each style picks up two new colorways a season across two seasons, faces roughly one hundred and sixty of these decisions a year. Each one takes a few seconds and each one is either right or permanent.
What makes it dangerous is that the wrong action is the default action. A document arrives describing something your catalog does not recognize, and the path of least resistance is to create it. Nothing warns you, nothing looks broken, and the purchase order totals reconcile perfectly against the invoice. The damage only becomes visible months later in a report that no longer describes reality.
The decision, in one question
Before creating anything, ask: do I already carry this style? Not this color, not this SKU, the style.
If yes, this is a new colorway on an existing variant group, and the correct action is to add children to that group. If no, and you have genuinely never stocked this style in any color, it is a new product.
That second case is far rarer than most receiving processes assume. A vendor changing their style-number format between seasons, or shipping a color code your catalog spells differently, both look like new products and are not. The question is about the style, and the style usually already exists.
Doing it in your POS
None of this is an apparel problem. A golf shop adding a new shaft flex, a firearms dealer adding a barrel length, an electrical wholesaler adding a cable gauge: identical decision, different attribute. The mechanics differ by system, the structure does not. In Lightspeed Retail you open the matrix and add the color to its attribute values, which generates a child item for each size in the run. In Shopify you add the option value to the product, which creates the corresponding variants. In Square you add a variation. Whatever the wording, you are extending an existing parent rather than creating a sibling to it.
Two things to get right while you are there. The color value must match the colorway the vendor actually sells, not a color word you invented: if they ship Black/White, the value is Black/White, not Black. And the new children need the same treatment as the existing ones, each with its own barcode, cost and price, so counting and reordering work per size.
Reading the document: telling before you create
The decision is easy once you know the style exists. The difficulty is that vendor documents are written in the vendor's vocabulary, and almost nothing on the page matches your catalog literally.
Three fields carry the answer, in descending order of reliability. The manufacturer SKU, if the vendor prints one and you stored it at creation, is exact: the same string on their document and in your catalog, so a lookup either finds the style or genuinely does not have it. The style number is next, but it usually encodes more than the style, commonly season and colorway, so it needs decomposing before it will match anything. A number reading like HYPRFRK-24-BLK is a style root, a season, and a color code travelling together, and only the first part identifies the style.
The product name is the least reliable and the most used, because it is the field people search. Vendors abbreviate differently from you, word order varies, and a name that includes the color will never match a catalog record that keeps color in an attribute.
The practical technique is to search the style root alone, not the full identifier. Strip the season and color segments and search what remains. If that returns a product, you are adding a colorway. If it returns nothing, widen once to a distinctive word from the product name before concluding the style is new, because a single naming inconsistency should not be enough to create a duplicate.
Two failure signals worth recognizing. If a manufacturer SKU lookup returns dozens of unrelated products, that field is holding a brand or category label rather than an identifier, and it cannot be trusted for this decision. And if the style root search returns two products that look like the same style, you have already accumulated a duplicate and are about to add a third: stop and reconcile the existing pair first, because adding to the wrong one compounds the problem rather than fixing it.
None of this requires tooling. It requires knowing that the question is about the style, and that the document is unlikely to state the style plainly.
When it genuinely is a new product
Three cases where creating is correct. A style you have never carried, in any color. A style whose attribute set is fundamentally different from the existing group, such as a version that varies on length where the original did not. And a product you deliberately want to report on separately, which is a merchandising decision rather than a data one and should be made knowingly.
Prior-season carryover sits on the boundary. The same style, same color, new style number, arriving a year later: one record or two is a judgement call about whether you need to compare seasons. Either answer can be right. What is never right is having it resolved by accident because the style number did not match.
What breaks when you get it wrong
Stock splits first. A style with six units on hand reads as four and two across two records, which is enough to trigger a reorder you do not need or suppress one you do.
Then reporting fragments. Sell-through is calculated per record, so a style selling well in one color and badly in another stops reading as one style with a color problem and starts reading as two unrelated products, one healthy and one weak. The insight that would have changed next season's buy simply is not visible.
Open-to-buy inherits the same distortion, because committed spend is attributed to a style that the system no longer believes is one style. And counting gets slower in a way nobody attributes to the catalog: staff meet two records for one shelf position and have to work out which is which.
Cleanup afterwards is disproportionately expensive. Creating the duplicate took one careless import; removing it means reconciling two stock counts, two sales histories, and any open purchase orders pointing at either record. That asymmetry is the whole argument for getting the decision right at receiving.
The two outcomes, side by side
Take a style you carry in two colors across four sizes, so eight children under one parent. A third color arrives in the same four sizes. Here is what each choice leaves behind.
| Create a new product | Add to the existing group | |
|---|---|---|
| Records for this style | 2 | 1 |
| Children | 8 + 4, unrelated | 12, one family |
| Stock for the style reads | Split across two records | One number |
| Sell-through compares | Nothing. Two products, separately | The new color against the two you had |
| Reorder decision made | Twice, from fragments | Once, from the style |
| Open-to-buy attributes spend to | Two styles that are one style | The style |
| Staff counting the shelf find | Two records, one shelf position | One record |
| Cost to reverse later | Reconcile two stock counts, two sales histories, any open POs | Nothing to reverse |
Only the last row is asymmetric, and it is the one that decides the argument. Every other difference is recoverable. That one is paid in reconciliation work months later, by whoever inherits the catalog.
Making it harder to get wrong
Three things reduce the error rate without changing anyone's habits. Keep the manufacturer SKU populated, because it is the one identifier that appears identically on the vendor's document and in your catalog, and matching on it is exact rather than fuzzy. Record colorways as the vendor sells them so their codes have somewhere to land. And hold one naming convention, so a search for the style finds it regardless of who typed it in.
A fourth helps more than it looks: write the color-code mappings down. Codes are stable within a vendor and arbitrary across them, so the knowledge that one brand's BWH means Black/White is worth recording once rather than rediscovering every season. A short per-vendor list turns the hardest part of the match into a lookup.
None of that removes the judgement. It just means the person receiving can see that the style already exists, which is the only information the decision actually requires. Most duplicates are not created by someone deciding wrongly; they are created by someone who had no way to see that there was a decision to make.
Worked example
A worked example: Black arrives for a style you carry in Blue and Green
You stock the O'Neill Hyperfreak boardshort in Blue and Green, sizes S through XL. That is one variant group with eight children: two colors times four sizes.
A vendor document arrives with four lines for the same style in Black, sizes S through XL. The style number reads differently from the one in your catalog because it encodes the season, and the color arrives as a code rather than a word.
The wrong action creates a new product called Hyperfreak Boardshort Black with four children. The catalog now holds two products for one style. Every report that follows treats them as unrelated.
The right action adds Black to the existing group's color attribute. The group becomes three colors times four sizes, twelve children, one product. Sell-through compares Black against Blue and Green directly, and next season's buy is made from one number instead of three.
The difference is four clicks. Multiplied across every colorway of every style across every season, it is the difference between a catalog that describes your business and one that describes your data-entry history.
The same thing, another trade
The same decision in a lighting catalog
You stock a pendant fitting in brushed nickel and matte black. The supplier ships the same fitting in bronze.
Nothing about the shape of this differs from the boardshort. Bronze is a new value on an attribute the family already varies on, so it belongs on the existing fitting. Create a separate product called Pendant Light Bronze and you have two records for one fitting, stock split across them, and a sell-through report that cannot tell you which finish moves.
The only thing that changed is the word. Apparel calls the attribute a colorway; lighting calls it a finish; firearms would call it a configuration. The decision, and the cost of getting it wrong, are the same in all three.
Questions
What if the vendor's color code does not match anything in my catalog?
Map it once and record the mapping. Codes are stable within a vendor and arbitrary across them, so a code like BWH meaning Black/White holds for that brand and should be resolved per vendor rather than globally.
The style number is different from last season. Is it a new product?
Check the UPC before deciding. Many vendors encode the season in the style number, so the same product can carry a different number each year and matching on the whole string fails. But a changed number is not evidence either way. Same UPC means the same product, and a second record would be a duplicate. A different UPC means a different product, and creating it is correct.
Can I merge two products later if I get this wrong?
Yes, but it means reconciling two stock counts and two sales histories, and any open purchase orders pointing at either record. It is considerably more work than getting it right at receiving.
Does the color belong in the product name or in an attribute?
The attribute. The parent name stays at style level, and the system composes the child name from the parent plus the attribute values. Putting the color in the parent name doubles it on every child, so a record reads Pendant Bronze Bronze, and it makes the parent describe one version of a family rather than the family.
The vendor sells Black/White as one colorway. Do I split it into Black and White?
No. The colorway is the unit the vendor sells and the unit you reorder, so it takes one attribute value: Black/White. Splitting it invents two things nobody ships, and neither of them can be ordered.
Do the new children need their own barcodes?
Yes. Each child is a separately countable, separately sellable thing, so it needs its own barcode, cost and price. A colorway added without barcodes on its children will scan at the till as the wrong size or not at all.
What if the new color arrives in sizes the group does not have yet?
Add the missing values to the size attribute, which extends the grid for the whole family. Existing colors simply have no children at the new sizes, which is correct: you do not stock them. Creating a second product to hold the new sizes splits the style for the same reason a new color would.
My POS caps me at two or three attributes and I need another. What now?
That cap is usually real and not configurable. Decide which distinctions are genuinely separate sellable things and which belong in the name. If a firearms model varies on caliber, barrel length and finish, and the system allows two, the least commercially meaningful one becomes part of the family name and you carry more families. It is a worse outcome than a third attribute and a better one than splitting the family across products.
A second vendor ships the same color under a different code. Do I add another value?
No, map the second code to the value you already have. Codes are per vendor and arbitrary across them, so two codes meaning the same colorway resolve to one attribute value. Adding a second value for the same color is a duplicate inside the group rather than across products, and it fragments sell-through the same way.
Does any of this apply if I do not sell clothing?
All of it. The decision is identical and only the attribute changes: a golf shop adding a shaft flex, a firearms dealer adding a barrel length, a lighting supplier adding a finish, an electrical wholesaler adding a cable gauge, a bike shop adding a frame size. In every case the arriving thing is a new value on an attribute the family already varies on, and creating a separate product for it splits the family.