Messaging¶
Threaded mail between sellers and operators, plus marketplace notifications — delivered through Shopware's own mailer.
Model¶
flyokai_chain a thread (sender, recipient, subject)
└─ flyokai_mail messages in the thread
flyokai_mail_recipient per-recipient unread counts
flyokai_mail_pending_send the outbox batch
A chain is a conversation; replies attach to it via the chain id. Each
message is a flyokai_mail row. Unread state is tracked per recipient.
Delivery¶
Outbound mail goes through Shopware's configured MailerInterface —
synchronous, in-process, no separate queue or worker on Base. Configure the
actual SMTP transport where you'd configure any Shopware mail:
Settings → System → Mailer
The marketplace only adds the From identity:
| Setting | Key | Notes |
|---|---|---|
| From address | mailFromAddress |
Required when Base sends mail in-process. |
| From name | mailFromName |
Optional display name. |
See Configuration → Marketplace mail.
Remote and the outbox
Under Remote, mail still goes out through Shopware's
MailerInterface. The Flyokai cluster has its own mail-outbox infrastructure,
but it's cluster-internal and not exercised by the marketplace's Shopware-side
delivery path.
Seller side¶
Sellers get an inbox in the portal:
| Method | Path | Action |
|---|---|---|
GET |
/flyok-portal/mail/me/inbox |
List the seller's threads / messages. |
POST |
/flyok-portal/mail/me/inbox |
Compose a new message. |
PATCH |
/flyok-portal/mail/me/inbox |
Reply within a chain / archive. |
Operator side¶
Operators compose to a seller from the admin:
Operator recipients¶
When a seller mails "the operator", who receives it? Controlled by
operatorInboxUserIds:
- Set → exactly those marketplace users receive operator-bound mail.
- Empty (default) → falls back to all admin/operator marketplace users.
Configure it under Settings → Plugins → FlyokaiMarketplace → Marketplace mail
→ Operator inbox recipients (the flyokai-operator-recipients-config
component). The "Link Shopware admin" action there provisions an operator
marketplace account for an existing backend user, and
GET /api/_action/marketplace/operators/candidates lists eligible users.
Quick test¶
Sends a test message through the active backend and out via the Shopware mailer — a fast way to confirm both the From config and the SMTP transport.