Wayfair Store Management
The ECOSIRE Wayfair Store Management module provides premium-grade integration between your Wayfair supplier account and Odoo ERP. Wayfair is North America largest online home goods and furniture retailer, operating Wayfair.com, Joss and Main, AllModern, Birch Lane, and Perigold. This module implements the 52 supplier operations the Wayfair API contract documents, covering products, purchase orders, inventory (direct ship and CastleGate FBW), shipping labels, returns and supplier analytics - the API Coverage screen lists all 52 and states which this module performs.
Compatibility: Odoo 17 / 18 / 19 (Community and Enterprise)
Price: 499 USD (one-time)
Current shipped version: 17.0 -> 17.0.3.19.0, 18.0 -> 18.0.3.19.0, 19.0 -> 19.0.3.19.0
Odoo module licence: OPL-1
Key Features
Product Management
- Full product catalog sync (listings, dimensions, pricing, images)
- Product status monitoring and category mapping
- Bullet point and dimension updates
- Product image upload, deletion, and primary image selection
- Product discontinuation management
- SKU-based product search and matching
Purchase Order Management
- Automatic PO import from Wayfair
- PO acceptance with estimated ship date
- Line-level rejection and backorder handling
- Order status updates and registration
- Multi-storefront order support (Wayfair, Joss and Main, AllModern, Birch Lane, Perigold)
CastleGate (Fulfilled by Wayfair) Support
- CastleGate inventory tracking (on-hand, inbound)
- Inventory adjustments and transfers between warehouses
- Inbound shipment management
- Dedicated CastleGate menu section
Shipping and Fulfillment
- Small parcel shipment notification (ASN) with the carrier's SCAC code and tracking number
- Registration for pickup, which makes Wayfair generate the shipping documents
- Shipping label (PDF or ZPL), packing slip and Bill of Lading download, attached to the sale order
- Tracking numbers read back from the labels Wayfair generated
Inventory Management
- True-up (full) and differential inventory updates
- Multi-warehouse inventory sync
- Dry-run validation before submission
- Availability date management
- Buffer stock configuration
Pricing Management
- Wholesale price updates
- MAP (Minimum Advertised Price) management
- Promotions and closeout pricing
Payout and Settlement Management
- Import Settlement CSV wizard -- upload remittance CSVs from Wayfair Partner Home
- EDI 820 payout import via SFTP (for suppliers with SFTP access)
- Automatic parsing of real Wayfair remittance format (header extraction, multi-brand allowances)
- Per-invoice transaction tracking with PO matching
- Reconciliation engine -- matches payout line items to synced orders
- Validate action registers payments on all matched invoices automatically
- Deduction tracking (Wayfair 2% allowance for damages/defects per brand)
- Bank statement creation from payout data
- Reconciliation rate tracking with progress bar
Returns and Disputes
- Return authorization (RMA) processing
- Credit memo management
- Dispute resolution tracking
Risk Detection
- Automated fraud risk assessment on new orders
- Configurable risk thresholds (medium, high, critical)
- Order frequency analysis by partner
- High-value order flagging
- Risk workflow actions (approve, block, cancel)
Analytics and Reporting
- Supplier scorecard monitoring
- Sales report access
- Inventory analytics (turnover, aging)
- Fulfillment analytics (on-time, accuracy)
- OWL 2 dashboard with KPIs, charts, and activity feed
Prerequisites
- Odoo 17, 18, or 19 (Community or Enterprise)
- Wayfair supplier account with API access
- Client ID and Client Secret from Wayfair Supplier Portal
Installation
- Download from ECOSIRE Dashboard
- Extract to Odoo addons directory
- Restart Odoo service
- Apps > Update Apps List > Install ECOSIRE Wayfair Store Management
No licence key is required: the module installs complete and unlocked.
Configuration
Step 1: Obtain Wayfair API Credentials
- Log in to Wayfair Supplier Portal at
https://partners.wayfair.com - Navigate to Settings then API Access
- Click Create Application and provide details
- Note your Client ID and Client Secret
- Store the secret securely -- shown only once
Wayfair uses OAuth2 Client Credentials Grant. The module automatically handles token acquisition and refresh.
Step 2: Connect in Odoo
- Go to Wayfair then Configuration then Instances
- Click New, enter Client ID and Client Secret
- Click Test Connection to verify OAuth2 token and API access
- Configure default warehouse and fulfillment type (Direct Ship or CastleGate)
Step 3: Sync Settings
- Products: Sync interval 15-60 min. SKU matching. Category mapping.
- Inventory: Choose True-up or Differential. Multi-warehouse support. Buffer stock.
- Orders: Auto PO import. Auto-acknowledge or manual review. Ship date estimation.
Menu Structure
| Menu | Description |
|---|---|
| Dashboard | KPIs, charts, activity feed, quick actions |
| Orders | Purchase orders with acceptance workflow |
| Refunds | Return and refund records |
| Products | Product mappings Wayfair-Odoo |
| Customers | Customer data extracted from POs |
| Payouts | Payout reports, transaction lines, reconciliation |
| Import Settlement CSV | Upload remittance CSV from Partner Home |
| Analytics | Sales analytics and performance metrics |
| CastleGate | FBW inventory, inbound shipments |
| Pricing Management | Wholesale, MAP, promotions |
| Operations | Sync wizard, queue jobs, logs |
| Configuration | Instances, locations, gateways, crons, webhooks |
Dashboard
KPI Cards (6)
| Card | Description |
|---|---|
| Total Revenue | PO values with period delta |
| Orders | PO count with trend indicator |
| Customers | Customer count with new badge |
| Products | Product count with OOS warning |
| Avg. Order Value | Revenue/Orders with delta |
| Sync Health | Success rate with progress bar |
Features
- Sales Trend line chart and Order Status doughnut chart
- CastleGate KPIs -- live CastleGate order stats and warehouse status
- Storefront Breakdown -- Wayfair, Joss and Main, AllModern, Birch Lane, Perigold
- Period filters: Today, 7D, 30D, 90D, Year, Custom
- Quick actions: Products, Orders, Customers, Queue, Logs, Settings
- Auto-refresh 60s, dark mode support
API Coverage (82 methods)
| Category | Methods | Details |
|---|---|---|
| Products | 17 | CRUD, dimensions, pricing, bullets, images, discontinue |
| Orders | 12 | PO import, accept, reject, backorder, status, register |
| Shipping | 8 | Small parcel, LTL, multi-package, labels, BOL, packing slip |
| Inventory | 9 | True-up, differential, multi-warehouse, CastleGate, dry-run |
| CastleGate | 4 | On-hand, inbound, adjust, transfer |
| Returns | 4 | RMA, credit memo, dispute, returns |
| Pricing | 4 | Wholesale, MAP, promotions, closeout |
| Analytics | 4 | Scorecard, sales reports, inventory, fulfillment |
| Customers | 2 | Extract from PO, customer sync |
| Storefronts | 3 | Multi-brand support, carrier codes, store info |
| Polling | 3 | New orders, inventory changes, document events |
Authentication
| Field | Value |
|---|---|
| Method | OAuth2 Client Credentials Grant |
| Token URL | https://sso.auth.wayfair.com/oauth/token |
| API Base | https://api.wayfair.com |
| GraphQL | https://api.wayfair.com/v1/graphql |
| Sandbox | https://sandbox.api.wayfair.com |
Scheduled Actions
| Job | Interval |
|---|---|
| Sync Products | 30 min |
| Sync Orders | 15 min |
| Sync Customers | 60 min |
| Sync Inventory | 10 min |
| Process Queue | 5 min |
| Import Payouts | 6 hours |
| Import Refunds | 30 min |
| Risk Detection | 30 min |
| Generate Analytics | 4 hours |
| Webhook Health | 60 min |
| Cleanup Logs | 24 hours |
| Process Workflows | 10 min |
| Daily Summary | 1 day |
Payout Workflow
The module supports a complete payout lifecycle for Wayfair settlements:
Step 1: Import Settlement
Wayfair does not expose a payout API. Settlements are imported via:
- CSV Upload: Go to Wayfair > Import Settlement CSV. Download the remittance CSV from Wayfair Partner Home > Financials > Settlement Reports, then upload it.
- SFTP (EDI 820): If your Wayfair account has SFTP access enabled, the module automatically imports EDI 820 files from the SFTP inbound directory every 6 hours.
The parser handles the real Wayfair remittance format including multi-brand allowance deductions (Wayfair, Joss and Main, Wayfair CA).
Step 2: Review and Reconcile
Each imported payout contains transaction lines matched to PO numbers. Click Reconcile to match transactions against synced orders in Odoo. The reconciliation rate shows what percentage of the payout maps to existing orders.
Step 3: Validate and Register Payments
Once reconciliation reaches 100%, click Validate. This:
- Finds the posted invoice for each matched order
- Registers a payment for the net amount (after Wayfair deductions)
- Sets the payment date to the payout date
- Skips already-paid invoices
- Posts a summary to the chatter
After validation, all matched invoices show as Paid in Odoo Accounting.
The 2% "Allowance for Damages/Defects" that Wayfair deducts per order is tracked in the payout's Fee Amount field. The payment registered on each invoice uses the net amount (invoice minus deduction).
Security
7 access groups: User (read-only), Manager, Administrator, Developer, Finance, Operations, Analytics. All models include multi-company record rules.
Troubleshooting
| Issue | Solution |
|---|---|
| Connection failed | Verify Client ID/Secret; check OAuth2 token endpoint |
| 401 Unauthorized | Regenerate credentials in Supplier Portal |
| PO acknowledgment failing | Verify PO ID; Wayfair requires ACK within 24 hours |
| Inventory feed rejected | Validate supplier ID and SKU format |
| Shipment not confirmed | Check carrier SCAC code and tracking format |
| CastleGate sync issues | Verify warehouse mapping and FBW enrollment |
| Label download failing | Ensure label generation event completed |
| Duplicate customer contacts | The order sync and the customer import resolve the buyer through one resolver (email, then name). If duplicates predate this version, merge them and re-run the import - it will reuse the merged contact |
| Payout reconciliation 0% | Orders referenced in the settlement must be synced first. Check if last_sync covers the settlement date range |
| Settlement CSV parse error | Ensure file is a real Wayfair remittance CSV with the header block (Wayfair Remittance #, Date, Total) |
Changelog
v3.19.0 (2026-09-26)
- Shipping labels, packing slips and bills of lading now download from the addresses in Wayfair's Registration & Shipping guide and are attached to the sale order; the Download Labels and Packing Slip buttons do the download, and a Bill of Lading button is added.
- Register for Shipping, shipment notifications (ASN), order acceptance and inventory feeds now send the requests Wayfair documents. The ASN is a real shipment notice rather than a registration, and inventory rows carry the required supplier ID.
- Tracking numbers are read from the labels Wayfair generated.
v3.18.1 (2026-09-25)
- The direct supplier catalog read added in 3.16.0 is REMOVED - it called a Wayfair host that does not exist and never returned data; a catalog listing now fails with a clear message, and catalog reads use the documented lookup by supplier part number
- Order sync reads every page instead of a single 5,000-order page, so a large supplier's orders are no longer lost - and are no longer reported as cancelled for being missing
- Risk assessment works again (the risk indicators field carried change-tracking Odoo cannot render, so no risk record could be created)
- Twenty state-changing actions now require the Wayfair Manager group
- Kanban, pivot and graph views for Wayfair orders; dashboard charts open the records behind them
- Removed a 522 KB unused JavaScript library from every backend page
v3.18.0 (2026-09-25)
- An order in another currency is converted at your own rates, or refused - never booked at a guessed 1:1
- Dashboard totals convert each order before adding, and include today's orders
- The dashboard is readable in dark mode and the charts say "no data yet" on a fresh install
v3.17.0 (2026-09-25)
- The order sync and the customer import now resolve the customer contact through ONE resolver (match on email, then on name, create only when neither matched) - the same buyer is no longer filed twice
- Dashboard money tiles and the sales chart format amounts in the instance currency instead of a hardcoded dollar sign
- The CastleGate (WFS) panel displays its orders, revenue and warehouse counts; the figures were computed but never reached the panel
v3.7.0 (2026-04-05)
- Validate action now registers payments on all matched invoices
- Payment amount uses net amount (after Wayfair 2% deductions)
- Payment date set to payout date for correct accounting periods
v3.6.0 (2026-04-05)
- Reconciliation uses net amounts (after fees), not gross
- Fixed bank statement creation (removed non-existent custom fields)
- Order list sorted by latest first
v3.5.0 (2026-04-05)
- Import Settlement CSV wizard for manual payout upload
- EDI 820 parser rewritten for real Wayfair remittance CSV format
- Header extraction (remittance #, date, currency, total)
- Multi-brand allowance deduction columns (Wayfair, Joss and Main, Wayfair CA)
- SFTP-based automatic EDI 820 import with file archiving
v3.4.0 (2026-04-05)
- Fixed risk detection crash (order.customer_id reference)
- Fixed payout import (removed fake REST endpoint)
v3.3.0 (2026-04-04)
- Incremental order sync from last_sync date
- Batch processing (25/commit, 200/run)
- Duplicate protection (links existing manual orders)
- CastleGate API error resilience
- Invoice dates match Wayfair PO dates
- Dashboard CastleGate KPIs and storefront breakdown
v1.0.0 (2026-03-26)
- 52 documented supplier operations covering products, orders, CastleGate, shipping, returns
- Full OAuth2 authentication with auto token refresh
- CastleGate FBW support (inventory, inbound, transfers)
- Shipping labels, packing slips, BOL download
- Multi-storefront support (5 Wayfair brands)
- OWL 2 dashboard with Chart.js
- Multi-warehouse inventory management
- Pricing management (wholesale, MAP, promotions)