Appearance
Activity
The Activity page shows what Stock Sync is doing, live: every change as it happens, every background run, and the outbox messages that need releasing. Open it with Activity in the sidebar (its red number counts set-aside outbox messages), with Open the activity feed under Happening now on the Overview or in the Live pill, or by pressing G then V.
The page has three views, chosen with the tabs under its title:
| View | What it shows | Its number |
|---|---|---|
| Live feed | Every change as it happens: stock, orders, accounts, runs | — |
| Sync runs | Background work: PIM readings, offer imports, sending rounds, recalculations | Runs that failed in the last 24 hours (red) |
| Outbox | Messages the queue refused, waiting for a person to release them | Set-aside messages (red) |
The view and its filters are kept in the page's address, so you can send a colleague a link to exactly what you see. The former Sync history and Outbox addresses open the matching view here.
At the top right:
- Legend — what each run result, run type and outbox state means, and what to do about it.
- Read PIM now — reads the PIM products that changed since the last reading, without waiting for the 15-minute schedule: "A PIM reading was requested. It shows under Sync runs once it has run." Operators only. See Read the catalog again now.
Live feed

Each line is one event, newest first, grouped by day (Today, Yesterday, then the date):
- The dot — its colour: green for done, amber for worth a look, red for a refusal or failure, grey for information.
- The icon — its kind: Offers, Orders, Accounts or Sync runs. Hover over it for what that kind covers.
- What happened — for example Offer 310458: published 7, Sending round succeeded · 40 published · 1 rejected · 1 failed, Order ayou-139-38291045: Queued to be imported or Account paused. A line about an offer or an order is a link: it opens that offer or order in the side panel of its list.
- The account — its badge and name; click it to open the account. Left out when the page is narrowed to one account.
- Who — the person's initials (hover for their e-mail address), or the Stock Sync mark for something the system did.
- When — how long ago; hover for the exact date and time.
New lines slide in on top as they happen, pushed by the server; the lines already on screen stay where they are. Show older at the bottom loads earlier events.
Filters
| Filter | Shows |
|---|---|
| Kind | One kind of event: Offers (stock to publish changed, sent, published, rejected, failed; resyncs), Orders (received, imported, needing attention, resolved, cancelled), Accounts (created, paused, resumed, suspended, recovered, settings changed; Odoo and PIM requests) or Sync runs (finished background runs) |
| Account | One account's events |
| Problems only | Only amber and red events: rejections, failures, suspensions, orders needing attention |
| Hide routine readings | On by default. PIM is read every 15 minutes and most readings find nothing new; they are left out so what changed stands out. |
Clear filters removes them all. With filters and nothing matching, the feed says No events match. Clear a filter to see more.
Is it live?
The line at the right of the filters says whether events arrive by themselves:
| It says | It means |
|---|---|
| Live · [n] events in the last hour | Connected: events appear the moment they happen. The dot pulses with each one. |
| Paused with Resume | You paused live updates (in the Live pill or in Settings). The screen is frozen; Resume applies what arrived meanwhile and keeps updating. |
| Connecting… | The live connection is being made. |
| Not live · refreshes every 15 s | No live connection: the page asks for new events every 15 seconds instead. |
See Live updates.
Sync runs
Every run of the sync, newest first: each PIM reading, full PIM check, offer import, sending round and recalculation, with its result and what it did. Runs are kept for 90 days. Use it to check that something ran, to see how long it took, and to read why a run failed.

The columns
Hover over a column title's (i) for its help.
| Column | What it shows |
|---|---|
| Type | What kind of run it was: PIM reading, Full PIM check, Offer import, Sending round or Recalculation. Hover for what it does and when it runs. |
| Account | The account it ran for, or PIM for the runs that read the catalog for every account at once |
| Started | When it began, for example 2 minutes ago. Hover for the exact time and, for a PIM reading, the period of PIM changes it read. |
| Duration | How long it took; nothing while it is still running |
| Result | Running, Succeeded, Failed (with its reason in red under it) or Stopped |
| Counts | What it did, only the figures above zero, for example 318 seen · 27 changed |
Above the table: how many runs match, and how many failed in the last 24 hours.
Routine readings are folded
PIM is read every 15 minutes, and most readings find nothing new. With Hide routine readings on (the default), consecutive readings that changed nothing are folded into one line, [n] PIM readings, nothing new, so the runs that did something, and the failures, stand out. Click the line to unfold them; hover over it for why they are folded. (The picture above shows none: there the readings in a row each found something.) The line above the table adds · [n] routine readings folded. Turn the switch off to see every reading on its own line.
The five kinds of run
| Type | What it does | Account column | When it runs |
|---|---|---|---|
| PIM reading | Reads the PIM products that changed since the last reading, and works out their new stock for every account | PIM | Every 15 minutes, and on Read PIM now |
| Full PIM check | Reads every PIM product, to catch anything a reading missed and find removed products | PIM | Every night at 02:17 |
| Offer import | Reads every offer of one account from the marketplace and links it to its PIM product | The account | Every day at 04:41; when an account is created, resumed or recovered, when its address changes, and on Import offers |
| Sending round | Sends the waiting stock updates of one account to the marketplace | The account | Seconds after a change, and every minute for retries. Only Live accounts send. |
| Recalculation | Works out the stock to publish again for every offer of one account | The account | After a settings change, after the nightly full PIM check, on resume, recover and Recalculate |
When things happen shows the whole daily timetable. Every time an operator saves a setting of an account, a Recalculation of that account appears at the top a few seconds later.
The result
| Result | Colour | Means | What to do |
|---|---|---|---|
| Running | Amber | Still going | Wait. |
| Succeeded | Green | Finished normally. The counts say what it did. | Nothing. |
| Failed | Red | Stopped with an error, shown in red under the result | Read the error. If the same type keeps failing, tell the technical team. |
| Stopped | Grey | Stock Sync was restarted (for example during an update) while the run was going. The line under it reads, for example, "This operation was aborted". | Nothing: the next run of the same kind picks up. It is not an error. |
The counts
| Count | Means | Typical in |
|---|---|---|
| seen | How many items the run looked at | PIM reading, Full PIM check, Offer import, Recalculation |
| changed | How many of them changed something (new stock, new data) | PIM reading, Full PIM check, Recalculation |
| removed | PIM products that disappeared | Full PIM check |
| published | Stock updates the marketplace accepted | Sending round |
| rejected | Stock updates the marketplace refused | Sending round |
| failed | Offers that gave up after every retry in this round and are now Failed | Sending round |
| not linked | Offers that could not be linked to a PIM product | Offer import |
| sent, awaiting confirmation | Offers whose numbers were sent to ABOUT YOU in this round and not answered yet | Sending round (ABOUT YOU) |
| batch confirmed (batches confirmed) | Batches ABOUT YOU answered in this round (up to 1,000 offers each); their offers are counted as published or rejected | Sending round (ABOUT YOU) |
| batch not confirmed in time (batches …) | Batches ABOUT YOU did not answer within 30 minutes; their offers are Waiting to send again | Sending round (ABOUT YOU) |
A sending round has no seen count: it counts only what happened to the updates it sent. See ABOUT YOU: sent first, confirmed a moment later.
Reading a row: examples
| Row | What it tells you |
|---|---|
| PIM reading · PIM · 3.1 s · Succeeded · 318 seen · 27 changed | In 3 seconds Stock Sync read the 318 PIM products that changed in those fifteen minutes; 27 of them had a change that matters for stock. |
| Sending round · Fashion Days RO · 11.4 s · Succeeded · 40 published · 1 rejected · 1 failed | 40 stock updates went through and the marketplace refused 1. The last one had already been tried many times and has now given up: that offer is Failed. The round itself still succeeded. |
| Sending round · Fashion Days BG · 1.2 s · Failed · Account unavailable: eMAG offer/save answered 401: Invalid vendor credentials | The marketplace refused the account's credentials (401 is its code for "wrong login"). The account is now Suspended; nothing is sent until someone fixes the credentials and recovers it. |
| Recalculation · eMAG BG · 21.7 s · 682 seen · 454 changed | Every offer was worked out again; 454 got a new stock to publish. eMAG BG is in Preview, so those 454 wait. |
| Offer import · Fashion Days BG · 48.6 s · 1308 seen · 37 not linked | All 1,308 offers were read, and 37 of them have no PIM product. |
| Full PIM check · PIM · 21 min 24 s · Succeeded · 48210 seen · 12 changed · 3 removed | The nightly check read all 48,210 PIM products; 12 had a stock change the readings had missed, and 3 products were gone from the PIM. |
A sending round that meets a busy or slow marketplace (503, 429 or a timeout) does not fail: it still ends Succeeded, and the offers concerned wait for their next try. A sending round fails only when the account itself can no longer be used, and then its reason starts with Account unavailable:.
Filters
| Filter | Shows |
|---|---|
| Type | Only runs of that kind |
| Result | Only runs with that result, for example Failed |
| Account | Only runs for that account. PIM readings and full PIM checks disappear: they belong to the PIM, not to one account. |
The Account filter is shared with the other two views: the account you choose stays chosen when you switch view. The Overview's Needs your attention rows about runs, and its PIM data tile, open this view.
How to spot trouble
| Sign | What it probably means | What to do |
|---|---|---|
| No PIM reading in the last 20 minutes or more | The PIM is not being read | Check PIM data on the Overview, and tell the technical team. You can try Read PIM now. |
| Several PIM reading runs in a row Failed | The PIM does not answer | Tell the technical team or the PIM team. Stock goes on being sent, but with old figures. |
| A Sending round Failed with Account unavailable: and 401 | The account's credentials are refused | The account is suspended: Bring back a suspended account. |
| No Sending round for a Live account for a long time, while offers wait | The account may be paused, suspended or in Preview | Open the account and read its status banner. |
| An Offer import Failed | The marketplace could not list the offers | Read the reason. Try Import offers again later. |
| A Running run with a start time long ago | A run seems stuck | Tell the technical team. |
A single failed run is often fixed by the next run of the same kind.
Outbox
The Outbox view lists changes that got stuck inside Stock Sync on their way to being sent, and wait for a person to release them. Normally it is empty. You only need it when Activity in the sidebar shows a red number, or Needs your attention on the Overview says outbox messages are set aside.
What the outbox is, in plain words
Think of the outbox as the tray on a desk where finished letters wait for the post. Every time Stock Sync decides something, for example "offer 101577 now needs 5", it writes the decision down and, at the same moment, drops a message about it in the outbox. A few times a second (each round is called a tick), a helper called the relay hands the messages to Stock Sync's internal message queue, which delivers them to the part that does the work. That way no decision can be lost, even if something restarts in the middle.
Almost always a message waits less than a second. If the queue refuses a message five times, the relay stops trying and sets it aside. A message that is too large (over 1 MB) is set aside at once. A set-aside message is never retried or deleted on its own: the change it carries waits until an operator releases it. The view repeats this in a short explanation above the list. If the message queue itself is down, messages simply wait in the tray and nothing is set aside; they go out by themselves when it is back.
The list

| Column | What it shows | Example |
|---|---|---|
| Set aside | When the queue refused the message for the last time; hover for the exact time | 38 minutes ago |
| Account | The account the change belongs to | eMAG RO |
| Change | The change the message carries (its event type) and the record it is about | offer.stock-changed |
| Refusals | Every refusal, the one that set it aside included: 5 after five refusals, 0 when it was set aside at once (too large) | 5 |
| Reason | What the queue said, or why the message could not be sent. The technical team reads it. | Error: Refused 5 times; last: Error: NO_ROUTE - … |
| (button) | Release, for operators |
The Change column uses the technical name: the part before the dot is what it is about, the part after it what happened. The most common: offer.stock-changed (a number a sending round should send), offer.stock-published, offer.stock-rejected, offer.stock-failed (what the marketplace answered), offer.linked and offer.orphaned, catalog.item-changed and catalog.item-removed, catalog.poll-requested (Read PIM now), and account.… (a change to an account, for example account.paused).
The list shows at most the 50 newest set-aside messages; when there are more, a line above it says Showing the newest 50 of 73 set-aside messages.
Releasing messages
Fix the cause first
Releasing a message before the technical team has fixed the cause only sets it aside again. Ask them first; release when they say it is fixed.
Releasing puts a message back among the waiting ones, with its refusal count back at 0; the relay tries it again from its next tick, a fraction of a second later. Every way of releasing asks for confirmation first.
| How | What it releases | Confirmation |
|---|---|---|
| Release on a row | That message | Release this message? |
| Tick several rows, then Release ([n]) on the bar at the bottom | The ticked messages | Release [n] messages? |
| Filter by Account, then Release all for [account] | Every set-aside message of the account, including any beyond the 50 shown | Release every set-aside message of [account]? with Release all |
The confirmation reads, for example, "Released 1 message. The relay tries it again from its next tick." The message leaves the list and the red number beside Activity in the sidebar goes down. If someone else released a message first, the message says it had already been released. Step by step: Deal with set-aside messages.
When nothing is set aside, the list says "Nothing is set aside. Every change reached the queue.": the normal, healthy state.
What a viewer sees
A viewer sees all three views and the Legend, without Read PIM now, Release, the boxes to tick or Release all. Nothing else on this page changes anything.
Good to know
- A set-aside message never goes away by itself. If Activity in the sidebar shows a number, someone has to act: tell the technical team first.
- Every release is recorded on the account's Activity tab with the operator's e-mail address.
- Releasing still works while the message queue is down: the messages then simply wait until it is back.
- Each account's workspace has its own Activity tab with the same feed and runs, narrowed to that account.