Two-way catalogue sync API between two online jewellery stores
We upgraded a jewellery retailer's older store to match its sister shop, then built an IP-restricted API that keeps both catalogues in sync in both directions.
Results
- Older store upgraded from OpenCart 2.x to 3.x
- Categories, products, recurring profiles, filters, attributes, options and manufacturers synced in both directions
- Per-manufacturer sync control added to the admin
- Work started on a demo copy in late June 2020 and the sync was confirmed complete in mid-July 2020
- The reseller described the result as "Amazing work!"
The challenge
A jewellery retailer ran two online stores side by side. The newer shop was already on OpenCart 3 with the Journal theme; the older one was still on version 2.x. The owner needed the two catalogues to stay aligned, whichever store a change was made in.
That meant two problems had to be solved in order. First, the older store had to be brought up to the same platform version, without losing the offline card payment method its checkout relied on. Second, the two stores needed a dependable way to exchange catalogue data in both directions, with control over what was shared and protection against unauthorised calls. The work reached us through a reseller who managed the relationship with the retailer.
What we did
- Platform upgrade. We upgraded the older store from OpenCart 2.x to 3.x, with the work carried out on a demo copy of the store.
- Payment extension port. The store relied on a third-party offline card payment extension, which we ported to OpenCart 3 so the payment option carried over to the upgraded store.
- Two-way sync API. We built custom APIs on both stores to sync categories, products, recurring profiles, filters, attributes, options and manufacturers in either direction, including products created by copying an existing item. Product image folders are created automatically on the receiving store.
- Access and control. API calls are restricted by server IP, and we added a "Sync" checkbox to each manufacturer so the owner decides which brands are shared between the two stores.
- Checkout and post-launch fixes. We fixed a stuck loading indicator and an order-view error, and switched the checkout to the Quick Checkout extension in place of the previous one.
Tech stack
PHP, MySQL, OpenCart 3, Journal theme, custom sync API, IP-based access restriction
Project facts
- Industry
- Jewellery retail
- Client
- a jewellery retailer running two online stores
- Year
- 2020
- Engagement
- Through a reseller
Services
Technologies
Integrations
Planning something similar?
Tell us what you're building. We'll share how we'd approach it and what it would take.