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. |
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.
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 |
Standard Profile | JACKET-BLK-M | 2 | 4 | ||
Standard Profile | XL | 3 | 6 | ||
NYC Flagships | S | NYC-001 | 1 | 3 | |
NYC Flagships | M | NYC-001 | 2 | 5 | |
NYC Flagships | L | NYC-001 | 2 | 5 |
[Screenshot: Example CSV open in a spreadsheet showing Presentation Profile Name, SKU, Size, Location, Min, and Max 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).
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.
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.
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 of 0 or greater |
Min greater than Max | Both values are present and |
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 |
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.
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.