The presentation profile import lets you create and update presentation profiles in bulk by uploading a CSV file.
You can also create and edit profiles manually in Settings > Data Management > Presentation Profiles. See Presentation Profiles for an overview of how profiles work and how they are applied in allocation and assortment planning.
Use Cases
Use the import when:
Setting up profiles for the first time across many sizes and stores
Updating min/max values seasonally without editing each profile manually in the UI
Migrating presentation standards from an external system or spreadsheet
File Format
The column schema is fixed by Toolio -- only the fields listed below are recognized. Any additional columns in the import file are ignored.
Each row represents one size (and optionally one location) within a profile. Rows that share the same Presentation Profile Name are grouped and processed together as a single profile.
Supported Fields
Field | Type | Required | Purpose |
| String | Yes | Name of the profile. Maximum 100 characters. |
| String | Yes (if no Size) | External ID of a variant. The size is derived from the variant's size attribute. Case-insensitive. |
| String | Yes (if no SKU) | A size option value (e.g., |
| String | No | External ID of a store. When provided, the row is store-level. When absent, the row applies to all locations. All rows in a profile must be consistent -- see below. |
| Integer | No | Minimum presentation units for this size/location. Must be a whole number of 0 or greater. |
| Integer | No | Maximum presentation units for this size/location. Must be a whole number of 0 or greater, and not less than Min when both are provided. |
| Integer | No | How many weeks the minimum is enforced for in Assortment Plan receipt generation. Must be a whole number of 0 or greater. Leave it blank to inherit the value set on the cluster or the choice; |
At least one of SKU or Size is required on every row. If both are provided, they must resolve to the same size -- the importer validates this and rejects the row if they conflict.
❗ Minimum Presentation Weeks applies to Receipt Generation in Assortment Plan only. Setting it on a presentation profile has no effect on allocations — Allocation strategies enforce the presentation floor for the full strategy.
Minimum Presentation Weeks is optional in both import modes. A file that does not include the column leaves stored values untouched -- see Minimum Presentation Weeks in Receipt Generation for what the value does.
File Naming
The importer recognizes files whose name contains any of the following (case-insensitive):
presentation_profilepresentation-profilepresentationprofile
Examples: acme_presentation_profile_spring2026.csv, presentation-profile-q1.csv
Example
Presentation Profile Name | SKU | Size | Location | Min | Max | Minimum Presentation Weeks |
Standard Profile | JACKET-BLK-M | 2 | 4 | 8 | ||
Standard Profile | XL | 3 | 6 | 8 | ||
NYC Flagships | S | NYC-001 | 1 | 3 | ||
NYC Flagships | M | NYC-001 | 2 | 5 | 12 | |
NYC Flagships | L | NYC-001 | 2 | 5 | 0 |
In this file the two Standard Profile sizes hold their minimum for 8 weeks after launch. In NYC Flagships, size S inherits whatever window the cluster or choice sets, size M holds for 12 weeks, and size L never enforces its minimum at all.
[Screenshot: Example CSV open in a spreadsheet showing Presentation Profile Name, SKU, Size, Location, Min, Max, and Minimum Presentation Weeks columns with sample rows]
Import Modes
The presentation profile import supports two modes, selected when running the import: Incremental (the default) and Full Replace. The right mode depends on whether you want to update part of a profile or replace it entirely.
[Screenshot: Import dialog showing the mode selector with Incremental and Full Replace options]
Incremental
Incremental mode upserts rows -- each row is created if it does not exist or updated if it does. Rows not included in the file are left unchanged in Toolio.
Use Incremental when:
Adding new sizes or stores to an existing profile
Updating
MinorMaxvalues for specific size/location combinationsMaking targeted changes without affecting the rest of the profile
Partial updates: You can include only Min or only Max in a row to update a single value. This is only permitted on rows that already exist in Toolio -- a new mapping with only one of Min or Max is rejected. When updating one value, the result must not invert the range (e.g., updating Min to a value that exceeds the existing Max is rejected).
Updating only the window: A row can carry Minimum Presentation Weeks alone to change the window without touching Min or Max. Like the partial updates above, this is only permitted on a size/location combination that already exists in Toolio -- a row that sets a window on a size with no mapping is rejected, because there would be no minimum for the window to bound.
Full Replace
Full Replace overwrites the entire profile with the contents of the file. After import, any size/location combination that exists in the profile but does not appear in the file is zeroed out -- its Min and Max are set to 0.
Full Replace only affects profiles that appear in the file. A profile is rewritten -- and its missing sizes zeroed out -- only if the file contains at least one row for it. If a profile is left out of the file entirely, Toolio leaves it completely untouched: nothing is zeroed and nothing is updated. Full Replace is not a catalog-wide reset -- it replaces the profiles you include, not everything you don't. To clear out or refresh a profile with Full Replace, that profile must have at least one row in the file.
Use Full Replace when:
The uploaded file is the single source of truth for the profile
You want to ensure no stale sizes or stores carry over from a previous import
Both Min and Max are required on every row in a Full Replace import. Rows missing either value are rejected.
Minimum Presentation Weeks is not subject to that rule -- it stays optional in Full Replace. A row that omits it leaves the stored window exactly as it was, and a file with no Minimum Presentation Weeks column at all behaves identically to before the column existed. Zeroing out also leaves windows alone: a size dropped from a Full Replace file has its Min and Max set to 0, but its window is untouched.
Store-Level vs. System-Wide Profiles
Whether a profile is store-level or system-wide is determined by the presence of a Location value:
System-wide: No rows include a
Location. The profile applies to all stores.Store-level: Every row includes a
Location. The profile defines min/max per store.
All rows in a profile must be consistent -- mixing rows with and without a Location within the same profile name causes the entire profile to be rejected.
Errors and Skipped Profiles
Profiles are processed all or nothing. If any row in a profile is invalid, the entire profile is skipped and an error is reported for every affected row -- including rows that were individually valid but skipped because a sibling row failed.
Contradicting rows are rejected. If two rows in the file target the same size/location combination but disagree on any value -- Min, Max, or Minimum Presentation Weeks -- the profile is rejected rather than resolved by row order. A row that leaves a value blank counts as disagreeing with a sibling row that sets it.
Row-Level Errors
Error | Cause |
Name required |
|
Name too long | Profile name exceeds 100 characters |
Neither SKU nor Size provided | Both fields are blank |
SKU not found |
|
Size not found |
|
Size mismatch | Both |
Location not found |
|
Invalid Min or Max | Value is not a whole number between 0 and 2147483647 |
Min greater than Max | Both values are present and |
Invalid Min Weeks |
|
Profile-Level Errors
Error | Cause |
Inconsistent store-level | Some rows in the profile have a |
New mapping with partial Min/Max | Incremental mode: a row has only |
Partial update would invert range | Incremental mode: adding only |
New mapping carrying neither Min nor Max | A row sets no |
Full Replace requires explicit Min and Max | Full Replace mode: a row is missing |
FAQs
Does the import create new profiles or only update existing ones?
Both. If a profile name in the file does not yet exist in Toolio, the import creates it. If it already exists, rows are merged in (Incremental) or the profile is replaced entirely (Full Replace).
My file mixes rows with and without a Location for the same profile. What happens?
The entire profile is rejected. All rows for a profile must either all include a Location (store-level) or all omit it (system-wide). Mixing the two within one profile name is not supported.
I used Full Replace and a size in my file's profile still shows old values. Why?
Check whether that size/location combination was actually included as a row for that profile in the file. If it was left out, Full Replace zeroes it -- it sets Min and Max to 0, but it does not remove the size entry from the profile. If you need to remove a size entirely, edit the profile manually in the UI after import.
I left an entire profile or SKU out of my Full Replace file. Why does it still show old values instead of zeroing out?
Full Replace only rewrites profiles that appear in the file -- a profile needs at least one row in the file to be affected at all. Leaving a profile out entirely is not the same as clearing it: Toolio has no row to act on, so the profile's existing Min and Max values are left exactly as they were.
To zero out a profile, include at least one row for it (any size, any location). Every size not listed for that profile will then be zeroed, per the behavior described above.
Will my existing import files still work?
Yes. Minimum Presentation Weeks is optional in both modes, so a file written before the column existed imports exactly as it did before and leaves every stored window untouched.
What's the difference between leaving Minimum Presentation Weeks blank and setting it to 0?
Blank means the mapping inherits the window set on the cluster or the choice, and if none is set the minimum is enforced for the whole plan. 0 means the minimum is never enforced for that size/location combination, and it stops the inheritance -- Toolio will not fall back to a longer window set above it.
What SKU format should I use?
Use the External ID as it appears in your Product & Variant feed. SKU matching is case-insensitive.
Can I include multiple profiles in one file?
Yes. A single file can contain rows for any number of profiles. Each profile is identified by its name and processed independently -- an error in one profile does not affect others.
