Linux 软件免费装
Banner图

Milan Inventory Sync for WooCommerce

开发者 bytloop
更新时间 2026年9月14日 20:26
捐献地址: 去捐款
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

amazon woocommerce ebay inventory multichannel

下载

1.0.0 1.0.1

详情介绍:

Milan (pronounced mee-LAN, Bengali for "to synchronize") is a self-hosted multi-channel inventory management plugin. WooCommerce is your source of truth. Milan syncs stock, listings, and orders bidirectionally with Amazon, eBay, Etsy, Shopify, Walmart, and regional marketplaces. Self-hosted, with no per-SKU accounting Milan runs inside WordPress. Your catalogue, your stock levels, your mappings and your sync history are rows in your own database, and nothing about them is uploaded anywhere. There is no SKU count, no order quota and no usage metering of any kind. By the makers of Nishchoy Reviews, Uttor AEO, Chala Subscriptions, and Poth Checkout. What this plugin does Everything listed here works, with no licence, no key and no limit. Nothing in this plugin is switched off pending payment. Additional marketplaces Adapters for Amazon (SP-API), eBay, Etsy and Walmart Marketplace — and for Flipkart, Meesho, Jumia, Lazada and Noon — are distributed separately as Milan Inventory Sync Pro, along with alerting, multi-warehouse routing, white-labelling, WPML and Polylang support, and a mapping importer. That code is not part of this plugin; installing the add-on adds it. Works with the publisher's other plugins If any of these are installed, Milan uses them. None is required, and nothing here is disabled without them. Importing existing mappings The separately distributed add-on can import product mappings from a CSV export, so a catalogue already mapped elsewhere does not have to be mapped again by hand. Guide at milan.bytloop.com/docs/migration. Developer-friendly Every sync event fires an action. Every channel is a pluggable adapter — third-party channels supported via ChannelAdapterInterface. Full REST API. See milan.bytloop.com/docs/developers.

安装:

  1. Go to Plugins → Add New in your WordPress admin.
  2. Search for "Milan Inventory Sync".
  3. Click Install Now, then Activate.
  4. Follow the setup wizard: connect Shopify and map your first products.
  5. Turn on automatic stock sync in Settings once the mappings look right.
Requirements

屏幕截图:

  • Product mappings — WooCommerce stock beside what each channel was last told.
  • The dashboard — sync health at a glance.
  • The conflict queue — both values, and what settled it.
  • Analytics — success rate, latency, oversell prevention, and CSV export.
  • Settings — including the two switches that can change a live channel.

升级注意事项:

1.0.1 Adds a plain "Upgrade to Pro" link on the Plugins and Settings screens. No functional changes. 1.0.0 Initial release of Milan Inventory Sync for WooCommerce.

常见问题:

Is this really free?

Yes, and completely. Every feature this plugin contains is enabled: two-way Shopify sync, price and listing sync, order import and status sync, reserved stock, all four conflict strategies, the full analytics screen with CSV export, unlimited channels and unlimited history. Nothing is time-limited, quota-limited or waiting for a licence key. The separately distributed add-on is not an unlock. It contains adapter code for other marketplaces, plus features whose implementations are not in this plugin at all.

Which is the source of truth — Woo or the channel?

WooCommerce, by default. Milan is designed around Woo-as-canonical. You can override this per channel, and per event type within a channel, in the conflict settings.

What prevents oversells?

Three mechanisms. Optimistic locking. Every stock write is a compare-and-swap against a version number. Two sales landing in the same second on two marketplaces cannot both write "2 units left" — the second one loses the swap and re-reads. Without this, one of them silently overwrites the other, and the store tells the world it has one more unit than it does. This is in the free plugin. Fast sync. A sale on any channel reduces WooCommerce stock, which Milan pushes to every other channel within seconds. Reserved stock buffers (Pro). Hold N units back per channel, so the race happens on units 3 and 4 rather than on units 1 and 0.

Do all the channels send webhooks?

No, and it is worth knowing which before you set expectations. Shopify does, and Milan uses them — orders and stock changes arrive in seconds. Amazon, eBay, Etsy, and Walmart do not, in a form a WordPress site can use. Amazon's notifications go to AWS SQS or EventBridge rather than to an HTTP endpoint; eBay's require verifying a rotating ECDSA signature; Etsy and Walmart do not offer partner webhooks at all. Milan polls those, on a schedule you control. This reflects what those marketplaces currently offer partner integrations. Milan polls them instead, which is slower than a webhook but does not miss changes.

What tiers are there?

This plugin has no tiers. It is one plugin and all of it works. The separately distributed add-on is sold in three, differing by which marketplace adapters they include, how many sites the licence covers, and what support comes with it: Personal adds Amazon, eBay, Etsy and Walmart plus alerting; Business covers three sites; Agency covers twenty-five and adds the regional marketplaces, multi-warehouse routing and white-labelling.

Does Milan need Amazon Seller certification?

Yes for Pro's Amazon integration. Amazon SP-API requires you to be a registered Amazon seller in good standing. Milan handles the OAuth and API connection, but Amazon's own requirements apply.

What about eBay?

eBay Trading API just needs a Developer account (free) and your eBay seller account credentials.

Does it work with variable products?

Yes. Variable products map to channel-specific variant structures (Amazon parent/child ASINs, eBay variations, Etsy inventory items, Shopify variants).

What happens if a channel goes down?

Milan fails safe. If Amazon's API is unreachable, Woo keeps running normally. Sync attempts queue with exponential backoff. Once the channel is back, queued jobs process. Alerts (Pro) notify you of extended outages.

How does conflict resolution work?

When Woo and a channel disagree — Woo shows 5 units, Amazon shows 3 because somebody bought there — Milan applies a strategy: WooCommerce wins, the channel wins, the most recent change wins, or hold it for manual review. Free always uses "WooCommerce wins", which is the safe default. Personal Pro lets you choose per channel. Business Pro lets you choose per channel and per event type — "WooCommerce wins on stock, eBay wins on price" — and adds the manual-review queue and bulk resolution. Every conflict is recorded either way, including the ones Milan settles automatically in a microsecond, with the strategy that settled it. The question a merchant eventually asks is not "is my stock right" but "why did my stock change", and that record is the answer.

Can I sell on Flipkart / Meesho / Jumia / Lazada / Noon?

Yes, on the Agency tier — and those five are marked beta. They are built against each marketplace's published documentation and tested against recorded responses, but they have not been validated against a live seller account in each region. Sync a handful of products and check before you point one at a catalogue. The Channels screen says the same thing.

Is it HPOS-compatible?

Yes. Milan is HPOS-native. Marketplace orders arrive as first-class Woo orders under HPOS.

What if the channel I need isn't supported?

You can build a channel adapter. The ChannelAdapterInterface documented at milan.bytloop.com/docs/channel-adapter-guide is a standard extension point. Third-party channels welcome.

Where can I get support?

Free support in the wp.org support forum. Pro customers get email support at support@bytloop.com with 24h SLA. Agency includes video call support for setup and troubleshooting.

I'm a developer — where are the hooks?

The hooks reference lives at milan.bytloop.com/docs/hooks and in /docs/hooks.md in the plugin.

更新日志:

1.0.1 1.0.0