Products
Replace your store catalogue with current products, prices and stock.
What it does
The product importer updates the products customers can browse and order. Each row identifies a product by its SKU.
What customers see
Products in the file become available to order; missing products are hidden until a later file includes them again.
When to use it
Use it after changing your catalogue, prices, stock or product details.
Before you upload
Always upload the complete catalogue. An empty file or header-only file hides every product.
Each row adds a product or updates the product with the same SKU. The file supplies every listed field, so include every column you use, populated, in every file - a blank or missing optional column resets that field to its default on every product in the file.
Purchasable products missing from the file are hidden from the storefront but keep their stored values, and are restored when their SKU reappears.
Read the shared CSV format and money rules before preparing your file.
Steps
- Open eCommerce → Importers.
- In Upload CSV, choose Import for Products then use Pick CSV file to select your complete file.
- Review the replacement warning, then select Upload and replace.
What you'll see
The file appears in Import log as Pending, then Success or Failed. Product details, prices and stock change on your storefront within about 15 minutes of uploading - see when changes appear.
If the file fails, ProConnect emails your store's email address with the reason and the rows to correct, and emails you again when a later Products file succeeds. A run of failures is only emailed the first time. See Email notifications.
When pictures change
A product can get its pictures from three places. Your storefront uses the first one that has any pictures for that SKU:
- Erudus, if your store is connected to Erudus.
- Your images folder, where your ERP or IT team places picture files named after the SKU, such as
SKU-001.jpg. - The
IMAGE_URLcolumn in this file.
| Picture source | When your storefront shows a change |
|---|---|
| Erudus | Within about 8 hours - see Erudus product information |
| Images folder | Within an hour of a file being added, replaced or removed |
IMAGE_URL with a new address | Within about 15 minutes, with the product import |
IMAGE_URL with the same address | Can take up to a month - use a new address instead |
The product list and the product page always use the same pictures: the list shows the first one and the product page shows them all. Reload the storefront page to see a change.
Changing the picture behind an IMAGE_URL address you have already used does not update your
store: customers can keep seeing the old picture for up to a month. Save each new picture under a
new file name, such as water-500ml-v2.jpg, and put the new address in IMAGE_URL.
Erudus product information
If your store is connected to Erudus, your storefront's product pages also show Erudus pictures, Allergen Information and a View Allergens & Dietary PDF button. Products are matched by SKU, so the product code in Erudus must match the SKU in this file.
Changes made in Erudus are collected three times a day and usually appear on your storefront within about 8 hours. Allergen details and the PDF can take up to an hour longer. Nutrition information is not shown. To connect your store to Erudus, contact your onboarding manager.
If something goes wrong
- Failed import: select View report, correct the reported rows and upload the complete file again. A validation error prevents the whole file from being applied.
- Failed - SKU "AB123" contains "". Use only letters, numbers and single hyphens or slashes, such as ABC-123 or 1234/S.: each message names the SKU and what is wrong with it: a character that isn't allowed, more than 50 characters, or a hyphen or slash at the start, at the end or twice in a row. View report lists every SKU to fix, and the failure email lists the first 20. Change them in your ERP to follow the SKU format, then upload the complete file again. Every SKU is checked, including products already in your store, so one bad SKU stops the whole file.
- Unexpected results: If a product has the wrong category, check its category IDs against the complete category file. For a missing POR, provide RRP, VAT and a whole-number units-per-case value.
- Missing rows after a successful upload: restore them in the complete file and upload again. Check the replacement rules above before sending another file.
- A new picture isn't showing: allow the times in when pictures change, then reload the storefront page. If you replaced the picture behind an address you had already used, save it under a new file name and update
IMAGE_URL. AnIMAGE_URLpicture is not used while the product has an Erudus or images-folder picture. - Erudus information is missing from a product: check that the product code in Erudus matches the product's SKU. Changes made in Erudus usually appear within about 8 hours.
Columns
Limits count characters after surrounding spaces are removed. A value over its limit fails that row, and the file is not applied. See the shared value limits.
Identity and browsing
| Column | Required | Limit | Example | Notes |
|---|---|---|---|---|
SKU | Yes | Up to 50 characters: letters, numbers, - and / | SKU-001 | Product code, used to match existing products. Not case-sensitive. See the SKU format and the identifier matching rules. If the same SKU appears more than once, the last row wins. |
TITLE | Yes | 1-255 characters | Still Water 500ml | Product name. Shown on all product listings, searchable, and the default catalogue sort. |
CATEGORY_IDS | No | Up to 255 characters in total, including the | separators | drinks|water | Pipe-separated category IDs, e.g. drinks|soft-drinks. Each ID must match a CATEGORY_ID from the category CSV (see identifier matching). Unknown IDs are ignored. Parent categories are linked automatically. |
SHORT_DESCRIPTION | No | No fixed limit | Case of 24 | Short description shown on product listings. |
DESCRIPTION | No | No fixed limit | Still spring water | Full description shown on the product page. |
BRAND | No | Up to 255 characters | Acme | Brand name. Searchable. |
BARCODES | No | Up to 64 characters per barcode, any number of barcodes | 5012345678900 | Pipe-separated barcodes. Barcode search matches each value exactly. |
KEYWORDS | No | Up to 2048 characters | water | Extra search terms. |
SKU format
Every SKU in the file must follow these rules, or the whole file fails:
| Allowed | Not allowed |
|---|---|
Letters A-Z, upper or lower case | Spaces |
Numbers 0-9, including leading zeros such as 0123 | Any other character, such as . _ + # ~ & ' or accented letters |
A single - or / between letters or numbers | A - or / at the start or end, such as -ABC or ABC/ |
| Up to 50 characters | Two separators in a row, such as A--B or A-/B |
| SKU | Accepted? |
|---|---|
ABC123, 101-001 | Yes |
1234/S, abc-1/2 | Yes |
AB_123, 12.5, AB 12 | No |
ABC-, A--B | No |
SKUs are not case-sensitive: abc-1 and ABC-1 are the same product. Each SKU is kept exactly as your file supplies it.
Picture files in your images folder are named after the SKU, such as ABC-123.jpg. A SKU containing / cannot be used as a file name, so give those products their pictures with IMAGE_URL instead.
Changing a SKU in your ERP makes it a new product and hides the old one. Change it in your customer pricing file and, if you use them, in Erudus and your images folder at the same time.
Prices and packs
| Column | Required | Limit | Example | Notes |
|---|---|---|---|---|
PRICE | Yes | 0 to 9,999,999.99, 2 decimal places | 12.50 | The standard price. See money values. |
VAT | No | 0 to 100, 1 decimal place, no % | 20.0 | VAT percentage. If the column is present, every row must have a value - leave the whole column out if unused. |
SPECIAL_PRICE | No | As PRICE | 11.00 | Offer price. Shown only when lower than the price the customer would otherwise pay. Requires the special pricing feature. Your store can be set so customer prices always win instead. |
RRP | No | As PRICE | 0.79 | Recommended retail price for a single unit. Enables POR display. |
UNITS | No | Up to 255 characters | 24 x 330ml | Pack description shown as the pack size. When blank, the pack size is built from UNITS_PER_CASE and UNIT_SIZE. |
UNIT_SCALE | No | Greater than 0, up to 9,999,999.99 | 1 | Quantity step for ordering. Defaults to 1. |
UNIT_SIZE | No | Up to 255 characters | 330ml | Size of a single unit. |
UNITS_PER_CASE | No | Up to 255 characters | 24 | Number of units in a case. Whole-number values also enable POR calculations. |
Stock and order quantities
| Column | Required | Limit | Example | Notes |
|---|---|---|---|---|
STOCK | No | 0 to 9,999,999.99 | 120 | Stock level. Defaults to 9999. Negative values are treated as 0. Drives the store's stock and low-stock indicators. |
MAX_QTY | No | 0 to 9,999,999.99 | 20 | Maximum quantity per order line. Defaults to 9999. Negative values are treated as 0. |
MIN_QTY | No | 0 to 9,999,999.99, not above MAX_QTY | 1 | Minimum order quantity. Defaults to 0. Negative values are treated as 0. Enforced only when minimum quantities are enabled for the store. |
Images and merchandising
Products without an image, or whose image cannot load, show your Default Product Image from Store Settings, or a centred image icon on a soft background if you have not set one.
| Column | Required | Limit | Example | Notes |
|---|---|---|---|---|
IMAGE_URL | No | Up to 2083 characters per URL, any number of URLs | https://example.com/image.jpg | Pipe-separated list of public image URLs. The first URL is the main image; the rest appear in the product page gallery. |
PROMOTED | No | Yes/no value | yes | Yes marks the product as promoted: it gains the store's promotion badge and sorts first. Defaults to no. |
BADGE_ONE | No | Yes/no value | no | Yes adds the store's second promotion badge. Defaults to no. |
RESTRICTED_TYPES | No | Up to 255 characters | ALCOHOL | ALCOHOL or TOBACCO hides the product in the native mobile apps. Other values have no effect. |
SPONSORED | No | Yes/no value | no | Yes marks the product as sponsored for boosted placement in search results. Defaults to no. |
RANK | No | Whole number, 1 or greater | 1 | Orders sponsored products - lower ranks appear first. |
SKU, TITLE, and PRICE are required. All other columns are optional.
Yes/no columns (PROMOTED, BADGE_ONE, SPONSORED) accept 1, true, or yes, and 0, false, or no. A blank cell means no. Any other value fails validation.
Pipe-separated columns (CATEGORY_IDS, IMAGE_URL, BARCODES) have no escaping mechanism, so individual values cannot contain a literal |. The CATEGORY_IDS limit applies to the whole cell; IMAGE_URL and BARCODES limit each value and accept any number of them.
Pack size display
The pack size shown on product listings is built from three columns:
UNITS, verbatim, when set - e.g.24 x 330ml.- Otherwise
UNITS_PER_CASE x UNIT_SIZE- e.g.24 x 330mlfrom24and330ml. - Otherwise
UNIT_SIZEorUNITS_PER_CASEalone, or-when all three are blank.
POR
POR (profit on retail) shows customers the retail margin a product offers. It is calculated when all three of RRP, VAT, and a whole-number UNITS_PER_CASE are provided:
POR % = (RRP × UNITS_PER_CASE − price including VAT) ÷ UNITS_PER_CASE ÷ RRP × 100For example, a case of 24 units with an RRP of £1 each and a case price of £10 excluding 20% VAT costs £12 including VAT. POR is (£24 − £12) ÷ £24 × 100 = 50%.
The price used is the price that customer actually pays: their customer-specific price or the special price when one applies, otherwise the standard price. Products can also be sorted by POR on the storefront.
Categories and search
CATEGORY_IDS places the product in the category tree from the category CSV. Linking a subcategory automatically links all of its parents, so a product in drinks|soft-drinks also appears when browsing drinks.
Product search matches against the SKU, title, brand, the titles of the product's categories, KEYWORDS, and barcodes. When a customer searches your storefront for a full SKU, such as ABC-123, that product is listed first, ahead of promoted products.
Example CSV
SKU,TITLE,PRICE,CATEGORY_IDS,VAT,STOCK,BRAND,UNITS_PER_CASE,UNIT_SIZE,RRP
SKU-001,Still Water 500ml,3.99,drinks|water,20.0,120,Acme,24,500ml,0.79
SKU-002,Orange Juice 1L,5.49,drinks|soft-drinks,20.0,80,Acme,6,1L,1.85Download the sample product CSV for a template that includes every column.