- One polo order, and where each step can live in NetSuite
- The same order as CMT and as full package
- Output of the merchandising workshop
- Five fit-gap rows, scored for the polo factory
- Bill of materials for one style: men's piqué polo, style P-2041
- Item record types, units and tracking for the polo
- Where the 2,000-combination ceiling bites: a jean range
- The polo sales order entered through a grid
- Four rolls of the same "180 GSM" jersey
- Cutting 3,000 navy polos from three dye lots
- Why one average consumption fails, and the BOMs it takes
- A BOM revision around the PP approval
- The polo order as 150 ratio packs of 20
- The polo's routing, minutes and line capacity
- The polo order's approval calendar, worked back from ex-factory
- 2,000 printed T-shirts through two outside processors
- A quotation cost build for the polo (illustrative figures, USD per piece)
- Choosing the costing method per item class, once
- Landed cost on the imported fabric: one method against per-line allocation
- The final inspection sample for 3,000 polos, and why one NetSuite template is not enough
- Packing 3,000 polos into cartons, one dye lot per carton
- Customer deposit, letter of credit and exchange difference
- A chargeback on an open-account shipment
- Migration template rows for the open polo order
- Test script: the polo order from sales order to cash
- Test script: shade split at cutting
- A training plan by role
- A cut-over plan, day by day
- A concurrency budget for a brand-and-factory account
- One purchase request, from MerchandiserOS to NetSuite and back
- The polo order from the brand's side, with the buying agent's commission
- The polo order with operations on top
Part 1Before you start
1Who NetSuite fits
Oracle NetSuite fits apparel brands, wholesalers and multi-company groups best, and fits garment manufacturers when the factory accepts that cutting, sewing and floor control need extra SuiteApps, partner products or a separate operations system. It is a cloud ERP sold as a subscription, with strong order-to-cash, procure-to-pay, multi-location stock and multi-subsidiary accounting through OneWorld.
For apparel, NetSuite's natural model is the matrix item: a parent item for the style and a child item for each option combination, such as navy in size L. Oracle adds a Grid Order Management SuiteApp for grid entry on orders, and a SuiteSuccess edition for Apparel, Footwear and Accessories that preconfigures an account for the industry. Manufacturing depth comes from assembly items, work orders, Advanced Bill of Materials, Manufacturing WIP and Routing, the Advanced Manufacturing SuiteApp and Outsourced Manufacturing.
Signs NetSuite is a good choice
NetSuite tends to work when the business values one cloud ledger across companies and channels more than deep factory control.
- The group has several legal entities, currencies or countries, for example a brand in Europe with a sourcing office and a factory in another country. OneWorld is built for that.
- A large share of revenue is wholesale, e-commerce or retail, where NetSuite's order management, commerce connectors and multi-location stock carry weight.
- The factory accepts a SaaS model: no server of its own, upgrades on Oracle's release calendar, and customisation through SuiteCloud rather than changes to core code.
- An implementation partner with manufacturing and apparel experience is available, or the factory will run production in a separate system and keep NetSuite for finance, purchasing and stock.
Signs to slow down
Slow down when the expectations placed on NetSuite belong to a planning, floor or development system.
- The factory expects NetSuite to plan sewing lines, balance operations and track bundles. Work orders and routings do not do that (section 16).
- The style range is wide enough that one style's colour, size and length combinations approach 2,000 (section 11).
- Knit fabric is bought by weight and cut by length, and nobody has decided how kilograms become metres per roll (section 12).
- An existing integration uses SOAP or token-based authentication and nobody has planned the move before the 2027.1 and 2028.2 deadlines (section 34).
- The go-live date falls inside peak season.
2Why no ERP fits apparel on its own
No general ERP fits apparel out of the box, because an ERP is built around a known item with one bill of materials, while a garment order starts as a style that is quoted, sampled and approved before any item exists. This is not a NetSuite weakness. NetSuite even ships an apparel edition and a grid SuiteApp, and the matrix still arrives after the costing, the lab dips and the fit samples are done. SAP, Dynamics 365, Odoo and every general ERP meet the same wall. Brands, buying agents and own-label retailers meet it too: their development, sampling and follow-up across factories happen before and around the transactions the ERP records (section 35).
An ERP is built around the transaction: a known item, a fixed bill of materials, a price, a receipt, an invoice. It is right to be strict about that, because strictness keeps the books correct. A garment order does not start there.
Forcing an ERP to do all of this means heavy customisation in the one system that most needs to stay standard. In NetSuite that customisation is SuiteScript and custom records, which run under governance limits and must be retested at every twice-yearly release. The ledger fills with data finance never reads, and the merchandisers keep their spreadsheets anyway. The durable answer is to give the ERP the books and give the operations to a system built for them. Section 3 summarises that model and section 36 shows it in full.
One polo order, and where each step can live in NetSuite
A buyer sends a tech pack for 3,000 men's piqué polos in navy, style P-2041, five sizes, ex-factory 15 December. Follow the order and ask, at each step, whether NetSuite has a natural record for it.
| Step | What happens | Natural record in NetSuite? |
|---|---|---|
| Tech pack arrives | Measurements by size, construction, artwork, trims list | No. There is no item yet |
| Costing and quote | Fabric use from a marker, CM from operation minutes, quote at USD 4.26 FOB | No. A NetSuite estimate prices items that already exist |
| Lab dips, strike-off, fit sample | Three lab dip rounds before navy is approved | No. These are approvals of the product |
| Order confirmed | Size breakdown 300 / 750 / 900 / 750 / 300 | Yes: a sales order on matrix children, entered through a grid |
| Fabric and trims bought | 925 kg of jersey, rib, buttons, labels, polybags | Yes: purchase orders |
| Fabric received | Three dye lots, rolls of different width and weight | Partly. Lot-numbered items yes, measured GSM and width per roll only as custom fields |
| PP sample, cutting, sewing | Cut by dye lot, 18 minutes per polo, output by line by hour | Partly. The work order and routing yes, the line and the bundle no |
| Embroidery at a subcontractor | Panels out, 1% loss, panels back | Yes, with Outsourced Manufacturing, as an outsourced assembly |
| Final AQL inspection | General level II, AQL 2.5, sample of 125 pieces | Partly. The Quality Management SuiteApp samples by number or percentage, not by ISO tables |
| Shipping and invoice | Cartons, packing list, commercial invoice | Yes: item fulfilment and invoice |
Four steps have a natural home, four are partial, and two have none. The two with none, plus the partial ones, are where the order is actually won or lost.
3The recommended architecture, in short
Before discovery starts, agree which system owns which part of the business. Our recommendation is a split along the line in Example 1: NetSuite keeps the books, and an operations system built for apparel runs everything from the style to the shipment.
| Area | Owned by | Why there |
|---|---|---|
| Style, tech pack, samples and approvals, quotation costing | Operations layer | This work happens before a NetSuite item exists, and it changes daily |
| Buyer orders, procurement planning, production planning, shop floor, quality, logistics | Operations layer | It needs sizes, dye lots, minutes, inspections and dates in one place |
| Shop-floor capture | The operations layer's floor screens, or a floor system such as Garment.io connected to it | Operators need a simple screen, not an office form |
| Accounts, payables and receivables, invoicing, payments, stock value, tax and e-invoicing | NetSuite | This is the legal and financial record, and NetSuite does it well as standard, across subsidiaries and currencies |
With this split, the NetSuite project stays close to standard: fewer SuiteScripts, fewer custom records, a smaller call on the account's API concurrency and a cleaner path through each release. The rest of this guide still explains how to bend NetSuite toward garment production, because some factories choose to, and because a consultant needs to know what each choice costs. Where an area moves out of NetSuite under the recommended model, the section ends with a short note. Section 35 describes the model in full, department by department.
4Business types, and what each needs from NetSuite
"Apparel business" covers very different companies, and the business type decides which parts of NetSuite carry weight. Settle it in the first discovery meeting, because one group often runs two types at once, for example a brand subsidiary that buys finished goods and a factory subsidiary that sews them.
| Type | What it does | What it needs from NetSuite | Where it struggles |
|---|---|---|---|
| CMT (cut, make, trim) | Sews buyer-supplied fabric and often trims; sells labour | Buyer-owned stock kept out of stock value, material reconciliation per order, service invoicing, labour costing from minutes | NetSuite has no consigned-inventory record for customer-owned goods in the standard flow we checked; design it (a non-valued location or tracking outside NetSuite) |
| Full-package (FOB) factory | Buys all materials, makes, ships; sells the garment | Matrix items, assemblies with size-graded BOMs, purchasing, lot-numbered fabric, landed cost, outsourcing, customer deposits and LC-backed sales, currencies | The largest scope and the most extension work; the riskiest type to implement |
| Textile mill (knitting, weaving, dyeing) | Turns yarn into fabric | Process manufacturing: yarn count and blend, dye recipes, batch genealogy, weight units, lab dips, GSM and width per batch, by-products | Recipe and batch logic goes beyond an assembly BOM; check a process-manufacturing SuiteApp or partner product |
| Hosiery and knit-to-shape | Knits socks, tights or sweaters directly from yarn | Yarn BOM by weight, singles to pairs to packs, pairing, toe closing and boarding as routing steps, few broad sizes | The unit design (singles, pairs, packs) is the main trap |
| Brand or wholesaler | Designs and sells; factories make for it | Matrix items, vendor purchase orders, landed cost, wholesale and DTC sales, multi-location stock, EDI with retailers | This is NetSuite's strongest apparel fit; development and supplier follow-up still sit in PLM or an operations tool |
| Buying agent | Places and follows orders across factories for buyers; earns commission | Light accounting and commission invoicing; little or no stock | The real work (T&A, samples, inspections, documents) is not transactional |
| Own-label retailer | A retailer that develops its own label and places it with factories or agents | Vendor purchase orders on matrix items, landed cost, multi-location stock; the retail side often in NetSuite's commerce and store features or another retail system | Development, sampling and factory follow-up sit outside the ERP; store operations are a separate project |
The list above is general implementation practice. Treat it as a starting point for the discovery questions in section 6, not as a scope. Brands, buying agents and own-label retailers that make nothing themselves have their own Part in this guide (section 35). A group that runs a brand and a factory as separate subsidiaries in OneWorld can give each subsidiary its own flows while sharing items and suppliers; decide that structure early, because the subsidiary hierarchy and each subsidiary's base currency are hard to change later (section 8).
The same order as CMT and as full package
Suppose the buyer offers the polo order two ways. As full package, the factory buys everything and sells at USD 4.26 FOB. As CMT, the buyer ships the fabric (the same three dye lots, 2,880 m in total) and the factory charges for making only, at an illustrative USD 1.60 a piece.
| Question | Full package | CMT |
|---|---|---|
| Who buys the fabric | The factory, on a NetSuite purchase order | The buyer; no purchase order in NetSuite |
| How the fabric enters NetSuite | An item receipt that raises stock value; the vendor bill raises the payable | A receipt into a location or item kept out of stock value, or tracked outside NetSuite; design this explicitly with finance |
| Items on the sales order | Matrix children of the polo, at 4.26 | A service item for making, per size or per piece |
| Invoice to the buyer | 3,000 × 4.26 = USD 12,780.00 | 3,000 × 1.60 = USD 4,800.00 |
| Material reconciliation | Internal: fabric issued against the work orders | External: 2,880 m received, 2,856 m used, 24 m returned to the buyer or accounted for |
| Main risk | Under-buying fabric (Example 11) | Being charged for fabric the factory cannot account for |
The 2,856 m used and the 24 m left come from the cut plan in Example 10. In CMT, that plan is the evidence the factory shows the buyer, so it must be recorded per dye lot, not as one total.
Part 2Discovery
5Who should be on a NetSuite apparel project team?
A NetSuite apparel project needs one decision owner for every design question, and most of those owners sit in the business, not in IT. The partner configures, scripts and integrates; the factory or brand decides how styles, units, lots, costs and inspections work.
The table lists the roles we see on projects that go well. One person can hold several roles in a small company. What matters is that every question in the fit-gap has a named person who can say yes.
| Role | Usually | Decides |
|---|---|---|
| Sponsor | Owner or managing director | Scope, budget, go-live window, what stays outside NetSuite, the subsidiary structure, disputes between departments |
| Project lead | A senior manager with time freed for the project | Day-to-day priorities, test sign-off, readiness for cut-over |
| Merchandising head | Head of merchandising | Matrix design, size scales, season rules, order entry, T&A ownership |
| Development and sampling lead | Sampling room head or technical manager | Sample types, approval rounds, where tech packs and revisions live |
| Production manager | Factory or production manager | Work order level, WIP or not, routings, outsourced steps, floor capture |
| Industrial engineer | IE manager | Operation minutes (SMV), line capacity, the rates in cost templates |
| CAD and marker lead | CAD room head | Consumption per size, marker efficiency, cutting loss, BOM quantities |
| Stores head | Fabric and trims store manager | Unit types, lot and bin rules, locations, what is recorded at receipt |
| Quality manager | QA manager | Inspection types, sampling plans, who may override a failed inspection |
| Shipping and commercial lead | Shipping or commercial manager | Packing rules, carton labels, export documents, LC document requirements |
| Finance head | CFO or chief accountant | Subsidiaries, base currencies, chart of accounts and segments, costing method per item class, landed cost, deposits, chargebacks, tax |
| NetSuite administrator | In-house | Roles and permissions, feature switches, sandbox refreshes, release testing, integration records |
| Key users | One or two per department | Test scripts, training of colleagues, first-line support after go-live |
| Partner functional consultant | NetSuite partner | How a decision is configured; which SuiteApp or script it needs |
| Partner developer | NetSuite partner or in-house | SuiteScript, SuiteFlow, SDF projects, integrations, CSV import templates |
Rules that keep decisions moving
Most delays in apparel projects come from decisions nobody owns. Five rules prevent them.
- One owner per decision. "Merchandising and finance will agree" produces no decision. Write one name against each fit-gap line.
- Decide in writing. Keep a decision log with the date, the owner, the option chosen and the options rejected.
- The sponsor settles scope, not configuration. The sponsor decides whether T&A lives in NetSuite or elsewhere. The merchandising head decides how it works.
- Name an in-house administrator from day one. NetSuite is SaaS, so the release calendar is Oracle's. Someone inside the business must own sandbox testing of each release after the partner leaves.
- Key users are released from part of their day. A key user who is also running peak-season orders will not test properly.
6What should discovery workshops for a NetSuite apparel project cover?
Discovery for an apparel NetSuite project is one workshop per department, each walking a real, recent order from start to finish and asking where the data comes from, who changes it and what goes wrong. Use the business's own orders, not a demo account. The polo order in this guide is the kind of order to bring.
Each workshop produces three things: the current flow as it really runs (including the spreadsheets), a list of findings mapped to the fit-gap lines in section 7, and a list of decisions with an owner. The question lists below are a starting set; add the business's own, and add the NetSuite-specific questions at the end of each list.
Merchandising
Merchandising questions establish how orders arrive, change and are tracked.
- How does an order arrive: buyer PO by email, portal, EDI? What fields does it carry, and how often is it amended after confirmation?
- How are sizes and colours broken down, and do buyers order in ratio packs?
- What quantity tolerance do buyers allow, and how is a short or over shipment agreed?
- Is one buyer order split into several deliveries, each with its own date and destination?
- Where is the T&A calendar kept, who updates it, and who looks at it each morning?
- NetSuite: how many colours, sizes and lengths does the widest style carry, and how many new colours arrive mid-season? This sizes the matrix against the 2,000 ceiling.
Development and sampling
Development questions establish what happens before an order exists.
- Which sample types does each buyer require, and in what order?
- How are sample rounds recorded: sent date, courier, comments, verdict?
- Where do tech packs live, and how is a revision after PP approval handled?
- Who prepares the quotation cost, from what inputs, and how many versions does a quote go through?
Purchasing and stores
Stores questions establish units, lots and what is measured at receipt.
- In which unit is each material bought, stocked and issued? Which suppliers invoice in a different unit from the one they deliver in?
- What is checked at receipt: weight, width, GSM, shade, shrinkage, four-point inspection? Who records it and where?
- How are dye lots and rolls labelled, and can the store find every roll of one lot today?
- Which materials are nominated or supplied by the buyer?
- NetSuite: will bins be used (Advanced Bin / Numbered Inventory Management), and is a roll a lot, a bin or a custom record?
Cutting, production and subcontracting
Production questions establish the level of control and how output is counted.
- At what level is production controlled: per order, per style-colour, per delivery, per cut?
- How is the cut plan made per dye lot, and who checks that lots are not mixed?
- How is output counted today: per line per hour, per operator, at end of line?
- Which processes go outside (print, embroidery, wash, CMT) and how are pieces counted out and back?
- NetSuite: should materials sit in a WIP account between issue and completion (Manufacturing WIP), or is a one-step assembly build enough?
Industrial engineering and planning
IE questions establish where minutes and capacity come from.
- Are operation minutes (SMV) studied per style, taken from a library, or estimated?
- How is line capacity planned across the season, including subcontractors?
- What efficiency figure is used for planning, and how is actual efficiency measured?
Quality
Quality questions establish inspections, buyer standards and who may release a failed lot.
- Which inspections run: incoming fabric, cutting, inline, end of line, pre-final, final, measurement?
- Which buyers set their own AQL levels, and where are their quality manuals kept?
- Who may release a lot that failed inspection, and is that decision logged?
- Which lab tests and certificates are required per order?
Shipping
Shipping questions establish packing rules and documents per buyer.
- How are cartons packed: solid size, assorted, ratio? What carton labels does each buyer require?
- Which export documents are prepared per shipment, and who checks them against the letter of credit?
- Does any buyer require an advance shipping notice by EDI?
Finance
Finance questions establish entities, currencies, payment terms, import costing and tax.
- How many legal entities are there, in which countries and base currencies? Which trade with each other?
- Which currencies are used for sales, purchases and wages? How are exchange differences booked today?
- How are buyers paid: letter of credit, advance, open account? Which buyers deduct chargebacks?
- How is imported material costed: are freight, duty and clearing added to the material cost, and by weight, quantity or value?
- Which costing method does each class of item need: standard for finished garments, average or lot costing for fabric?
- Is the factory in a free zone or under a temporary-admission regime, and what reports does that require? Which e-invoicing rules apply?
Output of the merchandising workshop
The team walked the polo order from the buyer's PO to the booking of the shipment. The findings sheet looked like this.
| # | Finding | Fit-gap line | Decision needed | Owner |
|---|---|---|---|---|
| M1 | The buyer PO arrives as a PDF; sizes are keyed by hand into a spreadsheet, then again into the costing sheet | 41 | Where the order is entered once, and whether grid entry is needed in NetSuite | Merchandising head |
| M2 | The buyer allows ±3% quantity; nobody records it, so shipping asks each time | 43 | Where the tolerance is held and who checks it before fulfilment | Merchandising head |
| M3 | Three lab dip rounds were tracked in one merchandiser's email | 10 | Where approval rounds are recorded | Development lead |
| M4 | The spec changed after the fit sample; production cut from the earlier sheet on a previous order | 8 | How the approved spec version is fixed for an order | Development lead |
| M5 | Fabric was ordered on the base-size consumption on a previous order and ran short | 12 | Where size-dependent consumption is calculated | CAD lead |
| M6 | The widest knit style runs 40 colours in 8 sizes and 2 lengths, and grows mid-season | 1 | Matrix design: which options sit on the matrix, and how a style splits before it reaches 2,000 | Merchandising head |
| M7 | The T&A lives in a shared spreadsheet with no dependencies | 36 | Where T&A lives: in NetSuite with custom records, or in an operations system | Sponsor |
Four of the seven findings (M3, M4, M5, M7) sit on fit-gap lines where NetSuite has no standard answer. That is the moment to decide the architecture question in section 3, before anyone designs a custom record. M6 is arithmetic: 40 × 8 × 2 = 640 combinations today, comfortably under 2,000, but the same style with 5 lengths would reach 1,600.
7The apparel fit-gap checklist for NetSuite: 52 lines
A fit-gap checklist lists every requirement an apparel business has and records, line by line, whether NetSuite meets it as standard, meets it with configuration or a SuiteApp, needs custom build, or is better handled outside NetSuite. The 52 lines below cover product, BOM and costing, materials, production, quality, sales and shipping, and finance.
The answers are our assessment of NetSuite, as documented in Oracle's online help in September 2026, for a typical full-package garment factory. "Configure" includes Oracle SuiteApps such as Grid Order Management, Advanced Manufacturing and Quality Management, which are separate installs and in some cases separately licensed; check each with Oracle or your partner. Confirm every line against your account before you sign a scope.
Key: Standard works with NetSuite features switched on · Configure settings, custom fields, saved searches or an Oracle SuiteApp · Custom build SuiteScript, custom records or a partner product · Operations layer better run in an apparel operations system and passed to NetSuite
| # | Requirement | NetSuite answer | Notes |
|---|---|---|---|
| Product | |||
| 1 | Style master with a colour-size variant matrix | Standard | Matrix items: a parent and a child per combination; at most 2,000 combinations (section 11) |
| 2 | Size scales per product category | Configure | One matrix option (custom list) per size scale, assigned per parent |
| 3 | Season or collection, and style reuse across seasons | Configure | A custom item field or custom segment; rules for reusing a style number with a new cost need design |
| 4 | Carry-over styles with a new price or BOM | Configure | Advanced BOM revisions with effective dates (section 14) |
| 5 | Prepacks and ratio packs | Configure | Item group, kit or assembly, chosen by how the pack is sold and stocked (section 15) |
| 6 | Pairs and multi-packs (hosiery, gloves) | Configure | A pair unit in a unit type, kits or assemblies for multi-packs; pairing as a routing step |
| 7 | Buyer's own style and colour codes | Configure | Custom item fields, or customer part numbers on the item |
| 8 | Tech-pack revision linked to the order | Operations layer | BOM revisions version the materials, not the tech pack |
| 9 | Points of measure with tolerance per size | Operations layer | No native measurement-spec record |
| 10 | Sample types and rounds with buyer approval | Operations layer | No native record; custom records or outside (section 17) |
| BOM and costing | |||
| 11 | BOM lines that apply by colour or size | Configure | One BOM per child assembly or per group of children; Advanced BOM lets one BOM serve several assemblies |
| 12 | Size-graded fabric consumption | Custom build | Generate a BOM per size from a consumption table by script or CSV; or calculate outside |
| 13 | Wastage and shrinkage held separately | Configure | Component yield on the BOM revision covers one loss factor; a second needs custom fields |
| 14 | Trims that change by colourway | Configure | Different components on the BOMs of each colour's children |
| 15 | Pre-costing with many elements and currencies | Operations layer | Happens before the item exists |
| 16 | Standard against actual cost per order | Configure | Standard costing and variances are native; quote-against-actual by order needs reporting or an operations system |
| 17 | Labour cost from operation minutes | Configure | Routing steps with times and cost templates (Manufacturing Routing) |
| 18 | Landed cost on receipts | Standard | By weight, quantity or value on item receipts or vendor bills; per-line allocation as a preference |
| 19 | Quote versions and approval | Operations layer | NetSuite estimates price existing items; the cost build comes first |
| Materials | |||
| 20 | Purchase, stock and issue units with per-lot conversion | Custom build | Unit types convert at fixed rates; a per-roll kg-to-metre factor needs script (section 12) |
| 21 | GSM and width per lot or roll | Configure | Item number fields on the lot number record |
| 22 | Roll tracking | Configure | A lot per roll, or a bin per roll with Advanced Bin / Numbered Inventory Management; a design choice |
| 23 | Dye lot and shade | Configure | Lot-numbered item with the lot as the dye lot; shade group as an item number field |
| 24 | Four-point fabric inspection | Configure | An inspection in the Quality Management SuiteApp with data fields; defect points per roll need design |
| 25 | Quality hold and quarantine | Configure | A quarantine location or bin, or inventory status; check your features |
| 26 | Buyer-supplied (consigned) stock | Custom build | Needs a deliberate design so it stays out of stock value |
| 27 | Reserved against free stock | Standard | Committed against available quantities on orders and work orders |
| 28 | Leftovers and stock-lot disposal | Configure | A leftover location and item class, sold on a normal sales flow |
| Production | |||
| 29 | Work orders per style-colour or delivery | Configure | Work orders per child assembly; grouping by delivery is a design choice |
| 30 | Cut orders, lay plans, marker efficiency | Custom build | A CAD system plus a partner product or custom records |
| 31 | Bundles and bundle tickets | Custom build | A shop-floor system or partner product |
| 32 | WIP by stage and line | Operations layer | Operation tasks show routing progress, not the line or the bundle |
| 33 | Graded output (first quality, seconds, rejects) | Operations layer | Produced is not the same as shippable |
| 34 | Subcontract out and back with loss | Standard | Outsourced Manufacturing, including moves between subcontractors (section 18) |
| 35 | Capacity by line from minutes | Operations layer | Advanced Manufacturing compares capacity with demand by resource; seasonal line loading across lines and subcontractors does not come with it |
| 36 | T&A with a critical path | Operations layer | No native T&A record |
| Quality | |||
| 37 | Inline and end-of-line capture | Configure | Quality Management SuiteApp inspections; operator-level capture is limited |
| 38 | Final AQL to ISO 2859-1 at the buyer's level | Custom build | The statistical sampling workflow uses a fixed number or percentage, not ISO tables (section 20) |
| 39 | Logged override of a failed inspection | Custom build | Design who may release and how it is recorded |
| 40 | Lab tests and certificates per order | Configure | File attachments on the order or a custom record |
| Sales and shipping | |||
| 41 | Grid order entry by colour and size | Configure | Grid Order Management SuiteApp on sales, purchase and transfer orders and quotes, with limits (section 11) |
| 42 | Several deliveries per order | Configure | Separate lines or orders per drop; decide before migration |
| 43 | Over and under-shipment tolerance | Custom build | A field and a check before fulfilment, by script or workflow |
| 44 | Carton packing and labels (SSCC) | Configure | Pack and ship features and printing templates; buyer label formats and SSCC numbers are custom or a partner product |
| 45 | EDI 850, 855, 856, 810 | Custom build | An EDI provider or connector |
| 46 | Buyer label and ASN rules | Custom build | Per buyer |
| Finance | |||
| 47 | Multi-currency and exchange differences | Standard | Multiple currencies, and OneWorld for several subsidiaries |
| 48 | Letter of credit terms and document checking | Custom build | We found no LC record in NetSuite's help; a custom record |
| 49 | Advances and down payments | Standard | Customer deposits against sales orders, applied to the invoice |
| 50 | Reason-coded chargebacks | Configure | Credit memos or write-offs with a custom reason list |
| 51 | Profitability per order | Configure | Classes, departments or custom segments, plus saved searches; design with finance |
| 52 | E-invoicing per country | Configure | The Electronic Invoicing SuiteApp is a framework; country formats come from localisation SuiteApps or templates (section 23) |
Counted from this table, 6 of the 52 lines are standard, 26 need configuration or an Oracle SuiteApp, 11 need custom build and 9 are better run outside NetSuite. That count is our assessment for a typical full-package factory, not a survey. A brand buying finished goods drops most of the production lines and scores far better; a CMT factory drops most of the costing and material lines; a mill adds process lines this list does not cover.
Five fit-gap rows, scored for the polo factory
A fit-gap row is only useful with evidence, a decision and an owner. These five rows come from the workshops in Example 3.
| # | Requirement | Evidence from the factory | Decision | Owner |
|---|---|---|---|---|
| 1 | Style matrix | The widest style has 640 combinations and grows mid-season | Matrix items with colour and size as options; length kept as a separate parent when it would push a style past 2,000 | Merchandising head |
| 12 | Size-graded consumption | Fabric under-bought on the base size (Example 11) | Consumption per size calculated outside NetSuite; purchase quantity passed in | CAD lead |
| 23 | Dye lot and shade | Shade complaint on a previous order | Fabric as lot-numbered items, the lot as the dye lot, shade group as an item number field | Stores head |
| 38 | Final AQL | Buyer manual requires general level II, AQL 2.5 major | Inspection run outside NetSuite; pass or fail gates the fulfilment | QA manager |
| 49 | Down payments | Buyer pays 30% in advance on this programme | Standard customer deposit on the sales order | Finance head |
8NetSuite editions, SuiteApps, OneWorld and service tiers for apparel
A NetSuite apparel project chooses four things beyond the base licence: whether to start from the SuiteSuccess Apparel, Footwear and Accessories edition, whether OneWorld is needed for several subsidiaries, which Oracle SuiteApps the fit-gap calls for, and which service tier the account runs on, because the tier sets the API concurrency every integration shares. Oracle does not publish NetSuite list prices, so every cost line below is a question for Oracle or the partner.
What is the NetSuite Apparel, Footwear and Accessories edition?
The Apparel, Footwear and Accessories (AFA) edition is one of NetSuite's SuiteSuccess editions: a NetSuite account configured for the industry, with predefined roles, dashboards, KPI scorecards, reports, saved searches, forms and preferences, and business processes delivered through SuiteApps. Oracle's help lists it as one of eight SuiteSuccess industries. It is a starting configuration of NetSuite, not a separate product, and it is often called SuiteSuccess Apparel. It is not the same thing as SAP's older AFS add-on, which is an unrelated SAP product.
We could not read Oracle's AFA brochure (the file refused access when checked), so we do not list what the edition contains beyond Oracle's general SuiteSuccess description. Ask Oracle for the current AFA scope in writing and map it against the 52 lines in section 7. In our experience the gaps in the operations-layer column remain open in any edition, because they are about the product before the item exists.
Which SuiteApps and features does an apparel project usually switch on?
A garment manufacturer running production in NetSuite usually needs the items, assembly and work-order features plus several Oracle SuiteApps; a brand needs fewer.
| Feature or SuiteApp | What it adds | Brand | Factory |
|---|---|---|---|
| Matrix items | Parent style with a child item per option combination | Yes | Yes |
| Grid Order Management SuiteApp | Grid entry on sales, purchase and transfer orders, quotes and inventory adjustments | Yes | Yes |
| Multiple Units of Measure | Unit types with purchase, stock, sale and consumption units | Sometimes | Yes |
| Lot Numbered Inventory; Advanced Bin / Numbered Inventory Management | Dye lots with their own cost; rolls in bins | Rarely | Yes |
| Multi-Location Inventory, Advanced Receiving | Stores, WIP and subcontractor locations; receipts as their own transaction | Yes | Yes |
| Assembly Items, Work Orders, Advanced Bill of Materials | Garments as assemblies; BOMs with dated revisions | No | Yes |
| Manufacturing WIP and Routing | Issue, completion and close through a WIP account; routings, work centres, cost templates | No | Usually |
| Advanced Manufacturing SuiteApp | Workbench, work instructions, capacity against demand, scheduler, mobile data capture | No | Sometimes |
| Outsourced Manufacturing | Subcontracted assemblies, components sent to subcontractors, moves between them | Sometimes | Yes |
| Landed Cost | Freight, duty and charges added to stock value | Yes | Yes |
| Quality Management SuiteApp | Specifications, inspections and sampling | Sometimes | Usually |
| OneWorld | Several subsidiaries, base currencies and intercompany | If several entities | If several entities |
| Electronic Invoicing SuiteApp | A framework for outbound and inbound e-documents | Where required | Where required |
Oracle notes that the Advanced Manufacturing SuiteApp's post-implementation setup is configured together with NetSuite Professional Services. Plan for that in the timeline.
When does an apparel business need NetSuite OneWorld?
An apparel business needs OneWorld when it runs more than one legal entity in NetSuite, for example a brand company and a factory company, or factories in two countries. Each subsidiary has its own base currency, and Oracle's help is explicit that a subsidiary's base currency cannot be changed after the subsidiary record is first saved. Treat the subsidiary structure and base currencies as the first decision of the project, not a setting to tidy up later.
What does the service tier have to do with an apparel project?
The service tier sets how many web-service and RESTlet requests the account accepts at the same time, and every integration shares that number. A factory that connects e-commerce, EDI, a floor system and an operations layer can run out of concurrency before it runs out of anything else. Oracle's published base limits are 5 for Standard, 15 for Premium, 20 for Enterprise and 20 for Ultimate on the current tiers, and each SuiteCloud Plus licence adds 10. Section 34 works through a budget.
How much does NetSuite cost for a garment business?
The cost depends on the base licence, the modules and SuiteApps licensed, the number of full users, the service tier, any SuiteCloud Plus licences and the partner work; Oracle quotes NetSuite privately and does not publish a price list, so we give no figures. Put these lines in the comparison:
| Cost driver | What decides it |
|---|---|
| Base licence and edition | Standard NetSuite or a SuiteSuccess edition such as AFA; OneWorld if several subsidiaries |
| Modules and SuiteApps | Manufacturing, WIP and routing, Advanced Manufacturing, Quality Management, Grid Order Management, e-invoicing for more than one country |
| Users | Count office users; floor operators should not need full NetSuite logins if capture happens elsewhere |
| Service tier and SuiteCloud Plus | Driven by data volume, sandboxes and the concurrency your integrations need |
| Partner implementation | Discovery, configuration, migration, testing, training, hypercare; scales with the custom-build lines in the fit-gap |
| SuiteScript and custom records | Built once, retested at every release; the recurring cost most budgets miss |
| Integrations and connectors | EDI, commerce, floor system, banks, e-invoicing, operations layer; each needs build, a concurrency share and upkeep |
Questions to settle with Oracle and the partner
Settle these before signing, because each changes the cost and the path through future releases.
- Which SuiteApps does the fit-gap need, which are licensed separately, and which need Professional Services?
- What does the AFA edition contain today, in writing, line by line against the fit-gap?
- Which service tier, how many sandboxes, and how much API concurrency is left once every planned integration is counted?
- Which scripts and custom records are planned, who owns their code, and who retests them at each release?
- Is any existing integration on SOAP or token-based authentication, and what is the plan before 2027.1?
9NetSuite vs SAP Business One for apparel
NetSuite has a native parent-and-child matrix item, a grid-entry SuiteApp, Advanced BOM with dated revisions, WIP and routing, and Outsourced Manufacturing, and it runs only as Oracle's cloud service; SAP Business One, per its partners, has no native colour-size matrix, so apparel users add a partner add-on or code each colour and size as its own item. Both handle batches or lots, units of measure, landed costs and production orders, and neither covers sampling, T&A, size-graded consumption or AQL out of the box. SAP Business One is SAP's ERP for small and mid-size companies, extended by partner add-ons.
| Aspect | Oracle NetSuite | SAP Business One |
|---|---|---|
| Style, colour, size | Matrix items: parent and children; at most 2,000 combinations per parent | Per partners, no standard item matrix; each colour and size its own item code, or a partner add-on (several exist) |
| Grid entry | Grid Order Management SuiteApp: sales, purchase and transfer orders, quotes, inventory adjustments; English only; no mobile | From the partner add-on |
| Bills of materials | Assembly items; Advanced BOM with revisions, effective dates and component yield | Product trees (the B1 name for BOMs) |
| Production | Work orders; Manufacturing WIP with issue, completion and close; routings and cost templates; Advanced Manufacturing SuiteApp | Production orders; shop-floor capture from add-ons |
| Subcontracting (CMT) | Outsourced Manufacturing: subcontract orders, components to the subcontractor, moves between subcontractors, a daily consolidator that turns outsourced work orders into POs | Commonly an add-on need, per partners |
| Lots and dye lots | Lot-numbered items with cost per lot and custom item number fields | Batches and serial numbers |
| Units | Unit types with purchase, stock, sale and consumption units | UoM groups |
| Landed cost | By weight, quantity or value; per-line allocation as a preference | Landed costs document |
| Multi-company | OneWorld subsidiaries with their own base currency | Separate company databases; check intercompany options with your partner |
| Integration | SuiteTalk REST with OAuth 2.0, RESTlets, SuiteQL; SOAP retires in 2028.2 | Service Layer (OData; v1 on OData 3, v2 on OData 4) and the Integration Framework (B1if) |
| Extension model | SuiteScript 2.x, SuiteFlow, custom records, SDF projects; runs under governance limits | Partner add-ons and SDK; check each add-on's support for your B1 version |
Which should an apparel business choose?
Choose on the fit-gap, the partner and the business type. From practice, NetSuite tends to suit a brand, a wholesaler or a multi-entity group that wants one cloud ledger and accepts Oracle's release calendar; SAP Business One tends to suit a single-entity manufacturer or distributor that has found a strong apparel add-on and a partner who maintains it. In both, the size-colour question is answered before anything else: in NetSuite by the matrix design and its 2,000 ceiling, in B1 by the choice of add-on, which then has to follow every B1 upgrade. Read the SAP Business One chapter for its side in full, and the comparison table for the other ERPs.
SAP Business One facts come from SAP's help and from SAP partners, as listed in sources. The lack of a standard item matrix in B1 is stated by partners; confirm it on your B1 release with SAP.
Part 3Design, area by area
10How should item types and materials be set up in NetSuite for apparel?
Set up NetSuite items by how each material is bought, stocked, costed and tracked: fabric and yarn as lot-numbered inventory items, trims and packaging as inventory items, finished garments as assembly matrix items (or inventory matrix items for a brand), and subcontract and import charges as service or other-charge items. In NetSuite the item record type, the costing method and the unit type are chosen per item, and two of them cannot be changed casually once the item is saved, so design the classes before the first import.
Apparel is not one product type. The garment category decides the size system, the main material, the unit it is bought in and the processes it goes through.
| Category | Main material | Size system | What changes the setup |
|---|---|---|---|
| Woven tops and bottoms | Woven fabric, m or yd | Alpha (S–XXL) or numeric | Fabric width drives the marker; collars and cuffs need interlining |
| Knit tops, polos, fleece | Knit fabric, bought in kg | Alpha | GSM and width per roll; rib and collar trims sized per garment size |
| Denim | Woven denim, weight in oz/yd² | Waist × inseam, two axes | Washing changes shade and size; two size axes multiply the matrix |
| Knitwear and sweaters | Yarn, in kg | Alpha | No fabric stage; consumption is yarn weight per size and machine gauge |
| Hosiery and socks | Yarn, in kg | Few broad sizes, e.g. 39–42 | Knitted in singles, sold in pairs and multi-packs |
| Intimates | Knit and lace, many small components | Band × cup | Long bills of materials; two size axes |
| Outerwear | Woven shell, lining, padding by weight | Alpha | Many trims per garment; padding bought by weight |
| Home textiles | Woven or knit, by m | Flat dimensions in cm | No garment sizes; sold as sets, such as a duvet cover with pillowcases |
Materials, and how each is bought and used
Each material has its own purchase unit, usage unit and receipt checks, and the NetSuite item must follow them.
| Material | Bought in | Used in | Track at receipt |
|---|---|---|---|
| Woven fabric | m or yd | m | Composition, width, weight, shade and dye lot, shrinkage |
| Knit fabric | kg | m | GSM, open or tubular width, composition, shade and dye lot, shrinkage |
| Yarn | kg, on cones | kg or g | Count and system (Ne, Nm, denier), ply, composition, shade |
| Sewing thread | Cones | Metres per garment | Ticket number, colour matched to each shade |
| Trims: zips, buttons, labels, hangtags | Pieces, dozens, gross (144) | Pieces | Size and colour per colourway; often from a supplier the buyer nominates |
| Packaging: polybags, tissue, cartons | Pieces | Pieces | Carton dimensions, buyer-specific printing |
| Buyer-supplied material (CMT) | Received, not bought | As above | Owned by the buyer: hold it apart at zero value and reconcile what was used |
Bill of materials for one style: men's piqué polo, style P-2041
| Component | Material | Bought in | Per piece (size L) | Varies by |
|---|---|---|---|---|
| Body | Cotton piqué 180 GSM, 1.80 m open width | kg | 0.95 m | Size, colour |
| Collar and cuffs | Flat-knit rib collar and cuffs | sets | 1 set | Size, colour |
| Buttons | 4-hole polyester, 15 mm | gross (144) | 3 pcs | Colour |
| Sewing thread | Polyester core-spun, tkt 120 | cones | 165 m | Colour |
| Main label | Woven, buyer-nominated supplier | pieces | 1 pc | None |
| Size and care label | Printed satin | pieces | 1 pc | Size |
| Embroidery | Chest logo, subcontracted | service | 1 pc | Colour |
| Polybag | Recycled LDPE, with warning print | pieces | 1 pc | None |
Eight lines, three units of purchase, and four lines that change with size or colour. Example 6 turns them into NetSuite items.
What each item class carries in NetSuite
Four choices sit on each NetSuite item record and shape the apparel design: the record type, the costing method, the unit type and whether the item tracks lots. Oracle's help states that the costing method cannot be changed after it is saved on the item record, and that Average is the default. Choose per class of item, and put the choice in the CSV import template so nobody picks it by hand (section 19).
- Record type. Inventory item, lot-numbered inventory item, assembly item (lot-numbered or not), non-inventory item, service item and other-charge item are the types an apparel account uses. Grid Order Management supports inventory and assembly items, including lot-numbered and serialised ones, and inventory and assembly matrix items; it does not support non-inventory, other-charge or service matrix items.
- Landed cost. An item takes a share of freight and duty only if its Track Landed Cost box is checked. Set it on fabric and imported trims.
- Units. With the Multiple Units of Measure feature, each item gets a unit type and, from it, a purchase unit, a stock unit, a sale unit and a consumption unit (section 12).
Item record types, units and tracking for the polo
One setup that follows the rules above. The costing choices are argued in section 19.
| Item class | Record type | Costing | Tracking | Purchase unit | Stock / consumption unit | Landed cost |
|---|---|---|---|---|---|---|
| Knit fabric | Lot-numbered inventory item | Lot Numbered or Average | Lot = dye lot | kg | kg, or m (see section 12) | Tracked |
| Woven fabric | Lot-numbered inventory item | Lot Numbered or Average | Lot = dye lot | m | m | Tracked |
| Rib collar and cuff sets | Lot-numbered inventory matrix item (colour, size) | Average | Lot, to match the body dye lot | sets | sets | Tracked |
| Buttons | Inventory item | Average | None | gross | each | Tracked |
| Labels, thread, polybags | Inventory items | Average | None | each, cones | each, cones | If imported |
| Embroidery by a subcontractor | Outsourcing charge item (Outsourced Manufacturing) or service item | n/a | n/a | each | n/a | No |
| Freight, clearing, bank charges | Landed cost categories; other-charge items on the bill | n/a | n/a | n/a | n/a | They are the landed cost |
| Finished polo | Assembly matrix item (colour, size) | Standard | None, or lots per production batch | n/a | each | No |
| Buyer-supplied fabric (CMT) | Kept out of stock value by design; agree the approach with finance | |||||
Buttons: the order needs 3 per piece, 9,000 in all. With a 5% allowance the factory buys 9,450 pieces, which is 9,450 ÷ 144 = 65.6 gross, so the purchase order says 66 gross (9,504 pieces). In a "Count" unit type with each as the base unit and gross at a conversion rate of 144, NetSuite converts the purchase unit to the stock unit on receipt.
With operations on top: the style, its bill of materials by category and its consumption are built in the operations layer. NetSuite still needs the item classes above for everything it buys, stocks and values, because it holds stock value and the payables.
11How do you set up matrix items for sizes and colours in NetSuite?
Model the style as the parent matrix item and colour and size as matrix options; NetSuite creates a child item for each combination and tracks each one separately. Oracle's help puts it plainly: "The parent item doesn't appear on transactions. Only child items that show each option can be chosen on transactions." A matrix item in NetSuite is an item record family made of one parent and its subitems, one per option combination.
Two rules from Oracle's help shape every apparel design:
- The 2,000 ceiling. "The maximum number of the total combinations of matrix options is 2000." Oracle's CSV import guidance repeats it as a limit of 2,000 child matrix items per parent.
- No matrix of groups or kits. "Matrix items can't be created for groups or kits." A prepack sold by colour is therefore a separate item per colour (section 15).
Do the arithmetic before designing. A polo in 12 colours and 5 sizes is 60 children and never troubles the ceiling. A jean with many washes, 13 waists and 6 inseams reaches it quickly (Example 7). A style that must grow past the ceiling mid-season cannot, so the design has to leave room.
Changes after go-live are harder than they look. Oracle's import tips state that the CSV import cannot change matrix option values for existing child items, cannot move a child to a different parent and cannot change the matrix type of an existing item. Settle the option lists, the code pattern and which options sit on the matrix before the first import.
Naming and codes
Agree a code pattern before the first import, for example P2041-NVY-L for style, colour and size, and hold the buyer's own style number in a custom item field. Keep one matrix option list per size scale, so an "S" on a polo and an "S" on a bra band never share a value by accident. Integrations never link on the item name; they link on NetSuite's internal ID (section 34).
Where the 2,000-combination ceiling bites: a jean range
A five-pocket jean with waist 28 to 40 in every inch (13 values) and inseams 28, 29, 30, 32, 34 and 36 (6 values). Each wash is a colour option.
| Design | Children per parent | Inside 2,000? |
|---|---|---|
| One parent per style; wash, waist and inseam as options, 25 washes | 25 × 13 × 6 = 1,950 | Yes, with 50 to spare |
| Same, with one more wash added mid-season | 26 × 13 × 6 = 2,028 | No: the 26th wash cannot be added |
| One parent per style and wash family (for example light, mid, dark) | at most 25 washes × 78 per parent | Yes; each family has its own ceiling |
| One parent per style-wash; waist and inseam as options | 13 × 6 = 78 | Yes, always |
Washes that fit under the ceiling = 2,000 ÷ 78 = 25.6, so 25
The last design splits the range where the business already splits it: each wash has its own fabric treatment, cost and often its own buyer price. Choose the parent level from how the business costs and sells, then check the ceiling with the largest realistic season, not today's.
How does grid order entry work in NetSuite?
Grid entry in NetSuite comes from the Grid Order Management SuiteApp, which lets a user type quantities into a colour-by-size grid built from a grid template, on sales orders, purchase orders, transfer orders, quotes and inventory adjustments. A size/colour matrix, in this sense, is a grid with colours on one axis and sizes on the other, into which the quantity for each combination is typed. Oracle documents these limits:
| Limit (Oracle's help) | What it means for apparel |
|---|---|
| Supports inventory and assembly items (including lot-numbered and serialised) and inventory and assembly matrix items; not non-inventory, other-charge or service matrix items | A CMT service priced per size cannot use the grid |
| Customisations on order transaction forms are not reflected on the Grid Order Entry form | Custom fields added to the sales order form, such as a buyer PO reference, need entering outside the grid |
| Multi-grid order entry is available only for sales orders | Purchase orders to a mill or a CMT unit take one grid at a time |
| With multiple currencies, the selected currency applies across all order-related transactions and cannot be changed | One currency per grid order |
| The Grid Order Entry form does not show on mobile devices | No grid entry on a tablet in the showroom or on the floor |
| English only; cannot be translated | A factory working in Arabic, Turkish or Vietnamese uses the grid in English |
| With Advanced Bin / Numbered Inventory Management, grid matrix templates for inventory adjustments do not support serialised and lot-numbered items | Stock counts of lot-numbered fabric or trims are not done through the grid |
The polo sales order entered through a grid
The grid template for the polo has colours as rows and sizes S to XXL as columns. The merchandiser types one row for navy.
| Colour | S | M | L | XL | XXL | Total |
|---|---|---|---|---|---|---|
| Navy | 300 | 750 | 900 | 750 | 300 | 3,000 |
Lines created = 5, one per child item: P2041-NVY-S, -M, -L, -XL, -XXL
The sales order carries five lines on five child items; the parent never appears. The order is in USD, and because the grid fixes one currency per order, a buyer who pays part in EUR gets a second order. The same grid on the purchase order to a finished-goods supplier works the same way, one grid at a time.
With operations on top: styles, colourways and size breakdowns live in the operations layer, and NetSuite only needs the child items that are actually bought, stocked and invoiced. The matrix in NetSuite shrinks to what ships, which keeps every style far from the 2,000 ceiling.
12How do you convert kilograms to metres for fabric in NetSuite?
NetSuite converts units inside a unit type at a fixed conversion rate, so it can hold kilograms and metres for one fabric only at a nominal factor; a factor that changes with every roll needs a script or a system outside NetSuite. Knitted fabric is usually bought by weight and cut by length. The conversion depends on the fabric's weight per square metre (GSM) and its width, so it differs for every fabric and often for every roll.
GSM means grams per square metre: the weight of one square metre of the fabric. A 180 GSM jersey weighs 180 g per square metre.
180 GSM jersey, 1.80 m open width → 1000 ÷ (180 × 1.80) = 3.09 m per kg
220 GSM fleece, 1.60 m open width → 1000 ÷ (220 × 1.60) = 2.84 m per kg
How NetSuite units work, from Oracle's help: with the Multiple Units of Measure feature on, a unit type groups related units. Each unit type has one base unit, whose conversion rate is locked at 1; every other unit has a conversion rate equal to the quantity of base units in one of it. An item gets one unit type, and from it a purchase unit, a stock unit, a sale unit and a consumption unit. For ordinary items the base unit must be the smallest unit. Lot-numbered items are more flexible: Oracle's help says their base unit does not have to be the smallest and they can use fractional quantities, with purchase, stock and sale in different units.
Because conversion rates live on the unit type, kg and m can share a unit type only if the business accepts one factor for everything that uses that type. That is the design decision.
Three workable designs
There are three workable ways to hold knit fabric in NetSuite, each with a trade-off. The designs are implementation practice, not Oracle guidance.
| Design | How it works | Trade-off |
|---|---|---|
| Buy, stock and consume in kg | A weight unit type; cutting receives kg; metres are worked out on the cutting floor | Simple and accurate in stock value; the BOM is in kg, so size consumption must be converted to kg per size |
| A unit type per fabric quality, with kg at a nominal rate in metres | For example a type "Jersey 180/1.80" with base m and 1 kg = 3.086 m; purchase unit kg, consumption unit m | Easy to read in metres; wrong whenever a roll differs from the nominal GSM and width; one unit type per quality to maintain |
| Buy in kg, record GSM and width per lot, convert per lot by script | Item number fields on the lot record, and a SuiteScript that converts at receipt or issue | Accurate; custom code under governance limits, and discipline at receipt |
Four rolls of the same "180 GSM" jersey
The purchase order says 180 GSM, 1.80 m. The rolls that arrive are close, not equal.
| Roll | kg | Measured GSM | Width (m) | m per kg | Metres |
|---|---|---|---|---|---|
| R-101 | 25.0 | 176 | 1.82 | 3.122 | 78.0 |
| R-102 | 24.6 | 184 | 1.78 | 3.053 | 75.1 |
| R-103 | 25.3 | 181 | 1.80 | 3.069 | 77.7 |
| R-104 | 24.8 | 188 | 1.76 | 3.022 | 75.0 |
| Total | 99.7 | 305.8 |
A unit type with a fixed rate of 3.086 m per kg (180 GSM × 1.80 m) says these rolls hold 99.7 × 3.086 = 307.7 m. They hold 305.8 m. On the full polo order of 925 kg the gap is about 17 m, which is 18 size-L polos that the stock report says you can cut and the cutting table says you cannot. Record measured GSM and width per lot at receipt, in item number fields, and convert per lot, or keep fabric in kilograms in NetSuite.
Pairs, dozens and packs
Count units convert cleanly inside one unit type. Buttons bought by the gross and issued by the piece, or socks knitted as singles and sold in pairs, sit in a count unit type whose base is the smallest unit (each or single) with gross at 144, dozen at 12 and pair at 2. A multi-pack of three pairs is a product, not a unit, and belongs with the prepacks in section 15.
With operations on top: the operations layer records a measured lot record per receipt (GSM, width, shrinkage) and works consumption in the unit the cutting room uses. NetSuite can stay in the purchase unit, kilograms, for stock value and payables, with no conversion script.
13How do you track dye lots and fabric rolls in NetSuite?
Make fabric a lot-numbered inventory item, use each lot number as one dye lot, and require the lot on every receipt and every issue to production; record GSM, width and shade group in item number fields on the lot record. A dye lot is a batch of fabric dyed together; fabric from two dye lots can differ slightly in shade, so pieces cut from two lots show a colour difference once sewn into one garment. Cutting must stay within one lot.
From Oracle's help, lot-numbered item records track the quantity and the specific cost of each lot as goods are bought and sold. The lot number record can hold an expiration date and notes, shows on-hand, on-order and available quantities per location, and can be extended with custom item number fields, which Oracle describes for information such as quality control procedures. Those fields can then be used to search for lots. Lot quantities are chosen on transactions through the Inventory Detail on each line. With Advanced Bin / Numbered Inventory Management, lots can also be tracked by bin.
Tracking each roll is a design choice, and the table below sets out the options from implementation practice.
| Roll design | How it works | Trade-off |
|---|---|---|
| Lot = dye lot; rolls not tracked in NetSuite | One lot number per dye lot; roll labels and measurements live elsewhere | Simplest; no roll-level issue or return in NetSuite |
| Lot = dye lot; one bin per roll | Advanced Bin / Numbered Inventory Management; each roll in its own bin within the lot | Roll-level stock and issue; many bins to create and count |
| Lot = roll; dye lot in an item number field | One lot number per roll, dye lot searched by field | Roll cost and quantity exact; the shade rule at issue must check the field, which standard NetSuite does not do |
A shade band is a set of approved shade references for one fabric colour, used to judge whether a new lot is close enough to the standard. Buyers often allow shade groups within the band (for example A, B and C), and a garment must stay within one group. NetSuite has no shade-band record; a shade group is an item number field on the lot, and the band itself sits in another system or a custom record.
Standard NetSuite lets a user pick any available lot on a work order issue. A rule that refuses two dye lots on one cut is a SuiteScript or workflow, or it lives in the operations layer.
Cutting 3,000 navy polos from three dye lots
The order needs 2,856 m. The mill ships 933 kg, 8 kg over the 925 kg ordered and within its delivery tolerance, as 2,880 m in three dye lots: A 1,210 m, B 1,030 m, C 640 m. In NetSuite the receipt carries three lot numbers, each with its own quantity and cost. Rule: every garment's panels come from one lot, and bundles from different lots never meet on a line.
| Lot | Cut from it | Metres used | Left |
|---|---|---|---|
| A (1,210 m) | XXL 300 · XL 750 · M 23 · S 87 | 1,186.6 | 23.4 |
| B (1,030 m) | L 900 · S 213 | 1,029.7 | 0.3 |
| C (640 m) | M 727 | 639.8 | 0.2 |
| Total | 3,000 pieces | 2,856 | 24 |
Lot B = 900 × 0.95 + 213 × 0.82 = 855 + 174.66 = 1,029.66
Lot C = 727 × 0.88 = 639.76
Sizes M and S span two lots, which is fine as long as the bundles stay apart and each carton is packed from one lot. In NetSuite that means separate work orders, or separate work order issues, per lot, each with its lot in the Inventory Detail. The cut plan itself is operations work.
With operations on top: shade bands per fabric, the measured lot record and the incoming inspection that carries the dye lot sit in the operations layer. NetSuite still holds the lot on receipts and issues, so stock value and traceability stay correct.
14How do you handle size-dependent fabric consumption with NetSuite Advanced BOM?
NetSuite's Advanced Bill of Materials keeps BOMs as separate records with dated revisions, lets one BOM serve several assemblies and one assembly have several BOMs, and holds a component yield per line; fabric that grows with size therefore needs one BOM per size (or per size group), generated from a consumption table rather than typed. A bill of materials lists the components and quantities needed to make one unit of an assembly.
What Oracle's help says Advanced BOM does:
- The Advanced BOM record replaces the older Assembly/Bill of Materials record once the feature is enabled, and existing BOMs become read-only legacy records. Treat enabling it as a one-way decision and try it first in a sandbox.
- A BOM can have several revisions with effective start and end dates, used for stages such as an engineering BOM, a production BOM or a subcontracting BOM.
- Revisions cannot overlap. To add a revision starting on a date, first set the end date of the current revision to the day before.
- A component yield on the revision accounts for material loss in ordering and planning.
- One BOM can be used by several assemblies, an assembly can have several BOMs, and a default BOM can be set per assembly or per location.
For a garment, the children of the matrix differ in two ways. Colour changes components (navy thread and navy rib for navy children). Size changes quantities (more fabric for XL). One BOM per colour-size child is exact and heavy to maintain: 12 colours in 5 sizes is 60 BOMs for one style. Projects that go well generate those BOMs by CSV import or script from a consumption table (base size, grading per size, marker efficiency) and never type them.
Marker efficiency is the share of the fabric in a cutting marker that ends up in garment pieces; the rest is waste between the pieces. Shrinkage is the fabric the garment loses in washing or finishing, planned into the pattern. Keep the two apart: they come from different people (CAD and lab), change for different reasons, and are argued about with different suppliers. NetSuite's component yield holds one loss factor per line; a second one is a custom field.
Why one average consumption fails, and the BOMs it takes
Body fabric per polo, from the marker: S 0.82 m, M 0.88 m, L 0.95 m, XL 1.02 m, XXL 1.10 m.
| Size | Pieces | m per piece | Metres | NetSuite BOM |
|---|---|---|---|---|
| S | 300 | 0.82 | 246 | BOM P2041-NVY-S |
| M | 750 | 0.88 | 660 | BOM P2041-NVY-M |
| L | 900 | 0.95 | 855 | BOM P2041-NVY-L |
| XL | 750 | 1.02 | 765 | BOM P2041-NVY-XL |
| XXL | 300 | 1.10 | 330 | BOM P2041-NVY-XXL |
| By size | 3,000 | 2,856 | 5 BOMs | |
| Base size M for all | 3,000 | 0.88 | 2,640 | 1 BOM shared by all sizes |
216 ÷ 0.95 = 227 size-L polos without fabric
Using the base size for every size under-buys by 216 m. Advanced BOM's ability to share one BOM across several assemblies makes the shortcut tempting: attach one BOM to all five sizes and the planning run looks tidy. It is wrong by 216 m, found out on the cutting table three weeks before shipment, with a mill lead time longer than that. Share BOMs across colours only where the components are the same, and never across sizes for fabric.
A BOM revision around the PP approval
The buyer approves the PP sample on 14 November with one comment: use the new woven main label instead of the printed one. Cutting starts on 17 November. The polo BOMs carry revision R1, created without dates during development.
| Step | Revision | Effective start | Effective end | Change |
|---|---|---|---|---|
| Before | R1 | none | none | Printed main label |
| 1. End-date R1 | R1 | none | 16 Nov | No component change |
| 2. Add R2 | R2 | 17 Nov | none | Woven main label replaces printed label |
NetSuite refuses R2 until R1 has an end date, because revisions cannot overlap. The order then builds to R2 from the first cut. Check on your account which date a work order uses to choose the revision, and create the work orders after the revision exists. Which spec version the buyer approved is not in the BOM: the label change is visible, the approval behind it is not.
With operations on top: the consumption engine (marker efficiency, shrinkage, woven construction) and the net-to-buy across the order book run in the operations layer, which passes the purchase quantity to NetSuite. The approved PP round locks the style version for the order there. NetSuite needs no size-graded BOMs and no BOM revisions for garments at all.
15Should a prepack be an item group, a kit or an assembly in NetSuite?
Use an item group when the buyer orders a ratio pack but you want sales reported by size, a kit when the pack is priced and sold as one product with its own income account, and an assembly when packs are physically packed and stocked as cartons, because neither a group nor a kit is stocked as a packed unit. A prepack (or ratio pack) is a pack or carton holding sizes in a fixed ratio, for example 2 S, 5 M, 6 L, 5 XL and 2 XXL.
The differences Oracle documents between groups and kits:
| Question | Item group | Kit/package | Assembly (practice) |
|---|---|---|---|
| Price | The members' prices, totalled | Its own price, independent of the components, with several price levels | Its own price |
| Income account | No separate account | A separate income account can be set | Its own accounts |
| Stock | Tracks sales of the group and stock of the members | Each sale updates the members' stock | Stocked as a finished pack; building it consumes the members |
| Matrix | Matrix items cannot be created for groups or kits: one group or kit per colour | Can be an assembly matrix item | |
| Fits | Ratio packs where the buyer wants SKU-level sell-through on the invoice | A branded multi-pack priced as one product | Cartons packed ahead of orders and held in stock |
The "Fits" row is our judgement from practice, not Oracle guidance. Test the choice against the buyer's EDI: an 856 ship notice that describes packs and a factory that stocks pieces must agree on what a pack is before go-live.
The polo order as 150 ratio packs of 20
The size breakdown 300 / 750 / 900 / 750 / 300 reduces to a ratio of 2 : 5 : 6 : 5 : 2, which is 20 pieces per pack.
| Size | Per pack | × 150 packs | Order |
|---|---|---|---|
| S | 2 | 300 | 300 |
| M | 5 | 750 | 750 |
| L | 6 | 900 | 900 |
| XL | 5 | 750 | 750 |
| XXL | 2 | 300 | 300 |
| Total | 20 | 3,000 | 3,000 |
Item group price = 20 × USD 4.26 = USD 85.20 per pack; 150 × 85.20 = USD 12,780.00
- As an item group "P2041-NVY-PK20": the sales order shows 150 packs, the invoice shows the five sizes at 4.26, and sales reports by size. Stock is the pieces.
- As a kit: the buyer is invoiced 150 kits at a kit price the factory sets; income posts to the kit's account. Stock is still the pieces.
- As an assembly: 150 assembly builds consume 300 / 750 / 900 / 750 / 300 pieces and put 150 packed cartons in stock, which is what the warehouse actually holds.
With operations on top: packs (ratio packs) are defined on the order in the operations layer, and packing and cartonisation happen there. NetSuite receives the dispatch in whatever item design finance chose for invoicing.
16How do you model cutting, sewing and finishing with NetSuite WIP, routings and Advanced Manufacturing?
Model the garment as an assembly with a manufacturing routing whose steps (cutting, sewing, finishing, packing) run at work centres with times and cost templates; with Manufacturing WIP, materials move through a WIP account from work order issue to completion to close. This gives a labour cost and operation progress per work order, but it does not balance a sewing line or track bundles.
What Oracle's help describes:
- Work orders track the quantities of an assembly to build and the components needed, through the statuses Planned, Released, In Process, Built and Closed. Without WIP, an assembly build records the production in one step.
- Manufacturing WIP splits production into three transactions: issue the work order (move materials to the work area), complete it (assemble and stock finished goods) and close it (reconcile variances). The WIP location on a line must match on all issue, completion and close transactions of the work order.
- Manufacturing Routing lists the steps to build an assembly. Work centres group labour resources for scheduling and cost tracking; cost templates assign labour and machine rates; operation tasks record what is done, when and how much is complete, and actual time against expected time. Costs post to WIP during assembly and move to the assembly asset account on completion.
- The Advanced Manufacturing SuiteApp adds a workbench, work instructions, material usage, capacity against demand, a scheduler for planned start and end times, mobile shop-floor data capture and performance reports. Oracle states its setup is done with NetSuite Professional Services.
What an operation time means in a garment factory
SMV (standard minute value) is the time a trained operator needs for one operation at a normal pace, including allowances. A polo has 15 to 25 sewing operations. You can list each one as a routing step, or group them into a few steps per department. Grouping keeps operation tasks manageable; listing every operation gives a detailed cost but floods the task list.
| Question | What NetSuite gives | What stays outside |
|---|---|---|
| How much labour is in one polo? | Routing step times and cost-template rates | The minute study itself |
| How many polos can line 3 sew this week? | Work centre capacity; capacity against demand in Advanced Manufacturing | Line balancing across 25 operators, absenteeism, learning curves |
| Where is bundle 214? | The operation task's progress | Bundle tracking and operator output |
| Which line takes which order in week 47? | Scheduling on work centres | Seasonal line loading across lines and subcontractors |
The polo's routing, minutes and line capacity
The 18 minutes in Example 1 are the sum of these operations, grouped into three routing steps.
| Routing step (work centre) | Operations | Minutes |
|---|---|---|
| 10 Cutting | Spread, cut, number and bundle | 1.20 |
| 20 Sewing line | Shoulder join 0.90 · placket 3.10 · collar attach 2.20 · sleeve attach 1.80 · side seam and sleeve close 1.60 · cuff attach 1.40 · bottom hem 1.00 · buttonholes and buttons 1.50 | 13.50 |
| 30 Finishing | Thread trim and inspection 1.20 · press 1.00 · fold, tag and bag 1.10 | 3.30 |
| Total | 18.00 |
7,200 ÷ 13.50 sewing minutes = 533 polos a day
3,000 ÷ 533.3 = 5.6 line-days of sewing
Labour at USD 4.20 an hour (0.07 a minute): 18 × 0.07 = USD 1.26 a polo
Order: 3,000 × 18 min = 54,000 min = 900 hours × 4.20 = USD 3,780
Set the step times per unit and a cost template with a labour rate of USD 4.20 an hour, and the work orders for the order carry USD 3,780 of labour, which is 1.26 a piece: the CM line in Example 17. The 5.6 line-days and the choice of line come from planning, not from the work order. The sewing window in Example 15 is three weeks because the line is shared with other orders.
With operations on top: the planning heat-map (lines and subcontractors, 52 weeks), production orders with job cards per department and the WIP board run in the operations layer. NetSuite receives material issues for stock value and does not need routings or WIP for garments.
17Where do sampling, approvals and the T&A calendar live in a NetSuite project?
NetSuite has no record for garment samples, buyer approvals or a T&A calendar, so a NetSuite project either builds them as custom records with SuiteFlow or SuiteScript, uses a partner product, or keeps them in an operations system. Before a single bulk garment is cut, the buyer approves the product in stages. Each stage can take several rounds, and each approval unlocks the next step of the order.
A PP (pre-production) sample is a garment made in the actual bulk fabric and trims, which the buyer approves as the reference that bulk production must match. A T&A (time and action) calendar is the list of an order's milestones, each with a planned date worked back from the ex-factory date, an actual date and an owner.
| Sample or approval | What it decides | What waits for it |
|---|---|---|
| Proto / development sample | The look and the construction | Costing and the quote |
| Lab dip | The shade, within tolerance under the buyer's light source | Bulk fabric dyeing |
| Strike-off | Print or embroidery artwork, colours and placement | Bulk printing or embroidery |
| Trims approval | Buttons, zips, labels and hangtags | The bulk trims order |
| Fit sample | Measurements and fit on the buyer's model | Pattern correction |
| Size set | Grading across every size | The production marker |
| PP (pre-production) sample | The reference bulk must match | Cutting |
| TOP (top of production) | That the first bulk pieces match the PP sample | The rest of the run |
| Shipment sample | The reference for any claim after delivery | Shipping |
Every round has a sent date, a courier and tracking number, the pieces sent, the buyer's comments and a verdict: approved, approved with comments, or rejected. The T&A calendar hangs on these dates. The typical failure is bulk fabric ordered, or cutting started, on the strength of an approval nobody can find.
What a custom sampling build in NetSuite must hold
If the project builds sampling inside NetSuite, it needs a small set of custom records (customrecord types) linked to the item and the sales order. The list below is the minimum we would design.
- A sample request per style and colourway, with its type (lab dip, strike-off, fit, size set, PP, TOP, shipment), linked to the parent matrix item.
- Rounds under each request: sent date, courier, tracking number, pieces sent, buyer comments, verdict, verdict date, who recorded it.
- A link from the approved round to the BOM revision and spec version it approved.
- A block on the next step: a workflow that stops a bulk fabric purchase order or a work order release until the approval exists.
- T&A milestones that take their actual dates from the rounds, with a saved search per merchandiser each morning.
Each of these runs as SuiteFlow or SuiteScript under the governance limits in section 25, and each must be retested at every NetSuite release.
The polo order's approval calendar, worked back from ex-factory
| Date | Milestone | If it slips |
|---|---|---|
| 1 Oct | Order confirmed | |
| 8 Oct | Lab dip round 1 sent; round 2 on 13 Oct | Bulk dyeing cannot start |
| 17 Oct | Lab dip round 3 approved | Each extra round costs about 5 days |
| 20 Oct | Bulk fabric dyeing starts | |
| 24 Oct | Embroidery strike-off approved | Embroidery cannot be booked |
| 7 Nov | PP sample sent in bulk fabric | |
| 10 Nov | Bulk fabric in-house | Cutting waits |
| 14 Nov | PP sample approved, with comments | Cutting cannot start |
| 17 Nov | Cutting starts | |
| 20 Nov to 10 Dec | Sewing; TOP sample from the first bulk pieces | |
| 12 Dec | Final AQL inspection | Shipment held |
| 15 Dec | Ex-factory |
Three lab dip rounds instead of two pushed dyeing back five days, and the order absorbed it only because cutting had slack before the PP approval. In NetSuite, the only records on this calendar are the sales order (1 Oct), the fabric receipt (10 Nov), the work orders (from 17 Nov) and the fulfilment (15 Dec). The PP approval of 14 November, which gates cutting, has no record unless one is built.
With operations on top: dev approvals (lab dip, strike-off, sample, shipping mark) with rounds, courier details and the buyer's verdict, the T&A calendar with its critical path, and the PP approval that locks the style version for the order all live in the operations layer. NetSuite needs none of it.
18How does NetSuite Outsourced Manufacturing work for CMT, embroidery, printing and washing?
NetSuite's Outsourced Manufacturing feature treats a subcontracted step as an outsourced work order for an assembly: it orders the components for the subcontractor, consumes them automatically when the goods come back, can move part-finished goods from one subcontractor to the next, and turns outsourced work orders into purchase orders through a daily consolidator. It is the closest native NetSuite match to CMT and job work.
CMT (cut, make, trim) means the factory sews garments from fabric the buyer supplies and charges only for the labour; in subcontracting, the same term describes a factory that sends cut panels to another unit to be sewn. Job work is the South Asian term for the same arrangement.
What Oracle's help documents:
- What it does. Creates subcontracting orders for assemblies from vendors, manages component ordering for the subcontractor, transfers half-finished assemblies to other subcontractors, and drop-ships or warehouses the finished assemblies. Components are consumed automatically on production.
- Prerequisites. Purchase Orders and Advanced Receiving (Transactions subtab of Enable Features), and Multi-Location Inventory, Assembly Items, Advanced Bill of Materials and Work Orders (Items & Inventory subtab). Outsourced Manufacturing itself is then enabled on the Items & Inventory subtab, under Setup > Company > Enable Features.
- Setup. An outsourcing location for the vendor, an outsourcing charge item, the vendor's outsourcing settings, and an Outsourcing subtab on the work order.
- The consolidator. The Outsourced Manufacturing Consolidator "aggregates outsourced work orders into purchase orders" and "is scheduled to run every day at 2:00 a.m. in your organization's time zone". It can be run at once with Run Consolidator Now from Setup > Manufacturing > Outsourced Manufacturing Management.
The consolidator timing matters on the floor. An outsourced work order created at 10:00 does not become a purchase order the printer can see until the next 2:00 a.m. run unless someone runs the consolidator by hand. Put that in the training and in the T&A lead time.
2,000 printed T-shirts through two outside processors
| Step | Where | Out | Back | In NetSuite |
|---|---|---|---|---|
| Cut front panels | Factory | 2,020 | Work order for the cut panel assembly; 1% print allowance on top of 2,000 | |
| Screen print | Printer A | 2,020 | 2,008 | Outsourced work order for the printed panel; consolidated into a PO to Printer A; 12 rejected for misregistration |
| Sew | Factory | 2,008 | 2,003 | Work order for the T-shirt; 5 panels damaged in sewing |
| Garment wash | Washer B | 2,003 | 2,001 | Outsourced work order for the washed T-shirt; 2 lost in wash |
| Ready to pack | 2,001 | 1 spare over the order |
Total loss = 19 pieces on 2,020 cut = 0.94%
Each outside step is its own assembly with its own outsourced work order, so the printed panel and the washed T-shirt each exist as stock and each processor has a purchase order. Where the printer and the sewing unit are both subcontractors, the half-finished panels can move from one to the other without coming back. The 12 misprints need a reason and an owner: the balance at the printer's location shows the quantity, but the reject reasons and the agreed allowance are custom fields or another system.
Subcontractor tracking a factory expects
A factory expects to see, per processor, what went out, what came back, what was lost and whether the loss is inside the agreed allowance. NetSuite shows stock at the subcontractor's outsourcing location and the purchase order status; the allowance, the reject reasons and the balance per buyer order are design work or a saved search to build.
With operations on top: subcontract steps sit on the production order in the operations layer, and subcontractors appear on the planning heat-map beside the factory's own lines. NetSuite receives the subcontractor's purchase order and the payable, and does not need outsourced assemblies.
19How do you cost a garment in NetSuite, and why is the costing method a one-way choice?
NetSuite values stock by the costing method chosen on each item (Average, FIFO, LIFO, Group Average, Standard, Lot Numbered or Specific), and Oracle's help states that "you can't change the costing method after you save it on the item record", so the choice per item class is permanent. The garment costing sheet used to quote a buyer is built before any NetSuite item exists and usually lives outside NetSuite. A garment costing sheet lists fabric, trims, making, washing, testing, freight, finance cost and margin per piece, and adds up to the price quoted to the buyer.
Oracle lists these costing methods: Average (the default), FIFO, Group Average (one average cost across a group of locations), LIFO (not in the Australia edition), Specific (the cost of a serial number), Lot Numbered (the cost of a lot) and Standard (standard cost with variances between expected and actual). A wrong choice is fixed only by creating a new item and moving stock and history to it, which in an apparel account means new matrix children and new BOMs.
A quotation cost build for the polo (illustrative figures, USD per piece)
| Line | How it is worked out | USD |
|---|---|---|
| Body fabric | 0.31 kg at 4.20 per kg, plus 6% cutting loss | 1.38 |
| Collar and cuffs | 1 set | 0.25 |
| Trims | Buttons, thread, labels, polybag | 0.32 |
| Embroidery | Subcontractor price per logo | 0.18 |
| CM (cut and make) | 18 minutes at 0.07 per minute | 1.26 |
| Testing | Buyer's lab tests spread over the order | 0.10 |
| Factory overhead | 12% of CM | 0.15 |
| Freight to port and export documents | 0.12 | |
| Finance cost | 3% while waiting for payment | 0.11 |
| Margin | 10% | 0.39 |
| FOB price | 4.26 |
Subtotal before finance = 1.38 + 0.25 + 0.32 + 0.18 + 1.26 + 0.10 + 0.15 + 0.12 = 3.76
Finance = 3.76 × 3% = 0.11 · margin = (3.76 + 0.11) × 10% = 0.39 · FOB = 3.87 + 0.39 = 4.26
Every line except the last is an estimate made before the order exists. After production, the same lines come back as actuals: the real fabric used, the real minutes from the floor, the real embroidery rejects. A NetSuite estimate can carry the price of 4.26 on existing child items, but not this build.
Choosing the costing method per item class, once
Our recommendation from practice for the polo factory. It is locked when each item is saved, so the finance head signs this table before the first import.
| Item class | Method | Why |
|---|---|---|
| Knit and woven fabric | Lot Numbered, or Average | Lot Numbered keeps each dye lot at its own landed cost; Average is simpler when lots are consumed whole |
| Trims and packaging | Average | Many small receipts; no lot-level cost needed |
| Cut and printed panels (intermediate assemblies) | Standard or Average | Match the finished garment if routings carry labour |
| Finished garments made with routings | Standard | Labour and overhead come from cost templates; variances show where the order lost money |
| Finished garments bought from other factories (brand side) | Average or FIFO | The landed purchase cost is the cost |
How do you configure landed cost in NetSuite for imported fabric and duty?
Turn on the Landed Cost feature, create landed cost categories (freight, clearing, duty, insurance, bank charges), check Track Landed Cost on each fabric and imported trim, and enter the charges on the item receipt or the vendor bill with a cost allocation method of Weight, Quantity or Value. A landed cost is any cost of bringing goods to the factory beyond the supplier's price: freight, insurance, customs duty, clearing and bank charges.
From Oracle's help:
- Landed cost can be entered on item receipts and vendor bills. With Advanced Receiving on, allocation happens on the receipt.
- The allocation methods are Weight, Quantity and Value, and a transaction allocates with one method at a time.
- Only items with Track Landed Cost checked take a share.
- The Landed Cost Allocation per Line preference, under Setup > Accounting > Preferences > Accounting Preferences, Order Management subtab, lets you enter landed cost amounts per line, with several cost categories on the same line.
The one-method rule matters for apparel. Sea freight follows weight; clearing and bank charges usually follow value. On a single receipt with one method, one of them is allocated wrongly unless you use per-line allocation, or split the charges across transactions. For a factory in a free zone or under temporary admission, duty may be zero or suspended; agree the local reporting rules with the customs broker and finance before configuring.
Landed cost on the imported fabric: one method against per-line allocation
The polo's navy jersey and its rib collars and cuffs arrive on one receipt. Duty is zero because the factory imports under temporary admission. All prices are illustrative.
| Receipt line | Quantity | Weight (kg) | Value (USD) |
|---|---|---|---|
| Navy jersey 180 GSM | 925 kg | 925.0 | 3,885.00 |
| Rib collar and cuff sets | 3,060 sets | 76.5 | 765.00 |
| Total | 1,001.5 | 4,650.00 |
Charges: sea freight 420.00, clearing and port 180.00, LC bank charges 95.00; total USD 695.00.
| Approach | To jersey | To rib sets | Jersey per kg | Rib per set |
|---|---|---|---|---|
| A. Whole receipt by Weight (one method) | 641.91 | 53.09 | 4.89 | 0.27 |
| B. Per line: freight by weight, clearing and bank by value | 617.68 | 77.32 | 4.87 | 0.28 |
A: 695 × 0.9236 = 641.91 → (3,885 + 641.91) ÷ 925 = 4.89 per kg · rib (765 + 53.09) ÷ 3,060 = 0.27
B: freight 420 × 0.9236 = 387.92; clearing 180 × 0.8355 = 150.39; bank 95 × 0.8355 = 79.37 → 617.68
B: (3,885 + 617.68) ÷ 925 = 4,502.68 ÷ 925 = 4.87 per kg · rib (765 + 77.32) ÷ 3,060 = 842.32 ÷ 3,060 = 0.28
Allocating everything by weight moves USD 24.23 of clearing and bank charges onto the jersey that belongs to the rib sets, because the ribs are light and valuable. The difference is small here and large on a receipt of heavy fabric with expensive trims. Both results sit well above the mill price of USD 4.20 a kg: at the landed USD 4.87, the fabric line in Example 17 becomes 0.31 × 4.87 × 1.06 = USD 1.60, which is 0.22 more per polo and USD 660 on the order, and the 10% margin of 0.39 would shrink to 0.17. Quote on landed material cost, not on the supplier's price.
With operations on top: the cost engine (fabric, trims, decoration, CMT, overhead, margin to FOB, with landed cost and dated exchange rates), the standard cost sheet and quotations with approval thresholds run in the operations layer. NetSuite holds the landed cost that actually hit the receipts, for stock value, and the costing method still has to be chosen right for every item it values.
20Can NetSuite run quality control and AQL inspection for garments?
NetSuite's Quality Management SuiteApp creates specifications and inspections for incoming and outgoing shipments and shop-floor processes, with a statistical sampling workflow, but that workflow samples a fixed number or a fixed percentage and applies defect thresholds you enter; it does not look up ISO 2859-1 sample sizes from the lot size. AQL (acceptance quality limit) inspection checks a random sample drawn from a lot and accepts or rejects the whole lot according to how many defects the sample contains.
From Oracle's help: a quality specification is a collection of related inspections measured against shop-floor processes and incoming and outgoing shipments. In the statistical sampling workflow, a setting decides whether the sampling rate is a number of samples or a percentage of the quantity to inspect, and Oracle notes that this is a one-time setting made when the template is created. Templates carry allowable critical, major and minor defects; above the limit, the inspection fails. Oracle's best-practice page suggests up to 40 data fields per inspection (30 as the optimum) and up to 35 inspections per specification (20 as the optimum).
Quality control at cutting, stitching, dyeing and printing
A garment factory inspects at each stage where a defect is cheaper to catch than at the end. Dyeing and printing usually happen outside the factory, so those checks land on the receipt of the goods coming back.
| Inspection | When | What it checks | NetSuite fit |
|---|---|---|---|
| Incoming fabric | At receipt | Shade against the shade band, GSM, width, shrinkage, four-point defects | An inspection on the receipt; four-point scoring and shade groups as data fields |
| Incoming trims | At receipt | Colour, size, count against the approved trims card | Pass-fail inspection |
| Printed or embroidered panels | On return from the processor | Placement, registration, colour against the strike-off | An inspection on the outsourced receipt |
| Cutting | After cutting, before bundling | Pattern accuracy, notches, shade within the bundle | An inspection on the routing step |
| Inline (stitching) | During sewing | Operation-level defects, found early | Limited; operator-level capture is not native |
| End of line | As garments leave the line | Every garment, graded pass, repair or reject | Limited; grading is custom |
| Measurement | End of line and final | Points of measure against tolerance per size | Data fields; size-by-size tolerance tables need design |
| DUPRO | Once a share of the order is packed | Early warning before final | Custom |
| Final AQL | When the order is packed | Sample per ISO 2859-1 at the buyer's level | Custom, or a template per lot-size band |
The final inspection sample for 3,000 polos, and why one NetSuite template is not enough
The buyer's quality manual asks for ISO 2859-1, single sampling, normal inspection, general inspection level II, AQL 2.5 for major defects and 4.0 for minor defects.
| Step | Lookup | Result |
|---|---|---|
| Lot size | 3,000 pieces falls in the band 1,201 to 3,200 | Band 1,201–3,200 |
| Code letter | That band at general level II | K |
| Sample size | Code letter K | 125 pieces |
| Major defects, AQL 2.5 | Sample of 125 | Accept at 7 or fewer, reject at 8 |
| Minor defects, AQL 4.0 | Sample of 125 | Accept at 10 or fewer, reject at 11 |
Next order, 1,000 pieces: band 501–1,200 → code J → sample 80; AQL 2.5 major: accept 5, reject 6
A NetSuite sampling template set to 125 samples with 7 allowable major defects reproduces this lot. The next order of 1,000 pieces needs 80 samples and an acceptance number of 5, so it needs a different template; a percentage template of 4.17% would sample 42 pieces from it, which is not an AQL plan. Either keep one template per lot-size band and inspection level, or calculate the plan outside NetSuite. What happens after a failure (re-inspection after 100% checking, or a release decided by the buyer) must be recorded with the person who decided.
Acceptance numbers as published in ISO 2859-1 Table II-A, reproduced in common AQL references (see sources).
With operations on top: typed inspections (incoming, cutting, PP, DUPRO, final AQL, pre-shipment, measurement), the AQL engine on ISO 2859-1 at the buyer's level, CAPA, needle and metal control and quality grades (only first-quality pieces count as shippable) run in the operations layer. NetSuite sees the fulfilment only once it is cleared.
21How do you handle cartons, packing lists and shipping documents in NetSuite?
NetSuite fulfils sales orders through item fulfilments and prints packing slips and picking tickets, and the Grid Order Management SuiteApp adds grid printing on sales orders, packing slips and invoices; assorted cartons, buyer carton labels with SSCC codes and carton-level packing lists by dye lot usually need a partner product or custom work. An item fulfilment is NetSuite's record of goods leaving the warehouse against an order.
Documents a garment shipment needs
An export shipment of garments carries a standard set of documents, and a letter of credit may require each to match exactly.
| Document | Built from | NetSuite fit |
|---|---|---|
| Packing list by carton | Carton number, size and colour content, lot, weights, dimensions | Packing slip or grid print; carton-level layouts per buyer are custom templates |
| Carton labels | Buyer's label rules, often with an SSCC barcode | Custom or a partner product |
| Commercial invoice | The invoice with incoterm, marks and numbers | A custom print template on the invoice |
| Certificate of origin | Issued by a chamber or authority | Outside NetSuite; attach the file |
| Advance shipping notice (ASN) | Carton-level content sent to the buyer before arrival | EDI provider or portal upload |
| Bill of lading or air waybill | Issued by the carrier or forwarder | Outside NetSuite; attach the file |
Packing 3,000 polos into cartons, one dye lot per carton
The buyer wants solid-size cartons of 10 pieces. Following the cut plan in Example 10, each carton must hold a single dye lot.
| Size and lot | Pieces | Full cartons of 10 | Part carton |
|---|---|---|---|
| S, lot A | 87 | 8 | 1 of 7 |
| S, lot B | 213 | 21 | 1 of 3 |
| M, lot A | 23 | 2 | 1 of 3 |
| M, lot C | 727 | 72 | 1 of 7 |
| L, lot B | 900 | 90 | none |
| XL, lot A | 750 | 75 | none |
| XXL, lot A | 300 | 30 | none |
| Total | 3,000 | 298 | 4 (20 pieces) |
298 full cartons hold 2,980 pieces and four part cartons hold the other 20, so the shipment is 302 cartons instead of the 300 a size-only plan predicts. If the finished polo is not lot-tracked in NetSuite, the fulfilment knows nothing about lots, and the carton-to-lot link lives only on the packing list. Agree part cartons with the buyer before packing starts.
With operations on top: shipments per delivery, packing and cartonisation, and ship clearance against the buyer's terms run in the operations layer. NetSuite receives the dispatch as an item fulfilment and raises the customer invoice.
22How does NetSuite handle currencies, customer deposits, letters of credit and chargebacks?
NetSuite handles foreign currencies and, with OneWorld, subsidiaries with their own base currency as standard, and takes advance payments as customer deposits against sales orders; letters of credit and reason-coded chargebacks need design, because we found no letter-of-credit record in NetSuite's help. Garment exporters usually sell in USD or EUR, buy some materials abroad and pay wages locally, so every order touches at least two currencies.
Multi-currency and OneWorld
Each subsidiary in OneWorld has a base currency that, per Oracle's help, cannot be changed after the subsidiary record is first saved; customers and vendors can transact in other currencies. Exchange-rate differences between an invoice and its payment are posted as realised gains or losses. For period-end revaluation of open foreign balances, confirm the process for your account with the partner and finance.
Customer deposits
A customer deposit in NetSuite records money received in advance for an order. Oracle's help describes it as a liability until the goods are delivered, with no effect on the customer's receivable balance; a Create Deposit button on the sales order records it, and it is applied against the invoice later. Oracle adds that the unapplied part of a deposit created from a sales order can be used as a credit on a customer payment only when the sales order is billed, cancelled or closed.
Letters of credit
A letter of credit is a bank's promise to pay the exporter when documents that match the credit's terms are presented. Under ICC's UCP 600 rules, which most credits follow, documents must be presented within 21 calendar days after the shipment date unless the credit says otherwise, and never after the credit expires. In NetSuite the credit number, amount, latest shipment date, expiry, presentation period and required documents become a custom record linked to the sales order, with a saved search or workflow that warns before the latest shipment date.
Customer deposit, letter of credit and exchange difference
The polo order is worth 3,000 × USD 4.26 = USD 12,780.00. The buyer pays 30% in advance by transfer and the balance under a sight letter of credit. The factory's subsidiary has EGP as its base currency. Exchange rates are illustrative.
| Step | In NetSuite | USD | EGP |
|---|---|---|---|
| Order confirmed, 1 Oct | Sales order in USD, 3,000 polos at 4.26 | 12,780.00 | |
| Advance received | Customer deposit from the sales order, 30% | 3,834.00 | |
| Shipment, 15 Dec | Invoice for 12,780.00; the deposit is applied; balance open | 8,946.00 | at 48.80 = 436,564.80 |
| LC documents presented | Custom LC record: presentation within 21 days of shipment | ||
| LC paid | Customer payment of the balance | 8,946.00 | at 49.10 = 439,248.60 |
| Exchange difference | Realised gain posted on the payment | 2,683.80 |
Balance = 12,780.00 − 3,834.00 = 8,946.00
Gain = 8,946.00 × (49.10 − 48.80) = 8,946.00 × 0.30 = EGP 2,683.80
The deposit itself was booked at the rate of its own date, so applying it to the invoice can create a second, smaller exchange difference; finance should agree how that is presented. The bank's negotiation charges are a separate expense. What NetSuite does not do as standard is warn the shipping team that the credit expires, or that the latest shipment date is close; that is the custom part.
Chargebacks
A chargeback is an amount a buyer deducts from a payment for a claimed failure: a late shipment, a wrong carton label, a missing or wrong advance shipping notice. It arrives as a short payment. Record the shortfall with a reason from a custom list, as a credit memo or a write-off to one account per reason, and keep the buyer's deduction notice attached. Without reason codes, nobody can tell whether the business loses money to labels or to lateness.
A chargeback on an open-account shipment
Suppose the same balance of USD 8,946.00 were shipped to a retailer on open account instead of against a letter of credit. The retailer pays short.
| Deduction | Reason given | USD |
|---|---|---|
| Carton label error | 2 cartons with wrong size label, 50 per carton | 100.00 |
| Late ASN | 1% of the invoice | 89.46 |
| Total deducted | 189.46 |
Received = 8,946.00 − 189.46 = 8,756.54
In NetSuite, record the customer payment of 8,756.54 and leave 189.46 open on the invoice, then issue credit memos with the reasons "Chargeback: labelling" (100.00) and "Chargeback: ASN" (89.46), each posting to its own account. If the factory disputes the label claim with carton photos, the 100.00 stays open under dispute instead of being credited.
With operations on top: finance stays in NetSuite in full. The operations layer sends the orders, dispatches and purchase requests that the invoices and payables are built on; no money amounts travel through its ERP API.
23Does NetSuite support e-invoicing and localisation for garment exporting countries?
NetSuite's Electronic Invoicing SuiteApp is a framework for sending and receiving e-documents; Oracle's help states it does not include native support for any country's requirements, which come from localisation SuiteApps for some countries or from templates you build. For each garment-exporting country, check Oracle's localisation list and a local partner before assuming compliance.
From Oracle's help: the SuiteApp handles outbound e-documents (generated and sent to customers, vendors or tax agencies) and inbound ones (received from vendors and turned into bills), using templates, with samples included. It is free for a single country; using e-documents across several countries needs a licence. Oracle lists dedicated localisation SuiteApps for countries including Malaysia, Israel, Mexico, India and Brazil.
We have not verified NetSuite coverage for Egypt, Turkey, Pakistan, Bangladesh, Vietnam, Morocco or Tunisia in this guide. For each, ask Oracle and the partner which statutory reports and e-invoice formats they have delivered for other clients, who maintains the template when the tax authority changes its rules, and test an e-invoice end to end in a sandbox before go-live. Egypt's e-invoicing, for example, involves registration with the Egyptian Tax Authority and signing of each invoice; confirm how a NetSuite account meets that before choosing NetSuite for an Egyptian subsidiary.
Factories in free zones or under temporary admission often report the import and re-export of materials to customs. NetSuite transactions carry the quantities, but the report format is local and usually a saved search or custom report.
Part 4Build
24In what order should you configure NetSuite for a garment business?
Configure NetSuite for a garment business from the ledger outward: subsidiaries and base currencies first, then features, then units, matrix options and item classes, then locations, landed cost and manufacturing features, and only then the items, BOMs and open transactions. Each step depends on the one before it, and several cannot be undone once data exists: a subsidiary's base currency, an item's costing method, Advanced BOM and the matrix structure of an item.
Most features are switched on under Setup > Company > Enable Features, on subtabs such as Transactions and Items & Inventory; we name the subtab only where we checked it in Oracle's help. Labels move between releases, so check each on your account.
| # | Configure | Where, as checked | Why at this point |
|---|---|---|---|
| 1 | Subsidiary hierarchy and base currency per subsidiary (OneWorld) | Subsidiary records | A subsidiary's base currency cannot change after its first save |
| 2 | Chart of accounts, classes, departments, locations, custom segments for season or order profitability | Accounting lists and setup | Every later transaction posts to these |
| 3 | Currencies and exchange-rate updates | Multiple Currencies feature | Foreign-currency buyers and suppliers need them |
| 4 | Purchase Orders, Advanced Receiving | Enable Features, Transactions subtab | Prerequisites for Outsourced Manufacturing and for landed cost on receipts |
| 5 | Multi-Location Inventory, Assembly Items, Work Orders, Lot Numbered Inventory, Multiple Units of Measure, matrix items | Enable Features, Items & Inventory subtab (first three checked) | Items are created with these settings from day one |
| 6 | Advanced Bill of Materials | Enable Features, Items & Inventory subtab | Replaces legacy BOMs; decide before any BOM is loaded |
| 7 | Manufacturing WIP and Routing, if used | Enable Features | Routings and WIP transactions depend on it |
| 8 | Outsourced Manufacturing | Enable Features, Items & Inventory subtab, Inventory section | Needs the features in rows 4 to 6 |
| 9 | Unit types: weight, length, count, and any per-fabric types | Unit type records | Items carry their unit type from creation |
| 10 | Matrix options: one custom list per size scale, one for colour, one for length where used | Custom lists and item options | Children are generated from these; values cannot be changed on existing children by import |
| 11 | Item number fields on lots (GSM, width, shade group), custom item fields (buyer style, season) | Customisation, custom fields | Fabric lots are received with these from the first receipt |
| 12 | Landed cost categories; Landed Cost Allocation per Line if chosen | Setup > Accounting > Preferences > Accounting Preferences, Order Management subtab (per-line preference) | Fabric items must have Track Landed Cost checked when created |
| 13 | Locations: stores, WIP, quarantine, leftover, each subcontractor's outsourcing location | Location records | Receipts, WIP and outsourcing need them |
| 14 | Work centres, cost templates, routings | Manufacturing setup | Routings reference work centres and cost templates |
| 15 | SuiteApps: Grid Order Management and grid templates, Quality Management, Advanced Manufacturing (with Professional Services), Electronic Invoicing | SuiteApp installation | They reference items, locations and forms that now exist |
| 16 | Integration records, OAuth 2.0 clients, per-integration concurrency | Setup > Integration > Integration Management > Integration Governance (concurrency) | Before any data flows in or out |
| 17 | Master data: customers, vendors, materials, matrix parents and children, BOMs | CSV Import Assistant, in dependency order | Last, so every record lands on final settings |
Two item-level choices decide most rework: the costing method (it cannot change after save) and Track Landed Cost (without it the item takes no freight or duty). Put both in the CSV import template, not in a person's memory.
25How is NetSuite extended for apparel: custom fields, SuiteFlow, SuiteScript or SDF?
NetSuite is extended through SuiteCloud: custom fields and custom records for data, SuiteFlow for approvals and simple rules without code, SuiteScript 2.x for logic such as unit conversion or AQL, and the SuiteCloud Development Framework (SDF) to keep all of it as versioned files deployed from sandbox to production. Everything runs inside Oracle's cloud under governance limits, so the design must respect them.
Custom fields and custom records
Custom fields carry a prefix by where they sit, which Oracle's naming conventions set out: custitem on items, custentity on customers and vendors, custbody on a transaction header and custcol on transaction lines. Custom records (IDs such as customrecord_…) hold things NetSuite has no record for, such as sample rounds or letters of credit. Item number fields on lot records hold GSM, width and shade group.
| Apparel need | Where it goes |
|---|---|
| Buyer's style number, season | custitem field on the matrix parent |
| Buyer PO reference, delivery drop, quantity tolerance | custbody fields on the sales order |
| Dye lot shade group per line on a work order issue | custcol field, or read from the lot |
| GSM, width, shade group per lot | Item number fields on the lot number record |
| Sample requests and rounds, LC terms, chargeback reasons | Custom records and custom lists |
SuiteScript governance, and why it shapes apparel scripts
Every SuiteScript runs on a budget of usage units, set by script type, and a script that exceeds it stops. Oracle's limits per script type include:
| Script type | Usage units per run | Typical apparel use |
|---|---|---|
| User event | 1,000 | Checks on save: refuse two dye lots on one issue, check quantity tolerance |
| Client | 1,000 | Warnings on the form while a user types |
| Suitelet | 1,000 | A custom page, such as a sample round entry screen |
| RESTlet | 5,000 | A custom endpoint for an integration |
| Scheduled | 10,000 | Nightly jobs |
| Map/reduce | no overall limit | Bulk work, such as generating BOMs for a season or updating hundreds of children; each stage invocation is governed separately |
For map/reduce scripts, Oracle also limits keys to 3,000 characters and values to 10 MB. The practical rule from projects: anything that touches every child of a matrix, or every BOM of a season, belongs in a map/reduce script, not in a user event script on save. A season rollover written as a user event runs out of units and leaves half the children updated.
SuiteFlow or SuiteScript?
| Change | SuiteFlow | SuiteScript |
|---|---|---|
| Approval of a purchase order above a threshold | Yes | Either |
| Block a bulk fabric PO until the lab dip record is approved | Yes, if the approval is a field it can read | Either |
| Convert kg to metres per lot | No | Yes |
| Generate BOMs per size from a consumption table | No | Yes (map/reduce or CSV) |
| Refuse two dye lots on one cut | Limited | Yes (user event) |
| AQL sample size and verdict from ISO tables | No | Yes |
SDF, sandboxes and releases
SuiteCloud Development Framework (SDF) keeps custom objects, such as custom records, forms, workflows and scripts, as XML and script files in a project. Oracle describes account customization projects for accounts you own, deployed to development, sandbox or production accounts, with a command-line interface that can automate validation and deployment. From practice: keep every apparel customisation in an SDF project under version control, deploy to a sandbox first, and rerun the end-to-end tests in section 28 in the sandbox before each NetSuite release reaches production.
26Which systems does a NetSuite apparel implementation integrate with?
A NetSuite apparel implementation typically connects to a PLM or tech-pack system, a shop-floor system, EDI with retailers, e-commerce and marketplaces, banks, and an operations layer; each connection needs one owner per field, links stored on NetSuite internal IDs, and a share of the account's concurrency budget. The table shows the usual source of truth for each kind of record, based on general practice.
| Record | Source of truth | Goes to NetSuite as |
|---|---|---|
| Style, spec, points of measure, revisions | PLM or operations layer | Matrix parent and children, once released |
| Pre-cost and quote | Operations layer | Nothing, or a standard cost once the order is confirmed |
| Buyer order | Operations layer, or EDI into NetSuite | The sales order |
| Material requirements | Operations layer | Purchase requests that become NetSuite purchase orders |
| Receipts, stock, lots | NetSuite, with measurements from the operations layer | Item receipts with Inventory Detail |
| Cut, bundle, WIP, operator output | Shop-floor system or operations layer | Material issues, summarised |
| Quality results | Operations layer or quality system | Only the clearance to ship |
| Shipment, invoice | NetSuite for the invoice; operations layer for the shipment | Item fulfilment and invoice |
| Payments, deposits, LC, chargebacks | NetSuite | Native |
| Web store and marketplace orders | Commerce platform | Sales orders, often through a connector such as the Oracle NetSuite Connector |
Rules for every connection
Five rules prevent most integration faults on NetSuite. They apply whether the other side is a PLM, a floor system, an iPaaS or an operations layer.
- Link on NetSuite's internal ID, never on a document number or an item name a user can edit (section 34).
- One writer per field. If two systems can change the same quantity, one of them is wrong without knowing it.
- One owner per external ID. Oracle's help states that only a single integrated application should set external ID values for each record type.
- Show disagreements to a person. When the other system says something different, put it on a review list; never overwrite silently.
- Budget concurrency. Every integration draws on the same account limit; give each a share in Integration Governance and make receivers safe to call twice, because throttled calls get retried.
Part 5Data migration
27How do you migrate apparel data into NetSuite?
Migrate only open and active apparel data into NetSuite (active styles as matrix parents and children, open orders, open purchase orders and stock by lot), load it in dependency order with the CSV Import Assistant and external IDs, and have each department head sign off the loaded figures. History stays in the old system or an archive.
Oracle's guidance on importing matrix items shapes the files: unlike the user interface, which creates children when options are chosen on the parent, a CSV import needs a separate line for each parent and each child, with a Matrix Type column (Parent Matrix Item or Child Matrix Item) and a Subitem of column naming the parent. Each child can carry its own pricing. The import cannot change option values on existing children, cannot move a child to another parent and cannot delete matrix options. Oracle also notes that the Units Type is set separately on parent and child during import, so map it for both.
Load order
Each object depends on the ones above it. Load and check each level before starting the next.
| # | Object | Scope | Signed off by |
|---|---|---|---|
| 1 | Subsidiaries, chart of accounts, opening balances plan | Current | Finance head |
| 2 | Unit types, matrix option lists, custom fields | Final design | Merchandising head, stores head |
| 3 | Customers and vendors | Active in the last two seasons | Merchandising head, purchasing |
| 4 | Materials (fabrics, yarns, trims, packaging) | Used in active styles or in stock | Stores head |
| 5 | Matrix parents, then children | Active and carry-over only | Merchandising head |
| 6 | Work centres, routings, BOMs and revisions | Styles with open orders | Production manager, CAD lead |
| 7 | Open stock by lot and location | Counted at cut-off | Stores head, finance head |
| 8 | Open purchase orders | Undelivered quantities only | Purchasing |
| 9 | Open sales orders and customer deposits | Undelivered quantities; deposits received | Merchandising head, finance head |
| 10 | Open work orders or WIP | Decide: reload, or finish in the old way | Production manager |
| 11 | Open receivables and payables | Per invoice, at cut-off | Finance head |
The cut-off rule
A cut-off rule states the exact moment after which every transaction is entered in NetSuite and not in the old system. Write it as a date and time, name what happens to documents in flight (a truck at the gate, an inspection half done), and stop receiving into the old system at that moment. Stock is counted at the cut-off and loaded as it was counted, lot by lot, not as the old system said.
Cleansing
Clean data before it is loaded, never after. The usual work in an apparel migration is listed below.
- Merge duplicate vendors and materials ("Navy Jersey 180", "Jersey 180 NVY").
- Retire styles with no order in two seasons.
- Give every fabric one unit type and one costing method, and every roll in stock its lot.
- Map old size labels to the new matrix option values, one scale at a time; check that no style will exceed 2,000 children.
- Split any "open" order line that is already partly delivered into delivered and open quantities.
Migration template rows for the open polo order
The cut-off is 18:00 on 31 October and NetSuite goes live on 1 November. The polo order is confirmed, the fabric is ordered but not yet received, and the buttons are in stock.
Matrix items (one line per parent and per child):
External ID,Item Name/Number,Matrix Type,Subitem of,Colour,Size,Costing Method,Units Type p2041,P2041,Parent Matrix Item,,,,Standard,Count p2041_nvy_s,P2041-NVY-S,Child Matrix Item,P2041,Navy,S,Standard,Count p2041_nvy_m,P2041-NVY-M,Child Matrix Item,P2041,Navy,M,Standard,Count p2041_nvy_l,P2041-NVY-L,Child Matrix Item,P2041,Navy,L,Standard,Count p2041_nvy_xl,P2041-NVY-XL,Child Matrix Item,P2041,Navy,XL,Standard,Count p2041_nvy_xxl,P2041-NVY-XXL,Child Matrix Item,P2041,Navy,XXL,Standard,Count
Open sales order lines:
External ID,Customer,Item,Quantity,Rate,Amount,Currency so_p2041,BUYER-01,P2041-NVY-S,300,4.26,1278.00,USD so_p2041,BUYER-01,P2041-NVY-M,750,4.26,3195.00,USD so_p2041,BUYER-01,P2041-NVY-L,900,4.26,3834.00,USD so_p2041,BUYER-01,P2041-NVY-XL,750,4.26,3195.00,USD so_p2041,BUYER-01,P2041-NVY-XXL,300,4.26,1278.00,USD
Open purchase order, deposit and stock:
Open PO: navy jersey 180 GSM, 925 kg ordered, 0 kg received Deposit: USD 3,834.00 received against so_p2041 Stock: buttons 15 mm navy, 9,504 each, location Main Store, no lot
Children check: 5 of a possible 2,000 for this parent
Column names here are illustrative; map them to the fields your CSV Import Assistant offers. Put the costing method and units type in the file for every row, because the costing method cannot be changed after the item is saved.
Sign-off
Each owner signs a one-page check of their data: record counts against the old system, totals (stock value, open order value, open payables, deposits) and five records picked at random and checked on screen. A migration with no signatures is a migration nobody owns when the first figure is wrong.
Part 6Testing
28How should you test a NetSuite apparel implementation end to end?
Test a NetSuite apparel implementation in a sandbox with end-to-end scenarios that follow one real order from the buyer's PO to cash, run by the key users on migrated data, each step with an expected result written down before the test starts. Testing screens one by one proves the configuration works; only end-to-end scenarios prove the business works. Rerun the same scenarios in the sandbox before every NetSuite release reaches production.
The 13 scenarios below cover the flows where apparel projects usually break. Run each at least twice: once by the partner to find faults, once by the key users to accept the result.
| # | Scenario | What it proves | Expected result, in short |
|---|---|---|---|
| T1 | FOB order to payment | The whole chain works | Order, purchase, receipt, production, fulfilment, invoice and payment reconcile to the order value (Example 25) |
| T2 | CMT order with buyer fabric | Consigned stock stays out of stock value | Fabric received and issued with no change in stock value; the invoice carries only CM |
| T3 | Prepack order | Packs, pieces and cartons agree | Buyer orders 150 packs, production makes 3,000 pieces, the packing list shows packs per carton |
| T4 | Shade split in cutting | Dye lots are never mixed | An issue mixing two lots on one cut is refused; leftover per lot matches the cut plan (Example 26) |
| T5 | Subcontract embroidery with loss | Out, back and loss reconcile | Components out, good pieces back, rejects recorded with a reason, balance zero |
| T6 | Short shipment within tolerance | Tolerance is applied and invoicing follows the shipped quantity | Fulfilment accepted, remaining quantity closed, invoice on shipped pieces |
| T7 | Over-shipment | The upper limit is enforced | Above the tolerance, the fulfilment is blocked or needs a named approval |
| T8 | Seconds sale | Second-quality pieces are valued and sold apart | Seconds move to their own item or location and sell at their own price |
| T9 | LC discrepancy | Document checks catch a mismatch | A late shipment date against the LC record is flagged before documents are presented |
| T10 | Chargeback | Deductions are coded | A short payment is split by reason into credit memos (Example 23) |
| T11 | Mid-season spec revision | The approved version is protected | A new BOM revision applies from its start date; open work orders keep what they were created with |
| T12 | Cancelled order with committed materials | Committed stock is visible | Fabric already bought shows as available with its cost; open purchase orders are listed for decision |
| T13 | FX at month-end | Currency figures close correctly | Realised differences posted; open foreign balances handled as the finance head decided |
Test script: the polo order from sales order to cash
Scenario T1, run in the sandbox with migrated master data. Figures are the ones used throughout this guide.
| Step | Action | Expected result |
|---|---|---|
| 1 | Enter the sales order through the grid: S 300, M 750, L 900, XL 750, XXL 300 at 4.26 | 5 lines on 5 child items, 3,000 pieces, USD 12,780.00 |
| 2 | Create a customer deposit of 30% from the sales order | Deposit USD 3,834.00, posted as a liability |
| 3 | Create the purchase order for 925 kg navy jersey | PO in kg, at the vendor's currency |
| 4 | Receive 925 kg in three lots A, B, C | Receipt refused without Inventory Detail on the line; three lots in stock |
| 5 | Enter the landed cost with per-line allocation from Example 19 | Jersey valued at USD 4,502.68 (4.87 per kg) |
| 6 | Create the work orders and issue fabric by lot | Issue refused without a lot; lots offered from stock |
| 7 | Complete 3,000 pieces and close the work orders | Finished stock 3,000 at standard cost; variances posted on close |
| 8 | Fulfil the sales order | Item fulfilment for 3,000 |
| 9 | Invoice and apply the deposit | USD 12,780.00 less the 3,834.00 deposit = 8,946.00 open |
| 10 | Record the payment at a different exchange rate | Invoice paid; realised exchange difference posted |
| 11 | Run the order's profitability saved search | Revenue, material and labour cost appear against this order's class or segment |
Steps 4 and 6 depend on lot-numbered items and the Inventory Detail. Step 11 depends on how finance designed classes or custom segments.
Test script: shade split at cutting
Scenario T4, using the three dye lots and the cut plan from Example 10.
| Step | Action | Expected result |
|---|---|---|
| 1 | Issue lot A to the work orders for XXL 300, XL 750, M 23, S 87 | Issue accepted; lot A shown in the Inventory Detail |
| 2 | Try to add fabric from lot B to the same cut | Refused, with a message naming both lots |
| 3 | Issue lot B to the work orders for L 900 and S 213 | Accepted |
| 4 | Issue lot C to the work order for M 727 | Accepted |
| 5 | Return the remaining fabric per lot | Leftover matches the cut plan: A 23.4 m, B 0.3 m, C 0.2 m |
| 6 | Pack size S | Two groups of cartons (lot A 87, lot B 213); no carton holds both lots |
Step 2 needs a user event script, as in section 25, or an operations layer; standard NetSuite lets a user pick any available lot.
Test script: subcontract embroidery with loss
Scenario T5 proves that panels sent out, panels returned and panels lost add up, using Outsourced Manufacturing. The polo's chest logo is embroidered outside, with a 1% allowance.
| Step | Action | Expected result |
|---|---|---|
| 1 | Create the outsourced work order for 3,000 embroidered fronts | Components planned: 3,030 cut fronts (3,000 plus 1%) |
| 2 | Run the consolidator (or wait for 2:00 a.m.) | A purchase order to the embroiderer for 3,000 at the outsourcing charge |
| 3 | Move 3,030 fronts to the embroiderer's outsourcing location | 3,030 fronts shown at that location |
| 4 | Receive 3,004 good fronts; record 26 rejects with a reason | 3,004 embroidered fronts in stock; 26 recorded as "thread break" or "misplacement" |
| 5 | Check the balance at the embroiderer | 0 fronts left; 26 rejects inside the allowance of 30 |
| 6 | Receive the embroiderer's bill | Billed for 3,000 good pieces, as the purchase order says |
The reject reasons in step 4 and the allowance check in step 5 are custom fields or a saved search; Outsourced Manufacturing consumes components but does not hold a loss allowance.
Test script: short shipment within tolerance
Scenario T6 proves that a short shipment inside the buyer's tolerance is invoiced on what shipped. The buyer allows ±3%; the factory ships 2,940 pieces, 30 short in M and 30 short in L.
| Step | Action | Expected result |
|---|---|---|
| 1 | Fulfil 2,940 of 3,000 | Short by 60 pieces, which is 2.0%; inside the 3% tolerance |
| 2 | Close the remaining 60 on the sales order lines | No open quantity remains |
| 3 | Invoice and apply the deposit | 2,940 × 4.26 = USD 12,524.40, less the 3,834.00 deposit = 8,690.40 due |
| 4 | Repeat with 2,900 pieces | Short by 3.3%; fulfilment blocked or needs a named approval |
Step 4 of T6 needs the tolerance field and check from section 25; standard NetSuite has no quantity-tolerance field on a sales order.
Part 7Training, go-live and hypercare
29How should you train a garment business's staff on NetSuite?
Train each role only on the NetSuite centres, forms and saved searches it will use, on the business's own styles and orders, and have key users teach their colleagues; build role-specific dashboards so each person opens NetSuite on their own work. A merchandiser does not need the accounting menus, and a floor supervisor needs one screen that works, not a NetSuite role.
Train close to go-live, so that what people learn is still fresh, but not so close that there is no time to repeat a session. Remember that the Grid Order Management form is English only, so plan grid training in English with local-language notes where teams work in another language.
A training plan by role
An example plan for the polo factory. Hours are practice, not a standard; adjust them to the team and the scope.
| Role | What they learn | Hours | Pass when they can |
|---|---|---|---|
| Merchandisers | Sales orders through the grid, order changes, fulfilment status, their dashboard | 6 | Enter the polo order from the buyer PO without help |
| Purchasing | Purchase orders, unit types, vendor bills, landed cost | 6 | Buy 925 kg of jersey and allocate the import charges |
| Stores | Receipts with Inventory Detail, issues, returns, counts, bins | 8 | Receive three dye lots and issue each to its cut |
| Production planners | Work orders, WIP transactions, outsourced work orders, the consolidator | 6 | Run the embroidery outsourcing from work order to receipt |
| Quality | Quality Management inspections, if used | 4 | Record an incoming fabric inspection and a failure |
| Shipping | Fulfilments, packing slips, grid prints | 4 | Fulfil by lot and print the packing list |
| Finance | Invoices, deposits, payments, currencies, subsidiaries, reports | 10 | Take the polo order from deposit to closed |
| Administrator and key users | All of the above for their area, roles and permissions, sandbox release testing, first-line support | 16 | Teach their team, log issues correctly and run the release test |
Floor operators and supervisors are trained on whatever captures floor output. If that is a kiosk or scanner screen, the training is minutes, not hours; if it is NetSuite forms on the floor, expect the data never to arrive.
30What does a NetSuite cut-over plan look like for a garment business?
A NetSuite cut-over plan is a day-by-day list of the steps that move the business from the old system to NetSuite: freeze, final imports, stock count, opening balances, checks and the first live transactions, each with an owner and a go or no-go point. Rehearse it once in full in a sandbox before the real weekend, and time the imports there, because a matrix of thousands of children takes longer to load than people expect.
A cut-over plan, day by day
The polo factory goes live on 1 November, before the polo fabric arrives on 10 November and cutting starts on 17 November. A template, to adapt.
| Day | Date | Steps | Owner |
|---|---|---|---|
| T−10 | 22 Oct | Rehearsal import complete in the sandbox; open issues reviewed; go or no-go for the plan | Project lead |
| T−7 | 25 Oct | Master data frozen in the old system; final import of customers, vendors, materials, matrix items, BOMs | Merchandising head, stores head |
| T−3 | 29 Oct | Open purchase and sales orders and deposits extracted and checked against source documents | Purchasing, merchandising, finance |
| T−1 | 31 Oct | Cut-off at 18:00: no more receipts or issues in the old system; physical count of fabric by lot and roll, trims and finished goods | Stores head |
| T0 | 1 Nov, morning | Import counted stock by lot, open orders, deposits and open receivables and payables; owners sign totals | All owners, finance head |
| T0 | 1 Nov, noon | Go or no-go by the sponsor on the signed checks; integrations switched on only after go | Sponsor |
| T0 | 1 Nov, afternoon | First live transactions: one receipt, one issue, one sales order, one invoice | Key users |
| T+1 | 2 Nov | Daily issue meeting starts; partner on site | Project lead |
| T+9 | 10 Nov | Polo fabric received with lots and landed cost: the first real test of the lot and cost rules | Stores head, finance head |
The fall-back decision belongs at the noon go or no-go: if the counted stock and the open orders do not reconcile, the business keeps working in the old system for another week rather than going live on figures nobody trusts.
31When should a garment business go live on NetSuite, and how long is hypercare?
Go live between seasons, in the lowest-volume weeks, away from year-end and away from a NetSuite release weekend, and keep the partner in close support until at least the first month-end close is done in NetSuite. Hypercare is the period right after go-live when the project team stays on hand to fix issues daily.
- Timing. Avoid the weeks before a main shipment window, the month-end of the financial year and any audit. Check Oracle's release schedule for your account and keep go-live clear of the upgrade of your production account.
- Parallel running. A short, bounded parallel run of the books can help finance compare figures. Running the whole business in two systems rarely works, because people keep using the one they trust.
- Duration. Practitioners commonly plan hypercare of four to eight weeks. That range is judgement, not a measured standard; the rule that matters is that nobody leaves before the first month-end close in NetSuite is complete.
- Issue log. Keep one list: date, who, what happened, severity, owner, status. Review it daily in the first two weeks. Watch script errors and concurrency errors in the logs as closely as user issues.
- Exit criteria. Hypercare ends when the month-end closes on time, no issue blocks shipping or invoicing, and the administrator and key users handle first-line questions without the partner.
Part 8Risks
32What are the most common mistakes when implementing NetSuite for apparel?
The most common mistakes in apparel NetSuite projects are a matrix design that hits the 2,000-combination ceiling, the wrong costing method on items (it cannot be changed), expecting the Grid Order Management SuiteApp to work everywhere, heavy scripts that break governance or concurrency limits, the wrong item type for prepacks, and treating the AFA edition as a complete apparel solution. The list below comes from implementation practice; each point links to the Oracle fact behind it.
- A matrix that hits 2,000.Too many options on one parent, typically length or inseam; the next colour cannot be added mid-season (section 11).
- Grid limits discovered late.No grid on mobile, English only, multi-grid on sales orders only, one currency per grid order, form customisations not on the grid form.
- The wrong costing method.It cannot be changed after the item is saved; fixing it means new items (section 19).
- One kg-to-metre factor for every fabric.Stock value looks right while the cutting room runs short (section 12).
- One BOM shared across sizes.Advanced BOM makes it easy; fabric runs short on large sizes (section 14).
- Dye lots not enforced at issue.Standard NetSuite lets a user pick any lot; shade differences are found at final inspection.
- Prepacks on the wrong item type.A kit or group where packed cartons are stocked, or an assembly where SKU sales reporting was needed (section 15).
- Season-wide scripts on save.A user event script with 1,000 usage units updating a whole matrix; use map/reduce.
- Concurrency spent before go-live.E-commerce, EDI, iPaaS and the floor system share one account limit; nobody budgeted it (section 34).
- New integrations on SOAP or token-based authentication.Oracle is closing both; build on REST with OAuth 2.0.
- Treating the AFA edition as complete.It configures NetSuite for the industry; tech packs, cut planning, sampling and AQL still need a partner product or an operations system.
- Outsourcing PO timing.The consolidator runs at 2:00 a.m.; the subcontractor gets the purchase order a day later than the planner expects.
The 15 general failure modes, and how each shows up in NetSuite
Apparel ERP projects fail in the same fifteen ways whatever the ERP. The table maps each one to where it appears in a NetSuite project and how to prevent it.
| # | Symptom | Root cause | How it shows in NetSuite | Prevention |
|---|---|---|---|---|
| 1 | SKU swamp | Every variant created as an independent item | Thousands of children per parent, nearing 2,000; children never inactivated | Parent at the level the business costs and sells; only sold children created (section 11) |
| 2 | Large sizes short of fabric | Average consumption | One BOM shared by every size | A BOM per size, generated from a table (section 14) |
| 3 | kg and m never reconcile | Fixed conversion | One conversion rate in a unit type | Stay in kg, or convert per lot from GSM and width (section 12) |
| 4 | Shade mixing | No shade rule at issue | Any lot can be picked on a work order issue | Lot as dye lot, shade group field, a user event check (section 13) |
| 5 | Costing illusion | Quote, standard and actual not linked | Standard cost on the assembly, no quote to compare | Keep the quote beside the actuals per order (section 19) |
| 6 | Buyer fabric counted as owned | CMT fabric received like a purchase | Stock value includes the buyer's fabric | A deliberate consigned-stock design (section 4) |
| 7 | Goods lost at subcontractors | Out and back not linked | Purchase orders to processors with no component flow | Outsourced Manufacturing, one assembly per step (section 18) |
| 8 | Produced is not shippable | No output grading | Every completed piece counts as finished stock | Grade output; fulfil first quality only (section 20) |
| 9 | Spec drift | Revision not linked to the order | BOM edited instead of revised | Dated BOM revisions; the approval recorded with the revision (section 14) |
| 10 | Excel shadow system | No T&A or order view | Merchandisers keep their sheets beside the dashboards | Provide the view, in custom records or an operations layer (section 17) |
| 11 | Chargeback leakage | No reason codes | Short payments written off to one account | Reason-coded credit memos (section 22) |
| 12 | LC discrepancies | LC terms not linked to the shipment | No LC record | A custom LC record and a check before presenting |
| 13 | Floor data never arrives | Office screens on the floor | Supervisors asked to enter operation tasks | Kiosk, scanner, Advanced Manufacturing mobile capture or a floor system (section 16) |
| 14 | Big-bang in peak season | A plan-driven date | Go-live during a shipment window or a release weekend | Go live between seasons, with a rehearsed cut-over (section 30) |
| 15 | Migrated garbage | Legacy loaded as it was | Duplicate vendors and materials; wrong costing method loaded and locked | Cleanse first; owners sign off (section 27) |
33What must be decided before a NetSuite apparel go-live?
Decide the subsidiary structure and base currencies, the matrix design against the 2,000 ceiling, the costing method per item class, the unit design for every fabric, the lot and bin rules, whether to enable Advanced BOM and WIP, the prepack item type, the concurrency budget, and which system owns sampling, T&A and floor capture before go-live, because each is expensive or impossible to change once transactions exist. The full list:
- Subsidiaries and each subsidiary's base currency (cannot change after first save).
- The matrix parent level per category and the options on each; the largest realistic season checked against 2,000.
- The costing method per item class (cannot change after save), and which items track landed cost.
- The unit type for every fabric and yarn, and how kg becomes metres.
- Lot, bin or custom record for rolls; which item number fields are mandatory at receipt.
- Advanced BOM (a one-way switch), BOM per size or per group, and how BOMs are generated.
- Manufacturing WIP and Routing, or one-step assembly builds.
- Item group, kit or assembly for each kind of prepack.
- Outsourced Manufacturing for subcontract steps, and who runs the consolidator by hand when needed.
- Which system owns sampling, T&A, planning, floor capture and quality: NetSuite custom records, a partner product or an operations layer.
- How buyer-supplied fabric is held so it never enters stock value.
- The quantity tolerance rule and who may approve a shipment outside it.
- How profitability per order is tagged: class, department or custom segment.
- The service tier, SuiteCloud Plus licences and each integration's concurrency share.
- REST with OAuth 2.0 for every new integration, and the plan for any existing SOAP or TBA integration.
- Who owns sandbox release testing after the partner leaves.
Part 9Integration and API
34Which NetSuite API should an apparel integration use, and what are its limits?
Build every new NetSuite integration on SuiteTalk REST web services (or RESTlets) with OAuth 2.0, store NetSuite's internal ID as the link, and plan inside the account's concurrency limit, because Oracle is retiring SOAP web services and token-based authentication on published dates. SuiteTalk is the name of NetSuite's web-services family, and a RESTlet is a SuiteScript that exposes a custom REST endpoint.
What does Oracle say about SOAP and token-based authentication?
Oracle's help is explicit on both, and the dates matter to any apparel business with an older connector:
- SOAP. "The 2025.2 SOAP endpoint is the last planned SOAP endpoint." "With the 2027.1 release, only the 2025.2 endpoint will be supported. With the 2028.2 release, SOAP will no longer be available in NetSuite and existing SOAP integrations with NetSuite will stop working." Oracle adds: "All newly built integrations should use REST web services with OAuth 2.0 for authentication."
- Token-based authentication (TBA). "Starting in NetSuite 2027.1, you will no longer be able to create new integrations that use TBA for SOAP and REST web services, and RESTlets." Support for existing TBA integrations ends later, "tentatively NetSuite 2028.2", excluding SuiteAnalytics Connect (ODBC/JDBC). Oracle's advice is to move affected integrations to OAuth 2.0. Some partners quote other dates; we quote Oracle.
Authentication, endpoints and identifiers
| Topic | What to use | From Oracle's help |
|---|---|---|
| Authentication for a server-to-server integration | OAuth 2.0 client credentials (machine to machine) | No user interaction; an RSA certificate whose public part is uploaded; at most five active certificates per integration record. OAuth 2.0 applies to RESTlets and REST web services |
| Reading and writing records | REST Record API, /services/rest/record/v1/<record> | Record IDs such as purchaseOrder and inventoryItem; check each record and its fields in the REST API Browser |
| Querying changes | SuiteQL through REST: POST /services/rest/query/v1/suiteql | Query in the q body parameter, the Prefer: transient header, and limit and offset for paging |
| Idempotent create or update | An external ID with the eid: prefix and PUT | PUT on …/customer/eid:CID002 adds the record if missing and updates it if present; only one integrated application should set external IDs per record type |
| The link to store | NetSuite's internal ID | Assigned by NetSuite; the document number shown to users is a display value |
| Custom logic or bulk writes | A RESTlet (5,000 usage units per call) or map/reduce behind it | Governed as SuiteScript (section 25) |
Internal ID versus document number. A purchase order has an internal ID, a number NetSuite assigns and users do not edit, and a document number (the transaction's tranid) that people see and that numbering settings or users can change. The same goes for items: the internal ID is stable, the item name is text. An integration that stores "PO-00457" breaks the day someone renumbers; one that stores the internal ID does not. Use the external ID as the idempotency key your side sets, and the internal ID as the link you store.
Concurrency: the budget every integration shares
NetSuite limits how many web-service and RESTlet requests an account runs at the same time. Oracle's published base limits are 5 (Standard), 15 (Premium), 20 (Enterprise) and 20 (Ultimate) on the current service tiers, with legacy tiers listed separately, and each SuiteCloud Plus licence adds 10; development and partner accounts stay fixed at 5. A limit per integration can be set under Setup > Integration > Integration Management > Integration Governance, and Oracle notes that allocating to one application reduces what the others can use, that at least one unit always stays unallocated, and that as a best practice a single account limit without individual limits is preferable. Oracle's concurrency page describes SOAP web services and RESTlets; confirm with Oracle how REST web-service calls count on your account.
A concurrency budget for a brand-and-factory account
A group runs NetSuite on the Premium tier with one SuiteCloud Plus licence. Four integrations need a share.
| Integration | Pattern | Allocated |
|---|---|---|
| Web store connector | Order bursts at sale times | 8 |
| EDI provider | Batches of 850s and 810s several times a day | 5 |
| MerchandiserOS (operations layer) | A scheduled poll and writes of PO numbers | 3 |
| Everything else (reports, ad hoc scripts, new integrations) | Unallocated pool | 9 |
| Account limit | 25 |
Allocated = 8 + 5 + 3 = 16 · unallocated = 25 − 16 = 9
The MAX Concurrency Limit field on a new integration record shows 9 − 1 = 8
Shop-floor output does not need a share of its own here: floor screens or Garment.io report into MerchandiserOS, which sends NetSuite only summarised material issues. Every integration still retries politely when it is throttled, and the receiving side is safe to call twice.
Push or pull?
Pulling is the dependable baseline: a scheduled job queries changes with SuiteQL or a saved search on the last-modified date and processes them in order. Pushing from NetSuite uses a user event SuiteScript that calls out when a record changes; it is faster, but it runs inside the user's save and its governance, so keep it small and let a scheduled job catch anything it missed. iPaaS products (Oracle NetSuite Connector for commerce and marketplaces, and third-party platforms) sit in between; each still draws on the same concurrency.
One purchase request, from MerchandiserOS to NetSuite and back
- In MerchandiserOS, request
PR-1042for 925 kg of navy jersey is approved. - NetSuite's integration job (a scheduled script, a RESTlet caller or an iPaaS flow) collects it:
GET /api/v1/erp/documentsreturns the request with quantities, units and the supplier code. - The job creates the purchase order in NetSuite through
/services/rest/record/v1/purchaseOrder. NetSuite assigns internal ID48213; users see the document numberPO-00457; status Pending Receipt. - The job sends the answer back:
POST /api/v1/erp/po-status
Idempotency-Key: netsuite-po-48213-created
{"rows": [{"request_ref": "PR-1042",
"erp_po_id": "48213",
"erp_po_number": "PO-00457",
"status": "Pending Receipt",
"date": "2026-10-21"}]}
- A person in MerchandiserOS approves it on the ERP review list. The request now shows "NetSuite PO PO-00457, Pending Receipt".
- NetSuite's job reads the decision back from
GET /api/v1/erp/proposals/{id}.
The link is stored on NetSuite's internal ID 48213, not on the text PO-00457, so renumbering the PO in NetSuite breaks nothing. A retry with the same Idempotency-Key is recorded once. No price travels in this exchange; the PO's money stays in NetSuite.
For a business that does not want to build an integration, the same exchange works as a file exchange: MerchandiserOS produces the purchase requests as a file, the NetSuite team imports them with the CSV Import Assistant, and a saved-search export of PO numbers and statuses comes back the same way. Every inbound change is still approved by a person. The API guide at /developers describes both.
Part 10If you don't manufacture
35If you don't manufacture: brands, buying agents and own-label retailers on NetSuite
A business that designs, sources or sells garments without making them should use NetSuite for matrix items, purchase orders to factories, landed cost, vendor bills and payments, wholesale sales orders, customer deposits and currencies, and should skip the manufacturing modules entirely. What NetSuite handles poorly for them is the work around the purchase order: development and sampling with many factories, T&A across factories, following production that happens elsewhere, inspections at the vendor, and one status per order across many factories and buyers. This is where NetSuite as an ERP for fashion brands is strongest, and where the gap is least obvious.
Who is this Part for?
Three kinds of apparel business make nothing themselves, and each uses NetSuite differently.
| Business | What it does | What it owns |
|---|---|---|
| Brand or wholesaler | Designs and sells; factories make for it on FOB or CMT terms | The finished goods from the moment the factory hands them over, stock in its warehouses, receivables from retailers |
| Buying agent or buying house | Sources and follows orders for buyers across factories; earns a commission | No goods, no goods payables or receivables; a commission receivable |
| Own-label retailer | Develops a private label and places it with factories or agents | Finished goods and store stock; the retail side is its own system project |
What does a clothing brand need from NetSuite, and what should it skip?
A brand needs the purchasing, landed cost, stock, sales and finance halves of NetSuite, and none of the manufacturing half. As an ERP for clothing brands, NetSuite's relevant pieces are these:
| Need | NetSuite feature | Note |
|---|---|---|
| Styles by colour and size | Inventory matrix items | The 2,000 ceiling applies (section 11) |
| Purchase orders to factories, FOB or CMT | Purchase orders, with grid entry from the Grid Order Management SuiteApp | One grid per purchase order; multi-grid is sales orders only |
| Freight, duty, insurance into stock cost | Landed Cost: weight, quantity or value on receipts or vendor bills | One method per transaction unless per-line allocation is on (section 19) |
| Paying factories; import LCs | Vendor bills and payments; a custom record for LC terms | We found no LC record in NetSuite's help |
| Wholesale orders and advances | Sales orders on matrix children; customer deposits | Standard |
| EDI 850, 856, 810 with retailers, and chargebacks | An EDI provider or connector; credit memos with reason codes | Budget its concurrency share (section 34) |
| Several companies and currencies | Multiple currencies; OneWorld for a group | Base currency per subsidiary is fixed after first save |
| Forecasts and replenishment | Demand Planning | For stock the brand holds |
Skip: assembly items, work orders, Advanced Bill of Materials, Manufacturing WIP and Routing, the Advanced Manufacturing SuiteApp and Outsourced Manufacturing. A brand that buys finished garments has no BOM to maintain and no WIP to value, and each of those features adds setup, licences and release testing for nothing. The exception is a brand that supplies fabric or trims to its CMT factories: it needs purchase orders for those materials, a location per factory for the goods it has sent, and a reconciliation of what came back as garments, which is a design question for finance, not a reason to switch on manufacturing.
What does a buying agent need?
A buying house needs commission accounting and little else from an ERP: a commission invoice to the buyer, usually a percentage of the FOB value of what shipped, in the buyer's currency. In NetSuite that is an invoice with a service item for the commission, with no inventory items, no goods purchase orders and no goods receivables. The agent's real work, following orders across factories, sits outside any ERP; buying house ERP and sourcing agent software searches usually end at tools for that follow-up, not at accounting.
What does an own-label retailer need?
For private label sourcing, the retailer needs what a brand needs on the purchasing side, plus a retail system for stores. Store operations, POS, allocation and open-to-buy are a separate project, in NetSuite (Oracle lists a SuiteSuccess edition for retail) or in another retail system; this guide does not cover them.
What does NetSuite handle poorly for brands and agents?
NetSuite records the purchase order to the factory well; it does not follow the order at the factory. Five things stay open for a business that makes nothing itself:
- Development and sampling with many factories. Tech packs, lab dips, strike-offs and PP samples, round by round, with several factories quoting and sampling the same style. NetSuite has no record for any of it (section 17).
- T&A across factories. A calendar per order, worked back from the ex-factory date, with milestones owned by people at different factories.
- Following production that happens outside. Cutting, sewing and packing at the factory are invisible in NetSuite until the goods are received; Outsourced Manufacturing is built for subcontracted assemblies inside a manufacturer, not for a brand following finished-goods factories.
- Inspections at the vendor. Final AQL at the factory before shipment, at the buyer's level, with the result gating the goods leaving. NetSuite's Quality Management SuiteApp is built around inspections on the account's own receipts and operations.
- One status per order across factories and buyers. A buying agent with twenty factories and eight buyers needs one view of where every order stands. Saved searches over purchase orders show what was ordered and received, not what is happening in between.
How does the MerchandiserOS model work for a brand or agent?
MerchandiserOS runs the work around the order and NetSuite keeps the books. For a brand, buying agent or own-label retailer, MerchandiserOS runs development, samples and approvals, the T&A calendar, the orders placed with factories, sourcing, the planning view across subcontracted factories, quality inspections and shipping follow-up. NetSuite keeps purchase orders as the financial record, landed cost, stock value, invoicing, payments, deposits, currencies and tax. MerchandiserOS has workspace set-ups for a Brand and a Buying agent, so neither sees factory screens it does not need. Retail back-office work, such as stores, POS, allocation and open-to-buy, is outside MerchandiserOS's scope.
The polo order from the brand's side, with the buying agent's commission
The brand places the 3,000 polos with the factory at USD 4.26 FOB through a buying agent, and brings them into its own warehouse. Freight, duty rate, clearing, insurance and the commission rate are illustrative.
| Line | How it is worked out | USD |
|---|---|---|
| Purchase order to the factory | 3,000 × 4.26, grid-entered on five matrix children | 12,780.00 |
| Ocean freight | Forwarder's bill | 450.00 |
| Import duty | 12% of FOB (illustrative rate) | 1,533.60 |
| Clearing and port | Broker's bill | 180.00 |
| Cargo insurance | 0.3% of FOB | 38.34 |
| Landed cost into the warehouse | 14,981.94 | |
| Buying agent's commission | 5% of FOB (illustrative) | 639.00 |
| Landed cost including commission | If finance capitalises the commission | 15,620.94 |
Charges = 450.00 + 1,533.60 + 180.00 + 38.34 = 2,201.94
Landed = 12,780.00 + 2,201.94 = 14,981.94 → ÷ 3,000 = USD 4.99 per polo
Commission = 3,000 × 4.26 × 5% = 639.00 → 15,620.94 ÷ 3,000 = USD 5.21 per polo
In the brand's NetSuite: a purchase order in USD to the factory; a vendor bill from the factory; the forwarder's, broker's and insurer's charges entered as landed cost on the item receipt, allocated by Quantity so each polo carries 2,201.94 ÷ 3,000 = USD 0.73 whatever its size; the polos land at USD 4.99. Whether the agent's 639.00 joins the landed cost (USD 5.21 a polo) or is expensed is a finance decision; set it up as its own landed cost category if it is capitalised.
In the buying agent's NetSuite: one invoice to the brand for 639.00 on a service item "Buying commission", in USD. No inventory, no goods purchase order, no goods receivable.
In MerchandiserOS: the style and its samples with the factory, the T&A to ex-factory 15 December, the final AQL at the factory (125 pieces at level II), and the shipment follow-up to the warehouse. The brand's NetSuite sees the purchase order, the receipt and the bills; the agent's NetSuite sees the commission invoice.
For the other side of the same order, see Parts 3 to 7, and for how other ERPs serve brands, the Business Central chapter and the apparel-specific ERP chapter.
Part 11The recommended model
36The operations layer: what runs on top of NetSuite
The simplest way to run a garment business on NetSuite is to let NetSuite keep the books and run operations, from style to shipment, in a system built for apparel. Parts 3 to 7 of this guide show what it takes to bend NetSuite toward garment production instead: matrix designs under a ceiling, per-size BOMs, per-lot unit scripts, custom records for samples and letters of credit, and a concurrency budget for all of it. This is the model we recommend: let NetSuite do what it does best, the books across subsidiaries and currencies, and give the factory's operations to a system built for them.
The polo order with operations on top
| Step | In MerchandiserOS | What NetSuite sees |
|---|---|---|
| Tech pack and quote | Style P-2041, graded measurements, cost build at 4.26 FOB | Nothing yet |
| Samples | Three lab dip rounds, strike-off, PP approved 14 Nov and locked to spec version 3 | Nothing |
| Order | 3,000 pieces by size, T&A calendar to 15 Dec | Sales order on five child items, and the customer deposit |
| Procurement | 925 kg jersey, trims, embroidery; receipts measured per roll and dye lot | Purchase orders, item receipts with lots, landed cost, vendor bills |
| Planning and production | Line booked, cut by dye lot, job cards by department | Material issued, for stock value |
| Shop floor | Output per line per hour, on MerchandiserOS floor screens or from Garment.io | Nothing |
| Quality | Final AQL at level II, 2.5: 125 pieces inspected; only first-quality pieces ready to ship | Nothing |
| Logistics | Cartons packed by lot, ship clearance against the buyer's terms | Item fulfilment and customer invoice |
| After shipment | Quote against actuals for fabric, minutes and rejects | Payment received, reported back |
Who does what
Each area has one home. MerchandiserOS runs the work; NetSuite records the financial result.
| Area | Runs in MerchandiserOS | Recorded in NetSuite |
|---|---|---|
| Style | Styles with versions and frozen snapshots, tech pack sections, graded points of measure with tolerances, colourways and lab dips, a classified two-level bill of materials (fabric and trims, with yarn linked to fabric), consumption from marker efficiency, shrinkage and woven construction, make-type aware (woven, knit, knit-to-shape, pairs for socks) | The matrix children that are bought, stocked or sold, once released |
| Samples and approvals | Lab dip, strike-off, sample and shipping mark approvals with rounds, parcel and courier details, the buyer's verdict and T&A wiring; an approved order-level PP round locks the style version for that order | — |
| Quotation | Cost build from fabric to trims, decoration, CMT, overhead and margin to FOB, with landed cost and dated exchange rates; standard cost sheet; quotations with approval gates and thresholds | Nothing until an order exists |
| Orders | Buyer POs as parent records; orders with size-by-colour breakdown, tolerance band, provisional to confirmed quantity and per-shipment deliveries; ratio packs | The sales order and customer deposit, for invoicing |
| Procurement | Suppliers with qualification, materials master, MRP net-to-buy across the order book, purchase requests, purchase orders, GRN receiving, material issue and return; shade bands per fabric and a measured lot record (GSM, width, shrinkage) per receipt; incoming inspection carrying the dye lot | The financial purchase order, the vendor bill, landed cost, stock value |
| Planning | Planning heat-map of lines and subcontractors over 52 weeks, production orders, T&A with critical path | — |
| Production | Production orders and per-department job cards, WIP board | Material movements, for stock value |
| Shop floor | MerchandiserOS floor capture screens, or Garment.io, which receives orders and styles and sends floor output and actual minutes back | — |
| Quality | Typed inspections (incoming, cutting, PP, DUPRO, final AQL, pre-shipment, measurement), the AQL engine on ISO 2859-1 at the buyer's level, CAPA, needle and metal control, quality grades so produced is not taken for shippable | — |
| Logistics | Per-delivery shipments, packing and cartonisation, ship clearance against buyer terms | The item fulfilment and the customer invoice |
A day in the life, department by department
With operations on top, each department works in the tool built for its job, and finance works in NetSuite. This is what a normal day looks like on the polo order.
| Department | What they do in MerchandiserOS | What reaches NetSuite |
|---|---|---|
| Merchandising | Records the buyer PO as the parent record, the order with its size-by-colour breakdown and tolerance band, moves the quantity from provisional to confirmed, splits deliveries per shipment and watches the T&A critical path | The sales order, once confirmed |
| Development | Keeps style P-2041 with its versions, tech pack sections and graded points of measure; logs each lab dip and strike-off round with courier details and the buyer's verdict; the approved PP round locks the style version for the order | Nothing |
| Costing | Builds the cost from fabric to FOB with landed cost and dated exchange rates, keeps the standard cost sheet, sends the quotation through approval gates with thresholds | Nothing until the order exists |
| Purchasing and stores | Runs net-to-buy across the order book, raises purchase requests, receives against the purchase order, records the measured lot (GSM, width, shrinkage) and judges it against the shade band, issues and returns material; suppliers carry their qualification | Purchase requests become NetSuite purchase orders; receipts and issues for stock value |
| Planning | Loads lines and subcontractors on the 52-week heat-map, opens production orders with job cards per department | Nothing |
| Production floor | Captures output on floor screens and follows the WIP board; or reads output and actual minutes from Garment.io | Nothing |
| Quality | Runs incoming, cutting, PP, DUPRO, measurement and final AQL inspections on ISO 2859-1 at the buyer's level, raises CAPA, keeps needle and metal control, grades output so only first quality ships | Nothing; the shipment is cleared or held |
| Shipping | Packs and cartonises per delivery, clears the shipment against the buyer's terms | The dispatch, from which the fulfilment and invoice are raised |
| Finance | Works in NetSuite: invoices, deposits, vendor bills, payments, stock value, currencies, tax and e-invoicing | NetSuite is the record; PO numbers, payment dates and invoice status go back |
What changes in the NetSuite project
With operations on top, the hard parts of this chapter mostly move out of NetSuite. You no longer need size-graded BOMs, per-lot unit scripts, shade control at issue or custom records for samples inside NetSuite. NetSuite keeps accounting, purchasing as the financial record, invoicing, payments, stock value and local tax. The project is smaller, each release is easier to test, the matrix stays far from its ceiling, and the account's concurrency is spent on fewer, calmer integrations.
Measured against the extensions in Parts 3 and 4, the NetSuite project no longer needs to build:
- Per-lot kg-to-metre conversion scripts and roll-level custom records.
- BOM generation per size, and BOM revisions for garments.
- Manufacturing WIP, routings and cost templates for sewing, unless finance wants them for costing.
- A dye-lot check on work order issues.
- Custom records and workflows for sampling, approvals and T&A.
- Outsourced assemblies with loss allowances for each processor.
- ISO 2859-1 AQL logic and logged overrides.
- Quantity-tolerance checks and cartonisation.
What stays in the NetSuite project: subsidiaries and currencies, costing method per item class, landed cost, customer deposits, letters of credit and chargeback reasons, e-invoicing and local reports, and the connection to the operations layer.
How they connect
NetSuite and MerchandiserOS connect through the MerchandiserOS ERP API or a file exchange, and the shop floor connects through MerchandiserOS.
- NetSuite ↔ MerchandiserOS. NetSuite collects purchase requests and sales orders from MerchandiserOS and sends back its purchase-order numbers, keyed on NetSuite internal IDs, with payment dates and invoice status, through the MerchandiserOS ERP API with an integration login. A person approves every change from NetSuite on the review list before it lands, with an approver per kind of change, and a "what changed" feed shows the history. Money amounts stay in NetSuite. A file exchange does the same job with no programming.
- Shop floor. Factories without a floor system use MerchandiserOS's own floor screens. Factories running Garment.io keep it: MerchandiserOS integrates with Garment.io, sending orders and styles to the floor and reading output and actual minutes back.
·Frequently asked questions about NetSuite for apparel
These are the questions consultants, factory managers and brand teams ask most often about NetSuite for apparel. Each answer stands on its own.
How do I set up matrix items for sizes and colours in NetSuite?
Create the style as a parent matrix item and add colour and size as matrix options, using one custom list per size scale; NetSuite then creates a child item for each colour-size combination and tracks each one separately. Only the children appear on transactions; the parent never does. Settle the option lists and code pattern before the first import, because a CSV import cannot change the option values of existing children or move a child to another parent.
What is the maximum number of matrix items in NetSuite?
Oracle's help states that the maximum number of the total combinations of matrix options is 2,000, and its import guidance allows 2,000 child matrix items per parent. A jean with 13 waists and 6 inseams has 78 sizes per wash, so a single parent holds at most 25 washes. Split wide ranges into one parent per style-colour or per colour family, and keep length or inseam off the matrix when it would push a style past the limit.
Does NetSuite support grid order entry for apparel?
Yes, through the Grid Order Management SuiteApp, which provides colour-by-size grid entry on sales orders, purchase orders, transfer orders, quotes and inventory adjustments, driven by grid templates. Oracle documents its limits: multi-grid entry on sales orders only, one currency per grid order, no mobile form, English only, form customisations not shown on the grid form, and no non-inventory, other-charge or service matrix items.
Should a prepack be an item group, a kit or an assembly in NetSuite?
Use an item group when the buyer orders ratio packs but you want the invoice and sales reports by size, because a group's price is the total of its members. Use a kit when the pack is sold as one product with its own price levels and income account. Use an assembly when packed cartons are built and held in stock, because neither a group nor a kit is stocked as a packed unit. Matrix items cannot be created for groups or kits, so each colour's pack is its own item.
How do I track fabric dye lots in NetSuite?
Make each fabric a lot-numbered inventory item and use each lot number as one dye lot; NetSuite then tracks the quantity and the specific cost of each lot, chosen on receipts and issues through the Inventory Detail. Add item number fields to the lot record for GSM, width and shade group. Standard NetSuite lets a user issue any lot, so a rule that refuses two dye lots on one cut needs a script or an operations system.
How do I convert kilograms to metres for fabric in NetSuite?
NetSuite converts units inside a unit type at a fixed conversion rate, so kilograms and metres can share a unit type only at one nominal factor, such as 3.086 m per kg for a 180 GSM jersey 1.80 m wide. Real rolls differ from that factor, so either keep knit fabric in kilograms in NetSuite, or record GSM and width per lot and convert per lot with a script. The formula is metres per kg = 1000 ÷ (GSM × width in metres).
Can I change an item's costing method in NetSuite?
No. Oracle's help states that you can't change the costing method after you save it on the item record, so a wrong choice means creating a new item and moving stock to it. Choose per item class before the first import: for example Standard for garments made with routings, Average or Lot Numbered for fabric, Average for trims, and Average or FIFO for finished goods a brand buys in.
How does landed cost work in NetSuite for imported fabric?
Enable the Landed Cost feature, create cost categories such as freight, duty and clearing, check Track Landed Cost on each fabric, and enter the charges on the item receipt or vendor bill with an allocation method of Weight, Quantity or Value. A transaction uses one method at a time, so freight by weight and bank charges by value need the Landed Cost Allocation per Line preference or separate transactions. In this guide's example, USD 695 of charges raised navy jersey from USD 4.20 to USD 4.87 per kg.
How do I manage CMT and subcontracting in NetSuite?
Use Outsourced Manufacturing, which creates outsourced work orders for subcontracted assemblies, orders or sends the components to the subcontractor, consumes them automatically on receipt and can move part-finished goods from one subcontractor to the next. It needs Purchase Orders, Advanced Receiving, Multi-Location Inventory, Assembly Items, Advanced Bill of Materials and Work Orders. A consolidator turns outsourced work orders into purchase orders every day at 2:00 a.m., or on demand.
Is NetSuite good for apparel manufacturing?
NetSuite is a strong fit for apparel brands, wholesalers and multi-company groups, and a partial fit for garment manufacturers. It covers matrix items, grid entry, lots, landed cost, work orders, WIP and routings, Outsourced Manufacturing and OneWorld as standard or through Oracle SuiteApps. Tech packs, sampling approvals, T&A calendars, size-graded consumption, cut planning, shop-floor capture and ISO 2859-1 AQL need partner products, custom SuiteScript or a separate operations system.
Is NetSuite good for a clothing brand that outsources production?
Yes, for the books and the buying: inventory matrix items, purchase orders to factories with grid entry, landed cost, vendor bills and payments, wholesale sales orders, customer deposits, currencies and OneWorld, with EDI through a provider. A brand should skip the manufacturing modules. What NetSuite does not do is follow the order at the factory: development and sampling with many factories, T&A across factories, inspections at the vendor and one status per order, which sit in an operations system.
Can NetSuite handle a buying agent's commission?
Yes. A buying agent invoices the buyer for commission as a service item on a normal NetSuite invoice, in the buyer's currency, with no inventory, no goods purchase orders and no goods receivables. On an order of 3,000 polos at USD 4.26 FOB, an illustrative 5% commission is 3,000 × 4.26 × 5% = USD 639.00. The agent's follow-up work across factories, such as samples, T&A and inspections, is not something NetSuite records.
What is the NetSuite Apparel, Footwear and Accessories (SuiteSuccess) edition?
It is one of NetSuite's SuiteSuccess editions: a NetSuite account preconfigured for the apparel, footwear and accessories industry with roles, dashboards, KPI scorecards, reports, saved searches, forms, preferences and business processes delivered through SuiteApps. It is a configuration of NetSuite, not a separate product, and it is unrelated to SAP's older AFS add-on. Ask Oracle for its current scope in writing and map it against your fit-gap.
When does NetSuite retire SOAP web services and token-based authentication?
Oracle's help says the 2025.2 SOAP endpoint is the last planned one, only it is supported from 2027.1, and SOAP stops working with the 2028.2 release. From 2027.1 you can no longer create new integrations that use token-based authentication for SOAP, REST web services and RESTlets, and support for existing TBA integrations ends tentatively in 2028.2, excluding SuiteAnalytics Connect. Build new integrations on REST web services with OAuth 2.0.
NetSuite vs SAP Business One for apparel: which is better?
Neither is better for every business. NetSuite has native matrix items with a 2,000-combination limit, a grid-entry SuiteApp, Advanced BOM, WIP and routings, Outsourced Manufacturing and OneWorld, and runs only as Oracle's cloud service. SAP Business One, per its partners, has no standard colour-size matrix, so apparel users add a partner add-on. Neither covers sampling, T&A, size-graded consumption or AQL out of the box, so choose on the fit-gap, the partner and the business type.
·Glossary of apparel and NetSuite terms
Short definitions of the apparel and NetSuite terms used in this guide.
- Advanced BOM
- NetSuite's Advanced Bill of Materials feature: BOMs as separate records with dated revisions, shared across assemblies, with a default per assembly or location.
- AQL
- Acceptance quality limit: an inspection method that checks a random sample from a lot and accepts or rejects the lot on the number of defects found, using ISO 2859-1 tables.
- Assembly item
- A NetSuite item built from components on a BOM; in apparel, the garment or an intermediate such as a printed panel.
- BOM revision
- A version of a NetSuite BOM with effective start and end dates; revisions of one BOM cannot overlap.
- CM, CMT
- Cut and make, or cut, make and trim: the labour charge for making a garment, and a factory model where the buyer supplies the fabric and the factory charges only for making.
- Colourway
- One colour version of a style, with its own fabric shade and trims.
- Component yield
- A value on a NetSuite BOM revision line that accounts for material loss in ordering and planning.
- Consolidator
- The Outsourced Manufacturing job that turns outsourced work orders into purchase orders, daily at 2:00 a.m. or on demand.
- Cost template
- A NetSuite record of labour and machine rates used by routing steps to cost production.
- Customer deposit
- A NetSuite record of money received in advance for a sales order, held as a liability and applied to the invoice.
- Cut-over
- The planned switch from the old system to NetSuite, around a fixed cut-off moment.
- Dye lot
- A batch of fabric dyed together; pieces from different dye lots can differ in shade and must not be mixed in one garment.
- Ex-factory
- The date goods leave the factory for shipment.
- External ID
- An identifier set by an integrating application on a NetSuite record, used with the
eid:prefix for create-or-update calls. - FOB
- Free on board: the price of goods loaded at the port of shipment; in garment trade, the usual quoted price per piece.
- Grid Order Management
- An Oracle SuiteApp for colour-by-size grid entry on sales, purchase and transfer orders, quotes and inventory adjustments.
- GSM
- Grams per square metre: the weight of fabric.
- Hypercare
- The period after go-live when the project team fixes issues daily.
- Internal ID
- The identifier NetSuite assigns to a record; the stable key an integration should store.
- Item group, kit
- NetSuite items that sell several members together; a group is priced from its members, a kit has its own price levels and income account.
- Item number field
- A custom field on NetSuite's lot or serial number record, used here for GSM, width and shade group.
- Lab dip
- A small dyed fabric sample sent to the buyer to approve a shade before bulk dyeing.
- Landed cost
- Every cost of bringing goods to the warehouse beyond the supplier's price: freight, insurance, duty, clearing, bank charges.
- Letter of credit (LC)
- A bank's promise to pay an exporter when documents matching the credit's terms are presented.
- Lot-numbered item
- A NetSuite item whose stock is tracked by lot number, with quantity and cost per lot.
- Marker efficiency
- The share of fabric in a cutting marker that ends up in garment pieces.
- Matrix item
- A NetSuite item family of one parent and a child per option combination, such as colour and size; at most 2,000 combinations.
- OneWorld
- The NetSuite edition for several subsidiaries, each with its own base currency.
- Outsourced Manufacturing
- The NetSuite feature for subcontracted assemblies: components sent to subcontractors, automatic consumption, moves between subcontractors.
- POM
- Points of measure: the garment measurements in a tech pack, with a tolerance per size.
- PP sample
- Pre-production sample: a garment in bulk fabric and trims that the buyer approves as the reference for production.
- Ratio pack
- A pack or carton holding sizes in a fixed ratio, for example 2 S, 5 M, 6 L, 5 XL, 2 XXL.
- RESTlet
- A SuiteScript that exposes a custom REST endpoint on a NetSuite account.
- SDF
- SuiteCloud Development Framework: file-based projects for NetSuite customisations, deployed to sandbox and production.
- Shade band
- A set of approved shade references for a fabric colour, used to judge each new lot.
- SMV
- Standard minute value: the time a trained operator needs for one operation at a normal pace.
- Size/colour matrix
- A grid of colours by sizes used to enter or show order quantities for each combination.
- Strike-off
- A sample of a print or embroidery on the actual fabric, approved before bulk.
- SuiteApp
- An application installed into a NetSuite account, from Oracle or a partner.
- SuiteQL
- NetSuite's SQL-based query language, available through REST web services.
- SuiteScript
- NetSuite's JavaScript-based scripting, run under usage-unit governance per script type.
- SuiteSuccess
- NetSuite's industry configurations, including an Apparel, Footwear and Accessories edition.
- T&A calendar
- Time and action calendar: an order's milestones with planned dates worked back from ex-factory, actual dates and owners.
- TOP sample
- Top of production: the first bulk pieces, checked against the PP sample.
- UCP 600
- The ICC's rules for documentary credits, which most letters of credit follow.
- Unit type
- A NetSuite group of related units with a base unit and fixed conversion rates.
- WIP (Manufacturing WIP)
- The NetSuite feature that splits production into work order issue, completion and close through a WIP account.
More terms across all ERPs are in the guide glossary, and the method behind every chapter is in the methodology.
·Checklists: a NetSuite apparel implementation on one page
The checklists below repeat the decisions and checks from each part of this guide, in project order.
Discovery
Discovery is complete when every item below is ticked.
- Business type settled for each buyer and each subsidiary: CMT, full package, brand, agent or own label.
- One decision owner named for each area, and an in-house NetSuite administrator.
- One workshop per department, walking a real recent order.
- All 52 fit-gap lines answered with evidence, decision and owner.
- Architecture decided: what NetSuite owns, what runs in an operations layer.
- Edition, SuiteApps, OneWorld, service tier and concurrency confirmed against the fit-gap.
Design
Design is complete when every item below is decided and written down.
- Subsidiaries and base currencies fixed.
- Matrix parent level and options per category; largest season checked against 2,000.
- Costing method per item class; Track Landed Cost on imported items.
- Unit type per fabric and yarn; kg-to-metre approach chosen.
- Lot as dye lot; item number fields; roll design (lot, bin or none).
- Advanced BOM on or off; BOM per size and how BOMs are generated.
- Prepack item type per kind of pack.
- WIP and routings, or one-step builds; Outsourced Manufacturing for subcontract steps.
- Inspection points, AQL plan source and override rights.
- Carton rules and buyer documents per buyer.
- Currencies, deposits, LC records, chargeback reasons, e-invoicing.
Build, data and testing
Build, migration and testing are complete when every item below is proven in the sandbox.
- Features enabled in dependency order; one-way switches signed off.
- Scripts inside governance limits; bulk work on map/reduce; all customisation in SDF projects.
- Integrations on REST with OAuth 2.0, linked on internal IDs, each with a concurrency share.
- Migration imported in order, parents before children, with a cut-off rule and signed totals.
- All 13 end-to-end scenarios passed by key users.
Go-live
Go-live is ready when every item below is in place.
- Training done per role, on the business's own orders.
- Cut-over rehearsed once in full in a sandbox, imports timed.
- Go-live date between seasons, away from year-end, audits and the account's release upgrade.
- Go or no-go point and fall-back defined.
- Hypercare runs at least until the first month-end close in NetSuite; release testing owned in-house.
·Sources
Oracle NetSuite online help pages were checked on 26 September 2026. NetSuite is updated twice a year, so check each page against your account's release.
- NetSuite help, Matrix Items (2,000 combinations; parent not on transactions; no matrix for groups or kits) — docs.oracle.com
- NetSuite help, Tips for Matrix Items Import — docs.oracle.com · Importing Matrix Options for Items — docs.oracle.com
- NetSuite help, Grid Order Management — docs.oracle.com · Limitations of Grid Order Management — docs.oracle.com
- NetSuite help, Item Groups and Kits/Packages — docs.oracle.com
- NetSuite help, Advanced Bill of Materials — docs.oracle.com · BOM revisions — docs.oracle.com
- NetSuite help, Lot Numbered Items — docs.oracle.com · Serial and Lot Inventory with Multiple Units of Measure — docs.oracle.com
- NetSuite help, Multiple Units of Measure — docs.oracle.com · Setting Up Units of Measure — docs.oracle.com
- NetSuite help, Costing Methods — docs.oracle.com
- NetSuite help, Landed Cost Overview — docs.oracle.com · Entering Landed Cost on a Transaction — docs.oracle.com · Landed Cost Allocation per Line — docs.oracle.com
- NetSuite help, Assembly Work Orders — docs.oracle.com · Manufacturing WIP — docs.oracle.com · Manufacturing Routing and WIP — docs.oracle.com
- NetSuite help, Advanced Manufacturing — docs.oracle.com
- NetSuite help, Outsourced Manufacturing — docs.oracle.com · Setup — docs.oracle.com · Consolidator — docs.oracle.com
- NetSuite help, Quality Management User Guide — docs.oracle.com · Statistical Sampling Workflow — docs.oracle.com · Best Practices — docs.oracle.com
- NetSuite help, SuiteSuccess (editions incl. Apparel, Footwear and Accessories) — docs.oracle.com · NetSuite apparel page — netsuite.com
- NetSuite help, Multiple Currencies in OneWorld — docs.oracle.com · Setting a Base Currency — docs.oracle.com
- NetSuite help, Customer Deposits — docs.oracle.com
- NetSuite help, Demand Planning — docs.oracle.com
- NetSuite help, Electronic Invoicing Overview — docs.oracle.com · Availability and licence — docs.oracle.com
- NetSuite help, SuiteScript governance — docs.oracle.com · Script Type Usage Unit Limits — docs.oracle.com
- NetSuite help, Conventions for Naming Custom Objects — docs.oracle.com
- NetSuite help, SuiteCloud Development Framework — docs.oracle.com · Account Customization Projects — docs.oracle.com
- NetSuite help, SOAP web services deprecation — docs.oracle.com
- NetSuite help, Token-based Authentication deprecation — docs.oracle.com
- NetSuite help, OAuth 2.0 Client Credentials Flow — docs.oracle.com · Setup — docs.oracle.com
- NetSuite help, Concurrency governance limits — docs.oracle.com · Per-integration limits — docs.oracle.com
- NetSuite help, Executing SuiteQL Queries Through REST Web Services — docs.oracle.com · Using External IDs (REST) — docs.oracle.com · Using the Upsert Operation — docs.oracle.com
- NetSuite help, REST API Browser and record IDs (Purchase Order, Inventory Item) — docs.oracle.com · docs.oracle.com · docs.oracle.com
- NetSuite help, Oracle NetSuite Connector — docs.oracle.com
- SAP Business One: Service Layer v1 and v2 — help.sap.com · Integration Framework — help.sap.com · item variants per partners — sana-commerce.com · emerging-alliance.com
- ISO 2859-1, Sampling procedures for inspection by attributes — iso.org
- AQL tables and acceptance numbers — qima.com · tetrainspection.com · inspection levels: qualityinspection.org
- UCP 600, documentary credits — uscib.org · tradefinanceglobal.com
- EDI transaction sets — 1edisource.com · celigo.com
Corrections. NetSuite is released twice a year, and a feature boundary, a limit or a deadline can move in a single release. If you find a statement here that your account contradicts, report a correction with the release and the help page you checked; we correct the guide and note the change and its date at the top of this section. We re-check the NetSuite facts in this chapter at least once a year and after each NetSuite release that touches items, manufacturing or web services.
Oracle and NetSuite are registered trademarks of Oracle and/or its affiliates, used here only to name the products. This guide is not endorsed by Oracle. SAP and SAP Business One are trademarks of SAP SE. Other product names belong to their owners. Garment.io is named because MerchandiserOS integrates with it; this guide is not endorsed by Garment.io.