- Inventory management solution release notes
- Commercial pricing solution release notes
- Merchandising solution release notes
- June 2026
- May 2026
- April 2026
Supply Chain & Retail Solutions release notes
June 3, 2026
New: Integration walkthrough
A new Integration walkthrough page in the API Guide walks customer IT teams, solution engineers, and support engineers through the four stages of integrating with the Data Ingestion API: extract, transform, align field names, and batch + send. Each stage has the relevant API calls embedded inline — GET /api/v2/schema/solutions to confirm what's rolled out, POST /api/v2/objects/{objectName} for ingesting batches (with a dryRun variant), and POST /api/v2/schema/{objectName}/add-attribute for adding tenant-specific columns — alongside Snowflake COPY INTO and Redshift UNLOAD recipes for the extract step. Designed as a single one-stop guide rather than scattered references.
Bulk-ingest guide: folder-load sort order spelled out
The Historical data ingestion guide's "File or folder?" section now spells out the folder-load sort-order rules. Lexicographic sort gives the right order when filenames encode order as zero-padded numbers (part-0001.csv) or ISO-style date prefixes (2024-06-01.csv) — both forms warehouse exports produce by default. It gives the wrong order for non-padded part numbers, DD-MM-YYYY or MM-DD-YYYY date names, or month-name files like January_report.csv. The doc now lists each failure case in a comparison table and recommends the safe naming pattern.
June 2, 2026
Markdown & Promotions API guide aligned with the canonical schema
The Markdown & Promotions pages in the API Guide have been brought fully in line with the canonical schema. The visible changes:
- Three previously-undocumented tables now have their own pages: Sale Extra (variant-level sales), Stock Extra (variant-level stock), and Currency Conversion (exchange rates for cross-region normalisation). All three are reachable from the sidebar under Markdown & Promotions.
- Location: added two columns the page was missing —
currencyandupdated_at. - Tax: the primary key now includes
created_at(so it'sproduct_id + location_id + created_at), matching the schema and allowing successive tax updates for the same product/location pair to be distinct rows. - All non-PK columns on every page are now marked Required to match the schema's actual validation rules. Whether the value can be
nullis now shown separately asNullable: Yes/No— see the next entry. - Type annotations across the API Guide use
timestampfor date-time fields (matching the canonical schema name), replacing the previousdatetimelabelling. - The Markdown and Promotions Data Model Tables Summary now includes the three new tables, and the
taxprimary key row is corrected.
Pipelines preparing data against the previous documentation may need to add the columns that were missing from location, update their primary-key generation for tax, and add data flows for sale_extra / stock_extra / currency_conversion if those are needed for the use case.
Historical data ingestion guide
A new guide covers loading large historical datasets (millions to billions of rows) into the Data Ingestion API. It explains the design considerations for at-scale loads — streaming, dynamic batching, rate-limiting, foreign-key ordering, checkpointing, and failed-row handling — and provides a self-contained Python reference script you can configure and run. See Historical data ingestion.
Bulk-ingest script
The Python reference script in the historical-data-ingestion guide:
- Loads one table per run with a minimal
CONFIGblock (csv_path,object_name,solution_name,operation_type,parallel). To load several tables, run the script once per table. - Accepts a folder of CSV part-files as the source, in addition to a single CSV file. Chunked exports are loaded in sorted filename order.
- Reads gzip-compressed CSVs transparently, detected from the
.gzextension. - Recognises both empty string (Redshift
UNLOADdefault) and\N(SnowflakeCOPY INTOdefault) as null markers. - Fails fast if a CSV row has more cells than the header, instead of silently shifting data into the wrong columns.
- Tolerates uncastable cells (e.g.
"abc"in an integer column) by passing them through to the API as raw strings, so one bad cell becomes one rejected row, not a stopped load. - Exposes a
paralleltoggle forUPSERTloads where a primary key can appear more than once in the source.
The guide also includes warehouse-specific UNLOAD / COPY INTO recipes for Snowflake and Redshift, and a section on re-running the script (resume behaviour, where checkpoint and failed-row files live, how to start fresh).
Operation type guidance
The API guide now frames the choice between APPEND and UPSERT around what the downstream solution needs from the data — current state vs full history — rather than around data type. The solution-specific guides state the recommended operation per table where it matters.
Per-table pages now show Nullable alongside Required
Every per-table page in the API Guide now includes a Nullable column next to Required. The two flags are independent:
Required: Yes— the column's key must appear in every ingest payload. This is the case for every column in the standard schema, so the value isYesthroughout.Nullable: Yes— the value may be sent asnullwhen no data is available for the row.Nullable: No— a non-null value must be sent for every row.
This makes it possible to distinguish "I must send the key but the value can be null" from "I must send a non-null value" at a glance per column. See Schema definition structure for the underlying validation rules.
Add-column endpoint: nullability guidance
The Add a new column section now has a Controlling required-ness and nullability on the new column subsection. It documents that required and nonNull are independent validators in the add-column path and lays out the four valid combinations as a small table. It also calls out the API-enforced mutual exclusion of defaultValue and nonNull — sending both returns 400 Bad Request with the exact error message the API produces.
- June 3, 2026
- New: Integration walkthrough
- Bulk-ingest guide: folder-load sort order spelled out
- June 2, 2026
- Markdown & Promotions API guide aligned with the canonical schema
- Historical data ingestion guide
- Bulk-ingest script
- Operation type guidance
- Per-table pages now show Nullable alongside Required
- Add-column endpoint: nullability guidance