WooCommerce Plugin
Sell Tourist eSIM plans in your WooCommerce store — sync, sell, and let customers manage their eSIMs in one click. No coding required.
Overview
The official Tourist eSIM for WooCommerce plugin connects your WordPress store directly to the Tourist eSIM Partner API. Once configured, it:
Auto Sync Plans
Imports all eSIM plans as WooCommerce products on a schedule (hourly, twice daily, or daily).
Instant Fulfilment
Submits orders to the Partner API the moment a customer pays. Zero manual steps.
QR Codes in Emails
Injects eSIM QR codes and setup instructions directly into WooCommerce order emails.
My eSIMs Dashboard
Customers see live data usage, instructions, and an iOS 17+ direct install button.
Encrypted Credentials
API keys stored with AES-256-CTR encryption using WordPress salts.
HPOS Compatible
Fully supports WooCommerce High-Performance Order Storage.
Requirements
| Requirement | Minimum Version |
|---|---|
| WordPress | 6.0+ |
| WooCommerce | 7.0+ |
| PHP | 8.0+ |
| PHP extension | openssl (recommended) |
| Tourist eSIM Partner Account | Apply here → |
Installation
Option A — WordPress Admin (Recommended)
- Download touristesim-woocommerce.zip from GitHub
- In WordPress admin go to Plugins → Add New → Upload Plugin
- Upload the ZIP file and click Install Now
- Click Activate Plugin
Option B — FTP / File Manager
- Download and unzip
touristesim-woocommerce.zip - Upload the
touristesim-woocommercefolder to/wp-content/plugins/ - Go to Plugins → Installed Plugins and activate Tourist eSIM for WooCommerce
Option C — Git Clone
cd wp-content/plugins/
git clone https://github.com/touristesim/touristesim-woocommerce.git
Then activate via Plugins → Installed Plugins.
Configuration
Step 1 — Get your API credentials
You need a Client ID and Client Secret from the Tourist eSIM Partner Dashboard.
- Sign up or log in at partners.touristesim.net
- Navigate to Developer → API Credentials
- Copy your Client ID and Client Secret
Step 2 — Enter credentials in WordPress
- In WordPress admin go to Tourist eSIM → Settings
- Enter your Client ID and Client Secret
- Click Test Connection to verify the API is reachable
- Click Save Settings — an automatic background sync starts immediately
Step 3 — Product Sync Settings
| Setting | Default | Description |
|---|---|---|
| Auto-publish new products | On | Publish newly imported eSIM plans immediately |
| Update product titles | On | Overwrite product name on each sync |
| Update product descriptions | On | Overwrite product description on each sync |
| Sync product images | Off | Download country flag images (slower sync) |
| Plan types | All | Import Local, Regional, and/or Global plans |
| Auto-sync interval | Daily | Hourly / Twice Daily / Daily |
Sync Plans
Go to Tourist eSIM → Sync Products and click Sync Products Now.
This imports all plans from the Partner API as WooCommerce virtual products, organised automatically under product categories:
- eSIM Plans → Local eSIMs — single-country plans
- eSIM Plans → Regional eSIMs — multi-country plans
- eSIM Plans → Global eSIMs — worldwide plans
After the first save of credentials, an automatic sync is also scheduled in the background. Subsequent syncs run on the configured interval via WP-Cron.
Order Flow
Once a customer completes payment, the plugin automatically:
- Detects Tourist eSIM products in the WooCommerce order
- Calls
POST /v1/orderson the Tourist eSIM Partner API - Receives ICCIDs, QR codes, SM-DP+ address, and activation codes
- Stores all eSIM data on the WooCommerce order (accessible anytime)
- Injects QR codes and instructions into the WooCommerce confirmation email
- Optionally calls
POST /v1/esims/{iccid}/send-emailto trigger a direct eSIM setup email from the API
If submission fails, an admin note is added to the order and the error is logged under WooCommerce → Status → Logs (source: touristesim-woocommerce). You can manually resubmit from the Partner Dashboard.
Admin order panel
In WooCommerce → Orders → (order detail), a Tourist eSIM Fulfilment panel shows the Partner Order Number, ICCID, plan name, status, and QR link for each provisioned eSIM.
My eSIMs Page
Customers access their eSIMs via:
- WooCommerce My Account → My eSIMs tab (added automatically)
- Any page using the
[touristesim_my_esims]shortcode - Direct URL
/esim-setup/{iccid}/— used as a deep-link in emails
Each eSIM card shows:
- Live data usage bar with Refresh button
- Coverage, expiry, and ICCID details
- iOS tab — QR code image + Add to iPhone button (shown automatically on iOS 17+)
- Android tab — QR code image
- Step-by-step installation instructions (iOS / Android, loaded on demand)
- Manual tab — SM-DP+ address and Activation Code with one-click copy
Shortcode
Embed the My eSIMs dashboard on any WordPress page or post:
[touristesim_my_esims]
The customer must be logged in. If not logged in, a "Please log in to view your eSIMs" message is shown with a link to the My Account page.
Become a Partner
To use this plugin you need a Tourist eSIM Partner account with API credentials.
- Visit partners.touristesim.net/register
- Complete the partner application form
- Once approved, go to Developer → API Credentials in the dashboard
- Copy your Client ID and Client Secret into the plugin settings
For partnership enquiries: partners@touristesim.net
Frequently Asked Questions
Do customers need a WooCommerce account?
Customers need an account to access the My eSIMs dashboard. Guest checkout is supported for purchasing, but eSIM management requires a logged-in account.
What happens if order submission fails?
The failure is logged in WooCommerce → Status → Logs and an admin note is added to the order. You can manually resubmit the order from the Partner Dashboard.
Will re-syncing delete my custom product content?
Disable "Update product titles" and "Update product descriptions" in Settings to preserve your custom content. Prices, attributes, and stock status are always updated by sync.
How many eSIMs can a customer buy at once?
Maximum 9 eSIMs per order (enforced at cart validation).
Is WooCommerce HPOS supported?
Yes — High-Performance Order Storage (custom order tables) is fully supported.
Does the plugin work without Composer?
Yes. No Composer or external PHP dependencies. Uses WordPress's built-in HTTP API only.
Support
| Channel | Contact |
|---|---|
| Technical Support | tech@touristesim.net |
| Partnership Enquiries | partners@touristesim.net |
| GitHub Issues | github.com/touristesim/touristesim-woocommerce/issues |
| Partner Dashboard | partners.touristesim.net |