Bulk Upload
Background
This guide helps you efficiently manage your product catalog using CSV file uploads. The bulk upload feature allows you to quickly create, update, and organize products, variants, and categories at scale.
In this document, we outline how to:
Create and update different product types (Standard, Parent, and Variant) via CSV.
Create, update, and assign products to a custom category hierarchy.
Upload image files to reference as URLs in other bulk upload processes.
Build CSV templates for continual product updates.
Handle errors using automatic validation and troubleshooting tips.
By using this documentation, you can streamline catalog management, saving time while maintaining consistency across your product data.
Product Hierarchy
Product Types
In our catalog system, products are organized into three types:
Standard Products:
These are standalone products with no variations or parent relationships.
Example: A specific stapler model that doesn’t come in multiple configurations like size or color.
Parent Products:
This is the core product that serves as the base for all variants. It acts as a "master" item.
Example: A 2x4 Lumber product, which serves as the base for multiple variations like different lengths or wood types.
Variant Products:
These are specific configurations of the parent product that differ by attributes such as size, color, or material.
Example: 2x4x8' SPF Lumber and 2x4x10' SPF Lumber are variations of the parent 2x4 Lumber product.
Options and Values
Options
Options define the characteristics that can vary for a product, helping you create variants. Common options include:
Size
Color
Material
For example, if the Parent Product is a shirt, the options might be:
Option 1: Size (S, M, L, XL)
Option 2: Color (Red, Blue, Green)
Values
Values are the specific choices available for each option. By selecting values, you define a unique product variant.
Using the shirt example:
Option: Size → Values: S, M, L, XL
Option: Color → Values: Red, Blue, Green
How Options and Values Create Variants
The process of defining variants starts with a Parent Product, which acts as the base item without specific attributes. Options describe the dimensions where the product can differ, while Values define the actual variants.
Parent Product: A base product without specific attributes (e.g., a shirt without size or color defined).
Variant Product: Created by combining values from each option to form a unique configuration.
For example:
Parent Product: Shirt
Variant 1: Size = M, Color = Red → Medium Red Shirt
Variant 2: Size = L, Color = Blue → Large Blue Shirt
In your product catalog:
The Parent Product holds general information such as the name and description.
Variant Products inherit this information but are distinguished by their unique attributes (e.g., size, color).
Unlimited Variant Customization
Our platform offers unlimited flexibility when it comes to product configuration:
Unlimited Variants: You can create as many variants of a product as needed, allowing for any number of configurations.
Unlimited Options: Define as many product options (e.g., size, color, material) as required.
Unlimited Values: Each option can have unlimited values (e.g., Small, Medium, Large for size).
Additionally, you have full control over how these options and values are labeled and ordered in the product interface. This allows you to customize and organize your product variants to best suit your needs and display preferences.
Options and values for variant products can only be created but not updated via bulk upload. To make updates to options and values, you can update individual variants via the Products tab in Dealer Admin.
Category Hierarchy
Our catalog system uses a flexible structure to organize and display products. Here’s how the categories work:
Top-Level Categories:
These are the highest-level categories in your hierarchy. A top-level category can either display products directly (if it’s a leaf category) or contain other categories.Leaf Categories:
Leaf categories are where products are assigned. They can belong to multiple parent categories but cannot contain other categories. If you're placing products in your catalog, you’ll do so in a leaf category.Parent Categories:
Parent categories do not display products themselves. Instead, they organize and contain leaf categories, helping you structure your catalog logically.Intermediate Categories:
Intermediate categories exist between parent and leaf categories. Like parent categories, they don’t display products but help organize other categories for better navigation in larger catalogs.
Store-Specific vs. Catalog-Specific Attributes
When managing products, it’s important to understand the difference between catalog-specific and store-specific attributes. This distinction affects how products are created and updated across multiple store locations.
Catalog-Specific Attributes (Global)
Catalog-specific attributes apply to all stores and only need to be uploaded once to create or update a product across locations. These attributes include, but are not limited to:
ID: The unique identifier for the product in the catalog.
SKU: The stock-keeping unit that serves as the product’s unique code.
Name: The product name, which is shared across all locations.
Image URLs: The images associated with the product.
Categories: The product’s category or categories.
Description: A detailed description of the product.
Brand: The manufacturer or brand associated with the product.
Unit of Measure: The unit in which the product is measured (e.g., Each, Pack, Roll).
These attributes are global across the catalog and do not need to be re-uploaded for each individual store.
Store-Specific Attributes (Local)
Store-specific attributes are unique to each store and control how a product is presented at a particular location. These attributes include, but are not limited to:
Retail Price: The price of the product at that specific store.
Availability: The stock status for the product at the store (e.g., In Stock, Low Stock, Out of Stock).
Active on Storefront: Determines whether the product is visible and available for sale at the store.
Sale Price: Any discounted price specific to the store.
Lead Time: The time it takes to fulfill an order from the store.
To ensure a product is properly set up and available at a specific store, these store-specific attributes must be uploaded for each location where the product will be sold.
Why This Matters
Catalog-Specific (Global) Attributes: When creating a product that will appear across all locations, you only need to upload the global attributes (like SKU, name, description) once.
Store-Specific (Local) Attributes: To make the product available in specific stores, you must upload the local attributes (like price and availability) for each store. Without these store-specific details, the product won’t appear on the storefront of the respective location.
Uploading Products
Creating Standard Products
The bulk upload process begins with a CSV file containing the necessary product details. The file should include the following columns:
SKU (required): The unique identifier for each Standard Product.
Name (required): The product’s name.
Description (optional): A detailed description of the product.
Retail Price (required): The product’s retail price.
Sale Price (optional): If applicable, a discounted price for the product.
Brand (optional): The brand name for the product.
UPC (optional): The 12-digit code used to identify products across retailers.
Model Number (optional): The identifier assigned to distinguish a specific product or version.
Availability (required): Specifies the stock status and must be one of the following values:
In Stock
Low Stock
Out of Stock
Active on Storefront (optional): A boolean field indicating whether the product is visible in the store (True or False). If not provided, this value defaults to False.
Unit of Measure (optional): This can either be a custom unit or selected from our standard list:
Box, Bundle, Carton, Each, Foot, Bag, Square Foot, Board Foot, Pack, Piece, Roll, Sheet
Categories (required): You can assign a product to up to N categories. Use separate columns for each category (e.g., Category 1, Category 2, etc.).
Image URLs (optional): We support up to 7 image URLs. Each image should be placed in a separate column (e.g., Image URL 1, Image URL 2, etc.).
Make sure your product photos are no larger than 1250 x 1250 pixels and in .jpg or .png format. The total file size should be under 2MB.
Lead Time (optional): Specify if there's any lead time for the product.
Weight (optional): Set the weight of the product in pounds (lbs).
Store-Specific Product Creation
Bulk product creation is store-specific, meaning you must upload a file with the SKU, Retail Price, and Availability to instantiate each product at the target store. Non-store-specific attributes like product name, description, and brand only need to be uploaded once and don’t require updates at each store location.
Example: Creating a New Standard Product
SKU | Name | Image URL 1 | Image URL 2 | Image URL 3 | Image URL 4 | Category | Description | Brand | UPC | Model Number | Retail Price | Availability | Active on Storefront | Sale Price | Lead Time | Unit of Measure | Weight |
48111850 | M18 18-Volt 5.0 Ah Lithium-Ion XC Extended Capacity Battery Pack | https://toolbx-product-catalog.s3.amazonaws.com/demo/catalog-... | Power Tools & Accessories | The Milwaukee M18 REDLITHIUM XC 5.0 Ah Battery Pack offers 2.5X more runtime, 20% more power, and 2X more recharges than standard lithium-ion batteries. It features advanced construction... | Milwaukee | 16573637262144 | 4627 | 159 | Low Stock | TRUE | 150 | each | 2.8 |
You can download the above CSV template here
Updating Standard Products
To update existing products, you need to include only the SKU field, which is required to identify the product being updated. You can include any combination of fields you wish to update. The following fields are supported:
SKU (required): The unique identifier for the product.
Name (optional): The product’s name.
Retail Price (optional): The updated retail price.
Sale Price (optional): The discounted price, if applicable.
Image URLs (optional): Up to 7 image URLs. Each URL should be placed in a separate column (e.g., Image URL 1, Image URL 2, etc.).
Make sure your product photos are no larger than 1250 x 1250 pixels and in .jpg or .png format. The total file size should be under 2MB.
Category (optional): Assign the product to up to N categories. Use separate columns for each category (e.g., Category 1, Category 2, etc.).
Description (optional): Update the product description.
Brand (optional): The brand name.
UPC (optional): The 12-digit code used to identify products across retailers.
Model Number (optional): The identifier assigned to distinguish a specific product or version.
Availability (optional): Specify the stock status as one of the following:
In Stock
Low Stock
Out of Stock
Active on Storefront (optional): A boolean field indicating whether the product is active (True or False).
Lead Time (optional): Specify any lead time for the product.
Unit of Measure (optional): Can be custom-defined or selected from our standard list:
[Box, Bundle, Carton, Each, Foot, Bag, Square Foot, Board Foot, Pack, Piece, Roll, Sheet]
Weight (optional): Set the weight of the product in pounds (lbs).
Store-Specific Updates
Updates are applied on a store-specific basis. This means that fields like Retail Price, Availability, and Lead Time must be updated individually for each store to ensure they display correctly on the respective storefront.
Updating SKU’s
If you need to update the SKU itself, you can do so by referencing the ID of the product, which is available through the Bulk Download feature in the products tab.
In this case, the system will update the SKU for the corresponding product based on its ID.
Example: Updating Standard Product Pricing & Availability
SKU | Retail Price | Availability |
1000145437 | 34.26 | In Stock |
123459876 | 14.35 | Low Stock |
123 | 1.11 | Low Stock |
4416DF | 39.77 | In Stock |
14FL-12 | 27.85 | In Stock |
You can download the above CSV template here
Error Handling & Validation for Standard Products
When uploading products via CSV, the system performs automatic checks to ensure the data is valid. If any issues are found, an error log will be generated for you to review and correct. Here are the common error types and how to resolve them:
1. Required Fields
Issue: Some fields must be filled in for each product, such as SKU, Name, and Retail Price. If these are missing, the product cannot be created.
Fields: SKU, Name, Retail Price
Resolution: Ensure the required fields are populated in your CSV.
Example Errors:
"SKU is required"
"Name is required"
"Retail Price cannot be empty"
2. Spaces in Fields
Issue: Some fields, like SKU, cannot contain spaces.
Field: SKU
Resolution: Ensure that SKU values do not contain any spaces.
Example Error:
"SKU cannot contain blank spaces"
3. Invalid or Zero Prices
Issue: The Retail Price field must contain a valid, non-zero numeric value.
Field: Retail Price
Resolution: Ensure that the price is a positive number and not set to zero.
Example Error:
"Retail Price must be a numerical value greater than 0"
4. Optional Fields Handling
Some fields, like descriptions, categories, and images, are optional, but if included, they must meet validation rules (e.g., valid URLs for images).
Resolution: For optional fields, make sure to enter the correct formats (e.g., for image URLs) if values are provided.
Creating Variant Products
Variant products are specific configurations of a parent product that differ by key attributes such as size, color, or material. Before creating variants, it is necessary to create a Parent Product and define the relevant Options and Values that will generate the variants.
To create variant products, follow these steps:
Create a Parent Product: Begin by defining a base item (e.g., a shirt) without any specific attributes (such as size or color).
Define Options and Values: Options describe the characteristics in which the product may vary, and values specify the choices available for each option.
Example:Option 1: Size - Values: Small, Medium, Large
Option 2: Color - Values: Red, Blue, Green
In this case, each combination of size and color will result in a unique variant of the parent product.
Create Variants: The platform automatically generates all possible combinations of the defined options and values. For instance:
Parent Product: Shirt
Variant 1: Size = Medium, Color = Red → Medium Red Shirt
Variant 2: Size = Large, Color = Blue → Large Blue Shirt
Fields for Variant Products
When creating or updating variant products via bulk upload, the following fields can be included. Each field specifies whether it is required or optional. Note that Options and Values are enumerated fields, allowing for as many as needed (e.g., Option 1, Option 1 Value, Option 2, Option 2 Value, etc.).
SKU (required): The SKU of the parent product that these variants are based on.
Variant SKU (required): The unique SKU for each variant.
Variant UPC (optional): The 12-digit code for the variant, used to identify products across retailers.
Variant Model Number (optional): The identifier assigned to distinguish a specific product or model for the variant.
Variant Name (required): The name of the variant, often reflecting its specific combination of options and values (e.g., "Medium Red Shirt").
Option 1 (required): The first option that defines the variant (e.g., "Size").
Option 1 Value (required): The selected value for Option 1 (e.g., "Medium").
Option 2, Option 2 Value (optional): Add additional options and values as needed. Continue this pattern for as many options and values as necessary (e.g., Option 3, Option 3 Value).
Example:Option 1: Size → Option 1 Value: Medium
Option 2: Color → Option 2 Value: Red
Variant Retail Price (optional): Set a unique price for the variant, distinct from the parent product’s price.
Variant Sale Price (optional): If the variant is on sale, specify the discounted price.
Variant Description (optional): Add a description specific to the variant, or inherit the description from the parent product.
Variant Image URL 1, Variant Image URL 2, … (optional): You can provide up to 7 image URLs specifically for the variant, allowing you to showcase the distinct features of each variant.
Make sure your product photos are no larger than 1250 x 1250 pixels and in .jpg or .png format. The total file size should be under 2MB.
Variant Lead Time (optional): Specify the lead time for the variant if it differs from the parent product.
Variant Availability (optional): Define the stock status for the variant. The values can be:
In Stock
Low Stock
Out of Stock
Variant Active on Storefront (optional): A boolean field that controls whether the variant is visible and available for purchase in the store (True or False).
This value will default to False, if not provided.
Variant Unit of Measure (optional): Indicate the unit in which the variant is sold (e.g., Each, Pack, Roll). You can either use a custom unit or select from the standard list:
[Box, Bundle, Carton, Each, Foot, Bag, Square Foot, Board Foot, Pack, Piece, Roll, Sheet]
Variant Weight (optional): Set the weight of the variant in pounds (lbs).
Store-Specific Variant Product Creation
Bulk variant product creation is store-specific, meaning you must upload a file with the Variant SKU, Retail Price, and Availability (defaults to false) for each product to instantiate it at the target store. Non-store-specific attributes like product name, description, and brand only need to be uploaded once and don’t require updates at each store location.
Example: Creating New Variant Products
SKU | Name | Image URL 1 | Image URL 2 | Image URL 3 | Image URL 4 | Category 1 | Description | Brand | Retail Price | Availability | Active on Storefront | Sale Price | Lead Time | Unit of Measure | Option 1 | Value 1 | Option 2 | Value 2 | Option 3 | Value 3 | Variant SKU | Variant UPC | Variant Model Number | Variant Name | Variant Image URL 1 | Variant Image URL 2 | Variant Image URL 3 | Variant Image URL 4 | Variant Description | Variant Retail Price | Variant Availability | Variant Active on Storefront | Variant Sale Price | Variant Lead Time | Variant Unit of Measure | Variant Weight |
HLSWS | HeadLOK Structural Wood Screws | Screws | Core product for HeadLOK variants. | FastenMaster | Package Quantity | 1 | Size | 3/8" | Screw Length | 4-1/2" | HLSWS-1-38-4-12 | 374859281627 | 47625 | HeadLOK Structural Wood Screws – 3/8" x 4-1/2" (Single) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-1-38-4-12.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-1-38-4-12.jpg | FastenMaster HeadLOK is a versatile, heavy-duty wood screw with an internal drive... | 1.97 | In Stock | TRUE | each | 0.05 | ||||||||||||||
1 | 3/8" | 6" | HLSWS-1-38-6 | 374859281628 | 47527 | HeadLOK Structural Wood Screws – 3/8" x 6" (Single) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-1-38-6.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-1-38-6.jpg | The 6" HeadLOK flat head fastener is a heavy-duty wood screw with no predrilling... | 2.47 | In Stock | TRUE | each | 0.08 | ||||||||||||||||||||||
1 | 3/8" | 8" | HLSWS-1-38-8 | 374859281623 | 47668 | HeadLOK Structural Wood Screws – 3/8" x 8" (Single) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-1-38-8.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-1-38-8.jpg | The 3/8" x 8" FastenMaster HeadLOK is a heavy-duty wood screw... | 2.97 | Low Stock | TRUE | each | 0.11 | ||||||||||||||||||||||
12 | 3/8" | 2-7/8" | HLSWS-12-38-2-78 | 374859281643 | 47602 | HeadLOK Structural Wood Screws – 3/8" x 2-7/8" (12-pack) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-12-38-2-78.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-12-38-2-78.jpg | HeadLOK Structural Wood Screws – 3/8" x 2-7/8" (12-pack) | 16.47 | In Stock | TRUE | pack | 1.08 | ||||||||||||||||||||||
12 | 3/8" | 4-1/2" | HLSWS-12-38-4-12 | 374859281890 | 47745 | HeadLOK Structural Wood Screws – 3/8" x 4-1/2" (12-pack) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-12-38-4-12.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-12-38-4-12.jpg | HeadLOK Structural Wood Screws – 3/8" x 4-1/2" (12-pack) | 19.97 | Low Stock | TRUE | pack | 1.24 | ||||||||||||||||||||||
12 | 3/8" | 10" | HLSWS-12-38-10 | 374859281608 | 47704 | HeadLOK Structural Wood Screws – 3/8" x 10" (12-pack) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-12-38-10.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-12-38-10.jpg | The 10" x 3/8" FastenMaster HeadLOK is a heavy-duty wood screw with an internal drive and flat head... | 30.97 | In Stock | TRUE | pack | 1.32 | ||||||||||||||||||||||
50 | 3/8" | 4-1/2" | HLSWS-50-38-4-12 | 374859281891 | 47611 | HeadLOK Structural Wood Screws – 3/8" x 4-1/2" (50-pack) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-50-38-4-12.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-50-38-4-12.jpg | FastenMaster HeadLOK is a heavy-duty wood screw with an internal drive and flat head... | 41.97 | In Stock | TRUE | 38 | pack | 1.6 | |||||||||||||||||||||
50 | #9 | 10" | HLSWS-50-9-10 | 374859281662 | 47623 | HeadLOK Structural Wood Screws – #9 x 10" (50-pack) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-50-9-10.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-50-9-10.jpg | The HeadLOK flat head fastener is a heavy-duty structural wood... | 57.47 | In Stock | TRUE | 50 | pack | 2.8 | |||||||||||||||||||||
250 | 3/16" | 10" | HLSWS-250-316-10 | 374859281599 | 47698 | HeadLOK Structural Wood Screws – 3/16" x 10" (250-pack) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-250-316-10.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-250-316-10.jpg | HeadLOK Structural Wood Screws – 3/16" x 10" (250-pack) | 200 | Out of Stock | TRUE | pack | |||||||||||||||||||||||
250 | 3/16" | 12" | HLSWS-250-316-12 | 374859281123 | 47667 | HeadLOK Structural Wood Screws – 3/16" x 12" (250-pack) | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-250-316-12.jpg | https://toolbx-product-catalog.s3.amazonaws.com/HLSWS-250-316-12.jpg | HeadLOK is a heavy-duty wood screw with an internal drive and flat head, offering higher... | 215 | Out of Stock | FALSE | pack |
You can download the above CSV template here
Updating Variant Products
Updating variant products via bulk upload allows you to make changes to existing variant attributes quickly and efficiently. Similar to Standard Products, you only need to provide the Variant SKU to identify the variant and update its fields. We recommend including only the columns you want to update, but it is not strictly required.
To update existing variants, follow these steps:
Identify the Variant SKU: The SKU is the unique identifier for each variant. This is the only required field when making updates. The system will locate the variant using this SKU and apply any changes specified in your upload file.
Specify Fields to Update: You can include any combination of fields that you wish to update. The system will only update the fields included in your CSV file, leaving all other fields unchanged. If you need to update a variant's SKU, you must reference the variant by its ID, which is available in the bulk download file.
Example of Fields You Can Update:Variant UPC (optional): The 12-digit code for the variant, used to identify products across retailers.
Variant Model Number (optional): The identifier assigned to distinguish a specific product or model for the variant.
Variant Retail Price (optional): Update the price for this specific variant.
Variant Availability (optional): Change the stock status for the variant (e.g., In Stock, Low Stock, Out of Stock).
Variant Lead Time (optional): Specify any lead time changes for this variant.
Variant Image URLs (optional): Replace or add new image URLs for the variant.
Variant Active on Storefront (optional): Set whether the variant is visible and available for purchase (True or False).
Options and values for variant products can only be created but not updated via bulk upload. To make updates to options and values, you can update individual variants via the Products tab in Dealer Admin.
Updating Variant SKUs
If you need to update a variant's SKU itself, you must use the ID of the variant. This can be found in the bulk download file under the products tab. The system will locate the variant using the ID and update the SKU accordingly.
Example: Updating Variant Product Prices and Availability
Variant SKU | Variant Retail Price | Variant Availability | Variant Active on Storefront |
1000014660 | 2.23 | In Stock | TRUE |
1000014661 | 2.79 | In Stock | TRUE |
1003289812 | 3.36 | In Stock | TRUE |
341511 | 18.61 | In Stock | TRUE |
517046 | 22.57 | In Stock | FALSE |
1003297540 | 35.00 | In Stock | TRUE |
519367 | 47.43 | In Stock | FALSE |
1003289808 | 64.94 | In Stock | TRUE |
1000018233 | 226.00 | In Stock | TRUE |
1000018235 | 242.95 | In Stock | TRUE |
You can download the above CSV template here
Error Handling & Validation for Variant Products
When updating or creating variant products via bulk upload, the system automatically checks for errors and validates the data to ensure consistency. If any issues arise, an error log is generated, allowing you to correct errors and resubmit. Below are the common errors and their resolutions when working with variant products.
Common Errors:
Missing or Invalid Variant SKU
Issue: The Variant SKU is missing
Field: Variant SKU
Resolution: Each variant requires a unique SKU. Ensure this field is included and formatted correctly in your CSV file.
Example Errors:
"Variant SKU is required"
"Variant SKU cannot contain special characters or spaces"
Missing Variant Name
Issue: The Variant Name is missing while attempting to create or update a variant.
Field: Variant Name
Resolution: Ensure that each variant has a defined name, especially when creating a new variant.
Example Error:
"Cannot create variant without a name"
Duplicate Variant SKU
Issue: The Variant SKU already exists in the system.
Field: Variant SKU
Resolution: Make sure each variant has a unique SKU. If updating, use the ID to identify the variant, rather than duplicating an existing SKU.
Example Error:
"Variant already exists with SKU: [Variant SKU]"
Invalid or Zero Prices
Issue: The Variant Retail Price or Variant Sale Price is either missing or set to an invalid (non-numeric) or zero value.
Fields: Variant Retail Price, Variant Sale Price
Resolution: Ensure that prices are valid numeric values greater than zero. If specifying a Sale Price, ensure a corresponding Retail Price exists.
Example Errors:
"Retail Price must be a numerical value greater than 0"
"Cannot set on-sale price if retail price is not defined"
Invalid Variant Stock Status
Issue: The stock status is not a valid value or is missing.
Field: Variant Availability
Resolution: Make sure the stock status is set to one of the acceptable values: In Stock, Low Stock, or Out of Stock.
Example Error:
"Unable to parse Availability with value '[Provided Value]' as valid stock status"
Required Fields Missing
Issue: Required fields, such as Variant SKU, Name, or Variant Retail Price, are missing.
Field: Various
Resolution: Ensure that all required fields are included for each variant in your CSV file.
Example Errors:
"Variant SKU is required"
"Variant Name is required"
"Variant Retail Price cannot be empty"
Optional Fields Handling
While some fields are optional, if they are included in the CSV file, they must meet the required validation rules.
Variant Image URLs: If you provide URLs for variant images, ensure they are valid and correctly formatted.
Lead Time: Ensure the lead time is provided as a positive numeric value.
Example Error:"Lead Time must be a numerical value greater than 0"
Deleting Standard and Variant Products
Deleting products and variants via bulk upload allows you to permanently delete existing products and variants quickly and efficiently. Once an item is deleted, it will be removed from both the storefront across all locations, as well as your catalogue within Dealer Admin.
To delete existing products from the catalog, you need to include only the SKU field or Variant SKU field, which is required to identify the product or variant being updated.
For Products the following fields are required:
SKU (required): The unique identifier for the product.
Delete: Define whether to delete a product or variant. The values can be:
True
False
For Variants the following fields are required:
Variant SKU (required): The unique SKU for each variant.
Delete: Define whether to delete a product or variant. The values can be:
True
False
Example: Deleting Products and Variants
SKU | Variant SKU | Delete |
2347324723 | TRUE | |
654234 | TRUE |
You can download the above CSV template here
Error Handling & Validation for Deleting Products
When deleting products via bulk upload, the system automatically checks for errors and validates the data to ensure consistency. If any issues arise, an error log is generated, allowing you to correct errors and resubmit. Below are the common errors and their resolutions when bulk deleting products.
Common Errors:
Missing or Invalid SKU
Issue: The SKU is missing
Field: SKU
Resolution: Each product requires a unique SKU. Ensure this field is included and formatted correctly in your CSV file.
Missing or Invalid Variant SKU
Issue: The Variant SKU is missing
Field: Variant SKU
Resolution: Each variant requires a unique SKU. Ensure this field is included and formatted correctly in your CSV file.
Updating Vendor-Configured Standard Products and Variants via Bulk Upload
Standard and variant products linked to an integrated vendor can be updated via bulk upload. Users can adjust the Product Margin to modify the percentage, overriding the vendor-provided margin.
When updating products and variants, bulk upload allows quick and efficient changes to existing attributes. Similar to non-vendor-integrated products, you only need to provide the Product or Variant SKU to identify the product and update its Margin field efficiently.
Example: Updating Standard Product Margin
SKU | Margin |
1000145437 | 0.120 |
123459876 | 0.060 |
123 | 0.500 |
4416DF | 0.340 |
14FL-12 | 0.770 |
1011000721 | 0.240 |
1239087654 | 0.150 |
FDW8203-U | 0.250 |
12DU-32X5 | 0.430 |
1011000721-004 | 0.260 |
12PL-12 | 0.400 |
23APL | 0.123 |
12PL54-08 | 0.625 |
16841321 | 0.733 |
1000794018 | 0.345 |
1000109800 | 0.100 |
1000423485 | 0.240 |
You can download the above CSV template here
Example: Updating Variant Product Margin
Variant SKU | Variant Margin |
1000014660 | 0.10 |
1000014661 | 0.12 |
1003289812 | 0.11 |
341511 | 0.03 |
517046 | 0.13 |
1003297540 | 0.15 |
519367 | 0.23 |
1003289808 | 0.08 |
1000018233 | 0.15 |
1000018235 | 0.25 |
You can download the above CSV template here
Error Handling and Validation for Vendor-Integrated Products
When updating vendor-integrated products and variants via bulk upload, the system automatically checks for errors and validates the data like it does with all products. If any issues arise, an error log is generated, allowing you to correct errors and resubmit. Below are the common errors and their resolutions when working with vendor configured products.
Common Errors:
Updating the Retail Price for vendor integrated products.
Issue: The user attempts to update the Retail Price for vendor integrated products.
Fields:
Retail Price
Variant Retail Price
Resolution: For vendor integrated products and variants the retail price cannot be updated.
Example Errors:
“Retail Price not allowed on product with vendor cost. Please set a Margin instead”
Updating the Product Margin for non-vendor integrated parent products and variants.
Issue: The user attempts to update the Product Margin when the product is not integrated with a vendor.
Fields:
Margin
Variant Margin
Resolution: For non-vendor integrated products and variants there is no Product Margin field available, and therefore this cannot be updated through bulk upload.
Example Errors:
“Margin not allowed on product without vendor cost. Please set a Retail Price instead”
Updating the Product Margin for both parent product and variants.
Issue: The user attempts to update the Product Margin for both the parent product and its variants.
Fields:
Margin
Variant Margin
Resolution: For vendor integrated parent products and variants, only the ‘Variant Margin’ field should be populated with a value.
Example Errors:
"Incorrect format - please refer to the format of the example CSV"
Product Margin is entered as a value below 0
Issue: The user attempts to update the Product Margin as a value below 0.
Fields:
Margin
Variant Margin
Resolution: For vendor integrated products and variants the product margin must be a positive value greater than or equal to 0.
Example Errors:
"Margin must be a numerical value greater than or equal to zero"
Uploading Categories
Creating Categories
Categories form the structure of your catalog, helping to organize and display products effectively. Each category can have a hierarchical relationship, where categories can belong to parent categories, allowing for structured navigation.
Category Hierarchy: Categories can belong to other categories, forming a parent-child relationship. You need to define the Parent Category (if applicable) to establish this hierarchy. Leaf categories are where products are assigned, while parent and intermediate categories are used for structuring the catalog.
Unlimited Parent Categories: A category can belong to an unlimited number of parent categories. Enumerate these fields in the CSV as Parent Category Name 1, Parent Category Name 2, etc.
Required Fields:
Category Name (required): The unique name of the category.
Parent Category Name (optional): Specify the parent category for hierarchical structuring. If the category is a top-level category, this field can be left blank.
Category Image URL (optional): An image URL that represents the category.
Your category photos should be no bigger than 816 x 816 pixels and in .jpg or .png format. The file size should be under 2MB.
Active (optional): Specify whether the category is active and available for product assignment (True or False).
Example: Creating Categories
Category Name | Category Image URL | Parent Category Name | Active |
Hardware | TRUE | ||
Lumber | TRUE | ||
Rental | TRUE | ||
Ladders | Rental | TRUE | |
Generators | Rental | TRUE | |
Framing Lumber | Lumber | TRUE | |
Engineered Lumber | Lumber | TRUE | |
Plywood and OSB | Lumber | TRUE | |
Nails | Hardware | TRUE | |
Screws | Hardware | FALSE | |
2x4 SPF | Framing Lumber | TRUE | |
2x6 SPF | Framing Lumber | TRUE | |
2x8 SPF | Framing Lumber | TRUE | |
TJI | Engineered Lumber | TRUE | |
LVL | Engineered Lumber | TRUE | |
Drywall Screws | Screws | FALSE | |
Gold Construction Screws | Screws | FALSE | |
Self-Tapping Screws | Screws | FALSE |
You can download the above CSV template here
Updating Categories
Updating categories via bulk upload allows you to make changes to existing categories, such as modifying names, descriptions, images, or adjusting their parent-child relationships. You only need to include the fields you want to update, but when changing the Category Name, you must reference the ID.
Identifying Categories:
Category Name: This field is required if you are only updating attributes like category image or parent category.
Category ID (required if updating Category Name): If you need to change a category’s name, you must reference it by its ID, which is available via the bulk download file.
Fields for Updating Categories:
Category Name (required): The current or new name of the category.
Category ID (required if updating Category Name): The unique identifier of the category, is necessary if the name is being changed.
Parent Category Name (optional): You can update the category’s parent by specifying one or more parent categories, such as Parent Category Name 1, Parent Category Name 2, etc.
Category Image URL (optional): Update or replace the image URL representing the category.
Your category photos should be no bigger than 816 x 816 pixels and in .jpg or .png format. The file size should be under 2MB.
Active (optional): Set whether the category is active and available for product assignment (True or False).
Example: Updating Category Names and Images
ID | Category Name | Category Image URL |
00068fee-69aa-4207-8547-98133d99dea7 | Ladders | |
00101c26-716e-4c44-8ee3-d0c313b8d1b7 | Lumber - SPF | |
b330c882-8640-4184-92b4-42fc4b7abb30 | Screws |
You can download the above CSV template here
Error Handling and Validation for Categories
When uploading or updating categories, the system performs automatic validation to ensure data consistency and correctness. If any issues arise, they are captured in an error log, helping you troubleshoot and correct mistakes. Below are common errors and their resolutions when working with categories.
Common Errors:
Category Name Empty
Issue: The category name is missing in the CSV file.
Field: Category Name
Resolution: Ensure that each category has a valid name entered in the CSV file.
Example Error:
"Category name empty"
Duplicate Category Names in CSV
Issue: The same category name is used more than once in the CSV file.
Field: Category Name
Resolution: Each category name must be unique within the CSV. Remove duplicates and ensure each category has a distinct name.
Example Error:
"Duplicate category names provided in CSV"
Category Name Already Exists in Database
Issue: The category name provided in the CSV already exists in the system's database.
Field: Category Name
Resolution: Use a different category name or update the existing category instead of trying to create a new one with the same name.
Example Error:
"Category name already exists in the database"
Category Name Does Not Exist
Issue: The category name referenced for an update does not exist in the database.
Field: Category Name
Resolution: Ensure that the category name exists in the system before attempting to update it.
Example Error:
"Category name does not exist"
Category ID Does Not Exist
Issue: The specified category ID in the CSV file does not exist in the system.
Field: Category ID
Resolution: Verify that the correct category ID is used, which can be obtained from the system via the bulk download feature.
Example Error:
"Category ID does not exist"
Invalid Category Image URL
Issue: The provided image URL for the category is not valid.
Field: Category Image URL
Resolution: Ensure the image URL is correctly formatted and points to a valid image.
Example Error:
"Category image URL invalid"
Parent Category Does Not Exist
Issue: The specified parent category name in the CSV file does not exist in the system.
Field: Parent Category
Resolution: Ensure that the parent category exists or create the parent category before referencing it.
Example Error:
"Parent category does not exist"
Loop Detected in Category Hierarchy
Issue: A loop is detected in the category hierarchy, where a category is inadvertently set as its own ancestor.
Field: Category Hierarchy
Resolution: Check the parent-child relationships in the CSV to ensure no category is linked to itself, either directly or indirectly.
Example Error:
"Loop detected in category hierarchy"
Parent Category Contains Products
Issue: The parent category you are trying to update has products assigned to it, but it is being made a non-leaf category.
Field: Parent Category
Resolution: A parent category that contains products cannot be converted to a non-leaf category. Either remove the products or choose a different category structure.
Example Error:
"Parent category cannot be made a non-leaf category because it contains products"
Error Logs and Troubleshooting
If errors are detected during the upload or update process, they are recorded in an error log, accessible via Admin > Reports > Bulk Upload History. Each log entry corresponds to a row in your CSV file, providing clear details on the issue and how to resolve it.
Uploading Image Files
We’ve simplified the process of uploading image files, allowing you to save them and retrieve URL strings for easy use in both bulk product and category uploads.
To upload images:
Go to either the Products or Categories page.
Click on Bulk Update > Upload Images.
Select the files from your local machine and follow the on-screen instructions.
Once the upload is complete, you’ll receive a CSV file containing URLs that link to your newly-hosted image files. The max supported file size is 4 mb each.
Note: We strongly recommend including the SKU number in each file name before uploading. This will make it easier to match the image URLs with the correct products or categories in your bulk uploads.
Error Handling and Validation
File Type Validation:
If you upload a file that isn’t a supported type (like .jpg or .png), you’ll see this message:
"Oops! This file type isn’t supported. Please upload a valid image (e.g., .jpg, .png)."
File Size Validation:
If the file is too large (over 5MB), you’ll get this message:
"This file is too big! Please upload an image smaller than 5MB."
Duplicate File Handling:
If you’ve already uploaded this file, you’ll see this notice:
"Looks like you’ve already uploaded this image. Please choose a different file."
Validation for Image Dimensions:
If the image size doesn’t fit our requirements, we’ll show you this message:
"Your image doesn’t meet the required size. Please upload an image with the correct dimensions."
Example Output File
Error Logs and Troubleshooting for Image File Upload
After you upload your CSV or image file, the system will generate an error log if any issues are detected (or a confirmation file if the upload is successful). You can download the log to see what went wrong, fix the errors, and try uploading again.
Go to Dealer Admin > Reports > Bulk Upload History to access your logs.
Log Format: Each entry in the log matches a row in your CSV and includes a clear message explaining what needs to be corrected.
Bulk CSV Downloads
To support ID-based uploads and enhance the visualization of your catalog data, you can bulk download store-specific product data in CSV format.
This feature is available for both products and categories. Access it by clicking the Bulk Download button located at the top right corner of their respective screens.
The bulk download files are comprehensive, including all active and inactive products as rows and their attributes as columns.
Example Product Download File
ID | SKU | Name | Image URL 1 | Image URL 2 | Image URL 3 | Image URL 4 | Category 1 | Description | Brand | Retail Price | Availability | Active on Storefront | Sale Price | Lead Time | Unit of Measure | Option 1 | Value 1 | Option 2 | Value 2 | Option 3 | Value 3 | Option 4 | Value 4 | Variant ID | Variant SKU | Variant Name | Variant Image URL 1 | Variant Image URL 2 | Variant Image URL 3 | Variant Image URL 4 | Variant Image URL 5 | Variant Description | Variant Retail Price | Variant Availability | Variant Active on Storefront | Variant Sale Price | Variant Lead Time | Variant Unit of Measure |
4e2c1b4b-3104-42b4-a1ec-bde2234abc35 | 12DS-32X5 | 32" x 5 x 1/2" DensShield | Paperless Drywall | The first backer board with a built-in moisture barrier... | 20.72 | TRUE | ea | |||||||||||||||||||||||||||||||
7007a457-06d9-4167-b04d-e0ad83b0679e | 12DU-32X5 | 32" x 5 x 1/2" Durock Cement Board | Cement Board | Easy to cut and fasten | 22.37 | In Stock | TRUE | ea | ||||||||||||||||||||||||||||||
3a60e1d8-28c3-4efd-8b02-1ef3bebc73f5 | 12MT-09 | 4 x 9 x 1/2" Mold Tough Drywall | Specialty Drywall Boards | The industry's first and only lightweight 12.7 mm (1/2 in.) moisture- and mould-resistant gypsum panels | 26.24 | TRUE | ea | |||||||||||||||||||||||||||||||
3974d169-b115-498a-9dcc-d844bf6aa1aa | 14FL-08 | 4 x 8 x 1/4" Flexible Drywall | Specialty Drywall Boards | Flexible 6.4 mm (1/4 in.) panels for curved walls, archways and staircases | 16.8 | TRUE | ea | |||||||||||||||||||||||||||||||
97f123df-9b0e-46f2-a23f-f2936f28018c | 16DC | Dust Control Drywall Compound, 12 L | Compound and Finishing | Less airborne dust for faster clean-updust binds together and falls to the ground... | 26.27 | TRUE | ea | |||||||||||||||||||||||||||||||
f7713875-0091-437c-9559-f8afd689ac4a | 24SPF | 2x4 SPF Lumber | https://toolbx-product-catalog.s3.amazonaws.com/p_1000112108.jpg | 2x4 SPF | ### Product Overview... | Length (ft) | 8' | f7a0961e-16ad-426c-8fc3-c2c21e1b107a | 1000112108 | 2x4x8' SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1000112108.jpg | 9 | In Stock | TRUE | 8.85 | ea | ||||||||||||||||||||||
22 | 8ad86274-3944-4a0b-aa88-ce0d86c7d242 | 2422ERP | 2x4x22 SPF Lumber | 2x4x22 SPF... | 10 | Low Stock | TRUE | ea | ||||||||||||||||||||||||||||||
104-5/8" | 6dadd302-0a09-4775-9e85-d3b858ee1d34 | 1000427064 | 2x4x104-5/8" SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1000427064.jpg | SPF Square Edge Lumber. Every piece meets the highest grading standards for strength and appearance. Dimensional lumber is ideal for a wide range of structural and non-structural applications including framing of houses, barns, sheds, and... | 10.48 | In Stock | TRUE | 1 | ea | ||||||||||||||||||||||||||||
92-5/8" | eab278be-a86d-49e0-832b-4fa1fff51272 | 1000112105 | 2x4x92-5/8" SPF | https://toolbx-product-catalog.s3.amazonaws.com/1571159579338 | Natural and ecological product. To be used for the framing of your construction and renovation project. Easy to handle, cut and nail. | 8.23 | In Stock | TRUE | 5 | ea | ||||||||||||||||||||||||||||
14' | f9782a22-a302-4b14-8e4f-5da4377adeeb | 1000168071 | 2x4x14' SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1000168071.jpg | SPF Square Edge Lumber. Every piece meets the highest grading standards for strength and appearance. Dimensional lumber is ideal for a wide range of structural and nonstructural applications incl... | 18.91 | In Stock | TRUE | ea | |||||||||||||||||||||||||||||
92-1/4" | 685e032f-ef2b-4de0-941c-6247a4130503 | 1000733145 | 2x4x92-1/4" SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1724229721940.jpg | This dimensional pre-cut stud is ideal for a wide range of structural and non-structural applications. It is sustainably harvested and is certified with the PEFC chain of custody... | 4.23 | In Stock | TRUE | 2 | ea | ||||||||||||||||||||||||||||
16' | 7b70786f-1454-4b9a-9d11-bd5882b231dc | 1000112108-2 | 2x4x16' SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1000112108.jpg | 10.99 | Low Stock | TRUE | ea | ||||||||||||||||||||||||||||||
12' | 379804fb-7c75-4820-88c7-d92077593c3f | 1000112108-1 | 2x4x12' SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1000112108.jpg | 8 | In Stock | TRUE | 7.55 | ea | |||||||||||||||||||||||||||||
10' | 92da3e21-3e3b-4a16-9e89-0760fd5c3bcd | 1000100158 | 2x4x10' SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1000100158.jpg | SPF Square Edge Lumber. Every piece meets the highest grading standards for strength and appearance. Dimensional lumber is ideal for a wide range... | 12.99 | In Stock | TRUE | ea | |||||||||||||||||||||||||||||
20' | 0b818164-b6e0-40ba-99f5-b5d65c3bbee8 | 1000112108-3 | 2x4x20' SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1000112108.jpg | 16.98 | In Stock | TRUE | ea | ||||||||||||||||||||||||||||||
104-1/4" | e24248ec-74cf-4960-a57f-608b31b58be9 | 1000733053 | 2x4x104-1/4" SPF | https://toolbx-product-catalog.s3.amazonaws.com/p_1000112108.jpg | This dimensional pre-cut stud is ideal for a wide range of structural and non-structura... | 6.98 | In Stock | TRUE | ea | |||||||||||||||||||||||||||||
ec4c19f8-c5ae-4d41-81df-644308c4740c | 33-272 | Tape Measure, Inch/Engineer's Scale, Nonmagnetic Single Hook Tip, Metal, 12 ft, Narrow Blade | Hand Tools | When you need to get the job done right, this Stanley 33-272 12 ft Tape Measure is just what you need... | Stanley | 12000 | TRUE | Each |