Deposit payments tailored for a multi-store custom gifts business
For a Hong Kong maker of personalised 3D phone cases and gifts, we adapted our partial-payment extension so deposits are calculated correctly across several storefronts.
Results
- Deposit calculation reworked to account for coupon and bundle discounts, with all requested changes confirmed complete in September 2019
- Multi-store errors debugged on a dedicated test server before changes reached the live stores
- Licence extended to a second storefront domain
- Client returned in January 2020 for a further change to the live payment notice
The challenge
A Hong Kong business selling personalised 3D photo phone cases, bike cases and model gifts ran several storefronts from one multi-store installation. Because many products are made to order, the business takes a deposit at checkout and collects the balance later. It had bought our partial-payment extension from the OpenCart marketplace, but its pricing model raised questions the standard settings did not answer.
Customers regularly used coupons and bundle discounts, so the deposit had to be worked out from the discounted subtotal rather than the list price. With several stores sharing one codebase, any change also had to behave correctly on each storefront without disturbing the live sites.
What we did
- Isolated test environment. The client set up a test server in the United States that mirrored the multi-store installation. We worked there over SFTP and kept every change inside the extension's own vQmod file, leaving core files untouched and making future updates simpler.
- Deposit calculation rework. Following the client's fix-request documents, we changed the logic so the deposit is calculated from the subtotal after coupon and bundle discounts, then worked through further rounds of adjustments until all requested changes were in place.
- Multi-store debugging. We traced and resolved an error that appeared only in the multi-store setup, so the deposit option worked consistently across the storefronts.
- Second-domain licence. We issued a licence key so the extension could run on an additional storefront domain.
- Live-site follow-up. A few months later the client asked us to correct the wording of the payment notice that customers see; we updated it on the live store.
Tech stack
PHP, MySQL, OpenCart 3 (multi-store), vQmod, nginx, Linode
Project facts
- Industry
- Personalised 3D photo cases and gifts
- Client
- a Hong Kong maker of personalised 3D photo cases and gifts
- Country
- Hong Kong
- Year
- 2019–2020
- Engagement
- Direct client
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.