Integration Module 2.0 for Medusa is outRead the announcement
Etsy sync logo

Etsy sync

Medusa v2 plugin to sync Medusa products to a personal Etsy shop account via the Etsy Open API v3.

npm install @jytextiles/medusa-plugin-etsy-sync
Category
Built by
Service
Version
0.1.6
Last updated
4 months ago
Monthly downloads
Loading downloads

@jytextiles/medusa-plugin-etsy-sync

A Medusa v2 plugin that syncs your Medusa products to a personal Etsy shop via the Etsy Open API v3. It handles the OAuth2 (PKCE) connect flow, draft-listing creation, listing updates, image uploads, and keeps a per-product sync record so you can publish to Etsy from the Medusa Admin.

Features

  • OAuth2 PKCE connect flow — connect/disconnect an Etsy shop from Settings → Etsy in the Admin; tokens are stored and auto-refreshed.
  • Product → Etsy sync — create draft listings, update them, and upload product images (single or bulk).
  • Readiness checks — surfaces what's missing (shop connection, shipping profile, return policy, taxonomy) before you publish.
  • Sync records — every sync is tracked per product with status and the remote Etsy listing id.
  • Scheduled token refresh — a background job keeps the Etsy access token fresh so syncs don't fail mid-session.

Requirements

Install

Configure

Register the plugin in :

Options can be supplied via the object above or the matching environment variables (env takes precedence):

OptionEnv varRequiredDescription
yesYour Etsy app's keystring (API key).
yesYour Etsy app's shared secret.
noOAuth callback URL. Must match your Etsy app's registered callback.
noSpace-separated Etsy OAuth scopes.

Add the callback URL () to your Etsy app's allowed redirect URIs in the Etsy developer portal.

After installing, run your project's migrations so the plugin's tables are created:

npx medusa db:migrate

Usage

  1. In the Admin, go to Settings → Etsy and click Connect to authorize your Etsy shop.
  2. Configure your sync settings (shipping profile, return policy, taxonomy).
  3. From a product page, use the Etsy widget to sync the product, or sync in bulk from the Etsy settings page.

Admin API routes

MethodRoutePurpose
GETConnection + readiness status
GET / POSTRead / save sync settings
GETStart the OAuth2 PKCE flow
GETOAuth2 callback
POSTDisconnect the shop
POSTSync a single product
POSTSync multiple products
GETList sync records
GETEtsy taxonomy lookup
GETEtsy shipping profiles
GETEtsy return policies

Development

License

MIT