List offer issues
Lists what blocks the offer from being published or sold.
Lists what blocks the offer from being published or sold, and what the marketplace says about it. Use it before publishing and when a listing stalls. The route only reads: it does not call the marketplace and has no pagination, because the set is small.
curl "$BACKEND_URL/v1/listings/<listingId>/issues" \
-H "Authorization: Bearer mk_your_api_key"error items come first. With no problem at all, issues is empty. Decide by code: the message is free text and can change.
Local issues
With source: local. They come from MarketAPI's own data.
code | severity | What to do |
|---|---|---|
listing_unlinked | error | No Variant linked (or an import matched more than one). Replace the bindings. |
binding_invalid | error | The binding's Variant, or its Product, is archived, or belongs to another seller. Change the link. |
price_missing | error | No price. Set desired.offer.priceInCents on the listing or on the line. |
outbound_disabled | error | Outbound is off. Turn it on in the sync policy. |
connection_inactive | error | The Connection is not active. The seller must reconnect. |
capability_unsupported | error | The marketplace does not publish listings, or the Connection lacks the scope. See the capabilities. |
last_publication_failed | error | The last publication failed. See the attempts and publish again. |
open_conflict | warning | A conflict is waiting. Resolve it. |
Marketplace issues
With source: marketplace. There is one item for each reason in statusReasons of the offer and of each line. The code is the normalized reason (out_of_stock, policy_violation…) and externalCode is the channel's own. severity is error when the marketplace says it cannot be bought (buyable: false) and warning otherwise.
source: validation is part of the format, but nothing emits it yet: it arrives with validate.
api_keyAuthorizationBearer <token>API key (mk_...)
listingId*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidThe issues of the offer; empty when there is none.
application/json- response
The issues of an offer. A small set calculated on read, so it has no pagination.
listingId*stringThe listing analyzed.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidissues*array<>Every issue found: local causes first, then open conflicts, then what the marketplace says about the offer and its lines, then the last validation. Empty when there is none.
curl -X GET "https://example.com/v1/listings/497f6eca-6276-4993-bfeb-53cbbbba6f08/issues"{ "listingId": "0e2ce906-a6ab-4101-9461-4168c8b6b902", "issues": [ { "code": "price_missing", "severity": "error", "source": "local", "path": "desired.offer.priceInCents", "message": "The offer has no price.", "externalCode": null } ]}