← All projectsARCHITECTURE CASE STUDY

Antoine Online

Adobe Commerce Cloud for a Lebanese retailer: a two-way ERP bridge, Arabic-language product URLs and a multi-website storefront with country-based shipping rules, across multiple custom modules.

Business
Retail, Beirut, Lebanon
Platform
Adobe Commerce Cloud, multiple custom modules
Storefronts
Multiple websites with a frontend switcher
My focus
ERP sync, product APIs, routing and data migration
Adobe Commerce CloudERP syncArabic URLsMulti-websiteREST APIs
data types in the two-way ERP sync
6
HIGHLIGHTS

Five things that set this build apart.

  • Two-way ERP sync

    Products, prices, inventory, categories, customers and orders, monitored from admin.

  • Arabic product URLs

    A custom router keeps spaces and special characters Magento would strip.

  • Multi-website

    A frontend website switcher with country-based shipping restrictions.

  • Product APIs

    Add, update and delete APIs that streamline import and export.

  • Reusable SFTP module

    With an admin “Test Connection” button, reused across integrations.

ARCHITECTURE OVERVIEW

Storefronts in front, the ERP behind a scheduled bridge.

Customers browse several websites with Arabic-friendly URLs. Behind Magento, ErpBridge keeps catalog, stock and customer data in step with the ERP on a schedule.

ChannelsPlatformBusiness systemsWebsitesProduct API clientsCustom routingAdobe CommerceCloud · custom modulesArabic URL routerWebsite switcherShipping restrictionsProduct APIsCron & SFTPERPcatalog, stock, customers, ordersSFTP endpointsfile exchangeAdmin monitoring gridsync statusArabic URLs · multi-websiteAdd / update / delete APIsScheduled, monitored sync
What makes it different

Arabic product names stay readable in the URL — spaces and special characters included — instead of being stripped by Magento’s default sanitiser.

WHAT THE PLATFORM DOES

What the platform does.

  • ERP sync

    ErpBridge syncs products, prices, inventory, categories, customers and orders both ways via scheduled cron jobs, with an admin monitoring grid.

  • Product APIs

    Product add, update and delete APIs that streamline data processing and import/export.

  • Arabic URLs

    A custom front-controller router resolves Arabic product URLs with spaces and special characters.

  • Multi-website

    A frontend website switcher plus country-based shipping restrictions on top of Webkul Shipping Restrictions.

  • Stock accuracy

    A recurring back-order / out-of-stock issue diagnosed and fixed at the root with a custom CSV import patch.

  • Integrations

    A reusable SFTP helper module with an admin “Test Connection” button.

  • Data migration

    CLI tools for bulk gift-card and newsletter-subscriber migration, plus category and catalog-attribute migration patches.

  • Scheduling

    A custom hourly schedule for scheduled import/export, and a CLI command to run the scheduler on demand.

  • Search & catalog

    A category-scoped search dropdown, an availability indicator from salable quantity, an in-store availability attribute, a quantity stepper and price sorting.

  • Customers & SEO

    Offline orders shown in customer order history, whole-number currency formatting per website, canonical tags including CMS pages, and social sharing.

HOW ERP DATA MOVES

Scheduled, two-way, visible.

ErpBridge runs on cron and reports every run in the admin.

  1. STEP 1

    Schedule

    Cron jobs trigger each ErpBridge sync run.

  2. STEP 2

    Sync

    Products, prices, inventory, categories, customers and orders move both ways.

  3. STEP 3

    Monitor

    An admin grid shows the state of the sync to the store team.

KEY TECHNICAL CHALLENGES

Problems solved at the root.

Language, stock and data problems fixed where they started.

  1. Arabic URLs

    Magento’s URL sanitiser strips spaces and special characters, breaking Arabic product URLs.

    Solution

    A custom front-controller router that resolves Arabic URLs directly.

    Result

    Readable, working Arabic product URLs.

  2. Recurring back-orders

    A back-order / out-of-stock issue kept coming back.

    Solution

    Diagnosed it and built a custom CSV import patch that fixes the root cause.

  3. Two sources of truth

    Catalog, stock and customer data lived in both the ERP and Magento.

    Solution

    ErpBridge: a two-way sync on cron, with an admin monitoring grid.

    Result

    Sync status visible to the admin team.

Two-way ERP syncErpBridge moves data both ways on a schedule.
AdobeCommerceErpBridgeERP
How an Arabic URL resolvesSpaces and special characters resolved, not stripped.
Arabic URLCustomrouterProductpage
DESIGN DECISIONS

The options weighed, and the trade-offs accepted.

How the hardest calls were made: what else was on the table, why it lost, and what the chosen design costs.

Supporting non-Latin product URLs

Magento’s URL-key sanitiser strips non-Latin script, spaces and most special characters, which breaks readable Arabic product URLs.

  1. Transliterate Arabic titles into Latin characters — meaningless URLs and weaker local SEO
  2. Fall back to numeric product IDs — safe, but not descriptive
  3. A custom URL path and router that keep the Arabic text (chosen)
Decision

Customised URL generation and added a front-controller router that resolves the resulting URLs.

Trade-off accepted

Bypassing a core sanitiser means owning what Magento would otherwise guarantee: URL collisions, encoding through caches, sitemaps and canonical tags.

TECHNOLOGIES & INTEGRATIONS

The stack behind it.

Core platform
Adobe Commerce CloudPHPMySQLREST APIs
Integration
ERP (ErpBridge)Cron jobsSFTP
Extensions
Webkul Shipping Restrictions
Tooling
CLI migration toolsCSV import
Skills shown
ERP integrationRouting & SEOMulti-website commerceData migrationRoot-cause debugging
FULL BUILD LOG

The work, piece by piece.

  1. Product Add/Update/Delete APIs that streamlined data processing and import/export.

  2. Two-way ERP sync (ErpBridge) for products, prices, inventory, categories, customers and orders via cron, with an admin monitoring grid.

  3. Diagnosed a recurring back-order/out-of-stock issue and fixed it at the root with a custom CSV import patch.

  4. Custom front-controller router enabling Arabic product URLs (spaces, special characters) that the default sanitiser would strip.

  5. Multi-website frontend switcher and country-based shipping restrictions on top of Webkul Shipping Restrictions.

  6. Reusable SFTP helper module with an admin “Test Connection” button, reused across integrations.

  7. CLI tools for bulk gift-card and newsletter-subscriber migration, plus category and attribute migration patches.

Facing a similar commerce problem?

I'm available immediately for senior Adobe Commerce roles and contract work. Tell me what you're building.