Skip to main content

Importing Presentation Profiles

Create and update presentation profiles in bulk by uploading a CSV file instead of configuring them manually in the UI.

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

Presentation Profile Name

String

Yes

Name of the profile. Maximum 100 characters.

SKU

String

Yes (if no Size)

External ID of a variant. The size is derived from the variant's size attribute. Case-insensitive.

Size

String

Yes (if no SKU)

A size option value (e.g., XS, M, XL). Must match an existing option value in Toolio.

Location

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.

Min

Integer

No

Minimum presentation units for this size/location. Must be a whole number of 0 or greater.

Max

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.

Minimum Presentation Weeks

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; 0 means the minimum is never enforced.

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_profile

  • presentation-profile

  • presentationprofile

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 Min or Max values for specific size/location combinations

  • Making 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

Presentation Profile Name is blank or missing

Name too long

Profile name exceeds 100 characters

Neither SKU nor Size provided

Both fields are blank

SKU not found

SKU does not match any variant External ID in Toolio

Size not found

Size does not match any size option value in Toolio

Size mismatch

Both SKU and Size were provided but resolve to different sizes

Location not found

Location does not match any location External ID or alias in Toolio

Invalid Min or Max

Value is not a whole number between 0 and 2147483647

Min greater than Max

Both values are present and Min exceeds Max

Invalid Min Weeks

Minimum Presentation Weeks is not a whole number between 0 and 2147483647

Profile-Level Errors

Error

Cause

Inconsistent store-level

Some rows in the profile have a Location, others do not

New mapping with partial Min/Max

Incremental mode: a row has only Min or only Max, and this size/location combination does not yet exist in Toolio

Partial update would invert range

Incremental mode: adding only Min or only Max to an existing mapping would result in Min > Max

New mapping carrying neither Min nor Max

A row sets no Min and no Max for a size/location combination that does not yet exist in Toolio -- including a row that sets only Minimum Presentation Weeks

Full Replace requires explicit Min and Max

Full Replace mode: a row is missing Min or Max

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.

Did this answer your question?