Etsy Sync for PrestaShop — Documentation
Install and configure Etsy Sync: OAuth connection to Etsy, product export, stock sync, order import and cron.
Etsy Sync connects your PrestaShop store to your Etsy shop: it exports your products as listings, keeps your stock in sync and automatically imports your Etsy orders into PrestaShop. This guide covers installation, connecting to Etsy, settings and day-to-day operation.
Compatible with PrestaShop 8.0 to 9.x, multistore. The module uses the official Etsy Open API v3 and an OAuth 2.0 connection (with PKCE): you never enter your Etsy password in PrestaShop.
Requirements
- A working PrestaShop 8 or 9 store with back-office access.
- An active Etsy shop.
- An app registered on the Etsy developer portal (free) — see the next step.
- A server cron (or an external cron service) to automate stock sync and order import.
Installation
- In the PrestaShop back office, go to Modules > Module Manager.
- Click Upload a module and drop the
dfetsy.zipfile. - Once installed, click Configure. You land on the module admin page, organized into tabs: Connection, Products, Orders, Settings, Cron, Logs.
Create your Etsy app
The module connects to Etsy through your own developer app. The process is free and takes a few minutes.
- Go to the Etsy developer portal (etsy.com/developers) and create a new application.
- Etsy gives you an API key called the keystring (this is your Client ID).
- In your Etsy app configuration, declare the redirect URL (Callback URL) exactly as shown in the module’s Connection tab.
The redirect URL must be copied exactly. Any difference (http/https, presence or absence of a trailing slash) will make the OAuth connection fail.
Connecting to Etsy
In the Connection tab:
- Paste your keystring into the field and click Save.
- Click Connect my Etsy shop. An Etsy tab opens and asks you to authorize the app.
- After authorization you are redirected to a confirmation page. Return to the back office and reload the page: the banner should show Connected with your shop’s name and ID.
- Use the Test connection button to check everything works.
The access token is refreshed automatically by the module. The Disconnect button removes the tokens and the shop association.
Settings
The Settings tab groups the sync behavior and the default Etsy attributes.
Synchronization
- Push PS stock to Etsy: every quantity change is queued and sent on the next cron run.
- Update the listing on every product save: automatically re-exports the listing when you edit a linked product.
- Import Etsy orders: enables automatic import of paid orders.
- Push product images: attaches the product images to the listing on export.
- Sync prices: sends the PrestaShop price to Etsy.
- Etsy price markup (%): applies a percentage to the exported price to absorb Etsy fees, without touching your PrestaShop price.
- Export language: language used for the listing title and description.
Default Etsy attributes
- Who made it / When: mandatory Etsy values (who_made / when_made) applied to new listings.
- Taxonomy ID: default Etsy category for listings (refer to Etsy’s Seller Taxonomy).
- Shipping profile and Return policy: lists loaded automatically from your Etsy shop once connected.
- Listing state on export: Draft (recommended — you review before publishing) or Active (immediate publication, Etsy listing fees apply).
Order import
- Order state: PrestaShop status assigned to imported orders.
- Carrier: default carrier associated with imported orders.
- Send PrestaShop emails on import: disabled by default, because Etsy already notifies the buyer. Leave it off in most cases.
Exporting products to Etsy
In the Products tab, search for an item by name, reference or ID.
- Export to Etsy creates a listing with the product’s title, description, tags, images and price. The listing is created as a draft (or active depending on your settings), then the inventory (SKU, price, quantity) is sent.
- Update pushes the information again to an already-linked listing.
- Link (listing ID) manually associates a PrestaShop product with an existing Etsy listing by entering the listing ID.
- Unlink removes the association (the Etsy listing is not deleted).
In version 1.0, a product is exported as a single SKU: the total quantity and base price are used. Products with combinations are therefore handled as a single SKU. Native Etsy variations are planned for a later version.
Stock synchronization
When the quantity of a linked product changes in PrestaShop, a sync job is added to a deduplicated queue. No call to Etsy is made during browsing: the queue is processed by the cron, which avoids any slowdown of the front and back office. You can also trigger processing manually from the Cron tab.
Order import
Paid Etsy orders are imported as PrestaShop orders:
- A guest customer is created (or reused if one already exists for that email).
- The Etsy shipping address is carried over. If the country is not recognized, the order is skipped and a message appears in the logs.
- The amount paid is applied to the cent: the PrestaShop order total matches the amount paid on Etsy.
- The buyer’s note is attached as a message in the order’s support thread.
- Deduplication by Etsy order ID (receipt) prevents any double import.
An Etsy order for a listing not linked to a PrestaShop product is skipped (a warning is written to the logs). Make sure the products you sell on Etsy are properly linked on the PrestaShop side.
Setting up the cron
The Cron tab shows a token-secured URL. Call it every 5 to 15 minutes to process the queue (stock and products) and import new orders.
*/10 * * * * curl -s "https://your-store/index.php?fc=module&module=dfetsy&controller=cron&token=YOUR_TOKEN" > /dev/null
The Run the queue now button lets you trigger a manual run to test.
Without a regular cron run for several weeks, the Etsy refresh token may expire. Reconnecting from the Connection tab is enough to regenerate it.
Logs and diagnostics
The Logs tab shows the event log (export, stock, import, errors). If a sync goes wrong, check it first: every Etsy error is recorded there with its message. Entries older than 30 days are purged automatically.
Version 1.0 limitations
- One product = one single-SKU listing (no native Etsy variations).
- Single Etsy shop (one shop connected at a time).
- Shipment tracking is not yet pushed back to Etsy.
- The detailed per-line breakdown of shipping fees is not reconstructed (the Etsy total paid is authoritative).
Frequently asked questions
Are my listings published automatically?
By default no: they are created as drafts so you can review them before publishing on Etsy. You can choose the “Active” state in the settings to publish immediately.
How do I avoid overselling across both channels?
Enable stock sync and a regular cron: every sale or quantity change in PrestaShop updates the Etsy quantity on the next cron run.
Where is the source code?
The full code is included in the ZIP, uncrypted (PSR-4, SPL autoloader), for audit or customization.