Odoo Etsy Connector: Handmade Commerce Integration

Integrate Odoo 19 with Etsy for handmade and vintage sellers. Automate order sync, inventory updates, listing management, and financial reconciliation with ECOSIRE's Etsy Connector.

E
ECOSIRE Research and Development Team
|March 19, 202610 min read2.1k Words|

Odoo Etsy Connector: Handmade Commerce Integration

Etsy hosts over 9 million active sellers and serves a niche that no other marketplace replicates: handmade, vintage, and craft supply goods. For Etsy sellers who've grown beyond basic spreadsheet tracking, Odoo 19 Enterprise provides the inventory management, financial accounting, and production planning capabilities that a scaling craft business needs.

The ECOSIRE Odoo Etsy Connector bridges your Etsy shop with Odoo, synchronizing listings, orders, inventory, and customer data. This guide covers the complete integration from Etsy API credential setup through production order management and Etsy seller reporting.

Key Takeaways

  • Connector uses Etsy API v3 with OAuth 2.0 authentication
  • Listings sync in both directions: create in Odoo, publish to Etsy
  • Order import includes buyer details, item customization notes, and gift wrapping flags
  • Inventory pushes to Etsy within 5 minutes of stock changes in Odoo
  • Production order (MRP) integration tracks make-to-order handmade goods
  • Etsy fees and payment processing fees reconcile automatically against Odoo invoices
  • Multiple shops supported: manage several Etsy stores from one Odoo instance
  • Etsy's listing renewal (auto-renew 20¢ per listing) is tracked in Odoo costs

Why Etsy Sellers Need Odoo Integration

Etsy's built-in shop manager handles basic order tracking but lacks the depth that growing handmade businesses need:

ChallengeEtsy NativeOdoo + Etsy Connector
Multi-channel inventoryManual trackingReal-time sync
Raw material trackingNot availableFull Bill of Materials support
Production schedulingNot availableMRP with work orders
Financial accountingBasicFull accounting module
Tax managementUS states onlyGlobal tax support
Custom order managementManual notesStructured customer attributes
Wholesale and retail pricingSingle priceFull pricelist support
Shipping label generationVia EtsyVia Odoo shipping integrations

For sellers doing $10K+ monthly revenue or managing 50+ active SKUs across handmade and materials, Odoo delivers operational capabilities that scale with the business.


Etsy API Setup

Step 1: Create an Etsy developer account

  1. Go to developers.etsy.com and sign in with your Etsy seller account
  2. Click Create App under My Apps
  3. Name your app (e.g., "Odoo Integration") and describe its purpose
  4. Accept the Etsy API Terms of Service
  5. Etsy will review your application (typically 1-3 business days)

Step 2: Configure OAuth scopes

Your app needs the following OAuth 2.0 scopes:

listings_r      — Read active listings
listings_w      — Create/edit listings
listings_d      — Delete listings
transactions_r  — Read orders and transactions
transactions_w  — Update order status
shops_r         — Read shop data
billing_r       — Read payment and billing data

Step 3: Generate API credentials

After approval:

  • API Key (Keystring): your application identifier
  • Shared Secret: used for OAuth PKCE flow
  • Redirect URI: https://your-odoo.com/etsy/oauth/callback

Step 4: Complete OAuth authorization

From the connector configuration in Odoo:

  1. Click Connect Etsy Shop
  2. Authorize the connector in the Etsy OAuth popup
  3. The connector receives and stores your access token and refresh token

Etsy's OAuth tokens do not expire with a fixed time limit (unlike Amazon's 18-month refresh tokens). They remain valid until you revoke them.


Connector Installation and Configuration

Install from ECOSIRE marketplace:

Available at ECOSIRE Products. After purchase:

  1. Upload and install the Etsy Connector module via Apps
  2. Navigate to Inventory → Etsy or Sales → Etsy Shops

Shop configuration:

FieldDescription
Shop NameYour Etsy shop name (display only)
Shop IDEtsy's numeric shop ID (auto-populated)
API KeyFrom Etsy developer console
Access TokenAuto-populated after OAuth
Refresh TokenAuto-populated after OAuth
Default WarehouseStock location for Etsy orders
CurrencyShop currency (USD, EUR, GBP, etc.)
Default Payment JournalEtsy Payments journal
Order Prefixe.g., "ETY-"
Auto-confirm OrdersYes/No

Etsy shop sections mapping:

Etsy organizes listings into shop sections (equivalent to categories). Map Etsy sections to Odoo product categories:

Etsy Shop SectionOdoo Category
"Necklaces"Jewelry → Necklaces
"Custom Orders"Custom Products
"Gift Sets"Gift & Bundles

Listing Management

Creating Etsy listings from Odoo products:

  1. Open a product form → Etsy tab → Create Listing
  2. Configure listing-specific fields:
    • Title: 140 characters max, keyword-rich for Etsy SEO
    • Description: full description with materials, dimensions, care instructions
    • Tags: up to 13 tags, critical for Etsy search algorithm
    • Category: browse Etsy's taxonomy tree
    • Who Made It: I Did, A Member of My Shop, Someone Else
    • When Made: Made to Order, 2020–2025, 2010–2019, etc.
    • Type: Physical Item, Digital Download
    • Price: listing price (can differ from Odoo's list price)
    • Quantity: available inventory to list
    • Materials: up to 13 material tags
    • Photos: up to 10 photos (first image becomes main listing image)
  3. Click Publish to Etsy

Variation listings (product variants):

Etsy supports "variations" — Odoo maps these to product attributes:

Odoo AttributeEtsy Variation
ColorPrimary color
SizeSize
MaterialMaterial
Custom textPersonalization (text input)

Example: A ring sold in Gold/Silver with sizes 5-10 creates a single Etsy listing with 12 variation combinations, each with its own price and stock tracking.

Personalized and custom order listings:

Etsy is famous for personalized items. Configure personalization in the connector:

  • Enable Personalization Required/Optional on the listing
  • Buyer enters personalization text (name, date, monogram) at checkout
  • This text appears in the Odoo sale order's customer notes field
  • Production team sees the customization when making the item

Order Synchronization

Order import details:

Etsy orders include fields critical for handmade sellers:

Etsy Order FieldOdoo FieldNotes
Buyer nameCustomer nameCreates res.partner if new
Shipping addressDelivery address
EmailCustomer email
Item(s) purchasedSale order linesWith product variant
PersonalizationCustomer notesOn sale order line
Gift messageInternal note
Gift wrappingService line itemIf configured
Shipping methodDelivery carrier
Item totalPrice subtotal
Shipping paidShipping line
Etsy transaction feeFor reconciliation

Order routing for make-to-order:

Etsy sellers often make items after receiving an order (MTO). Configure the connector:

  1. In product settings → Sales tab → On Demand: "Made to Order"
  2. When a Etsy order imports, Odoo creates:
    • Sale order (confirmed)
    • Manufacturing order (draft) linked to the sale
    • The manufacturing order shows materials needed and labor time
  3. Production team works through the manufacturing order
  4. When MO is done, goods arrive in stock → delivery is confirmed
  5. Shipment details sent back to Etsy

Custom order handling:

For custom commissions (not listed on Etsy):

  1. Accept the custom order in Etsy
  2. In Odoo, create a "Custom Product" sale order manually with agreed price
  3. Link to the Etsy conversation in order notes
  4. Mark as shipped in Etsy manually or via the connector's custom order tool

Inventory Synchronization

For physical products:

Inventory sync runs every 5 minutes by default. When Odoo stock changes:

  1. Available quantity recalculated (on-hand minus reserved)
  2. Quantity pushed to Etsy via Listing Inventory API
  3. If quantity reaches 0: listing set to sold out (keeps listing active)
  4. When restocked: listing reactivated automatically

For made-to-order products:

MTO products don't track physical inventory in the traditional sense. Configure Etsy listing quantity as a production capacity indicator:

  • Set a fixed "available quantity" (e.g., 5) representing current order capacity
  • Manually adjust as your production queue fills

For digital downloads:

Digital products have infinite inventory. The connector sets Etsy quantity to 999 and never syncs inventory changes. Digital file delivery is handled by Etsy's native digital download system — the connector doesn't touch file delivery.


Financial Reconciliation

Etsy's payment processing and fee structure requires careful accounting setup.

Etsy Payments fee structure (for reference):

  • Listing fee: $0.20 per listing (charged when listed and every 4 months on auto-renew)
  • Transaction fee: 6.5% of item price + shipping
  • Payment processing fee: 3% + $0.25 per transaction (US)
  • Offsite Ads fee: 12-15% when Etsy advertises your item (if enrolled)

Setting up fee reconciliation in Odoo:

  1. Create a dedicated Etsy Payments journal (Bank type)

  2. Create accounts:

    • Etsy Listing Fees (expense)
    • Etsy Transaction Fees (expense)
    • Etsy Payment Processing Fees (expense)
    • Etsy Payments Receivable (current asset)
  3. Import Etsy payment statements:

    • Navigate to Etsy → Payments → Monthly Statement → Download CSV
    • Import into the connector's reconciliation tool
    • The connector creates journal entries for each transaction type

Month-end reconciliation process:

  1. Download Etsy monthly payment CSV
  2. Import via connector: Etsy → Reconciliation → Import Statement
  3. Review auto-matched entries
  4. Manually match any unrecognized transactions
  5. Confirm reconciliation → journal entries posted in Odoo
  6. Reconcile Etsy Payments bank account against Odoo balance

Etsy SEO and Performance Tracking

Listing performance sync:

The connector imports Etsy shop stats to Odoo:

  • Views per listing per day
  • Favorites count
  • Conversion rate (views to sales)
  • Revenue by listing

This data appears in the Etsy analytics dashboard in Odoo, allowing you to identify top performers and underperforming listings without switching to Etsy's stats interface.

Tag and keyword tracking:

Track which search terms drive Etsy traffic by pulling stats from Etsy's Shop Stats API. Use this data to:

  • Identify high-converting tags to add to similar listings
  • Find listings with high views but low conversion (pricing or photo issues)
  • Spot seasonal trends in your product category

Frequently Asked Questions

Can the connector handle Etsy's Pattern (custom website) in addition to the Etsy marketplace?

No. The connector integrates with the Etsy marketplace specifically. Etsy Pattern (their hosted website builder) shares the same inventory but uses separate checkout and payment processing. Pattern orders would need to be managed separately. For a full-featured website integration, Odoo's website module or a Shopify integration is recommended.

How does the connector handle Etsy's reserve for transactions (Etsy payment holds)?

Etsy sometimes places a reserve on new seller payments for risk management. The connector tracks the payment status of each order. Reserved amounts appear in the Etsy Payments balance but are not available for withdrawal. The connector marks these invoices as "pending payment" until the reserve is released, then updates to "paid" when funds are released to your bank.

Can I manage multiple Etsy shops (e.g., one for jewelry, one for home decor) from one Odoo instance?

Yes. Create separate Etsy shop configurations with independent OAuth credentials for each shop. Each shop has its own order import, inventory allocation, and payment reconciliation settings. Products can be listed on multiple shops with shop-specific pricing overrides.

Does the connector support Etsy's wholesale/B2B functionality?

Etsy does not have a native wholesale/B2B program. If you use Etsy for wholesale inquiries but handle the actual transaction offline, the connector handles it the same as any custom order — you'd create the Odoo sale order manually with agreed pricing and fulfill through your standard process.

How does the connector handle international Etsy sales and VAT/GST requirements?

Etsy collects and remits VAT/GST on behalf of sellers for buyers in the EU, UK, Australia, and other jurisdictions where Etsy acts as marketplace facilitator. The connector imports these orders with $0 tax (since Etsy collected it). For markets where you're responsible for collecting tax, configure appropriate fiscal positions in Odoo based on the buyer's country.


Next Steps

The ECOSIRE Etsy Connector transforms Etsy from a standalone marketplace into a fully integrated sales channel within Odoo 19 Enterprise. For handmade businesses scaling beyond basic shop management, this integration delivers the operational backbone for sustainable growth.

Get the ECOSIRE Etsy Connector for Odoo 19 →

The connector includes setup documentation, import tools for historical order data, and implementation support to get your Etsy shop integrated with Odoo quickly and correctly.

E

Written by

ECOSIRE Research and Development Team

Building enterprise-grade digital products at ECOSIRE. Sharing insights on Odoo integrations, e-commerce automation, and AI-powered business solutions.

Chat on WhatsApp