# Update an existing catalog: add without removing anything

> For the administrator: update prices, stock and catalog products by spreadsheet without removing anything, and choose which table the price is saved to.

Source: https://vendria.com/en/ajuda/atualizar-catalogo-existente

## Where to find it

In your account menu, under **Catalog and exports**, **Import** tab → button
**Import spreadsheet** → **Update existing catalog**. The window that opens is
called **Add / Update Products** and warns: "Adds new products and
updates existing ones. No product will be removed."

## When to use the update instead of the full import

Use **Update existing catalog** when the spreadsheet is **no** more than part of the
catalog:

- a new price list for one table (for example, another
  state's table);
- a batch of new releases;
- a fix to the description, stock or packaging of a few products;
- loading a promotion on top of a catalog that already has prices.

Nothing goes out of circulation: a product that is not in the spreadsheet stays exactly as
it was. If the intent is to replace the entire catalog and take down what did not come in,
use **Import new catalog**. See [Import a new catalog: the step-by-step wizard](/en/ajuda/importar-novo-catalogo-passo-a-passo).

## Step by step for the update

1. Check the store in the **Store** selector at the top of the hub.
2. Click **Import spreadsheet** → **Update existing catalog**.
3. In **Excel/CSV file**, choose the file (`.xlsx`, `.xls`, `.xlsm`, `.xlsb`
   or `.csv`) and click **Analyze**.
4. In **Mapping Review**, check the three counters: **Refresh**
   (codes that already exist), **Create new** (new codes) and **Cross-refs.**
   (columns of other brands' codes).
5. In **Column mapping**, link **SKU / Code**, **Description** and
   **Stock** to the right columns, or leave **None**.
6. In **Price**, choose the **Spreadsheet column** with the price and, in **Save
   as**, where it goes (details below).
7. In **Cross references**, tick under **Use** the columns of alternative
   codes that should come in and adjust the **Brand** of each one.
8. Click **Import (N rows)**.
9. **Update Complete** shows **New** and **Updated**. Click
   **Close**.

## Save as: where the spreadsheet price goes

The **Save as** field decides the destination of the price column:

- **Base price (no table)**: writes the price on the product itself, the price for
  whoever has no table at all;
- **an existing table**: writes the prices into that table. The default table
  appears with **(default)**; choosing it also updates the product's base price;
- **Create new table...**: opens the **New table name (e.g.: RJ - ICMS
  12%)** field and creates the table with the spreadsheet's prices. The **Promotional** box creates
  the table already as a promotion.

With no price column chosen, **Save as** stays disabled and no price
is touched.

## What the update does to each product

For codes that **already exist**:

- description, stock, stock by location, unit and packaging are updated only
  when the spreadsheet brings the value: an empty cell erases nothing;
- the spreadsheet's attributes are **added** to the ones the product already has; an attribute
  the spreadsheet does not bring stays there;
- a deactivated product whose code appears in the spreadsheet is **reactivated**.

For **new** codes, the product is created, as long as the row has a
description. A new row without a description becomes the warning "SKU 'X' new without description —
skipping".

Cross references are **appended**: the ones that already existed, from
earlier imports, remain valid.

⚠️ In a store whose catalog is synced with the ERP, the fields the ERP defines are not
overwritten, and an ERP product discontinued there is not reactivated by the
spreadsheet. The result screen says which fields were preserved.

## Promotion through the update

When the destination is a promotional table (existing or created with
**Promotional**), three rules apply, which the screen reminds you of:

- the promotion only applies when it is cheaper than the regular price;
- a value of 0 in the column means "no promotion" and is not written;
- ⚠️ this screen **only adds**: a product that left the spreadsheet **stays on
  promotion**. To end the promotion for those that left, use the full import,
  or deactivate the promotional table in **Prices**, **Price tables** tab.

And a promotional table **does not create products**: if the spreadsheet has new codes,
the screen warns that they "will NOT be created". Import the products first, or choose
a regular table. See [Promotional table: offer price with an expiry date](/en/ajuda/tabela-promocional).

## When it goes wrong

**"No valid rows to import."** No row had a code or a
description mapped. Go back and check the **Column mapping**.

**"Create new came with a bigger number than I expected."** The spreadsheet's codes
do not match the catalog's (a space, a leading zero, a prefix).
Check a few in the product list before importing.

**"I updated the price and the customer still sees the old one."** The price went to a
destination that is not the customer's: for example, the base price, when the customer has a
table. See [Price tables](/en/ajuda/tabelas-de-preco).
