E-commerce · Mobile repair, digital products and training
RoyaFix: a digital-products shop on WordPress with a bespoke theme and six custom plugins
A specialist mobile-repair and training shop on WordPress and WooCommerce: a bespoke theme with no page builder, six custom plugins for SMS, SEO and two payment gateways, digital product and course sales, and every asset served from the site's own server.
- Client
- Royafix
- Industry
- Mobile repair, digital products and training
- Year
- 2025
- Status
- Live
- Discovery and analysis
- UX and UI design
- Software architecture
- Front-end development
- Back-end and API development
- Database design
- Third-party integrations
- Technical SEO
- QA and testing
- Support and ongoing development
The result, in numbers
- 6 + 1
- custom plugins and a hand-written theme
- 2
- custom payment gateways
- 0
- foreign CDN dependencies
no page builder, no off-the-shelf theme
ZarinPal and Behpardakht Mellat
every font, stylesheet and script served locally
The challenge
RoyaFix sells digital products and training packages rather than physical goods — and that changes several things.
Buying has to be frictionless. Someone buying a training package has no patience for a long registration form; they want to sign in with a mobile number, buy, and download immediately. If they ordered as a guest, that order has to attach to their account once the number is verified.
Speed, and independence from a CDN. A site that pulls its fonts and scripts from a foreign CDN is unpredictable in Iran: sometimes fast, sometimes stalled for seconds on one file. For a shop that acquires customers from Google, that is lost custom.
And more importantly: capabilities must not die with the theme. A shop whose payment gateway, SMS and SEO are written inside its theme can, in practice, never change that theme.
The solution
WordPress and WooCommerce were kept as the platform, and everything above them was written from scratch: a hand-written shop theme and six independent plugins.
The central decision was that capabilities live in plugins, not in the theme — so they survive a WordPress or WooCommerce update, or a change of theme. Six custom plugins: SMS and OTP login, SEO, WooCommerce tooling, WordPress tooling, and two payment gateways (ZarinPal and Behpardakht Mellat), each with its own verification, inquiry and reversal handling.
Frictionless buying runs on OTP login and registration through SMS.ir, and an order placed as a guest is securely attached to that account once the number is verified. The account area is complete: orders, downloads, addresses and profile.
The theme was written without a page builder — home, shop, product, cart, checkout, login and account are all hand-built, and content is read directly from WooCommerce. A theme settings panel controls the logo, menus, slider, colours and text, product categories and home-page sections from the dashboard.
Speed was solved with one plain decision: every font, stylesheet and script served from the site's own server, with no foreign CDN dependency — plus page caching, browser caching and conservative optimisation that never touches cart or checkout.
Key features
Buy with a mobile number
OTP login and registration via SMS.ir, with guest orders securely attached to the account after verification.
Digital products and downloads
Training packages and digital goods, with a downloads area in the account and access to previous purchases.
Two custom payment gateways
ZarinPal and Behpardakht Mellat, each with verification, inquiry, settlement and automatic reversal.
Capabilities in plugins, not the theme
SMS, SEO, gateways and tooling are independent of the theme, so a theme change or a WooCommerce update does not destroy them.
No CDN dependency
Every font, stylesheet and script on the site's own server — on Iranian networks, the difference between fast and sometimes fast.
Mega menu and fast search
A multi-column category menu, fast product search, a sticky header, and a mobile panel with accordion submenus.
A theme settings panel
Logo, menus, slider, colours and text, categories and home sections — all from the dashboard, without code.
Jalali calendar and reports
WooCommerce localisation, the Jalali calendar and Jalali reports — dates the way the team reads them.
Architecture and stack
- Style
- CMS-based
WordPress here is the platform: users, products, orders and payment come from WooCommerce, and nothing WordPress already does was rebuilt.
Above it, two separate layers: a hand-written theme with no framework and no page builder, responsible only for presentation, and six independent plugins that hold all the behaviour — SMS, SEO, two gateways, and WooCommerce and WordPress tooling.
That separation is the project's central decision. A shop whose gateway, SMS and SEO live inside its theme is locked to that theme: changing the look means losing payment. With this structure the theme can change tomorrow and the shop stays where it is.
Performance comes from page caching, browser caching and conservative optimisation — conservative meaning cart, checkout and account pages are never cached. Every static asset is local, with no foreign CDN.
WooCommerce HPOS compatibility was respected from the start, so future WooCommerce updates will not break the gateways or the orders.
- Back end and API
- WordPressWooCommercePHPREST API
A bespoke theme and six plugins, HPOS and WooCommerce CRUD compatible
- Database
- MySQL
- Front end
- HTML5CSS3JavaScript (ES6+)Responsive Design
No page builder, RTL, the IRANSansX typeface served locally
- Infrastructure and deployment
- Docker
- Other
- Performance OptimizationUI/UX Design
Page and browser caching, fully local assets
Integrations
- ZarinPal and Behpardakht Mellat — two gateways, each a custom plugin
- SMS.ir for OTP login and order-status notifications
- Aparat for product video
Full write-up
The bespoke theme
- A dynamic home page — a configurable slider, an Apple ID introduction, separate rows for Android and iPhone packages, and a manageable image gallery.
- Header and mega menu — fast product search, a multi-column category menu, a sticky header, and a mobile panel with accordion submenus.
- The buying experience — product page, cart and checkout with a deliberate layout, readable forms, and details prefilled from the customer's account.
- A complete account area — login by password or mobile, orders, downloads, addresses, profile completion and access to previous purchases.
- A theme settings panel — logo, menus, slider, colours and text, product categories, item counts, gallery and which home-page sections appear.
- Fully responsive — a bespoke mobile layout, touch carousels, and a glass bottom menu.
Six custom plugins
Capabilities were written as modules independent of the theme, so they survive a WordPress or WooCommerce update, or a change of theme.
Idepoo SMS — OTP login and registration via SMS.ir, order-status notifications, dynamic SMS template parameters, and secure attachment of guest orders after mobile verification
Idepoo SEO — Dynamic meta tags, Open Graph, share images, a standard sitemap, and Schema and JSON-LD for WooCommerce products
Idepoo Woo Toolkit — Aparat video, product gallery and slider, a modern variable-product display, Persian localisation, the Jalali calendar and Jalali reports
Idepoo WordPress Toolkit — A custom login page, fully local assets, page and browser caching, and conservative HTML, CSS and JavaScript optimisation
Idepoo Zarinpal — A light, secure ZarinPal gateway for WooCommerce, bank-return handling and transaction records
Idepoo Mellat — A dedicated Behpardakht Mellat integration with verification, inquiry, settlement and automatic reversal
Technical foundations
WordPress and WooCommerce, PHP and MySQL, HTML5, CSS3 and JavaScript, the REST API and WooCommerce CRUD, HPOS compatibility, full right-to-left with the locally hosted IRANSansX typeface, a responsive interface, and Docker deployment.
Every font, stylesheet and script is served from the site's own server — no foreign CDN dependency, which under Iranian network conditions is the difference between "fast" and "sometimes fast".
Related services and products
Have a similar project in mind?
Fifteen minutes is enough to say what it needs, how long it takes and where to start.
Similar projects
E-commerce
Daroobin: an online pharmacy with batch tracking, expiry dates and FEFO allocation
An online pharmacy and cosmetics shop on .NET 10: multi-batch inventory with lot numbers and expiry dates, FEFO allocation, three payment gateways, scheduled campaigns and flash sales, and margin reporting.
- Next.js
- React.js
- TypeScript
- Tailwind CSS
Daroobin · 2025
E-commerce
Zarshop: a bespoke hygiene-products shop with layered stock control and Jalali reporting
A bespoke online shop on ASP.NET Core and Next.js: a thirty-minute stock reservation, weight- and zone-based shipping across five carriers, Jalali-month sales reporting with PDF export, and the migration of more than five thousand historical orders.
- Next.js
- React.js
- TypeScript
- Tailwind CSS
Zarshop, Babol · 2025
Custom software · E-commerce
Robocode: academy, online exams, shop and a partner network on one platform
The integrated platform for the Robocode academy on .NET 10: online and in-person courses, exams with report cards, a shop with wholesale pricing, certificate issuance with QR verification, a partner and instructor panel with commission, and single sign-on from Shad.
- .NET 10
- C#
- Entity Framework Core
- MediatR
Robocode training institute · 2025

