The double-entry problem for retailers sounds manageable until you add up what it actually costs. Colonial Spirits runs their physical liquor operation on mPower POS and their online store on WooCommerce. Two separate systems, no native connection. Every product added to the POS had to be manually recreated in WooCommerce. Every price change applied twice. Inventory movements on the shop floor left the online store showing stale stock until someone caught up.
For a liquor retailer with hundreds of SKUs across spirits, wine, and beer - many with complex pack-size variations - that gap compounds fast.
I built the Woo mPower Importer to close it.
The plugin connects to the mPower API on a WordPress cron schedule and runs a full sync pipeline: product names, SKUs, descriptions, pricing, categories, attributes, and inventory levels pulled from the POS and written to WooCommerce automatically. The first run imports the full catalogue. Every run after that keeps it current.
Multi-pack handling is built for how retail actually works. A single SKU might sell as a single bottle, a 4-pack, and a 6-pack - each with independent pricing and stock tracking. The plugin creates the WooCommerce variation structure on initial import and maintains it through subsequent syncs. Stock tracked per variation, not just at the parent product level.
Category mapping is admin-configurable. mPower's brand hierarchy maps to the WooCommerce category tree through a settings interface that store administrators can update without touching code when new product lines are added.
Batch processing with checkpointing makes the sync safe for large catalogues on shared hosting. Each cron run processes a page of API results within PHP's execution time limit, records progress, and picks up exactly where it left off on the next run. A status endpoint shows sync state, record counts, and any failed items - no server log access required.
Following the initial build, Colonial Spirits moved to a monthly maintenance retainer. I maintain the integration as the mPower API evolves and WooCommerce major versions ship. Compatibility issues get caught by the person who understands the full sync architecture - not someone reading the code under pressure for the first time.