WP Product Manager
WordPress plugin that prices a WooCommerce catalogue against an upstream store. Multi-currency retrieval, a pluggable strategy that picks the price to charge, a transient cache so product pages never wait on an external call, and custom fields carried from product form to finished order.

Stack
The problem
A store reselling console games priced tens of thousands of items against an upstream store that changes its own prices constantly: sales start and end without warning, and the same title costs a different amount in every regional storefront. Prices in the shop were therefore either stale or wrong: a manual pass over the catalogue took days and was obsolete before it finished.
The naive fix (asking the upstream store for a price whenever a product page loads) is worse. A catalogue page showing thirty products becomes thirty outbound calls, page load collapses, and one slow upstream response takes the shop down with it.
Before → After
| Before | After |
|---|---|
| Prices updated by hand, days behind the source | Prices pulled from the upstream store and refreshed automatically |
| One region's price applied to everything | Every available regional price fetched and compared |
| Which price to charge was a per-product decision made by a person | A pricing strategy, chosen once and applied to the whole catalogue |
| Live lookups on page load: slow pages, upstream outages visible to buyers | Cached prices with a short lifetime: a product page never waits on an external call |
| Order data missing the fields fulfilment actually needed | Custom fields carried through product form, cart, checkout and order |
| Changing the pricing rule meant editing code | Strategies are swappable behind one interface |
How it works
- Prices are collected per region. For a given product the plugin asks the upstream store for its price in each configured currency, rather than trusting a single storefront.
- A strategy picks one. The choice is a pluggable component behind a single interface; the shipped implementation takes the lowest legitimate regional price. Swapping in a different rule: a fixed region, a margin over the median: does not touch the rest of the plugin.
- The result is cached. The selected price is written to a short-lived transient. Catalogue and product pages read the cache, so rendering a page never blocks on an upstream call and an upstream outage does not become a shop outage.
- Custom fields follow the order. The extra fields the fulfilment flow depends on are injected into the product edit form, the cart, the checkout and the finished order, so the data an operator needs is attached to the order rather than reconstructed later.
- The catalogue stays current. Refreshes run on a schedule against the whole catalogue, which is what keeps a shop of this size in step with a source that changes daily.
Key features
- Multi-currency price retrieval from the upstream store
- Pluggable pricing strategy: lowest regional price shipped as the default
- Transient-backed price cache with a configurable lifetime
- Custom fields on product form, cart, checkout and order
- Scheduled catalogue-wide refresh
- Typed DTOs for every upstream response, so a shape change fails loudly
Installation
- Upload the plugin folder to
/wp-content/plugins/and activate it - Configure the upstream API credentials and the currencies to query
- Select the pricing strategy and set the cache lifetime
- Run the first catalogue refresh manually to populate the cache
- Schedule the recurring refresh at whatever interval the source justifies
Open for contract collaboration
I am available for contract-based collaboration. If you have an interesting project idea, schedule a call via Calendly.
Schedule a 30-min call