Work / Integration · 2025
eSIM provider
For an eSIM provider selling on Shopify, I added eSIM provisioning, top-ups and a partner feed to the store's Shopify app. Each order or top-up becomes an order at a wholesale eSIM API, the eSIM details are emailed to the customer, and a 5-minute job keeps order status current; storefront routes price top-up plans in the shopper's currency. A separate Lumen 9 service publishes the store's data plans as a feed and tracked deep links for comparison partners.
- client work
- integration
- client anonymized
- archived
- Client
- eSIM provider
- Type
- Integration · E-commerce: Shopify app for eSIM provisioning
- Role
- Freelance backend developer: added the eSIM provisioning, top-up and partner-feed logic to an existing Shopify app base.
- Built with
- PHP, Laravel, Lumen, Shopify Admin REST API, Shopify webhooks, eSIM provider REST API, Exchange-rate API, SMTP mail
- Also uses
- React, Shopify Polaris, Vite
- Last active
- 2025
What it does
- Order → eSIM provisioning with email delivery and a 5-minute status cron.
- Top-ups driven by line-item properties.
- Storefront top-up plan lookup with currency conversion and price sorting.
- Provider webhook for eSIM status events.
- Partner data-plan feed and tracked deep links, priced per partner in USD or EUR.
How it is built
- A Shopify CLI PHP app (Laravel backend, React/Polaris admin) receives order webhooks, calls the wholesale eSIM API, stores orders and mails customers, with a scheduled status job; storefront routes serve top-up plans. A separate Lumen service caches the Shopify catalogue to a file and serves partner feeds from it.
Decisions
- Serve the partner feed from a cached catalogue file.
- Keep region-to-country mapping in code.
Challenges
- Region coverage in the partner feed needed a South East Asia fix.
Skills
- Shopify app backend development (webhooks, Admin API)
- Third-party API integration (provisioning, top-ups)
- Scheduled background jobs (Laravel scheduler)
- Partner data feeds