- an ERP price level to a catalog price level, on the Price levels tab;
- an ERP warehouse to an Omnilinker warehouse, on the Warehouses and products tab;
- an ERP product to a catalog product (a link), on the Warehouses and products tab. Omnilinker links most products by itself.
Lists from the ERP
For each product the agent sends, besides its code and name, the details your catalog can use: invoice name, VAT, unit,
EAN, brand, purchase cost, weight and dimensions. See Products from your ERP.
The lists hold only the company set in the agent (Company number). See
Wapro.
Stock
Stock is the fourth thing the agent sends. You don’t map it: Omnilinker shows it on Stock Levels, a product’s page and Warehouses, beside your own stock, for products linked to an ERP product and warehouses mapped on this connection. On a warehouse Omnilinker manages it is for comparison only: nothing lands in your stock levels and channels keep using Omnilinker’s stock. On a warehouse this connection manages, it becomes the warehouse’s stock; see Hand a warehouse to your ERP. For Wapro the agent reads it every 5 minutes while at least one warehouse of the connection is mapped, sends only what changed, and sends a complete set once a day; see Wapro. It needs an agent from this release: an older agent sends no stock.Prices
Prices are read for comparison, and only when you ask for them. The agent reads the ERP’s selling prices only while both of these are true:- a price level of the connection is mapped to a catalog price level, and
- Read prices from the ERP is switched on for your organization. It is off until Omnilinker switches it on for you: ask Omnilinker. See Modules and feature availability.
When the lists are read
The agent reads the lists:- when its connector starts, for example after the service starts, but only for a list that has not been read yet, is more than a day old, or was read under other settings (another database, company or warehouse),
- when the connection’s settings change and a list was read under the earlier ones,
- about once a day after that,
- when you click Refresh lists on the connection’s Overview tab, and
- when an operator clicks Refresh lists in the tray app’s Settings.
The lists card
The connection’s Overview tab has a Lists from ‹ERP› card, with one line per list, for example Receives stock · Read 14:02 · by comparison · 120 products in 3 warehouses. Times are when Omnilinker received each list:- Receives stock, Receives products, Receives price levels, Receives warehouses, Receives prices, Receives orders sent from Omnilinker or Receives product images: the lists this connection’s connector sends. Receives orders sent from Omnilinker is the read-back of the orders you sent (see Invoices); it appears once the connection has sent an order, and the agent reads it only while an order was sent in the last 90 days. Receives prices appears once a price level of the connection is mapped, and not before. Receives product images appears while the agent is asked for images: Read product images from the ERP is on for your organization, the connection’s Images field is not Off and a product is linked (see Product images); its count is the products the last complete read carried.
- Read and a time (or not read yet for a list the agent has not sent): when the list was last read. Hover over it to see the full date and time in your organization’s time zone. The time turns amber when stock is more than 6 hours old, when prices are more than 6 hours old, when the orders sent from Omnilinker are more than 1 hour old, and when any other list, product images included, is more than 48 hours old, or has never been read. Prices are amber only while Omnilinker asks the agent for them. A line the agent is no longer asked for, because no order was sent for 90 days or images are no longer wanted, is never amber. Omnilinker measures it on its own clock, from when the agent’s report arrived.
- by changes, by comparison or by complete reads: how the agent reads the list. For Wapro, stock, prices and the orders sent from Omnilinker are read by comparison (the agent compares each read with the last one and sends the differences), and the other lists are read by complete reads.
- 120 products in 3 warehouses for stock, 1,200 prices on 3 levels for prices, or 6 items for the other lists: what the last read carried.
- reading prices is off for this account: the Prices line says this instead of the time, the mode and the counts while Read prices from the ERP is off for your organization. Omnilinker has not asked the agent for prices, and it stays so until Omnilinker switches the feature on.
- Update the ERP Sync agent to read prices: the connection’s agent is older than the release that reads prices. Update it; see Install the agent.
- Refresh requested at a time: Omnilinker has asked the agent for the lists, and they appear when the agent has read them.
- ERP Sync has not reported any list this connection’s connector sends.: the agent has not reported its connector yet, or the connector cannot read the lists right now. See Troubleshooting.
Price levels
The connection’s Price levels tab has one row per catalog price level: the ERP level it is mapped to, who sets it, and its prices with one time. A level’s owner and its ERP level are changed here and nowhere else on the connection.1
Map each price level
In a row, choose the ERP level for the catalog level. Choose — Not mapped — to remove the mapping. An ERP level
already used for another catalog level says “(used for …)”, and one the ERP calculates “(calculated in ‹ERP›)”.
2
Check that it saved
Each choice is saved as soon as you make it; the row says Saved, or Saved · read requested when the mapping
asked the ERP for a read of its prices.
- Received from ‹ERP›: the ERP sets the catalog level, and its prices come from the ERP for the products linked to it.
- Sent to ‹ERP› automatically: the catalog level is Omnilinker’s, and every change to its prices goes to this ERP automatically. See Send prices automatically.
- Can be sent with Send to ERP: the catalog level is Omnilinker’s, so its prices can be sent to this ERP.
- Neither received nor sent: for example a level that is not mapped, or one another system manages.
- “‹ERP› calculates this level, so Send to ERP refuses its prices. To send them, map the catalog level to a level ‹ERP› does not calculate.”
- “This catalog level is mapped to more than one level of this ERP (…). Send to ERP sends none of its prices until it is mapped once.”
- “Another system manages this level: Omnilinker neither receives nor sends its prices.”
- “‹ERP› sets this level, but no ‹ERP› level is mapped to it, so its prices do not arrive. Pick its ‹ERP› level.”
What a mapped price level is used for
A price level mapping does two things. It tells Omnilinker which ERP price level a catalog price level is sent to, when you send prices to your ERP by hand or automatically, and it makes the agent read the ERP’s prices at that level so you can compare them with yours (see below). It is also where the ERP’s prices land when you let the ERP set the level. A level the ERP calculates (Calculated in ‹ERP› · can only be received) can be compared, but cannot take a price: a send to it is refused with “This ERP price level is calculated in the ERP and cannot be written.” Map each catalog price level to one ERP price level only: with two mappings Omnilinker refuses to send a price, because it could reach the wrong level. When you move or remove a mapping, the price sends still waiting for the old ERP level are withdrawn, so none of them reaches a level the catalog level is no longer mapped to.Compare the ERP’s prices with yours
While Omnilinker asks the agent for prices, a row Omnilinker sets compares the ERP’s prices at its level with the prices of your catalog, for the products linked to an ERP product: Compared with ‹ERP› at 14:05 · Equal 120 · Differs 3 · No price in Omnilinker 5- Equal: the ERP’s net and gross are the same as the product’s price at the mapped level. Both are rounded half away from zero to the currency’s smallest unit before they are compared. A price you sent also counts as Equal when the ERP still holds what it stored for it, the amount you sent (net or gross) is unchanged on both sides, and the other amount differs by at most the currency’s smallest unit (one grosz) because the ERP rounds it its own way. This applies only on a level the ERP does not set. On a level the ERP sets, Omnilinker must hold the ERP’s exact prices, so such a gap stays Differs and the ERP’s price lands again.
- Differs: the amounts are not the same. That includes a price the ERP holds because Omnilinker sent it, when you have changed the product’s price since and not sent it again. Only a price that is still on its way to the ERP is not counted as a difference.
- No price in Omnilinker: the ERP has a price and the product has none at the mapped level.
- Compared with ‹ERP› at: when the comparison was last made. Omnilinker compares again a few minutes after new prices arrive or a price changes in Omnilinker, and once a day.
Warehouses
The Warehouses and products tab starts with the ERP’s warehouses, one row each, with when the connection’s stock was last read. Each row shows the warehouse In ‹ERP›, its warehouse In Inventory, Who changes stock and the flow. Not mapped: 3 counts the ERP warehouses that are neither mapped nor ignored. Map a warehouse. Choose an Omnilinker warehouse in the row’s Inventory warehouse list; choose — Not mapped — to remove the mapping. Each choice is saved as soon as you make it. A warehouse the ERP manages cannot be unmapped (“Can’t be unmapped while ‹ERP› changes its stock.”). A row that is not mapped can offer:- Suggested: ‹warehouse› · same code (or similar name) when an unmapped Omnilinker warehouse has the same code as the ERP warehouse, or a name that differs only in case and spacing. Click Map it to map to it. The suggestions are worked out each time the list is shown, so a warehouse you create or rename in Inventory is suggested at once, without waiting for the next list from the ERP.
- Create in Inventory: creates an Omnilinker warehouse from the ERP warehouse and maps it in one step (“Created … in Inventory and mapped it. Omnilinker · Inventory manages its stock.”). It needs the Create Warehouses permission in Inventory. A code longer than 20 characters is shortened, and the row says “Its code in Inventory is …”.
- Ignore: for an ERP warehouse you never want in Omnilinker. An ignored warehouse is listed as Ignored, with who ignored it and when, is not offered for creation, is not counted in Not mapped, shows no stock and cannot be mapped (Omnilinker says “The ERP warehouse … is ignored on this connection. Stop ignoring it before you map it.”). Stop ignoring brings it back.
- “Inventory already has a warehouse with the code …”: click Map to the existing warehouse. If that warehouse is inactive, activate it in Inventory first. If it is already mapped to another ERP warehouse of this connection, no button is offered: a warehouse mapped twice shows no ERP stock, so pick another warehouse or change the existing mapping.
- “Your plan allows one warehouse in Inventory, and it already has one.” or “Your plan allows at most N warehouses in Inventory, and all of them are used.”: map the ERP warehouse to an existing one instead.
- “You can’t create warehouses in Inventory. Ask someone who can, or map this ERP warehouse to an existing one.”
Who changes a mapped warehouse’s stock
Who changes stock reads Omnilinker · Inventory when your team changes the stock in Omnilinker, or the connection’s name when the ERP manages it, with since when. With the Change who changes stock permission, Change owner opens the warehouse’s owner dialog, a guided switch in Inventory; see Hand a warehouse to your ERP. The flow says what this connection does with the warehouse’s stock:- Stock managed by ‹connection› with when it was read: this connection manages the warehouse’s stock, and Omnilinker’s stock for the warehouse follows its reads. The time turns amber after 6 hours; before the first read it shows an amber not read yet, and Omnilinker keeps the warehouse’s last stock until then.
- Stock read from ‹connection› with when it was read: ERP Sync reads the ERP’s stock in this warehouse, and Omnilinker shows it beside its own on Stock Levels, on a product’s page and on Warehouses, for comparison only. The time is when the connection last read its stock, the same for all its warehouses; it turns amber after 6 hours.
- Not read until it’s mapped, No stock shown (for example because two ERP warehouses are mapped to the same Omnilinker warehouse), or Not on the ERP’s list any more.
Link products
Below the warehouses, Products that need you lists the ERP’s products with their links to catalog products. It appears when the connection’s connector sends products, and it opens on what needs a person: the Suggested group while it holds anything, then Not linked, no suggestion, then Linked. The line under the title counts the products in the ERP and how many are linked, with when the list was read. What links on its own, which fields a product takes from the ERP and how products are created is shown under How products arrive from ‹ERP›, further down the tab. See Products from your ERP.- Groups: Suggested, Not linked, no suggestion, Linked, Ignored, Inactive in ‹ERP›, Missing in ‹ERP› and Deleted in Omnilinker, each with its count. Groups with nothing in them are hidden.
- Linked narrows linked products by how they were linked: Any way, By a person, By code, By GTIN or Created from this ERP.
- Search by code, name or ERP key finds a product.
- Each row shows the ERP product, Why it is in its group (for example the reason for a suggestion), and the catalog product it is linked to, or Not linked. A linked row says how it was linked. A red badge on a linked row names a problem: SKU taken by another product, EAN taken by another product, SKU too long, A field’s source moved or The last update failed.
After Omnilinker moved to stable ERP keys, product links are made again from the ERP’s product list. If a
connection shows no product links, click Refresh lists once.
Who manages SKUs
How products arrive from ‹ERP› says who may change product SKUs and delete products, under Who manages SKUs. By default it reads Omnilinker · Catalog. Changing it is a guided switch; see Products from your ERP.Dangling mappings
A list shows mapping(s) need attention when a mapping no longer fits:- — ERP item no longer present: the ERP price level or warehouse is gone from the latest list.
- — target no longer available: the catalog price level or Omnilinker warehouse it points to was deleted.