Skip to main content
The connector adds marketplace behavior to Magento’s own storefront: Luma and any theme built on its layouts. A headless storefront gets the same through GraphQL. Your own products look and sell exactly as before.

Product page

Under the add-to-cart button, an Also sold by block lists every way to buy the product on this website:
  • Your own stock, labelled with Label for your own stock (“Sold by us” by default), when you can sell it
  • Each seller offer, cheapest first, with the seller’s name linked to their page, a Premium seller badge, the price with a strike-through when a Mercur price list lowers it, quantity tiers (“Buy 10+ for €8.50 each”), the condition and an estimated delivery date
The way the best offer rule picks is marked Best offer. Each row has its own add-to-cart button. The main add-to-cart button buys your own stock, or the best offer when you can’t sell the product. On a configurable product, choosing options or swatches filters the block down to the selected variant’s offers. Category pages and search results show the best price for each product, or “From” the lowest price when there are several ways to buy. Products you’ve run out of stay listed while a seller has stock.

Cart and checkout

Seller lines carry Sold by with the seller’s name, on the cart, the order, the invoice and in emails. Magento’s cart price rules never discount them, and a rule’s subtotal or quantity conditions count your own lines only. The cart and the shipping step of checkout group seller lines by seller. Each group shows the seller’s shipping options with their price and estimated delivery, and the shopper picks one per seller. The cheapest is selected until they do. The totals show: A cart with seller lines only offers a single method, Shipped by the sellers, at no extra charge. Before totals are collected, every seller line is checked against the mirror: If seller shipping can’t be quoted, checkout shows “Marketplace shipping could not be quoted. Please try again.” and the order can’t be placed until it can, from the storefront, REST or GraphQL.

Delivery estimates

Each offer and each seller group in the cart shows Arrives {date} or Arrives {from} – {to}:
  1. Start today, or the next business day when today isn’t one or it’s past the Order cut-off time in the store’s timezone.
  2. Add the seller’s lead time in business days: the offer’s, or the seller’s default. In the cart, the longest lead time of the seller’s lines counts.
  3. Add the minimum and maximum transit days in business days: the chosen shipping option’s data.transit_days_min and data.transit_days_max, or the configured defaults.
There is no holiday calendar.

Seller pages

Every seller that is selling has a page at /seller/{handle}, with their banner, logo, premium badge, location, “Selling since” date, description and up to 60 of their products at their lowest price. A seller that is suspended, closed or unknown returns a 404.

Customer account

The order view in My Orders adds a Sellers table: one row per seller with their items, shipping, status and tracking links. The status follows the seller order in Mercur:

GraphQL

Mercur_GraphQl extends Magento’s schema. The full list is in the reference. Read a product’s offers and buy box:
Add a line from a seller offer by passing mercur_offer_id on the cart item. Without it, the line buys your own stock:
Read the seller groups and pick shipping per seller:
Load a seller page with mercurSeller(handle: "..."), and a line’s seller and marketplace status with mercur on order items.

REST

There are no new REST routes. To buy from a seller through the REST cart API, pass the offer id as an extension attribute of the item’s product option: