Skip to content

Sending stock to the marketplace ​

Once an offer's stock to publish differs from what the marketplace last confirmed, the offer is Waiting to send. This page explains how the number actually reaches eMAG or Fashion Days, what can go wrong, and what Stock Sync does about it. ABOUT YOU answers a stock update a moment later instead of straight away; that has a section of its own.

What is sent ​

For each offer, Stock Sync sends exactly two things: the offer id and the new stock number, for the account's Warehouse (shown on the Connection card of the account's Summary). Nothing else about the offer changes: not the price, not the handling time, not the status, not the description.

The number sent is always the full stock ("set to 7"), never a difference ("add 2"). Sending the same message twice is therefore harmless.

When it is sent ​

A sending round starts a second or so after offers become Waiting to send, for each account on its own. It only sends when the account is:

Otherwise the offers stay Waiting to send until the account can send again.

Each account has one sending round at a time, never two in parallel. Changes that arrive while a round is running are picked up by the next round, straight after.

Batching and speed ​

  • A round sends up to 50 offers per request, the most eMAG accepts in one request.
  • Requests are spaced to the account's Request budget, shown on the same Connection card. The default is 2 requests per second; eMAG allows at most 3 per account, across everything we do with that account, so the default leaves room for other work.
  • At 2 requests per second and 50 offers per request, Stock Sync sends about 100 offers per second. A full re-send of a 100,000-offer account takes about 17 minutes. An ordinary 15-minute reading changes a few dozen offers, which go out in a second or two.

A Sending round appears in Activity → Sync runs whenever it sent something, with counts such as "37 published · 1 rejected". Its failed count only counts offers that gave up in that round and are now Failed, not offers that will be retried. A round in which the marketplace was only busy or slow still ends Succeeded; a round ends Failed only when the whole account becomes unavailable (see the last row of the table below).

What the marketplace can answer ​

The marketplace answers for each offer separately. Stock Sync sorts every answer into one of four outcomes:

Marketplace answerOutcomeOffer becomesWhat happens next
AcceptedPublishedIn sync, Published = the number sentNothing
Refused because of a campaign (the message mentions a campaign)Rejected, campaign lockRejected with eMAG's messageTried again every 6 hours for up to 14 days, because the lock ends when the campaign ends
Refused because the offer does not exist or is not foundRejected, offer not foundRejected with the messageNot retried until the stock changes or someone presses Resync
Refused for any other reason (invalid data)Rejected, validationRejected with the messageNot retried until the stock changes or someone presses Resync
Busy (too many requests, code 429), server error (codes such as 500 or 503, "service unavailable"), timeout, no answer, no result for this offerTemporary failurestays Waiting to send, with "attempt 3, next try in 2 minutes" in Last problemRetried automatically, waiting longer each time
8th temporary failure in a rowFailedFailedWaits for an operator's Retry failed or Resync, or for new stock
The marketplace refuses the login (wrong API user or password), or does not let this API user, or our server's address, use its APIAccount problemThe whole account becomes SuspendedThe round stops and ends Failed, with "Account unavailable: …". See Account health and pausing

Rejections and failures are different ​

This is the most useful distinction on this page:

  • A rejection is a clear "no" from the marketplace, for a business reason. Sending the same number again will get the same "no". Read the reason in Last problem; usually somebody in operations has to act (for example, wait for the campaign to end, or fix the offer on the marketplace).
  • A failure is "no answer" or "not now". Nothing is wrong with the offer. Stock Sync retries on its own. An offer only becomes Failed after about an hour of trying, which usually means the marketplace or our connection to it had a real outage. Once it is over, press Retry failed.

The retry timetable ​

Attempt that failedNext try after
1st30 seconds
2nd1 minute
3rd2 minutes
4th4 minutes
5th8 minutes
6th16 minutes
7th30 minutes
8thnone: the offer is Failed

If the marketplace says how long to wait (it can when it is too busy), Stock Sync waits at least that long. Retries are started by a check that runs every minute, so each wait can be up to a minute longer than the table says. All seven waits add up to about 62 minutes.

When stock changes while it is being sent ​

Suppose Stock Sync is sending 5 for an offer and, in that same second, the PIM drops to 1. The marketplace confirms 5. Stock Sync records Published 5, sees that 1 is now wanted, keeps the offer Waiting to send and sends 1 in the next request. An older number never overwrites a newer one.

ABOUT YOU: sent first, confirmed a moment later ​

eMAG and Fashion Days answer each stock update at once. ABOUT YOU does not. It accepts the update, works on it, and says later whether it applied it. Stock Sync follows that in two steps, and an offer has a status of its own for the time in between: Sent, awaiting confirmation.

  1. When PIM's stock changes, the offer is Waiting to send, as for eMAG.
  2. Stock Sync sends the new stock, up to 1,000 offers in one request. The offer becomes Sent, awaiting confirmation.
  3. Stock Sync asks ABOUT YOU how it went ten seconds after sending, then every ten seconds for a minute, then less often (see the schedule). When ABOUT YOU confirms, the offer is In sync and Published is the number sent. When ABOUT YOU refuses it, the offer is Rejected with ABOUT YOU's reason in Last problem. When something went wrong on the way (ABOUT YOU busy, or no answer), the offer goes back to Waiting to send and is tried again later, on the retry timetable above.
  4. If ABOUT YOU has still not answered after 30 minutes, the offer goes back to Waiting to send, with "ABOUT YOU did not confirm the update within 30 minutes" in Last problem, and Stock Sync sends the stock again.

While an offer is Sent, awaiting confirmation, the offer page says what was sent and when: "Sent 12 at 30/09/2026, 10:51, waiting for the marketplace to confirm". The Offers list shows the same status in amber, and its Status filter has it as an option. Because the number has been sent but is not yet applied, the Overview and the account count these offers with Waiting to send (the Waiting to send tile, the accounts' Waiting figures, the Waiting quick view and Offer health). A Sending round in Activity → Sync runs counts the offers it sent as "1000 sent, awaiting confirmation". The round that gets ABOUT YOU's answer counts those offers as published or rejected as usual, and adds "1 batch confirmed" (a batch is what one request carried: up to 1,000 offers). A batch ABOUT YOU never answers shows "1 batch not confirmed in time" in the round that gave up on it.

When stock changes while an offer is waiting for ABOUT YOU's answer, Stock Sync sends the new value at once, without waiting for the first answer. Every send carries the time it was made, and ABOUT YOU always keeps the most recent value it received, so the order in which it finishes the two does not matter.

Preview works as for eMAG: Stock Sync works everything out and sends nothing. A batch sent before the account went back to Preview is still asked about, so its offers do not stay awaiting confirmation.

What ABOUT YOU says about an offer ​

ABOUT YOU approves and publishes products itself. It reports a status for every product variant, and Stock Sync shows it like this:

ABOUT YOU statusMarketplace state on the offer pageMarketplace validationStock sent?
Active (on sale)On sale on the marketplaceNothing reportedYes
Inactive (taken offline by the company)Switched off on the marketplaceNothing reportedYes
DraftSwitched off on the marketplaceNothing reportedYes
Pending approval, or approved and being publishedSwitched off on the marketplaceWaiting for validationYes
Rejected in ABOUT YOU's reviewSwitched off on the marketplaceRejected in reviewYes
Problem (was on sale, a change made it invalid)Switched off on the marketplaceNeeds correctionYes

Every ABOUT YOU offer receives its stock, whatever its status. This differs from eMAG on purpose. ABOUT YOU can put a product on sale by itself, when it approves it, when a problem is fixed, or when an inactive product is published again, and Stock Sync would only notice at the next morning's offer import. If stock had been held back until then, the product would go on sale with outdated stock and could be oversold. So Rejected in review and Needs correction are only information (they are not red, and they do not say "no stock sent"): somebody has to fix the product on ABOUT YOU, and the stock is already right when it goes on sale again.

The outbox ​

Inside Stock Sync, every change (for example "offer 101577 now needs 5") is saved together with a message that tells the rest of the system to act on it. Both are saved at once, or neither is. That way a change can never be lost between two parts of the system. The place where these messages wait is the outbox.

Normally a message waits less than a second, and you never see it. Only messages that could not be passed on, and now wait for a person, are counted: in red beside Activity in the sidebar, on the Outbox tab of Activity, and as a row of the Overview's Needs your attention. Healthy is none at all.

What "set aside" means ​

A message is set aside when it cannot be passed on. If the internal message queue refuses it five times, counted only while the queue is accepting other messages, it is set aside. A message that is too large (over 1 MB) or that Stock Sync cannot package is set aside at once. A set-aside message is never retried or deleted on its own. It stays on the Outbox tab of Activity with its reason, and the Overview's Needs your attention says, for example, "3 outbox messages set aside".

What to do:

  1. Tell the technical team. They find and fix the cause.
  2. An operator opens Activity → Outbox and presses Release on one message, ticks several and presses Release on the bar, or uses Release all for an account. Stock Sync says "Released 2 messages. The relay tries them again from its next tick." (The relay is the part of Stock Sync that passes outbox messages on; a tick is one of its rounds, every half second.)

Releasing before the cause is fixed only sets the messages aside again. See Deal with set-aside messages.

If the message system itself is down, messages simply wait and nothing is set aside; they go out when it is back. The screens show "Connection lost … The message queue is down." under the top bar meanwhile. While it is down, pausing an account, changing settings, going back to Preview and releasing set-aside messages still work; other actions are refused within a few seconds with a message saying nothing was changed.

Sending again by hand ​

ButtonWhereWhat it does
Retry failedThe top of the Offers page or an account's Offers tab, the selection bar, or the failed-offers row of the Overview's Needs your attentionPuts every Failed offer (of every account, of the filtered accounts, or of the selection) back to Waiting to send, except offers the marketplace has ended
Resync stockThe selection bar of the Offers list, after ticking offersSends the ticked offers again (any number of them), even if they are In sync or Rejected; with Select all … matching, every offer that matches the filters (up to 5,000)
ResyncThe offer's row, its side panel and the Offer pageSends this one offer again

These are useful after a campaign ends, after someone fixed an offer on the marketplace, or when you suspect the marketplace shows something else than it confirmed. See Resend stock for some offers.

Examples ​

Example 1: a campaign lock ​

Offer 101577 on eMAG RO is in a Black Friday campaign. The PIM drops from 7 to 5.

  • 10:22: Stock Sync sends 5. eMAG refuses with a message about the campaign.
  • The offer is Rejected with eMAG's message in Last problem. The Overview's Needs your attention says "1 offer rejected by the marketplace on eMAG RO".
  • 16:22, 22:22, 04:22 …: Stock Sync tries 5 again every 6 hours. The history does not add a new row for each identical refusal.
  • The campaign ends on day 4. The next try is accepted: In sync, Published 5.
  • If the PIM had changed to 4 on day 2, 4 would have been tried straight away, not at the next 6-hour mark.
  • If the campaign had lasted more than 14 days, the offer would stay Rejected and wait for new stock or a Resync.

Example 2: eMAG has an outage ​

On a Tuesday at 14:00 eMAG answers every request with a server error (code 503, "service unavailable") for 90 minutes. 37 offers of eMAG RO are waiting.

  • 14:00: first attempt fails. Last problem reads "eMAG offer/save answered 503: … · attempt 1, next try in 30 seconds".
  • The retries follow the timetable, each up to a minute later than shown: 14:00:30, 14:01:30, 14:03:30, 14:07:30, 14:15:30, 14:31:30, 15:01:30. The sending rounds of those minutes still say Succeeded in Activity → Sync runs, because nothing has given up yet.
  • The 8th attempt, at about 15:02, also fails. The 37 offers become Failed, and that round counts "37 failed". The Overview shows "37 offers failed on eMAG RO" and the Needs a fix tile turns red.
  • 15:30: eMAG is back. An operator presses Retry failed. All 37 are sent within a second and become In sync.

Example 3: an offer that no longer exists on eMAG ​

Someone deleted offer 204411 on eMAG BG by hand. The PIM changes its stock, Stock Sync sends it, and eMAG answers "This offer does not exist".

  • The offer is Rejected with that message. It is not retried.
  • An operator lists the product again on eMAG BG with offer id 204411, then presses Resync on the offer page. The stock is sent and accepted.

Channel Hub Stock Sync — user guide for operators and viewers