This article is only visible to the Smeetz team.
This article explains how the Smeetz and Megaventory integration works: the entities on each side, how they relate to each other, and how to set up multi-location selling. It is written for technical implementation managers and support teams.
1. What the integration does
Megaventory is the source of truth for inventory. Smeetz is the selling layer. The integration works on three levels:
Product synchronization: products created in Megaventory are mirrored as items in Smeetz, including their VAT and their custom fields.
Availability synchronization: stock adjustments in Megaventory reflect in Smeetz within seconds. A reconciliation job also pulls updates automatically as a safety net.
Sales and cancellation flows: every sale in Smeetz deducts stock from the right warehouse in Megaventory. Cancellations and refunds restore it.
Stock alerts and minimum reorder quantities are managed in Megaventory, not in Smeetz.
2. Entities and how they relate
Smeetz has no native location concept. To mirror a multi-warehouse Megaventory account, one Smeetz item is created per product and per warehouse. Everything else follows from that rule.
MEGAVENTORY (inventory master) SMEETZ (selling layer)
+---------------+ mirrored as one +----------------------+
| Product (SKU) |---- item per synced ->| Item |
+-------+-------+ warehouse | (1 per SKU+warehouse)|
| +-----+----------+-----+
| stock held | |
v per warehouse bound to 1 | | added to
+---------------------+ warehouse | |
| Inventory Location |<--------------------+ |
| Shop 1 / Store / | +-------v----------+
| Main ... | | Sales Collection |
+---------+-----------+ | (1 per shop) |
^ +--------+---------+
| deducts / restores | assigned
| stock v to POS
+---------+------------+ +------------------+
| Documents: | 1 Goods Outbound | POS (per shop) |
| Goods Outbound / |<--- per sale line ----- | shows only its |
| Goods Inbound | (tax rate passed as | shop's items |
+----------------------+ DocumentRowTaxID) +------------------+
Relations at a glance:
Relation | Cardinality | Meaning |
Megaventory Product to Inventory Location | 1 to many | One product holds a separate stock level in each warehouse. |
Megaventory Product to Smeetz Item | 1 to many | The product is mirrored once per synced warehouse. The pair (SKU + warehouse) identifies the item. |
Smeetz Item to Inventory Location | many to 1 | Each item is bound to exactly one warehouse. Its stock quantity in Smeetz is that warehouse's stock. |
Smeetz Item to Sales Collection | many to many | Items are added to Sales Collections. Convention: one collection per shop, containing that shop's items. |
Sales Collection to POS | 1 to 1 | Each POS uses its shop's collection, so it only displays and sells that warehouse's inventory. |
Smeetz sale line to Megaventory document | 1 to 1 | A sale creates a Goods Outbound at the item's bound warehouse. Cancellations and refunds create the reverse at the same warehouse. |
3. Set up in Megaventory
Three things are needed on the Megaventory side before connecting.
Step 1 - Get the API key. In Megaventory, open the user profile (My Profile, page "Edit User"). The API Key field holds the key you will paste into Smeetz. Use a dedicated admin user for the integration.
Step 2 - Enable Custom Webhooks. In the Megaventory menu, go to Integrations > Custom Webhooks, switch on Enable Custom Webhooks Integration and click Save. This is what allows Megaventory to notify Smeetz of product and stock changes in real time. Without it, changes only arrive with the periodic reconciliation.
Step 3 - Set up the taxes. In Megaventory, tax is not set on the product itself: it comes from a sales pricing rule. Two actions are needed:
3a. Create the tax: go to Taxes > New Tax and enter a name and the percentage. Create one tax per VAT rate you sell with (for example standard and reduced).
3b. Attach the tax to the products through a pricing rule: go to Pricing Rules > New Sales Pricing Rule, select the tax in the Tax dropdown, and choose which products the rule applies to under Use this Pricing rule for. Every product must be covered by a pricing rule carrying its tax.
✅ When the catalogue syncs, the tax from the product's pricing rule is applied automatically to the imported item in Smeetz (matched to the Smeetz VAT rate with the same value). Nothing else to configure.
⚠️ A product not covered by any tax-carrying pricing rule falls back to the default VAT rate chosen in the Smeetz integration setup. For a mixed catalogue (standard + reduced rate), check that every reduced-rate category has its pricing rule, otherwise those items get the default rate.
4. Set up in Smeetz
📌 How to access: app.smeetz.com > Account details > Inventory integration
The connection is a self-service wizard with four steps:
API key: paste the Megaventory API key from step 1 above. It is only used to test the connection until you activate the integration.
Test connection: Smeetz pings Megaventory and confirms the account.
Warehouses: pick the warehouses to keep in sync. The first one you pick becomes the default warehouse, used for sales that cannot be tied to another warehouse.
Review and activate: confirm the setup. Activation runs the first catalogue sync.
Once activated, the same page shows the connection status: provider, API key (only the last digits are displayed), last sync time, the synced warehouses and a Stock sync enabled toggle.
Then organize the selling side:
Step 5 - Create one Sales Collection per shop and add that shop's items under Retail products. The dropdown groups items by warehouse name, and each group has a Select all link to add the whole location in one click (and Unselect all to remove it).
Step 6 - Assign each collection to the shop's POS. The POS then only displays inventory of its own warehouse, while the back-office keeps visibility of all synced warehouses.
✅ You can verify the result in Catalogue > Retail Inventory: the list has a Warehouse column and shows one row per item and warehouse (plus an aggregate row without a warehouse), so you can see the stock of each location side by side.
⚠️ While the integration is active, Megaventory is the master: creating retail items manually and adjusting availability directly in Smeetz are blocked. Products and stock levels are managed in Megaventory and flow into Smeetz automatically.
5. Sales, cancellations and refunds
A POS sale deducts stock from the item's warehouse in Megaventory automatically. The cashier sees nothing new.
Scanning or selecting an item loads only the stock level of that POS's warehouse.
In Create a sale in the back-office, the Retail product dropdown shows the same grouping by warehouse, so the operator always knows which location's item they are selling.
The tax rate is a property of the sale, not the product. It is passed per sale line to Megaventory as DocumentRowTaxID on the Goods Outbound document.
Cancellations and refunds restore items to their original Megaventory warehouse, independently per line. Cancelled adjustments and post-cancellation reconciliation are handled correctly, and renaming a product applies per warehouse.
6. Taxes and product attributes
VAT is imported automatically: when products sync from Megaventory, the tax carried by the product's sales pricing rule (see section 3, step 3) is set on the imported retail items in Smeetz, matched to the Smeetz VAT rate with the same value. Products without a rule get the default VAT rate from the integration setup.
At sale time, the tax of each sale line is passed to Megaventory as DocumentRowTaxID, so both systems stay aligned.
Once set, sync and reconciliation do not overwrite the VAT: an operator can override it per item in the back-office and it sticks.
Custom fields map to accounting and analytical codes: the last two custom fields on the Megaventory product are reserved for this. Custom field 19 holds the accounting code and custom field 20 the analytical code. During sync they are mapped to the accounting and analytical codes of the Smeetz item, so revenue is booked with the right codes in reports and accounting exports. Fill these two fields on every product in Megaventory (they can be part of the data import file).
Product attributes, including the collection grouping, live on the Megaventory product. Nothing needs to be passed at sale time.
Related resources
SmeetzPedia entry: pages.smeetz.com/smeetzpedia/advanced-integrations/megaventory
PRD: Megaventory Inventory Integration (Notion)










