Scheduled jobs
Magento
All jobs run in Magento’sdefault cron group. Each one queues a process, and mercur_process_run_pending runs it within a minute. The sync jobs queue nothing while the connector is disabled everywhere.
Mercur
The plugin adds two scheduled jobs to your Mercur API:Tasks
Every unit of background work in Magento is a process running one task. Run any task withbin/magento mercur:sync <task>, or from Mercur → Processes → Run task.
full ignores the delta cursor and, for offers, removes anything Mercur no longer returns. If Mercur returns no offers at all, nothing is removed.
Process statuses
A process queued while an identical one is
pending, pending_retry or processing is merged into it.
CLI
Webhooks
Delivery
Mercur posts every event to each active endpoint subscribed to it, with a 10-second timeout:data is the event’s own payload, usually { "id" } of the record that changed. shipment.created and delivery.created also carry fulfillment_id and order_id.
A 2xx answer marks the delivery Delivered. Anything else, or no answer, marks it Retrying and schedules the next attempt:
After the sixth failure the delivery is marked Gave up. Every delivery can be sent again from the endpoint page or through the redeliver route.
Signature
x-mercur-signature is sha256= followed by the hex HMAC-SHA256 of the raw request body, keyed with the endpoint’s signing secret. There’s no timestamp in the signature. To reject old events, set Maximum event age and Magento compares it with created_at.
Verify it before parsing the body:
Magento’s answers
Processed delivery ids are kept in
mercur_webhook_event for 30 days.
Events
Payloads of the events the plugin emits:
order.refund_requested is only emitted for payments on pp_external_external, and never for refunds Magento recorded itself.
Mercur admin routes
The plugin adds these routes to your Mercur API. All need an admin session or secret API key, and theintegrations permission at the right shown.
Create an endpoint through the API:
GET /admin/magento/status answers:
Delivery statuses
External payment session data
Thedata Magento sends with the pp_external_external payment session. Another storefront can also pass captured_at to record a payment that is already settled.
Magento events
Observe these from your own module to extend the connector:
Webhook handlers are registered in
di.xml on Mercur\Connector\Model\Webhook\Dispatcher, keyed by event name. A handler under * runs for every event.
GraphQL
MercurOffer has id, sku, seller_id, seller_name, seller_premium, seller, price, origin_price, price_ranges, currency_code, quantity, leadtime_to_ship, estimated_delivery, condition_code, condition_label and is_best.
Database
Tables
Columns on Magento tables
Product attributes
In the Marketplace attribute group:Magento admin
The product edit form also gets a Marketplace offers section listing every offer for the product’s SKU.