Industries
Integrations for apparel and footwear: every size, color and width in stock and on sale
An apparel brand sells one style in hundreds of size, color and width combinations, from a DC, stores and wholesale accounts at once. The integration carries the style grid from the ERP to the store with the right options and barcodes, keeps stock per size and location current, and brings orders and returns back by UPC.
Where apparel integrations break
Four problems come back at almost every apparel and footwear brand:
- The size grid. A boot in 13 sizes, 3 widths and 4 colors is 13 x 3 x 4 = 156 SKUs for one style. Each system models that grid differently, and a connector that maps one ERP item to one store product loses the grid.
- Stock per size and location. 40 styles at 150 SKUs each is 6,000 SKUs. Across a DC and 14 stores that is 6,000 x 15 = 90,000 stock levels to keep current.
- Barcodes. GS1 US requires a separate GTIN for each distinct variation of an item, such as each size. The UPC on the label, in the ERP and in the store variant has to be the same 12-digit string.
- Returns and exchanges. A customer sends back a 9 and wants a 9.5. The return, the restock and the new order are three records in the ERP, at the location that received the box.
The flows that matter most
| Flow | Source | What moves | In depth |
|---|---|---|---|
| Styles and variants | ERP or PIM | style, options, variant SKU, UPC, images per color | variants |
| Stock | ERP, WMS or POS | available per size per location | multi-location inventory |
| Orders | store, POS, wholesale | sales order per channel, line per variant | orders |
| Returns | store or POS | return per line, restock location | order status mapping |
| Retailer EDI | department stores, marketplaces | 850 by UPC in; 856 and 810 out; 852 sales by store | EDI integration |
From style grid to store product
NetSuite models a style as a matrix item: a parent with child items for each combination of matrix options, up to 2,000 combinations per matrix. Each child carries its own itemid and upccode. Shopify allows three options per product and 2,048 variants. A boot with size, width and color fits: 156 variants on three options. Jeans with fit, wash, waist and inseam do not: 2 x 6 x 10 x 5 = 600 combinations on four options. The integration splits the style into one product per fit, 300 variants each, and keeps the link between the NetSuite children and the Shopify variants by UPC and SKU.
Business Central has no option matrix; Microsoft's documentation says so in as many words. An item has variants, each identified by one variant code, so size and color are combined in that code, for example BLK-095, and the integration splits it into Shopify's Color and Size options from a table per code.
Stock per size and location
The 90,000 stock levels from the example above are written to Shopify with inventorySetQuantities, 250 quantities per call: 90,000 / 250 = 360 calls for a full run. After that only changed levels move, which on a normal day is a few hundred. A size that sells through in a store but is still in the DC shows as available online when the DC is a Shopify location that may ship web orders. Which locations count is set per location, as described in which stock counts.
Returns and exchanges
In NetSuite a return is three records: a return authorization (returnauthorization) against the original sales order, an item receipt (itemreceipt) when the box arrives at a location, and a credit memo (creditmemo) or cash refund (cashrefund) for the money. An exchange of a 9 for a 9.5 adds a new sales order for the 9.5. The integration creates them in that order and puts the 9 back in stock only at the location that received it, after receipt, so a return still in transit is never sold twice.
Systems apparel brands run
| System | How it models the grid | What to watch |
|---|---|---|
| NetSuite | matrix item, parent and children | at most 2,000 option combinations per matrix; concurrency 5, 15 or 20 by service tier |
| Business Central | item plus one variant code | no option matrix; size and color split from the code |
| Cin7 Core | product family with Option1Name to Option3Name |
60 API calls a minute, then 429; product SKU up to 50 characters |
On the store side, Shopify runs both the online store and POS: each store is a location, 10 on Basic to Advanced and 200 on Plus. Wholesale to boutiques often goes through Faire, which takes stock per SKU as on hand minus committed and a case pack in unit_multiplier. A prepack of 6 with a minimum of 12 is 12 / 6 = 2 packs per line.
Standards apparel brands meet
| Standard | What it is for | What it means for the integration |
|---|---|---|
| GTIN-12 (U.P.C.) | one per size and color | stored as text, 12 digits, copied to the variant barcode |
| X12 850 and 856 | purchase order and ship notice by UPC | order lines matched on UPC; cartons with SSCC labels; see 856 |
| X12 852 | sales and stock per store and UPC from the retailer | read into the ERP for replenishment; see 852 |
| X12 846 | inventory advice to a retailer or marketplace | available per UPC; see 846 |
Retail EDI works by UPC: the 850 orders a UPC, the 856 reports carton contents by UPC, and the 852 reports what sold where. The integration checks every UPC on an incoming 850 against the ERP before the order is created and puts unknown ones on a review list.
What this means for your integration
We build the integration on your ERP, your store and your channels, with your rules for splitting styles, naming options and choosing which locations sell online. Each piece of data has one system that owns it. Then we host and monitor it: every run has a log and a diff, and an order or return the ERP rejects stays in the queue with the reason until it is resolved.
All flows are on integrations, the other industries on industries. Tell us which ERP and store you run, and you hear which of these flows saves you the most work.
Frequently asked questions
Can one style with four options be one Shopify product?
No. Shopify allows three options per product and up to 2,048 variants. A style with fit, wash, waist and inseam is split into one product per value of one option, usually fit or color, and the products are linked in the theme. The integration applies that split as a rule per style group, so a new style follows it without manual work.
How do UPCs stay correct between the ERP, the store and retailers?
The UPC is stored once per size and color in the ERP and copied as text to the Shopify variant barcode, so leading zeros survive. Retailer purchase orders and ship notices identify lines by UPC, which is why a UPC that differs between systems shows up as an EDI error before it shows up in the store. See SKU, UPC and GTIN.
Our stores run Shopify POS. Does stock per store sync with the ERP?
Yes. Each store is a Shopify location, and the integration maps it to the matching ERP location. Shopify has 10 locations on Basic, Grow and Advanced and 200 on Plus, so a brand with 14 stores and a DC needs Plus or a choice of which locations Shopify sees.
What happens with exchanges and returns?
A return comes back as a return on the original order with the size or color that went back. The integration creates the return authorization or credit memo in the ERP against the original sales order, and stock goes back only at the location that received it, once it is received.
Can wholesale accounts order at different prices from the same catalog?
Yes. Wholesale accounts get their own price lists and minimums from the ERP, either in Shopify B2B or through a marketplace such as Faire, where a case pack is set as unit_multiplier. See distribution and wholesale for terms and tax exemptions.
Tell us what you need
Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.
- You know the price and the timeline before you commit to anything
- We work out the connection that takes the work off your hands
- We handle the build, hosting, monitoring and maintenance
- Your team has less information to retype and fewer discrepancies to chase