status field of Seller, typed by the SellerStatus enum, and only dedicated workflows move it. Each transition validates the current status, records a reason or a timestamp, emits an event, and exposes a hook you can extend.
The four statuses
A store is in exactly one status at a time. New stores start inpending_approval unless you pass another status to createSellersWorkflow.
The Store API seller and offer listings return only
open stores that aren’t inside a closure window. A store in any other status disappears from those listings, but its records stay intact.
Transitions
Each transition is its own workflow, and each one checks the starting status before it writes.
Any other starting status fails with a
NOT_ALLOWED error and changes nothing.
Termination isn’t final: unterminateSellerWorkflow brings a store back as suspended, and you then unsuspend it to reopen. Use suspension to reject a pending application: it stamps rejected_at and keeps the reason in status_reason.
Scheduled closures
A scheduled closure takes a store offline for a window without changing its status. Setclosed_from and closed_to, and optionally a closure_note for the reason. Both the operator and the store’s own members can set these fields.
The Store API filter shows a store only when both bounds allow it:
closed_from:null, or later than nowclosed_to:null, or earlier than now
closed_to passes, with no job or workflow involved. Set the fields as the closure starts, for example from a scheduled job, because a future closed_to hides the store right away even when closed_from is also in the future.
closed_from in the past with a null closed_to hides the store until you clear the fields.
Closures filter the Store API seller and offer listings. They don’t block cart or checkout workflows, so add your own check there if a closed store must refuse orders.
Premium
is_premium is a boolean that defaults to false. The Admin API accepts it on create and update, and the Vendor API doesn’t, so only the operator can set it. Mercur stores the flag and returns it, and your storefront decides what premium means, such as featured placement or a badge.