Conformance table
What this add-on sends to the marketplace, and how each call was checked. Source of the API description: the official Mirakl Marketplace Seller OpenAPI file published on the Mirakl developer portal (developer.mirakl.com, Mirakl Marketplace APIs, Seller, downloaded 2026-11-06). The operator facts about PcComponentes come from PcComponentes’s own material and roll-out reports; anything that could not be confirmed is marked UNVERIFIED.
This is a statement about what was tested, not a certification: the add-on was tested against a local stand-in that validates every request against the OpenAPI file, not against a live PcComponentes seller account.
How the checks work
Section titled “How the checks work”tests/openapi/build-subset.mjsextracts the 23 operations below from the downloaded OpenAPI file (parameters, enums, request and response schemas, the example payloads).php tests/unit_mirakl.phpruns the driver with the spec’s example payloads as answers and records every request;tests/openapi/check.mjsvalidates each recorded request: method and path, query parameters and their enum values, JSON body against the schema (unknown properties are errors), multipart fields, the import file columns, the API key header, theContent-Length: 0of OR24. 47 requests in 23 operations, 0 nonconforming.- The mock server (
tests/mock-server/server.js) applies the same validator to every request of the HTTP end-to-end run on CS-Cart (cs417) and answers 400 to a request that does not conform; the run ends with “every request conformed”.
Operations used
Section titled “Operations used”| Id | Method and path | Used for | Checked in |
|---|---|---|---|
| A01 | GET /api/account |
Test connection: shop name, id, currency, channels | unit, e2e |
| H11 | GET /api/hierarchies |
Category list for the mapping | unit, e2e |
| AF01 | GET /api/additional_fields?entities=OFFER |
Offer fields (attributes) and their allowed values | unit, e2e |
| OF61 | GET /api/offers/states |
Code of the condition “New” | unit, e2e |
| OF01 | POST /api/offers/imports (multipart, import_mode=NORMAL) |
Create or update offers from a CSV file | unit, e2e |
| OF24 | POST /api/offers (JSON) |
Alternative to OF01, selectable in the operator file; not used by default | unit |
| OF02 | GET /api/offers/imports/{import} |
State and statistics of an offer import | unit, e2e |
| OF03 | GET /api/offers/imports/{import}/error_report |
Reason per rejected offer line | unit, e2e |
| STO01 | POST /api/offers/stock/imports |
Stock changes (offer-sku;quantity;update-delete) |
unit, e2e |
| STO02 / STO03 | GET .../stock/imports/{id}/status, .../error_report |
Result of a stock import | unit, e2e |
| PRI01 | POST /api/offers/pricing/imports |
Price changes (offer-sku;price) |
unit, e2e |
| PRI02 / PRI03 | GET /api/offers/pricing/imports?import_id=, .../error_report |
Result of a price import | unit, e2e |
| OR11 | GET /api/orders |
Orders waiting for acceptance and orders changed since a moment | unit, e2e |
| OR21 | PUT /api/orders/{order_id}/accept |
Accept every line of a new order (account option) | unit, e2e |
| OR23 | PUT /api/orders/{order_id}/tracking |
Carrier (by code, or by name and link) and tracking number | unit, e2e |
| OR24 | PUT /api/orders/{order_id}/ship |
Validate the shipment (empty body, Content-Length: 0) |
unit, e2e |
| OR33 | PUT /api/orders/{order_id}/cancel-order-lines |
Cancel lines the seller cannot deliver | unit, e2e |
| SH21 | GET /api/shipping/carriers |
Carrier codes | unit, e2e |
| RE01 | GET /api/reasons |
Cancellation reasons (type CANCELATION) | unit, e2e |
| RT11 | GET /api/returns |
Return requests (seek pagination) | unit, e2e |
| RT21 | PUT /api/returns/accept |
Accept a return request | unit, e2e |
Not used: the product imports (P41 and following): the add-on does not create catalogue products; OF04 and OF51 to OF54 (offer lists and exports); refunds (OR26, OR28), incidents (OR64), messages, invoices and shop documents.
Authentication and limits
Section titled “Authentication and limits”| Topic | What the add-on does | Source |
|---|---|---|
| Authentication | The seller API key in the plain Authorization header (scheme “Shop-API-Key” of the OpenAPI file), no Bearer, no token request. |
OpenAPI file |
| Base URL | The Mirakl address of the seller’s account, entered by the seller per mode. https only; hosts that are an IP number, localhost or a non-public name are refused because the server calls the address. |
Verified for PcComponentes: https://pccomponentes-prod.mirakl.net answers /api/version (200) and /api/account (401 without a key); the seller can still change it |
| Several shops | shop_id query parameter when the account field is set |
OpenAPI file |
| Call frequency | Offer imports, stock imports and price imports: at most one per minute and recommended every 5 minutes, per seller; the sync interval setting defaults to 15 minutes. Order list: asynchronous export is recommended for large volumes; the add-on lists changed orders every sync interval. | OpenAPI file (“Call Frequency” of each operation) |
| Rate limit answers | The OpenAPI file does not describe HTTP 429 or Retry-After. The generic job queue treats 429, 408, 425 and 5xx as retryable and honours a Retry-After header. | Not in the OpenAPI file |
| Dates | ISO 8601 UTC (2026-11-06T10:00:00Z) |
OpenAPI file |
Things the OpenAPI file does not describe
Section titled “Things the OpenAPI file does not describe”| Item | What the add-on assumes | Status |
|---|---|---|
max and offset on OR11 |
Offset pagination with page size 100. The OpenAPI file says OR11 “supports offset pagination (see documentation)” but does not list the parameters. | Mirakl’s general pagination convention; reported by the validator as a note |
page_token on RT11 |
Seek pagination: the response has next_page_token; the add-on sends it back as page_token. |
Same |
| Additional offer fields in the OF01 file | Extra columns named by the field code (AF01). Only the OF24 JSON alternative lists them in the file. | Reported as a note |
Value of product-id-type |
EAN |
Used in the OpenAPI example of OF24; the allowed values are operator configuration |
| Layout of the error reports | OF03: a header with sku and error-message (shown in the OpenAPI example). STO03 / PRI03: line number, reason, then the submitted line (as the descriptions say). The parser finds the sku by header or by value. |
OpenAPI file |
| Country codes of orders | country_iso_code is ISO 3166 alpha 3; the add-on converts it to alpha 2 |
OpenAPI file |
| Address before acceptance | “Null before shipping (or acceptance, depending on platform setting)”: orders are imported once they carry an address | OpenAPI file |
Operator facts (PcComponentes)
Section titled “Operator facts (PcComponentes)”Checked on 2026-11-06 from public sources only: the seller help centre marketplacehelp.pccomponentes.com (article “Main APIs”, section titles of “Sale by country or territory”, “Cataloguing”), the Mirakl customer story on PcComponentes and the connector guide of e-tailize. The seller API documentation and the offer field list are behind the seller login; nothing here comes from a seller contract.
| Item | Value | Status |
|---|---|---|
| Platform | PcComponentes runs its marketplace on Mirakl (launched 2018); the help centre lists the Mirakl operations A01, P41, OF01, OF21, OR11, OR21, OR23, OR24, OR28, IV01 and others | Help centre “Main APIs”, Mirakl customer story; verified |
| Who may sell | Approved sellers only (“PcComponentes decides who gets in”) | e-tailize; the help centre has legal-requirements sections whose text is not public |
| Markets | Spain (pccomponentes.com) and Portugal (pccomponentes.pt); one connection per country. France and Italy are not mentioned in the public help pages or by integrators and are NOT offered | Help centre section titles (Canary Islands shipping, warranty reset in Portugal, Portuguese islands), e-tailize. Selling in a country needs that country to be enabled on your seller account: UNVERIFIED |
| Currency | EUR in both markets | Verified (euro area) |
| API address | The seller back office is https://pccomponentes-prod.mirakl.net (the help centre links the API key page /mmp/shop/user/api on it); the Mirakl API is served from the same host (/api/version 200, /api/account 401 without a key) |
Verified. The field is required and editable, with this host as placeholder |
| Authentication | API key: back office, your name, Personal settings, API key tab; the Mirakl convention is the Authorization header |
Help centre; header: standard Mirakl, UNVERIFIED in the help article |
| Shop ID | Called “Store Id”, shown in the seller account; the add-on’s Shop ID field is optional | e-tailize |
| Channel codes | Entered by the seller (CH11 lists them); none are public | UNVERIFIED |
| Product identifier | The Mirakl product-id-type is an account setting (“Product ID type”, default EAN, the value of the official OF24 example); the help article does not name the identifier field |
Default UNVERIFIED for PcComponentes; sellers can change it |
| Stock import (STO01), price import (PRI01), returns (RT11 / RT21) | Used for stock, price and returns sync. They are not in PcComponentes’s public “Main APIs” list | UNVERIFIED that they are enabled for this marketplace: if the marketplace refuses them, stock and price are not pushed, switch them off and tell us; returns work only where the marketplace uses the Mirakl returns module |
| Required offer fields | Read from the marketplace (AF01 / OF21); the seller maps them. e-tailize mentions “mandatory PC Componentes fields” without listing them | UNVERIFIED, not assumed |
| Offer condition code of “New” | Read from OF61 (label match: new, nuevo, nueva, novo, nova) or entered | Operator specific |
| Lead time | Optional leadtime-to-ship (days) |
Mirakl OF01 description |
| Product creation | Not done by this version (P41 product import is listed by the help centre; this version creates offers only) | Whether PcComponentes requires seller product imports for new products is UNVERIFIED |
| Images | Up to 9 per product | e-tailize (limit of the Mirakl mapping) |
| Offer title / description limits in the operator file | 150 / 5000: engine defaults, not PcComponentes’s published limits | UNVERIFIED |
Trademarks
Section titled “Trademarks”PcComponentes is a trademark of its owner (PcComponentes / Spain). Mirakl is a trademark of Mirakl. They are named only to say what the add-on connects to. No logos of these companies are used in the add-on, its documentation or its listing. This add-on is not affiliated with, endorsed by or certified by PcComponentes or Mirakl.