> For the complete documentation index, see [llms.txt](https://developer.esw.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.esw.com/agentic-commerce/esw-agentic-discovery/manage-catalog-uploads.md).

# Manage Catalog Uploads

Upload and maintain market-specific product catalogs through SFTP.

Send catalog files to ESW through SFTP. Use one file per market whenever prices or availability change.

### Upload Process

* **You do:** Send one initial full catalog with all active, in-stock products for each market.\
  **ESW does:** Ingest, validate, enrich, and prepare the catalog for Microsoft Merchant Center.
* **You do:** Whenever a product's price or availability changes, generate a new catalog file with the latest values and upload it via SFTP. For removals, set `availability` to `out_of_stock`.\
  **ESW does:** Process the file and update the product data used by AI shopping platforms.
* **You do:** Send attribute changes such as descriptions, sizes and colors in a new catalog file using the same market-specific format.\
  **ESW does:** Enrich and update the product data in Microsoft Merchant Center.
* **You do:** Allow up to 72 hours after the first successful upload for Microsoft validation for products to become discoverable.\
  **ESW does:** Monitor validation and resolve issues that block product visibility.

{% hint style="info" icon="memo-pad" %}
**Note**

The client can send ESW a single delta file containing new products, updates and removals (changes only)
{% endhint %}

### SFTP location

#### Before you upload

Contact your ESW Client Success Manager before your first upload. ESW must create the required SFTP folders. The folder path may not exist until ESW completes setup.

{% code title="Upload files to:" %}

```hurl
https://eshopworld3.files.com/files/Development/Core/Retailers/<BRANDCODE>RetailersFTP/<ENV>/ProductFeed/Pending
```

{% endcode %}

* `<BRANDCODE>` is your agreed brand code.
* `<ENV>` is the target environment, such as `UATRC` or `PROD`.

{% code title="Example:" %}

```hurl
https://eshopworld3.files.com/files/Development/Core/Retailers/ABCRetailersFTP/UATRC/ProductFeed/Pending
```

{% endcode %}

### File naming

{% code title="Use this filename format:" %}

```csv
{catalogFileName}-{countryIso3166Alpha2}.csv
```

{% endcode %}

### Preserve product IDs in Excel

{% hint style="danger" %}
**Critical: Excel Scientific Notation Issue**

**Excel can corrupt your file!** Excel converts long numbers to scientific notation (e.g., `1.24504323E+12`), which will cause import failures. Treat all columns with IDs as text to avoid validation errors.

**Client action:**

1. Before entering or pasting IDs, format all ID columns as **Text**
2. If opening a CSV, use **Data → From Text/CSV** and set the GTIN column type to **Text** before loading
3. Before sending the file, confirm each ID shows the full number (e.g., `5063589815347`, not scientific notation)
4. To verify, open the file as .txt in Notepad and confirm the GTIN appears as the full number, not scientific notation

**Important:** Reformatting the column after Excel has converted values will NOT fix them. You must correct the source data and repeat the steps above.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.esw.com/agentic-commerce/esw-agentic-discovery/manage-catalog-uploads.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
