> ## Documentation Index
> Fetch the complete documentation index at: https://api.basetools.cz/llms.txt
> Use this file to discover all available pages before exploring further.

# Basic principles

> Three approaches to catalog sync and how Base structures a product catalog

Base distinguishes between **product data** (names, descriptions, images, categories) and **prices/stock**, since they're typically synced at very different frequencies. We support three basic approaches — the one you choose determines which API methods you'll actually need.

## Three sync approaches

1. **Everything via feed or e-commerce integration** — product cards and prices/stock both flow through an XML feed (preferably the Heureka or Shoptet specification) or a supported e-commerce integration. Fastest to deploy, but not ideal for large catalogs, and stock is effectively read-only for Base — if you can't reduce stock in your source feed fast enough after a new order, Base may re-upload the same (un-reduced) stock to the marketplace.
2. **Hybrid approach** — product cards come from a feed/integration, but stock and prices are synced via API. This gives you Base's native inventory, which supports reservations and real-time stock deduction on new orders even before your ERP has processed them. Details in [Updating prices and stock](/en/produkty/aktualizace-cen-a-skladu).
3. **Everything via API** — you control product creation, categories, and price/stock sync. The most integration work, but full control. Details in [Uploading product data](/en/produkty/nahrani-produktovych-dat).

<Tip>
  Combining 1 and 2 (feed for product cards, API just for stock/prices) is the most common practical compromise between deployment speed and stock reliability.
</Tip>

## How the catalog is structured

* **Inventory** — a single product catalog. You can have several inventories in Base, and they aren't linked to each other. List: [`getInventories`](https://api.baselinker.com/index.php?method=getInventories).
* **Price groups** — multiple price groups can be attached to one inventory, in different currencies. You then choose which price group feeds which sales channel.
* **Warehouses** — similarly, you can have multiple warehouses and choose which stock totals feed which sales channel. List: [`getInventoryWarehouses`](https://api.baselinker.com/index.php?method=getInventoryWarehouses).
* **Categories and manufacturers** — each category and manufacturer has its own ID, which you need to reference when creating a product. Details in [Categories, manufacturers and tags](/en/produkty/kategorie-a-vyrobci).

If you need to fine-tune any of these concepts (multi-currency price groups, multiple warehouses feeding different channels, delivery time sync), we recommend contacting the implementation team.
