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

# Product Mapping

> Map vendor products to internal ingredients so received orders can update stock, costs, reports, and reorder suggestions

# Product Mapping

Product mapping connects vendor products to your internal ingredients.

This allows Mathership to convert ordered products into ingredient stock when orders are received.

<CardGroup cols={3}>
  <Card title="Connect products to ingredients" icon="link">
    Tell Mathership which ingredient should be updated when a vendor product is received.
  </Card>

  <Card title="Convert quantities" icon="calculator">
    Define packaging levels and conversion factors so ordered products become ingredient stock.
  </Card>

  <Card title="Improve receiving and reports" icon="boxes-stacked">
    Use mappings for inventory receipts, stock value, reports, and reorder suggestions.
  </Card>
</CardGroup>

## What is product mapping?

A product mapping tells Mathership which ingredient should be updated when a vendor product is received, and how much stock one unit of the product creates.

| Vendor product | Ingredient | Conversion |
| -------------- | ---------- | ---------- |
| 1 box tomatoes | Tomatoes   | 10 kg      |
| 1 crate milk   | Milk       | 12 L       |
| 1 bottle oil   | Olive oil  | 1 L        |

## Why product mapping is important

Product mappings are required for automatic inventory receipts.

Without a mapping, Mathership cannot know which ingredient should be updated.

| Order item       | Mapping exists? | Inventory result             |
| ---------------- | --------------- | ---------------------------- |
| 2 boxes tomatoes | Yes             | Tomatoes +20 kg              |
| 5 packs flour    | No              | No ingredient stock movement |

## When to use product mapping

Use product mapping when you want to:

* Receive vendor orders into inventory
* Convert ordered products into ingredient stock
* Track stock quantities correctly
* Calculate inventory value
* Support reorder suggestions
* Improve inventory reports

## How mapping works

A mapping connects one vendor product to one internal ingredient.

It includes:

| Field            | Meaning                                                                          |
| ---------------- | -------------------------------------------------------------------------------- |
| Vendor product   | The product from the vendor catalog or order                                     |
| Ingredient       | The internal ingredient that should be updated                                   |
| Target unit      | The ingredient's base unit — auto-filled when you select an ingredient           |
| Packaging levels | The packaging structure defining how the product converts to the ingredient unit |
| Factor           | The overall conversion factor from product quantity to ingredient quantity       |

## Where to create mappings

Product mappings are created from two places:

<CardGroup cols={2}>
  <Card title="From an order when receiving" icon="boxes-stacked">
    When you open an order to transfer it into inventory, unmapped items are flagged. Click **Map product** on any unmapped item to open the mapping sheet.
  </Card>

  <Card title="From the ingredient detail page" icon="carrot">
    The **Mapped vendor products** section on an ingredient detail page shows all existing mappings. Click any row to view or edit it.
  </Card>
</CardGroup>

## The mapping sheet

Clicking **Map product** opens a side panel pre-filled with the vendor product details.

The panel header shows the product name. A product card in the form displays the product image, if available, article number, product name, and packaging text from the vendor catalog.

### Form fields

| Field            | Required    | Description                                                                             |
| ---------------- | ----------- | --------------------------------------------------------------------------------------- |
| Ingredient       | Yes         | The internal ingredient to map to — search existing or create new inline                |
| Target unit      | Auto-filled | The ingredient's base unit — read-only, set automatically when you select an ingredient |
| Packaging levels | Yes         | The packaging structure of the product — at least one level required                    |
| Factor           | Yes         | The overall conversion factor from product quantity to ingredient quantity              |

## Creating a new ingredient inline

If the ingredient does not exist yet, select **+ Add new ingredient** from the ingredient picker.

This opens an inline form with:

* Name field
* Base unit dropdown

The ingredient is created immediately and the mapping continues without leaving the sheet.

## Packaging levels

Packaging levels define the structure of the vendor product and how it converts into the ingredient's base unit.

Every mapping requires at least one packaging level.

Each level has:

| Field          | Description                                             |
| -------------- | ------------------------------------------------------- |
| Name           | The packaging name, such as Box, Crate, Pack, or Bottle |
| Qty per parent | How many of this level fit into the parent level        |
| Unit           | The unit for this level — required on the last level    |

### Packaging examples

<Tabs>
  <Tab title="Single level">
    Single level — 1 box = 10 kg:

    | Name | Qty per parent | Unit |
    | ---- | -------------: | ---- |
    | Box  |             10 | kg   |
  </Tab>

  <Tab title="Two levels">
    Two levels — 1 crate = 24 bottles × 0.33 L:

    | Name   | Qty per parent | Unit   |
    | ------ | -------------: | ------ |
    | Crate  |             24 | bottle |
    | Bottle |           0.33 | L      |
  </Tab>

  <Tab title="Three levels">
    Three levels — 1 carton = 12 packs × 1 L:

    | Name   | Qty per parent | Unit |
    | ------ | -------------: | ---- |
    | Carton |             12 | pack |
    | Pack   |              1 | L    |
  </Tab>
</Tabs>

Click **Add level** to add a row.

Click the **X** button to remove a row.

The last level must have a unit selected.

## Conversion factor

The factor defines how much ingredient stock one received product unit creates.

**received quantity × factor = ingredient quantity added**

| Ordered quantity | Factor | Ingredient stock added |
| ---------------- | -----: | ---------------------: |
| 1 box            |  10 kg |                  10 kg |
| 2 boxes          |  10 kg |                  20 kg |
| 5 packs          | 1.5 kg |                 7.5 kg |

## AI Factor

Click **Get AI factor** in the mapping sheet to let Mathership suggest the factor and packaging levels automatically.

The AI reads the product details and the selected ingredient and returns:

* A suggested conversion factor
* Suggested packaging levels with names, quantities, and units

<Warning>
  Review the AI suggestion before saving. Adjust any values that do not match the actual product packaging.
</Warning>

## Creating a mapping

<Steps>
  <Step title="Open an unmapped product">
    Open an order in the receiving flow and find an unmapped item.
  </Step>

  <Step title="Click Map product">
    Open the mapping sheet for the vendor product.
  </Step>

  <Step title="Select or create the ingredient">
    Choose an existing ingredient or create a new ingredient inline.
  </Step>

  <Step title="Add packaging levels">
    Define how the vendor product is packaged.
  </Step>

  <Step title="Set the factor">
    Enter the conversion factor manually or use **Get AI factor** as a starting point.
  </Step>

  <Step title="Save the mapping">
    Save the mapping so future receipts can update inventory automatically.
  </Step>
</Steps>

## Editing a mapping

Click an already-mapped product to open the mapping sheet pre-filled with the current values.

Update any field and click **Update mapping**.

## Deleting a mapping

Deleting a mapping stops future automatic inventory receipts for that product.

Use this when:

* The product is no longer used
* The product was mapped incorrectly
* The vendor product should not affect inventory
* A cleaner mapping should replace it

<Warning>
  Deleting a mapping does not reverse past inventory movements. Review previous ledger entries separately if historical stock needs correction.
</Warning>

## Automatic factor calculation

Mathership may help calculate the conversion factor from packaging information.

This can use:

* Product packaging text
* Packaging levels configured in the mapping
* The selected ingredient
* The ingredient base unit
* Unit conversions

## Receiving orders with mappings

When receiving an order, Mathership checks each order item.

If a product is mapped, the system creates a receipt movement in the inventory ledger.

| Ordered product | Quantity received | Mapping        | Ledger entry     |
| --------------- | ----------------: | -------------- | ---------------- |
| Tomatoes box    |                 2 | 1 box = 10 kg  | `RECEIPT` +20 kg |
| Milk crate      |                 3 | 1 crate = 12 L | `RECEIPT` +36 L  |

Unmapped items are flagged during the receiving flow. Click **Map product** on any unmapped item to create the mapping before posting.

## Missing mappings

A missing mapping means Mathership cannot convert the product into ingredient stock.

Common reasons:

* The vendor product is new
* The product was renamed
* The ingredient does not exist yet
* The conversion factor has not been set
* The product should not affect inventory

## Product mapping and inventory ledger

When a mapped product is received, Mathership creates an inventory ledger entry.

The ledger entry includes:

| Field            | Meaning                          |
| ---------------- | -------------------------------- |
| Ingredient       | The ingredient affected          |
| Storage unit     | Where stock was added            |
| Transaction type | `RECEIPT`                        |
| Quantity         | Converted ingredient quantity    |
| Unit cost        | Cost per ingredient base unit    |
| Value            | Quantity multiplied by unit cost |
| Source           | The related order item           |

See [Ledger](/en/restaurants/inventory/ledger) for details.

## Product mapping and costs

Product mappings also help calculate inventory value.

When receiving an order, Mathership uses the product price and conversion factor to calculate a cost per ingredient unit.

| Product price    |  Factor | Unit cost |
| ---------------- | ------: | --------: |
| €20.00 per box   |   10 kg |  €2.00/kg |
| €12.00 per crate |    12 L |   €1.00/L |
| €5.00 per pack   | 0.25 kg | €20.00/kg |

This unit cost feeds into the ingredient's weighted average cost.

## Product mapping and reorder suggestions

If Mathership knows which vendor product belongs to which ingredient, it can suggest what to order when stock is low.

| Low ingredient | Mapped vendor product | Suggested order    |
| -------------- | --------------------- | ------------------ |
| Tomatoes       | Tomato box 10 kg      | Order tomato boxes |
| Milk           | Milk crate 12 L       | Order milk crates  |
| Butter         | Butter pack 250 g     | Order butter packs |

See [Reorder Suggestions](/en/restaurants/automation/reorder-suggestions) for details.

## Product mapping and reports

Product mappings improve inventory reports because received orders can be connected to ingredients.

This helps answer questions like:

* Which products increased stock?
* Which ingredients were received?
* Which vendor products are not mapped yet?
* Which products create inventory value?
* Which ingredients need better mapping?

## Good mapping examples

| Vendor product            | Ingredient | Good factor |
| ------------------------- | ---------- | ----------: |
| 1 box tomatoes, 10 kg     | Tomatoes   |          10 |
| 1 bottle olive oil, 1 L   | Olive oil  |           1 |
| 1 crate beer, 24 × 0.33 L | Beer       |        7.92 |
| 1 pack butter, 250 g      | Butter     |        0.25 |

## Common mistakes

<AccordionGroup>
  <Accordion title="Wrong factor">
    | Problem                                   | Result                  |
    | ----------------------------------------- | ----------------------- |
    | 1 box = 10 kg but factor is 1             | Stock is 10× too low    |
    | 1 bottle = 1 L but factor is 12           | Stock is 12× too high   |
    | 250 g entered as 250 when base unit is kg | Stock is 1000× too high |
  </Accordion>

  <Accordion title="Wrong ingredient">
    | Vendor product | Wrong mapping | Correct mapping |
    | -------------- | ------------- | --------------- |
    | Tomato box     | Tomato soup   | Tomatoes        |
    | Cream carton   | Milk          | Cream           |
  </Accordion>

  <Accordion title="Wrong unit">
    The ingredient unit should match how the ingredient is tracked.

    | Ingredient     | Recommended base unit                          |
    | -------------- | ---------------------------------------------- |
    | Tomatoes       | kg                                             |
    | Milk           | L                                              |
    | Butter         | kg                                             |
    | Bottled drinks | bottle, L, or piece depending on your workflow |
  </Accordion>

  <Accordion title="Missing or wrong packaging level unit">
    The last packaging level must have a unit.

    If the unit is missing, the mapping will not save.
  </Accordion>
</AccordionGroup>

## Best practices

<CardGroup cols={2}>
  <Card title="Check the unit before saving" icon="scale-balanced">
    Confirm the product quantity, packaging structure, and ingredient base unit before saving.
  </Card>

  <Card title="Use AI as a starting point" icon="wand-magic-sparkles">
    Use **Get AI factor**, but always verify the suggestion against the real product packaging.
  </Card>

  <Card title="Review high-value products" icon="gem">
    Small factor mistakes create large stock value errors for meat, fish, wine, spirits, and expensive dry goods.
  </Card>

  <Card title="Keep mappings up to date" icon="rotate">
    Update mappings when vendor packaging changes, product sizes change, or ingredient units change.
  </Card>

  <Card title="Use clear ingredient names" icon="tag">
    Consistent naming makes mappings easier to find and verify.
  </Card>

  <Card title="Check the next receipt" icon="clipboard-check">
    After fixing a mapping, review the next receipt carefully to confirm the change.
  </Card>
</CardGroup>

## Common workflows

### Map a vendor product to an ingredient

1. Open an order and find an unmapped item
2. Click **Map product**
3. Select the ingredient or create one inline
4. Add packaging levels
5. Set the factor or use **Get AI factor**
6. Save the mapping

### Receive an order into inventory

1. Open the order
2. Check which items are mapped
3. Add missing mappings directly from the order if needed
4. Select the storage unit
5. Confirm received quantities
6. Post the receipt to inventory

### Fix a wrong mapping

1. Open the mapped product from the order or the ingredient detail page
2. Correct the ingredient, packaging levels, or factor
3. Click **Update mapping**
4. Review the next receipt carefully to confirm the fix

### Review unmapped products

1. Open the receiving flow for the order
2. Items marked as unmapped cannot be transferred to inventory
3. Click **Map product** on each unmapped item
4. Create the mapping and return to the order
5. Continue receiving

## Common problems

<AccordionGroup>
  <Accordion title="Product does not increase stock">
    Check that:

    * The product is mapped
    * The ingredient exists
    * A storage unit was selected
    * The received quantity is greater than zero
    * The receipt was posted
  </Accordion>

  <Accordion title="Stock quantity is wrong after receiving">
    Check:

    * The conversion factor
    * The packaging levels and their quantities
    * The received quantity
    * Whether there are duplicate receipt entries
  </Accordion>

  <Accordion title="Cost looks wrong">
    Check:

    * The product price
    * The conversion factor
    * The unit cost calculation
    * The ingredient base unit
    * The previous weighted average cost history
  </Accordion>

  <Accordion title="Product appears as unmapped">
    Check that:

    * The mapping was saved
    * The product record was not deleted or replaced
    * The order item references the same product record as the mapping
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Ingredients" icon="carrot" href="/en/restaurants/inventory/ingredients">
    Manage the ingredient master list used in product mappings.
  </Card>

  <Card title="Storage Units" icon="warehouse" href="/en/restaurants/inventory/storage-units">
    Manage storage locations where received stock is stored.
  </Card>

  <Card title="Receiving Orders" icon="boxes-stacked" href="/en/restaurants/inventory/receiving-orders">
    Receive vendor orders and post mapped products into inventory.
  </Card>

  <Card title="Inventory Ledger" icon="list" href="/en/restaurants/inventory/inventory-ledger">
    Review inventory movements created from receipts, usage, waste, transfers, and counts.
  </Card>

  <Card title="Inventory Reports" icon="chart-line" href="/en/restaurants/reports/inventory-report">
    Analyze stock, movements, costs, and ingredient activity.
  </Card>

  <Card title="Reorder Suggestions" icon="cart-shopping" href="/en/restaurants/automation/reorder-suggestions">
    Use mappings and stock levels to suggest what should be ordered.
  </Card>
</CardGroup>
