Last Updated: Oct 9, 2026
Every SKU in InfiPlex carries a key and value store called SKU Data, and anything you want to keep per SKU can live in it: the item ID from your old system, a supplier code, a case pack, a warranty length, a bin on a mezzanine your WMS does not model. The same store holds the reserved names that connections read, such as the Home Depot or Costco SKU, so a secondary ID loads, reads, and reports exactly the way a retailer SKU does. This guide covers what SKU Data is, how to load custom entries by file or API, how to read them back, and how to put them on a scheduled report or a lookup an assistant can answer.
Jump to What You Need
| If You Want To… | Go To |
|---|---|
| Understand reserved vs custom names | What SKU Data Is |
| Load values from a file in the OMS | Loading by File |
| Load or change values by API | Loading by API |
| Read values back | Reading SKU Data |
| Put a secondary ID on a daily report | SKU Data on a Scheduled Report |
| Look a SKU up from its secondary ID | Lookups by Secondary ID |
What SKU Data Is
SKU Data is a list of name and value pairs stored against each SKU. There are two kinds of names:
- Reserved names have a fixed spelling and a connection reads them when it talks to a channel: thehomedepot_sku is what InfiPlex sends to Home Depot, costco_sku to Costco, autozone_item_num to AutoZone, amazon_business_pricing_base_price to Amazon Business. Names starting with ipx_skd_ or avcr_auto_confirm_ are reserved too. The full list is on SKU Data Get and the ones in use on your account come back from SKU Data Fields.
- Custom names are anything else. legacy_item_id, supplier_code, vendor_case_pack, warranty_months: InfiPlex stores them, returns them, and never sends them to a channel. SKU Data Fields lists each custom name with the number of SKUs that carry it.
One rule follows from this: a reserved name misspelled is a custom name. home_depot_sku saves silently as a new custom entry and Home Depot never sees it. Copy reserved spellings from SKU Data Fields rather than typing them.
Loading by File
In the OMS, the SKU Utilities tool loads identifying data from a .csv: one sku column plus one column per data name, with the column header as the name. This is how the Costco and Home Depot SKU numbers are loaded, and a custom name loads the same way. Choose Set Identifying Data, upload the file, and each row's values are saved against its SKU, creating the entry when the name is new to that SKU and overwriting it when it already exists. Columns you leave out are untouched, so a file with only the columns that changed is fine.
sku,legacy_item_id,supplier_code,vendor_case_pack HB-2201,77-4410,ACME-HW,24 GL-410,77-2208,BRIGHTCO,12 LT-500,77-3190,BRIGHTCO,6
Keep a master file you add new SKUs to and re-upload; that is the pattern the retailer set-up guides use, and it works for custom names too. The SKUs must already exist in InfiPlex, loaded through Product Upload.
Loading by API
Two endpoints write SKU Data, and either name, reserved or custom, is accepted on both:
- SKU Data Set, PUT to one SKU with a JSON array of name and value pairs. Use it when every entry is on the same SKU, for example when your ERP creates an item.
- SKU Data Bulk Update, POST a JSON array of rows naming the SKU, the data name, and the value, across any number of SKUs. Use it for mapping imports, such as loading a supplier's code list or a legacy ID crosswalk, and for clearing one name across the catalog. No fixed batch limit.
[
{ "sku": "HB-2201", "data_name": "legacy_item_id", "data_value": "77-4410" },
{ "sku": "HB-2201", "data_name": "supplier_code", "data_value": "ACME-HW" },
{ "sku": "GL-410", "data_name": "legacy_item_id", "data_value": "77-2208" },
{ "sku": "GL-410", "data_name": "supplier_code", "data_value": "BRIGHTCO" }
]
Every row is saved independently; names not sent are left alone. An empty data_value clears the value and keeps the name on the SKU; SKU Data Delete removes the entry. The two entries that hold JSON, the Amazon Vendor Central Retail auto confirm rules, must be sent as complete JSON strings and are safer to edit in the OMS.
Reading SKU Data
- SKU Data Get returns every entry on one SKU as a flat list, one row per name.
- SKU Data Search returns the result pivoted, one row per SKU with one column per data name you ask for, across all SKUs, one SKU, or a list. It is the API form of the Download SKU Data tool in the OMS and takes the same choices.
- On the MCP server the same reads are the sku_data_get, sku_data_search, and sku_data_fields tools, published to any key with Read Products.
Every SKU with its legacy ID and supplier code, one call:
{{api_url}}/shop/products/sku_data/search?sku_search_type=all&data_name_search_type=multiple&data_name=legacy_item_id,supplier_code
{
"sku_data": [
{ "sku": "GL-410", "legacy_item_id": "77-2208", "supplier_code": "BRIGHTCO" },
{ "sku": "HB-2201", "legacy_item_id": "77-4410", "supplier_code": "ACME-HW" },
{ "sku": "LT-500", "legacy_item_id": "77-3190", "supplier_code": "BRIGHTCO" }
]
}
The pivoted shape is why SKU Data joins cleanly to anything else keyed on SKU: inventory rows, order lines, a restock list, or the Price & Inventory download.
SKU Data on a Scheduled Report
The daily inventory by warehouse report agent writes every SKU with its quantity per warehouse to a CSV each evening and emails it. To add the secondary ID and supplier code, add Read Products to its key and replace its steps 3 and 4 with these:
3. Call sku_data_search with sku_search_type all, data_name_search_type multiple, and data_name legacy_item_id,supplier_code. Join the result to the inventory rows on sku. SKUs with no entry get an empty value, never a guess. 4. Write inventory-YYYY-MM-DD.csv with header: sku,legacy_item_id,supplier_code,product_name,,total.
One extra tool call per run. The same two lines go into any other report on Scheduled Custom Reports, and a script does it with one SKU Data Search request joined on SKU.
Lookups by Secondary ID
The question SKU Data answers that nothing else does: a supplier or your old system sends 77-2208, which SKU is that? SKU Data Search with the single data name and its value returns the SKU:
{{api_url}}/shop/products/sku_data/search?sku_search_type=all&data_name_search_type=single&data_name=legacy_item_id&data_name_value=77-2208
In chat, an assistant on the MCP server with Read Products answers "which SKU has legacy ID 77-2208, and what is on hand in Reno" from the ID alone, chaining sku_data_search into inventory_get. That makes a secondary ID as usable as the SKU itself for warehouse staff who only ever see the old number.
Custom SKU Data Checklist
- Call SKU Data Fields (or ask the assistant) to see the reserved names and the custom names already on the account.
- Pick custom names that cannot collide with a reserved one, lowercase with underscores.
- Load values by file through SKU Utilities, or by SKU Data Bulk Update from your ERP.
- Read them back with SKU Data Search for a sample of SKUs.
- Add the two lines to your report agent or script, and run it once.
Custom SKU Data Questions
What is the difference between a reserved SKU Data name and a custom one?
Reserved names have a fixed spelling and a connection reads them: thehomedepot_sku is what InfiPlex sends to Home Depot, costco_sku to Costco, and so on. Any other name you store is a custom entry that InfiPlex keeps for you and never sends anywhere. Both live in the same per-SKU store and come back from the same tools.
Can a SKU have more than one secondary ID?
Yes. SKU Data is a list of name and value pairs per SKU, so legacy_item_id, supplier_code, and vendor_case_pack can all sit on the same SKU and come back as separate columns.
I misspelled a reserved name. Why did the retailer not get it?
A near miss such as home_depot_sku saves as a new custom entry and the Home Depot connection reads only thehomedepot_sku. Call SKU Data Fields first to copy the exact reserved spelling, and fix the stray entry with SKU Data Bulk Update or delete it with SKU Data Delete.
How do I find which of my SKUs matches an ID someone sent me?
SKU Data Search with the single data name and its value returns the SKU that carries it. In chat, an assistant on the MCP server answers the same question from the ID alone.
Can I put the secondary ID on a daily report?
Yes. Add a sku_data_search step to any report agent or script and join on SKU; the daily inventory by warehouse agent shows the two-line change.
Does SKU Data change how orders or inventory sync?
Custom entries do not. Reserved entries do, because connections read them: changing costco_sku changes what InfiPlex sends to Costco for that SKU. Treat reserved names as configuration and custom names as your own fields.
Can I clear a value without deleting the entry?
Yes. Sending an empty data_value through SKU Data Set or Bulk Update clears the value and leaves the name on the SKU. SKU Data Delete removes the entry itself.
Your old item numbers, your supplier codes, on every SKU and every report.
InfiPlex stores any per-SKU value next to the retailer SKUs its connections already read, and returns it to files, the API, and your AI assistant. Included on every plan.
Related SKU guides
- Using the SKU Utilities Tool
- OMS Product Upload
- Home Depot SKU Set-up
- Costco SKU Set-up
- AutoZone SKU Set-up
- SKU groups vs bundles vs SKU maps
- SKU Map Tool
- Managing Inventory
