OYLABS
Luban Pride
Websites

Luban Pride

Luban Pride is Bahrain's first frankincense house with its own production line in Oman. We replatformed the brand from Odoo to Shopify and built a bilingual Arabic/English storefront serving six GCC markets, backed by a custom Shopify app that guides shoppers to the right scent and a live order sync into the client's Odoo ERP.

Project Overview

Luban Pride sources Omani frankincense from Dhofar and turns it into perfumes, bukhoor, oud, room sprays and body care sold across the Gulf. The brand was trading on an ageing Odoo website that could not support the retail experience it needed — no real merchandising, no Arabic-first storefront, and no way to guide a customer who knows they want frankincense but not which of sixteen product types to buy. We rebuilt the business on Shopify and now operate lubanpride.com end to end: storefront, custom app, catalogue architecture, and the integration back into the client's Odoo ERP.

The store runs six markets — Bahrain, UAE, Saudi Arabia, Kuwait, Qatar and Oman — in two languages, giving twelve distinct locale surfaces. Bahrain sits on the apex domain at /ar-bh and /en-bh; the other five are served from dedicated market subdomains. Arabic is not a translation layer bolted on top: the entire theme mirrors to RTL, and we translated and registered every layer Shopify exposes — product titles and descriptions, collection titles and descriptions, menu labels, storefront filter labels, twenty-six delivery-method names, the payment-gateway label, and homepage SEO metadata. Where Shopify refuses to translate a resource at all — filter values, for instance — we built a theme-side EN→AR mapping snippet so the Arabic storefront never leaks English.

Two problems in that stack were pure engineering. Bahrain merchants cannot use Shopify Payments, so the shop transacts in BHD only and every non-Bahraini price is a display conversion driven by the money format and a client-side converter. That conversion silently failed on Arabic pages, because our own RTL localiser was rewriting the currency token before the converter could parse it — fixed by scoping the localiser out of money nodes and gating the Arabic currency label to the home market. Separately, prices on Arabic pages appeared to render in Arabic-Indic numerals. They were not: the characters were already Latin, and the brand's Arabic display font simply draws ASCII digits with Arabic-Indic glyph shapes. The fix was typographic — pinning every money selector to the Latin body face — and the same technique restored the Judge.me review stars, which had been inheriting the Arabic font over their own icon webfont.

We built a custom Shopify app, delivered as a Theme App Extension, for the parts the theme could not carry. Its centrepiece is the "Help me choose" scent assistant: a two-step guided finder that takes a shopper from a broad category to a ranked shortlist, with add-to-cart inline. Matching is a real engine, not a lookup — product type acts as a hard gate, a scent-vibe metafield re-ranks within a tier, and gift flows apply price-bracket filtering so a recommendation can never fall outside the budget the shopper selected. The app also ships an Arabic-only embed that translates the third-party review widget's interface, including the rating-scale labels that exist only as CSS pseudo-element content and are unreachable from JavaScript.

The catalogue is architected to stay maintainable by the client. Six parent collections are composed from sub-collection sources rather than duplicated rules, so a new product lands in the right places by product type alone, and product metafields drive volume and size lines, colour-coded merchandising badges, and the scent-vibe ranking. Product pages carry a member-pricing view with a dynamic sign-up incentive for guests, a truncated description with in-page expansion, a scent-note pyramid, an always-visible wishlist control, and a paid gift-message option that attaches personalisation to the cart line as line-item properties. Commercially the store runs an automatic members discount, Tabby instalments, cash on delivery, in-store pickup at Al Aali Mall, and twenty-four weight-tiered GCC shipping rates.

Behind the storefront, Shopify orders sync into the client's Odoo ERP. That sync was failing in production with a misleading permissions error; we traced it to an Odoo record rule interacting with a salesperson mismatch on the linked website record — the integration user was creating orders it was then not permitted to own — and confirmed the diagnosis with a controlled reproduction before the client changed a single setting. The same engagement surfaced a pricing discrepancy: Odoo's stored list price is pre-VAT while its storefront displayed VAT-inclusive figures, so every active variant on Shopify was carrying a price ten percent below what the business actually charged. We reconciled all sixty-four active variants and all twenty-four shipping rates, with a full rollback record. Delivery was verified with automated Playwright sweeps across both languages and three viewports, plus a link audit of every market that returned zero broken links.

Technology Stack

ShopifyArabic / RTLMulti-market GCCCustom Shopify AppTheme App ExtensionOdoo ERP IntegrationBilingualBahrain

Project Gallery

Delivery Highlights

Production-grade architecture with full system documentation

Zero-downtime deployment pipeline established from day one

Performance benchmarked and validated pre-launch across all metrics