Making an Excel price list importable
How to filter the catalog by supplier winery and import a product list from a well-formed Excel file.
Every product is always linked to a supplier, so the simplest way to browse a specific winery's catalog is to filter the product list by that supplier.
Supplier wineries send their product lists in all sorts of formats: columns in a different order, their own header names, information spread across several rows or sheets. To be imported automatically into Qube, the Excel file needs a minimal, consistent structure — here we call it a “well-formed” file (a data person would call it “normalized”).
In practice, the files that come from suppliers are almost never already like that: before you can import them, they almost always need cleaning up and reorganizing. Sometimes that's a simple job, like moving a column or deleting a duplicate header row. Other times it takes advanced Excel skills — formulas, macros — or even a script (in Python, say) to fix hundreds of inconsistently written rows in one go. That's not something everyone can do, and it's not really a sales agent's job either: if you can't fix the file you received on your own, you don't have to be the one who solves it.
For those cases, our team offers an assisted import service: we prepare the file for you and import it into Qube ourselves. Like any extra service, it's billed against your account's credits — see the credits article to understand how that works.
A well-formed file is simply a table with one row per product, that's it. The classic use case is a file with the products of a single supplier winery.
During import you link (“map”) each column of your file to a Qube product field. Some fields are required and must always be covered — either by a column or by a single fixed value for the whole file: Supplier winery (Produttore), Agency (Azienda), Short description, Long description, Document description, and VAT rate. The winery and agency names must exactly match one already registered in Qube — if they aren't, the system flags it and creates them right away (just the name: the details need to be filled in later from their own record screens).
The “Original code” (Codice originale) is the key Qube uses to recognize whether a product in your file already exists in the catalog: if the code matches one from a previous import, Qube updates it instead of duplicating it. That's why it's essential to always use the same code for the same product across imports — if the codes don't match up, you end up with duplicate products instead of updated ones. Every product also needs a unique code within the same file: if the same code appears on more than one row, the import flags it as an error.
If you enable the “Disattiva i prodotti a catalogo non presenti nel listino” (Deactivate catalog products not in the list) option, Qube treats the imported file as the complete, up-to-date offer for that period: any catalog product that doesn't show up again in the new file gets marked as not sellable (out of stock). Careful: this deactivation applies to every product already linked to that same agency, not just the ones from the winery you just imported — use it with caution if your agency handles catalogs for several wineries together.
| Winery | Original code | Short description | Long description | Vintage | Capacity | Price | VAT |
|---|---|---|---|---|---|---|---|
| Rossi Winery | RC001 | Chianti Classico | Chianti Classico DOCG Riserva | 2021 | 0.75 | 8.50 | 22 |
| Rossi Winery | RC002 | Vermentino | Vermentino di Toscana IGT | 2023 | 0.75 | 6.20 | 22 |
| Rossi Winery | RC003 | Prosecco Extra Dry | Prosecco DOC Extra Dry | 2023 | 0.75 | 5.90 | 22 |
| Winery | Original code | Short description | Price | Problem |
|---|---|---|---|---|
| Rossi Winery | RC001 | Chianti Classico | € 8.50 + VAT | Price written as text, not a number |
| Rossi Winery | RC001 | Vermentino | 6.20 | Code “RC001” duplicated, already used in the row above |
| ROW TOTAL: 2 | Subtotal row mixed in with the products | |||
| RC004 | Prosecco Extra Dry | 5.90 | Winery name is missing |