Integrate your wholesale store on VentasxMayor with the Ninox ERP to automatically sync catalog, prices, stock, and orders. Ninox manages your inventory and invoicing; VentasxMayor receives the catalog and sends it the wholesale orders for invoicing.
How it works
The integration syncs in two directions:
- Ninox → VentasxMayor (catalog): products, size and color variants, base price, price lists, stock, and categories. It updates in two ways: with the Import products button (your store queries the Ninox catalog) and automatically when Ninox pushes stock and price changes to the store.
- VentasxMayor → Ninox (orders): every confirmed wholesale order in the store is sent to Ninox for invoicing. Cancellations of already-sent orders are also communicated to Ninox.
Once integrated, the catalog is managed from Ninox. Any price or stock change you make by hand in VentasxMayor is overwritten on the next sync.
Initial setup — checklist
1. Token
Ninox provides the token when it sets up the integration. In the side menu go to Settings → ERP, select Ninox, paste the token, and use the Verify Configuration button to confirm the connection works before operating.
- Only one token is valid at a time. If Ninox generates a new token, the previous one stops working. Saving an old token breaks the entire integration: orders bounce with the error "No se encontró la integración" (integration not found).
- Watch out for old browser tabs. If you have the configuration page open from before and save any change, the old token that tab had loaded gets written again and overwrites the good token. If two people manage the configuration, coordinate who loads the token.
2. Price lists (important — do this BEFORE importing)
Ninox handles up to 5 prices per item. The mapping to the store is fixed:
| Price in Ninox | Destination in VentasxMayor |
|---|---|
| Price 1 | Product base price (the one shown on the site). Needs no list of its own. |
| Price 2 | List with code L2 |
| Price 3 | List with code L3 |
| Price 4 | List with code L4 |
| Price 5 | List with code L5 |
Before the first import, create in Settings → Price lists one list for each price you use in Ninox. The code must be exactly L2, L3, L4, or L5; the name is free and it's best to use the real name (e.g. "Premium", "Sale", "2nd grade").
- If an item in Ninox has price N set and the list
LNdoes not exist, the import fails completely with the error "Lista de precios no encontrada LN" (price list not found) and nothing is updated. - Do not delete an
LNlist if Ninox still loads that price: the next import will fail again.
3. Buyers with an assigned list
For a wholesale buyer to see their list's prices (for example, premium clients on Price 2), assign the list on their customer record. Lists not assigned to anyone are not shown on the site (useful for internal prices such as in-person sales or invoicing).
Product import
The Import products button brings the full catalog from Ninox and updates: name, description, base price, per-list prices, categories (Ninox's tags), size and color variants, and the stock of each variant. Variants with no stock are automatically disabled.
- Product codes: without variants, Ninox's item number is used; with variants, the format is
item!size!color. Do not edit them manually: they are the key Ninox uses to identify each order line. - Ninox API limit: 1 query every 10 minutes. If you retry sooner, the import does nothing. On any retry, wait 10 minutes.
- The catalog is managed in Ninox. Any price or stock change made by hand in the store is overwritten on the next sync.
Orders (VentasxMayor → Ninox)
Every confirmed wholesale order is sent to Ninox with:
- Buyer data according to their fiscal condition: Consumidor Final (final consumer) sends DNI; Responsable Inscripto, Monotributo, and Exento send CUIT.
- Line detail with size, color, and quantities.
- Subtotal, total discount, surcharge, shipping, and total as separate fields.
- Shipping and billing addresses, and order notes.
If Ninox accepts the order, it returns the invoice number, which is saved on the order as the ERP reference. This reference links each order to its record in Ninox for tracking and traceability.
Stock validation: Ninox validates stock when it receives the order. If there isn't enough stock it responds "No hay stock suficiente" (not enough stock) with the detail of the missing items and does not generate the invoice. The order stays in the store with the error logged. To resolve it: update stock (Import products), restock in Ninox, or adjust the order with the buyer, and resend it from the panel.
Cancellations: cancellations of already-sent orders are communicated to Ninox using the stored invoice reference.
Fiscal condition mapping
Buyers' fiscal conditions are mapped to Ninox numeric codes:
- 1 = Consumidor Final (final consumer) — DNI is sent
- 2 = Responsable Inscripto — CUIT is sent
- 3 = Monotributo — CUIT is sent
- 4 = Exento (exempt) — CUIT is sent
An incorrect mapping causes invoicing problems in Ninox, so verify that each buyer's fiscal condition is correctly set in VentasxMayor.
Common errors and solutions
| Message / symptom | Cause | Solution |
|---|---|---|
| "No se encontró la integración" | The saved token is not the one currently valid in Ninox (it was regenerated or overwritten by an old one). | Load the current token, use Verify Configuration, and resend the orders that bounced. |
| "Lista de precios no encontrada LN" | There are items with price N set in Ninox and no list with code LN exists. | Create the list (exact code LN) and re-import. Tip: create all the lists you use at once so you don't discover them one by one (each retry waits 10 min). |
| "No hay stock suficiente" when sending an order | The real stock in Ninox is lower than the order (typical when the store's stock got out of date). | Import products to sync stock; restock or adjust the order; resend it. |
| Import products "does nothing" | API limit: 1 query every 10 minutes. | Wait 10 minutes and retry. |
| Prices/stock out of date for days | Overwritten or invalid token: Ninox can't push updates to the store. | Verify the token; then import products to catch up. |
Configuration fields
- Token (text, required): Ninox API authentication token. It validates each request sent to the system and is provided by Ninox when setting up the integration. After pasting it, use Verify Configuration.
Tips
- Create the
L2–L5price lists you use in Ninox before the first import. It's the most common cause of failures at startup. - Only one valid token at a time: coordinate who loads it and close old configuration tabs so you don't overwrite the good token.
- Don't edit prices or stock from VentasxMayor once integrated. Do it only from Ninox; the next sync overwrites your changes.
- Respect the limit of 1 query every 10 minutes when importing products. If it "does nothing", wait and retry.
- If an order doesn't reach Ninox, check the order's error log first: it holds the status and Ninox's response.
- Keep the invoice reference saved on each order: it's the key for traceability between both systems.