DataFirefly Amazon Connector: connect PrestaShop to Amazon Seller Central
Installation, SP-API connection, marketplaces, category mapping, publishing, prices, stock, orders, shipments, invoices, cancellations, refunds and troubleshooting.
Installation
Install the module from Modules > Module Manager > Upload a module by sending the ZIP file. The PHP cURL extension is required.
On installation, the module creates its tables, an Amazon Connector tab in the Sell menu, an “Amazon” carrier reserved for imported orders (customers never see it) and two order statuses: “Amazon: awaiting shipment” and “Amazon FBA: shipped”.
Prepare your Amazon account
The module connects to your seller account with your own private Selling Partner API application. You need a professional Seller Central account.
- In Seller Central, open Apps and Services > Develop Apps and register as a private developer if you have not done so yet.
- Create an application and request the roles needed for the features you will use: Product Listing and Pricing for the catalog, Inventory and Order Tracking for orders, Direct-to-Consumer Shipping (Restricted) to receive the delivery address and buyer e-mail, Amazon Fulfillment for FBA stock, Finance and Accounting for refunds, Tax Invoicing for invoice upload.
- Self-authorize the application on your own account to get a refresh token, and note the LWA client ID and client secret.
- Copy your Merchant Token from Settings > Account Info.
Without the Direct-to-Consumer Shipping role, orders are imported without a delivery address. The module then creates a fallback address and flags it in the order address.
Connection and marketplaces
In Amazon Connector > Settings, choose the region (Europe, North America or Far East), enter the LWA client, the secret, the refresh token and the Merchant Token, then save. Secrets are encrypted in the database; leave the fields empty to keep the saved values.
On the dashboard, click Test connection. The marketplaces of your account appear in the Marketplaces tab, disabled by default. For each one, set:
- activation;
- the language of the content sent (title, description);
- prices including or excluding tax, according to the country;
- price sync, to disable if you use an Amazon repricer;
- the percentage markup, the fixed amount and the rounding (none, x.99, x.90, whole number).
Cron task
Synchronisation runs through a cron task, ideally every 5 to 15 minutes. The dashboard shows the token-secured URL and the command line:
php /path/to/modules/dfamazonconnector/cron.php --shop=1
On each run, the module imports orders, confirms shipments, sends invoices and cancellations, reads refunds and FBA stock, then sends pending listings, stock and prices as grouped feeds. A red banner appears in the module if the task has not run for more than one hour. The New token button invalidates the old URL.
Category mapping
Mapping is only needed to create new listings on Amazon. A product sold on an existing ASIN, or attached through its EAN, only needs an offer.
In the Category mapping tab, choose a PrestaShop category and an Amazon product type (keyword search included). A product uses the mapping of its default category or, failing that, of the closest mapped parent.
- Browse node: the Amazon browse node, optional depending on the product type.
- Variation theme: for example
SIZE_NAME/COLOR_NAME. When set, combinations are grouped as a parent-child family; when empty, each combination is published as an independent product. - Combination attributes and Features: link an Amazon attribute to a PrestaShop attribute group or feature.
- Fixed attributes: values sent as they are, in the Listings Items format. Available variables:
{marketplace_id},{language_tag},{currency},{reference},{ean13},{mpn},{brand}.
The Required attributes button reads the product type schema from Amazon and lists the attributes the module does not fill by itself. For each one, choose a source (fixed value, feature, combination attribute) then Apply: the JSON fields are filled in automatically.
Publishing products
From the product page
The Modules tab of the product page contains an Amazon block:
- Sell on Amazon enables the product.
- Publication mode: automatic, offer on an existing product (ASIN or EAN) or full listing creation.
- Fulfillment: by you (FBM) or by Amazon (FBA).
- ASIN, product type, condition and fixed Amazon price override the defaults for this product.
- Extra attributes: JSON merged after the category fixed attributes; a
nullvalue removes an attribute. - Marketplaces: uncheck a country to remove the product from that marketplace.
The “What will be sent to Amazon” table shows, per combination and country, the price, the sale price and its dates, the minimum price, the business price and the quantity. Four actions are available: Check with Amazon (validation without publishing, errors shown attribute by attribute), Send now, Add to next sync and Refresh status.
In bulk
The Products tab lists the catalog with the status of each product per country (active, in progress, inactive, error). Filter by name, category or state, check products or the “All products matching the filter” option, then apply an action: enable and publish, publish again, send prices, send quantities, disable (quantity 0) or delete from Amazon.
Listings already on Amazon
The Link existing Amazon listings button on the dashboard requests your listings report from Amazon. On the next cron run, each SKU is linked to the PrestaShop product with the same SKU, reference or EAN. SKUs not found are listed in the log.
Amazon SKU
The SKU is created on first publication according to the chosen setting: reference, EAN13 or pattern (default PS{id_product}-{id_product_attribute}). An existing SKU never changes, even if the reference does.
Prices
The price is computed in the marketplace currency with the chosen price group, then the country markup, fixed amount and rounding are applied. Options in the Settings tab:
- Apply shop discounts: specific prices and catalog rules included in the Amazon price.
- Send shop discounts as Amazon sale prices: the regular price stays the reference price and the discount becomes a sale price with the dates of the PrestaShop discount. A discount created, changed or removed updates Amazon immediately; dated sales and catalog rules are checked again every night.
- Minimum margin on cost price: sends a minimum price (converted cost price plus the margin, country VAT included) that stops a repricer from selling below it.
- Amazon Business prices: the price of the chosen customer group becomes the business price, and its quantity discounts become levels (5 maximum). For sellers registered in Amazon Business.
Price updates only touch the offers managed by the module: an offer created by hand in Seller Central for another audience is kept.
Stock and FBA
Each PrestaShop stock movement queues the SKU for sending. Available settings: safety stock (units kept out of Amazon), maximum quantity, handling time, quantity 0 for disabled products and a full resync every night after 3 am.
FBA products do not receive a quantity from PrestaShop. The Read FBA stock option fetches the quantity available in Amazon warehouses every hour, shown on the product page; Copy FBA stock to PrestaShop applies it to the shop stock of FBA products.
Orders
Orders are read with the Orders API v2026-01-01 from the configured start date. An order awaiting payment is stored without being created; it is imported as soon as Amazon releases it for shipping.
Each imported order creates or reuses a guest customer (one per buyer or a single customer, as you choose), an “Amazon + order number” address and a PrestaShop order with the Amazon carrier, Amazon prices and shipping costs, the Amazon order number as transaction ID and, optionally, the Amazon purchase date. Stock is decreased as for a shop sale.
FBA orders are imported once shipped, with the “Amazon FBA: shipped” status. The “FBA orders do not change shop stock” option puts the quantities back after creation.
Amazon forbids contacting the buyer outside its messaging service. Keep the “Block shop e-mails to Amazon buyers” option enabled: e-mails to Amazon addresses are blocked, your own order alerts keep arriving.
The Orders tab lists all Amazon orders with “To ship”, “Cancellation requests”, “Refunded” and “Not imported” filters. An order that was not imported (unknown SKU, currency or country not configured) shows the cause and a Retry button.
Shipments
Choose in the settings the statuses that confirm the shipment (for example Shipped). When an Amazon order moves to one of these statuses, the module sends Amazon the carrier code, the tracking number and the ship date. If the tracking number is not entered yet, it waits up to one hour before confirming without tracking.
The carrier mapping table links each PrestaShop carrier to an Amazon carrier code. Imported orders use the Amazon carrier: change the order carrier before shipping so the right code is sent. The Amazon block of the order page also has a Confirm shipment now button.
Invoices
If you are registered in the Amazon VAT Calculation Service with the option to upload your own invoices, enable Upload PrestaShop invoices to Amazon. After the shipment confirmation, the order PDF invoice is sent with its number, total and VAT amount. The status (sent, pending, rejected) appears in the list and on the order page.
Amazon rejects the upload if automatic generation of its own invoices is enabled in Seller Central. Disable it in the VAT Calculation Service settings.
Cancellations
When a buyer asks to cancel an unshipped order, the order is flagged in red in the list and on its page, with the reason given by the buyer. Do not ship: cancel the order from the Amazon block by choosing the reason, or enable Cancel on Amazon when the order is canceled in PrestaShop. A cancellation requested by the buyer is sent with the BuyerCanceled reason and does not count against your cancellation rate.
Conversely, an order canceled on Amazon moves to the cancellation status chosen in PrestaShop, with no e-mail to the customer.
Refunds
With the Read Amazon refunds option, refunds made in Seller Central are read through the Finances API. Each one is noted in the private note of the order with the date, the items and the net amount. When every unit has been refunded, the order moves to the chosen status (Refunded by default). The amount shown is the net amount posted to your Amazon account, after the refunded fees.
Dashboard, alerts and log
The dashboard shows active and failed listings, orders of the last 24 hours and 30 days, pending jobs, the last synchronisation, the most frequent Amazon errors grouped by code and the latest feeds sent.
The daily alert e-mail is sent after 8 am to the chosen recipients, only when an action is needed: cancellation requests, orders not confirmed more than 2 days after purchase, orders not imported, rejected invoices, listings in error, rejected feeds, stopped cron. The Send a test e-mail button checks the setup.
The Logs tab keeps every operation (feeds, orders, shipments, refunds, FBA, errors) with technical details, filterable by level and channel. The retention period is set in the settings.
Troubleshooting
The connection test fails
Check the chosen region, the LWA client, the secret and the refresh token. A refresh token belongs to one application and one account: generate it again after changing the application roles.
A listing is in error
Open the product page: Amazon errors are shown under each listing. Code 90220 means a required attribute is missing; add it in the category mapping or in the product extra attributes. Use Check with Amazon to validate the fix before sending.
An order is not imported
The reason is shown in the Orders tab. The most common case is an Amazon SKU that matches no product: link existing listings or fix the reference, then click Retry. Also check that the currency and delivery country are active in PrestaShop.
Stock or prices do not update
Check the last synchronisation on the dashboard and in the log. Updates leave on the next cron run and Amazon processes them within a few minutes. To force a full send, use Resend all quantities.
Compatibility
- PrestaShop 8.0 to 9.x, the same ZIP covers both branches.
- Multistore and multilingual.
- Amazon regions Europe, North America and Far East.
- ModuleAdminController architecture, no Composer dependency.
- Interface available in French, English, Spanish, German, Italian, Dutch, Polish and Portuguese.