Files
angel ed1c8363fd
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s
Tests / Go tests (push) Successful in 14s
linked research document to README
2026-08-20 17:24:23 -06:00

20 KiB

Platform Research

https://docs.google.com/spreadsheets/d/1xWfXn-wbiHTBeqyhnq0b46_sgLGyiYc_5N5mXKYD1R8/edit?gid=0#gid=0

Platform Order Event: placed Order Event: changed Products List Products Look up Inventory Look up Inventory Update Inventory Event: change
Etsy (live) N/A — no webhook/push system in API v3 at all; poll GET /v3/application/shops/{shop_id}/receipts (filter min_created) poll same endpoint filtered by min_last_modified GET /v3/application/shops/{shop_id}/listings GET /v3/application/listings/{listing_id} GET /v3/application/listings/{listing_id}/inventory PUT /v3/application/listings/{listing_id}/inventory N/A — no inventory-change webhook; poll the inventory endpoint
Shopify orders/create orders/cancelled, orders/delete, orders/paid, etc /queries/products /queries/product /queries/product /mutations/inventorySetQuantities inventory_levels/update
WooCommerce webhook order.created webhook order.updated, order.deleted GET /wp-json/wc/v3/products GET /wp-json/wc/v3/products/<id> stock_quantity field on product resource PUT /wp-json/wc/v3/products/<id> (stock_quantity), or /products/batch product.updated (no dedicated inventory webhook)
BigCommerce webhook store/order/created webhook store/order/updated, store/order/statusUpdated GET /v3/catalog/products GET /v3/catalog/products/{product_id} GET /v3/inventory/items PUT /v3/inventory/adjustments/absolute (also /relative) store/product/inventory/updated
Wix webhook wix.ecom.v1.order.created webhook wix.ecom.v1.order.updated (also .canceled) Query Products (Catalog V3) Get Product Query Inventory Items Update Inventory Variants wix.stores.catalog.v3.inventory_item.updated
Squarespace webhook order.create webhook order.update (FULFILLED, REFUNDED, CANCELED, MARKED_PENDING, EMAIL_UPDATED) GET /v2/commerce/products GET /v2/commerce/products/{productIdCsvs} GET /1.0/commerce/inventory/{variantIdCsvs} POST /1.0/commerce/inventory/adjustments N/A (no inventory webhook topic)
Square Online webhook order.created webhook order.updated, order.fulfillment.updated GET /v2/catalog/list GET /v2/catalog/object/{object_id} POST /v2/inventory/counts/batch-retrieve POST /v2/inventory/changes/batch-create (BatchChangeInventory) webhook inventory.count.updated
Zoho webhook salesorder.created (Zoho Commerce) webhook salesorder.confirmed, .cancelled, .declined, .shipped, .delivered GET /store/api/v1/products GET /store/api/v1/products/{product_id} GET /store/api/v1/variants (stock_on_hand, actual_available_stock) POST /store/api/v1/inventoryadjustments N/A (no inventory/stock webhook event)
Ecwid webhook order.created webhook order.updated, order.deleted GET /api/v3/{storeId}/products GET /api/v3/{storeId}/products/{productId} GET /api/v3/{storeId}/products/{productId} (quantity/unlimited) PUT /api/v3/{storeId}/products/{productId}/inventory (quantityDelta) product.updated webhook
Big Cartel webhook order.create (app-approved) webhook order.update (app-approved) GET /v1/accounts/{account_id}/products GET /v1/accounts/{account_id}/products/{id} N/A — no dedicated inventory field/endpoint N/A — no inventory update endpoint N/A — no inventory-specific webhook
Amazon ORDER_CHANGE notification (SP-API) ORDER_CHANGE notification (same type, status delta) searchCatalogItems (GET /catalog/2022-04-01/items) getCatalogItem (GET /catalog/2022-04-01/items/{asin}) getInventorySummaries (FBA Inventory API, GET /fba/inventory/v1/summaries) patchListingsItem (PATCH /listings/2021-08-01/items/{sellerId}/{sku}) FBA_INVENTORY_AVAILABILITY_CHANGES notification
Walmart Marketplace PO created event (webhook) Order intent to cancel / PO line auto-cancelled event (webhook); status flow Created→Acknowledged→Shipped→Delivered/Cancelled GET /v3/items (getAllItems) GET /v3/items/{id} (getAnItem) GET /v3/inventory?sku={sku} PUT /v3/inventory (also bulk via POST /v3/feeds) Inventory OOS event (webhook)
Ebay FixedPriceTransaction / ItemSold (Platform Notifications, legacy Trading API) ItemMarkedShipped notification; also getOrders filtered by lastmodifieddate (Fulfillment API) GET /sell/inventory/v1/inventory_item (getInventoryItems) GET /sell/inventory/v1/inventory_item/{sku} (getInventoryItem) GET /sell/inventory/v1/inventory_item/{sku} (availability.shipToLocationAvailability) POST /sell/inventory/v1/bulk_update_price_quantity (bulkUpdatePriceQuantity) N/A — no dedicated inventory-change topic found
Platform Docs Webhooks API
Etsy (live) https://developer.etsy.com/documentation/ N/A — no webhook/push mechanism exists in Etsy Open API v3 https://developer.etsy.com/documentation/reference (confirmed directly against domains/platforms/etsy/generated_client in this repo, not external docs)
Shopify https://shopify.dev/docs/api https://shopify.dev/docs/api/webhooks/latest?reference=toml https://shopify.dev/docs/api/admin-graphql/latest
WooCommerce https://developer.woocommerce.com/docs/apis/rest-api/ https://developer.woocommerce.com/docs/apis/rest-api/v2/webhooks/ https://developer.woocommerce.com/docs/apis/rest-api/v3/products/
BigCommerce https://developer.bigcommerce.com/docs https://developer.bigcommerce.com/docs/integrations/webhooks/overview https://developer.bigcommerce.com/docs/rest-catalog/products
Wix https://dev.wix.com/docs https://dev.wix.com/docs/build-apps/develop-your-app/api-integrations/events-and-webhooks/about-webhooks https://dev.wix.com/docs/api-reference
Squarespace https://developers.squarespace.com/commerce-apis/overview https://developers.squarespace.com/commerce-apis/webhooksubscriptions-overview https://developers.squarespace.com/commerce-apis/overview
Square Online https://developer.squareup.com/docs https://developer.squareup.com/docs/webhooks/overview https://developer.squareup.com/reference/square
Zoho https://www.zoho.com/commerce/api/introduction.html https://www.zoho.com/commerce/api/webhooks.html https://www.zoho.com/commerce/api/apis-list.html
Ecwid https://docs.ecwid.com/ https://docs.ecwid.com/webhook-automations https://api-docs.ecwid.com/reference
Big Cartel https://developers.bigcartel.com/ https://developers.bigcartel.com/api/v1 (webhooks section, no standalone page) https://developers.bigcartel.com/api/v1
Amazon https://developer-docs.amazon.com/sp-api/docs/welcome https://developer-docs.amazon.com/sp-api/docs/notifications-api-v1-use-case-guide https://developer-docs.amazon.com/sp-api/reference
Walmart Marketplace https://developer.walmart.com/ https://developer.walmart.com/doc/us/mp/us-mp-notifications/ https://developer.walmart.com/us-marketplace/docs/inventory-api-overview
Ebay https://developer.ebay.com/develop https://developer.ebay.com/api-docs/commerce/notification/overview.html https://developer.ebay.com/api-docs/sell/inventory/overview.html

Notes / caveats from research

  • Square Online: no separate API — orders, catalog, and inventory are handled by Square's core Seller APIs (developer.squareup.com), the same ones used across all Square products. Unrelated to Squarespace despite the name.
  • Zoho: "Zoho Commerce" (commerce.zoho.com) is the storefront product comparable to Shopify/Squarespace and owns the order/product/webhook APIs listed above. Zoho Inventory is a separate warehouse/stock-management app with its own API but no documented webhook support.
  • Big Cartel: no true inventory API — only an inventory_enabled flag and quantity_gte/quantity_lte filters on products. No endpoint to set stock and no inventory-change webhook. Webhook access is gated per-app approval; exact topic names are inferred from integration examples since Big Cartel has no canonical published list.
  • Amazon SP-API: no separate "placed" vs "changed" order topics — both flow through a single ORDER_CHANGE notification, differentiated by payload content.
  • WooCommerce / Ecwid: neither has a dedicated inventory-change webhook; stock changes surface via the general product.updated event instead.
  • Etsy: the one row in the first table sourced from this repo's actual code rather than external docs (domains/platforms/etsy/generated_client, generated from Etsy's own OpenAPI spec) - so it's the most reliable row here, not the least. Etsy Open API v3 has no webhook/push system whatsoever for anything, order or inventory alike; every other platform in the table has at least some real-time push. The live integration in this repo currently only implements the OAuth connection flow (GenerateConnectionURLForNewAccount/HandleNewAuthCode in domains/platforms/etsy/etsy.go) - polling-based order/inventory sync against GetShopReceipts/GetListingInventory isn't built yet.
  • Ebay: order-event names are less certain — developer.ebay.com pages repeatedly failed to load during research, so those values come from documented Platform Notifications event types found via search rather than a directly confirmed doc page.
  • TikTok Shop: not in the capability table above - partner.tiktokshop.com/docv2 is JS-rendered and didn't return usable content via fetch, so exact webhook event names and endpoint paths aren't confirmed (unlike every other row in that table, which comes from readable docs). What is confirmed via secondary sources: TikTok Shop's Partner API has webhooks covering order, product, and inventory changes, and a Product/Inventory API for listing and stock management. Treat as directionally real but needing its own dedicated research pass - with confirmed endpoint names - before implementation.
  • BigCommerce vs Tiktok: the capability table above includes BigCommerce, but BigCommerce is not one of this codebase's actual mock platforms (see AGENTS.md's platform list - domains/accounts/platform.go's allPlatforms has Tiktok, not BigCommerce). BigCommerce's row is left in place since the research itself may still be useful, but it's excluded from the priority ranking below; Tiktok is included despite the weaker sourcing noted above, since it's a platform that actually exists in this codebase.

Market-size research (2026-08-20)

Pulled to sanity-check which platforms are most worth integrating first, on top of the API-completeness comparison above. See AGENTS.md's "Platform integration priority" section for the resulting ranking and reasoning.

Figures are mid-2026 estimates for FY2025 (or most recent trailing period) unless noted. Anything not sourced from an SEC filing is a third-party estimate (StoreLeads, DemandSage, Marketplace Pulse, etc.) and should be treated as directional, not precise - methodology varies a lot between sources, especially for "number of stores/sellers."

Platform Active sellers/stores Most recent GMV Source confidence
Amazon (3P) ~1.9M active sellers ~$575B (3P GMV, 2025); total Amazon GMV >$800B Moderate - earnings-adjacent estimates
Shopify ~3-6.8M active stores (methodology varies) $378.4B (FY2025, +29% YoY) High - SEC filings
eBay ~18.3M active sellers $79.6B (FY2025, +7% YoY) High - SEC filings
Etsy (already live) 5.6M active sellers $11.92B GMS (FY2025, -5.3%) High - SEC filings
Squarespace Commerce ~353K live ecommerce sites ~$7.2B (2026 est.) Low - marketing estimate
WooCommerce ~4.2-6M active stores ~$30-35B (2025 est.; average store is tiny, ~$7-8K/yr) Low - third-party estimate, no central ledger
Walmart Marketplace ~200-250K sellers, +50% YoY growth ~$10B (rough external estimate; Walmart doesn't break this out cleanly) Low
Wix eCommerce ~760K-3M live stores $4.1B-$12.4B (conflicting self-reported figures) Low
Tiktok Shop ~15M sellers globally, ~500K registered / ~216K active in the US $64.3B global (2025, nearly 2x 2024); $15.1B US (+68% YoY) Low - third-party estimate, hypergrowth market
BigCommerce (not an actual mock platform here - see caveat above) ~37-42K active stores (shrinking, shifting to enterprise) $34B+ Moderate
Square Online n/a (bundled into Square's overall $250B GPV, mostly in-person POS) Can't isolate N/A
Zoho Commerce ~2,196 stores globally (285 US), +34% YoY US growth off a tiny base Not disclosed; likely small given store count Low
Ecwid ~130-164K live stores, declining (-20% YoY) Not disclosed Low
Big Cartel ~91-192K stores (estimates vary widely), declining sharply (-41% YoY in 2026 Q1) Not disclosed; platform targets low-AOV indie sellers Low

Key takeaways:

  • Amazon's 3P GMV ($575B) is ~1.5x Shopify's total GMV despite Shopify having 2-3x more active stores - Amazon sellers skew toward larger, more serious operations.
  • eBay has by far the most sellers (18.3M) but the lowest GMV-per-seller of any major platform here ($79.6B / 18.3M), suggesting a lot of integration surface for comparatively thin per-seller value - compounded by its weak inventory-webhook story (see table above).
  • WooCommerce can't be sized financially at all - it's a WordPress plugin, not a company with a ledger - so its case rests entirely on raw store count, not proven revenue-per-integration.
  • Walmart Marketplace is small in absolute terms but growing fast (+50% YoY) and is a natural "second marketplace" for sellers already on Amazon.

Weighted priority ranking (2026-08-20)

Scores each of the 12 not-yet-live mock platforms (everything in domains/accounts/platform.go's allPlatforms except Etsy) on four 0-10 criteria, weighted and summed to a single composite score. This is a judgment call turned into numbers, not a precise formula - the weights and per-platform scores below are my read of the research above; treat the ranking as the useful output, not the second decimal place. BigCommerce is excluded (not an actual platform in this codebase, see caveat above).

Etsy itself is scored too, as a reference row only - it's already the live integration, so it's not competing for "what to build next," but running it through the same rubric is a useful sanity check on the model.

Criteria & weights:

  • GMV / market opportunity (45%) - bucketed from the GMV figures above (>$500B=10, $300-500B=9, $50-100B=7, $25-50B=6, $8-15B=4, $5-8B=3, undisclosed-and-small=1). This is weighted highest because "lucrative" is fundamentally a dollar-opportunity question.
  • API/inventory-sync completeness (30%) - from the capability table at the top of this doc: full order-webhook + dedicated inventory-webhook coverage scores highest, missing inventory webhook scores mid, no inventory API at all (Big Cartel) scores near-zero. This directly gates how good a product experience is even possible on that platform.
  • Growth trajectory (15%) - YoY GMV/store growth; rewards fast-growing platforms (Tiktok, Walmart) and penalizes shrinking ones (Ecwid, Big Cartel) as a proxy for where future opportunity is heading.
  • Integration cost, inverted (10%) - auth complexity and existing codebase head start (Amazon's domains/amazon background-processor infra) score higher; gated/undocumented webhook access (Big Cartel) scores lowest. Weighted lowest since it affects timeline more than whether the integration is worth doing at all.

Scores:

Platform GMV (45%) API (30%) Growth (15%) Cost (10%) Weighted total
Shopify 9 10 8 9 9.15
Amazon 10 10 5 6 8.85
Tiktok Shop 7 7 10 4 7.15
Walmart Marketplace 4 9 9 5 6.35
Wix 4 10 5 8 6.35
WooCommerce 6 6 5 7 5.95
Square Online 3 10 5 8 5.90
Ebay 7 5 4 5 5.75
Squarespace 3 6 6 7 4.75
Etsy (reference, already live) 4 3 1 10 3.85
Zoho 1 6 6 7 3.85
Ecwid 1 6 1 8 3.20
Big Cartel 1 2 1 3 1.50

Ranked priority order:

  1. Shopify — 9.15
  2. Amazon — 8.85
  3. Tiktok Shop — 7.15
  4. Walmart Marketplace — 6.35
  5. Wix — 6.35 (behind Walmart on the growth tiebreaker: 9 vs 5)
  6. WooCommerce — 5.95
  7. Square Online — 5.90
  8. Ebay — 5.75
  9. Squarespace — 4.75
  10. Etsy — 3.85 (reference only - already live, not competing for "what to build next")
  11. Zoho — 3.85
  12. Ecwid — 3.20
  13. Big Cartel — 1.50

Notable movement from the earlier qualitative pass: Shopify edges out Amazon once integration cost and growth are counted, not just raw GMV - Amazon's dollar opportunity is still bigger, but Shopify is cheaper to build, easier to get first customers through (App Store), and still growing faster. Tiktok Shop, unresearched until this pass, lands at #3 on the strength of its growth rate alone - but see the sourcing caveat above before acting on that; its API details need a dedicated research pass before it's actually buildable. Big Cartel is unambiguously last: no inventory API is a structural dealbreaker for this specific product, independent of its market size.

Etsy, run through the same rubric, scores 3.85 - tied with Zoho, below every platform except Ecwid and Big Cartel. Its GMV is mid-pack and declining (-5.3% YoY), and - per the caveat above - it's the only platform researched with literally no webhook/push mechanism for anything, so it scores below every platform here except Big Cartel on API completeness too. The only criterion where it dominates is integration cost (10/10, since it's already built). This is a useful gut-check on the model, not a claim that building Etsy first was a mistake - Etsy was presumably chosen for reasons this rubric doesn't capture (an existing relationship, a founder's market knowledge, being the most approachable API to get developer credentials for), not for having the best growth/GMV/webhook profile. Worth remembering when weighing this ranking against Etsy's actual day-to-day integration cost, which - per the caveat above - has turned out to be nontrivial in practice: with no webhooks at all, real order/inventory sync has to be built as a polling loop, which is exactly the kind of integration cost this rubric's "Cost" column doesn't capture once a platform is more than superficially wired up.

Sources: