Seller record: the account a seller trades under on your marketplace. It holds the public profile customers see, the single currency the store settles in, and its status. Three satellite records carry its business details: an address, professional details, and bank payment details.
The seller record
TheSeller data model (table seller, id prefix sel) is the root of everything a store owns. Offers, orders, payouts, and price lists link to it from their own modules.
A seller has four unique fields besides its id:
name: unique among stores that aren’t deletedhandle: unique, URL safe, and generated fromnamewhen you omit itemail: unique, the store’s contact addressexternal_id: optional, unique when set, for mapping to an outside system
handle on create and update. A handle with characters that aren’t URL safe fails with an INVALID_DATA error.
acme-supplies and the status pending_approval. It also invites owner@acme.com to join the team as an administrator.
Currency and regions
A store settles in one currency, set bycurrency_code when you create it. UpdateSellerDTO has no currency_code field, so the currency stays fixed for the life of the store. The vendor request context carries it as seller_context.currency_code.
A store also links to one or more regions through the region_seller link:
- On create: the store links to the default region of your Medusa store, plus any
region_idsyou pass - On change:
linkSellerRegionsWorkflowadds and removes region links in one call - Rule: a store must keep at least one region, so removing the last one fails
Business details
Three one-to-one records hang off the seller. Each workflow that writes them creates the record when it’s missing and updates it otherwise.
You remove professional details with
deleteSellerProfessionalDetailsWorkflow. Deleting a seller cascades to all three records and to its pending invites, and detaches its members without deleting them.
Fulfillment defaults
default_leadtime_to_ship holds the number of days a store needs before it ships. It’s null on new stores, which then use the marketplace default from Settings → Marketplace. Vendors can change it on their own store.