Skip to main content

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.

POS Mapping

POS mappings tell Bestellfix what should happen when a POS item is sold. A POS item can be mapped to:
  • An ingredient
  • A recipe
Mappings are used by integrations such as:
  • Lightspeed K-Series
  • Sides POS
  • CSV Upload

Screenshot

Add screenshot here.

What POS mapping does

When a POS transfer runs, Bestellfix reads the sold POS items and checks whether each item has a mapping. If a mapping exists, Bestellfix creates inventory movements. Example:
POS itemMappingInventory result
EspressoIngredient: Coffee beansDeduct coffee beans
Cola 0.33lIngredient: Cola bottleDeduct bottles
BurgerRecipe: Burger recipeDeduct all recipe ingredients
If no mapping exists, the item cannot be processed into inventory.

Mapping to an ingredient

Use an ingredient mapping when one sold POS item should deduct one ingredient directly. Example:
POS itemIngredientQuantity
Cola 0.33lCola bottle1
EspressoCoffee beans0.009
Wine glass 0.2lHouse wine0.2
The quantity defines how much of the ingredient is deducted per sold POS item.

Screenshot

Add screenshot here.

Mapping to a recipe

Use a recipe mapping when one sold POS item consists of multiple ingredients. Example:
POS itemRecipe
BurgerBurger recipe
Pizza MargheritaPizza Margherita recipe
Caesar SaladCaesar Salad recipe
When the POS item is sold, Bestellfix explodes the recipe and deducts all ingredients from the recipe lines. This also supports sub-recipes.

Quantity multiplier

The quantity field is a multiplier. For ingredient mappings, it means:
sold quantity × mapping quantity = ingredient deduction
Example:
SoldMapping quantityDeduction
3 × Cola1 bottle3 bottles
5 × Espresso0.009 kg0.045 kg
For recipe mappings, it means how many recipe portions are used per sold POS item. Example:
SoldMapping quantityRecipe portions
2 × Burger12 portions
1 × Party platter44 portions

Subtraction mappings

Some mappings can use is_subtraction. This is mainly useful for correction or reversal logic. Example:
POS itemUse case
Refund itemReverse a previous deduction
Correction itemReduce or offset a POS quantity
Only use this when the POS item should not behave like a normal sale deduction.

Lightspeed item mappings

Lightspeed items are synced from Lightspeed K-Series. To map a Lightspeed item:
  1. Open Integrations
  2. Select Lightspeed K-Series
  3. Open the item list
  4. Select a Lightspeed item
  5. Choose ingredient or recipe
  6. Enter the quantity
  7. Save the mapping
Bestellfix stores the mapping by Lightspeed item name.

Screenshot

Add screenshot here.

Sides product mappings

Sides products are synced from the Sides product API. To map a Sides product:
  1. Open Integrations
  2. Select Sides POS
  3. Open the product list
  4. Select a Sides product
  5. Choose ingredient or recipe
  6. Enter the quantity
  7. Save the mapping
Sides mappings are stored at integration level, not per store. That means one product mapping can be used across stores of the same integration.

Screenshot

Add screenshot here.

CSV Upload mappings

CSV Upload uses POS mappings based on POS item names or codes extracted from the uploaded CSV file. The CSV integration reads configured columns and creates POS item codes from them. These codes are then matched against POS mappings. Example:
CSV valuePOS mapping
BurgerBurger recipe
Cola_033Cola bottle
EspressoCoffee beans

Storage unit selection

The mapping defines what should be deducted. The storage unit defines where it should be deducted. Depending on the integration, the storage unit can come from:
  • The linked Lightspeed location
  • The linked Sides store
  • Recipe or ingredient issue storage
  • Fallback storage logic
For Lightspeed and Sides, make sure the location or store is linked to the correct storage unit before activation or transfer.

Recipe processing

When a POS item is mapped to a recipe, Bestellfix calculates the required ingredient quantities from the recipe lines. The recipe logic considers:
  • Quantity per portion
  • Portion multiplier
  • Trim percentage
  • Sub-recipes
  • Ingredient storage rules
If a recipe contains another recipe, Bestellfix expands the sub-recipe as well.

Preventing recipe cycles

Recipes should not reference themselves directly or indirectly. Example of a bad setup:
Burger recipe → Sauce recipe → Burger recipe
This creates a recipe cycle and cannot be processed correctly.

Common mapping errors

ErrorMeaning
recipe_not_foundThe selected recipe does not exist
ingredient_not_foundThe selected ingredient does not exist
pos_mapping_id_requiredA mapping ID is required for update or delete
validation_errorRequired mapping data is missing or invalid
unauthorized_accessThe mapping does not belong to the current user
unmapped_pos_itemA POS item was sold but no mapping exists
unmapped_pos_codeA CSV POS code was found but no mapping exists
recipe_cycleA recipe references itself through recipe lines
no_issue_storageNo storage unit could be resolved
negative_stockThe deduction would create negative stock

Mapping checklist

Before activating a POS transfer, check:
  • Important POS products are synced
  • Every relevant sales item is mapped
  • Recipes contain correct ingredient lines
  • Quantities are realistic
  • Units are correct
  • Storage units are linked
  • One test transfer has been reviewed in the inventory ledger

Updating mappings

Mappings can be changed at any time. After changing mappings, you may need to reprocess historical data. For Lightspeed:
  • Use Manual Transfer for one date
  • Use Re-run Migration for a wider historical period
For Sides:
  • Use Manual Transfer for one date
  • Use Re-run Migration if historical billpositions should be processed again

Deleting mappings

Deleting a mapping means future transfers can no longer process that POS item. Existing inventory ledger entries are not automatically deleted just because a mapping is removed. To correct previous postings, re-run the affected transfer or create correcting inventory movements.
  1. Create ingredients
  2. Create recipes
  3. Connect the POS integration
  4. Sync stores, locations, or items
  5. Link storage units
  6. Map the most important POS items
  7. Run one manual transfer
  8. Check the inventory ledger
  9. Fix missing mappings
  10. Activate automatic processing

Endpoint overview

ActionEndpoint
List generic POS mappingsGET /api/companies/<company_id>/pos-integrations/<integration_id>/mappings/
Create generic POS mappingPOST /api/companies/<company_id>/pos-integrations/<integration_id>/mappings/
Map Lightspeed itemPOST /api/lightspeed/items/<id>/map/
Delete Lightspeed item mappingDELETE /api/lightspeed/items/<id>/map/
Map Sides productPOST /api/sides/products/<product_id>/map/
Update Sides product mappingPUT /api/sides/products/<product_id>/map/
Delete Sides product mappingDELETE /api/sides/products/<product_id>/map/

Lightspeed K-Series

Connect Lightspeed and process POS sales.

Sides POS

Connect Sides POS and sync stores and products.

CSV Upload

Upload POS sales data from CSV files.

Inventory Ledger

Review inventory movements created from POS transfers.