Skip to content

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:

POST /api/_action/marketplace/sellers/{id}/mail/compose

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

php bin/console marketplace:mail:smoke

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.