← All projectsARCHITECTURE CASE STUDY

Minamin

Two fashion and beauty storefronts on Adobe Commerce, with heavily customised themes, an ERP sync split into two purpose-built modules, and admin tools built from scratch.

Business
Fashion & beauty retail, Kuwait
Platform
Adobe Commerce (Magento 2)
Storefronts
BeautyGo and FashionGo (Magedelight themes)
My focus
ERP sync, admin tools, checkout and theming
Adobe Commerce (Magento 2)ERP syncRabbitMQGDPR consentCustom theming
storefronts
2
style files over the base themes
203
admin CRUD systems built from scratch
2
HIGHLIGHTS

Five things that set this build apart.

  • Split ERP sync

    A scheduled push and a separate async order-export queue.

  • 203 style files

    The heaviest LESS/SCSS customisation in the portfolio.

  • Admin tools from scratch

    A banner slider and a product-label system.

  • GDPR consent

    Captured at login and registration, fully logged.

  • Buy Now

    A checkout bypass with bundle-product support.

ARCHITECTURE OVERVIEW

Two storefronts, two sync paths.

Both storefronts share one platform. ERP traffic is split: catalog and stock on a schedule, order exports on a queue.

ChannelsPlatformBusiness systemsBeautyGo storefrontFashionGo storefrontAdobe CommerceMagento 2Banner sliderProduct labelsGDPR consentBuy Now checkoutCron & RabbitMQERP · scheduled pushinventory, price, product, order dataERP · order exportasync RabbitMQ queue203 LESS/SCSS filesBuilt from scratchTwo purpose-built modules
What makes it different

Instead of one monolithic sync, the ERP integration is two purpose-built modules: a scheduled cron push and a separate asynchronous order-export queue.

WHAT THE PLATFORM DOES

What the platform does.

  • ERP sync

    A scheduled cron push for inventory, price, product and order data, and a separate async RabbitMQ order-export queue.

  • Theming

    Two purchased Magedelight themes (BeautyGo, FashionGo) with 203 style files layered on top.

  • Banners

    A self-built banner slider with desktop/mobile images and page targeting.

  • Product labels

    Attribute-based or manual label assignment, store-scoped.

  • Privacy

    GDPR consent capture at login and registration, with full consent logging.

  • Checkout

    A “Buy Now” checkout bypass with bundle-product support.

  • Wishlist

    AJAX add-to-wishlist across listing, product page and search results.

  • Login

    Customised OTP mobile login (Magecomp) and Facebook/Google social login (Magedelight).

  • Performance & checkout

    Sitewide image lazy loading, placeholder text on checkout fields, a customised order summary and a fixed multi-wishlist edit popup.

HOW AN ORDER REACHES THE ERP

Queued, not blocked.

Order exports run on their own asynchronous queue.

  1. STEP 1

    Place

    The customer places an order on either storefront.

  2. STEP 2

    Queue

    A plugin on order placement publishes an order-created message to RabbitMQ.

  3. STEP 3

    Export

    A separate consumer exports the order to the ERP.

KEY TECHNICAL CHALLENGES

Different jobs, different tools.

Sync timing, merchandising and privacy each got their own solution.

  1. One sync, two needs

    Catalog and stock updates and order exports have different timing needs.

    Solution

    Split ERP sync into a scheduled cron module and an async RabbitMQ order-export queue, rather than one monolith.

  2. Merchandising control

    Banners and product labels had to be managed from the admin.

    Solution

    Two self-built admin CRUD systems: a targeted banner slider and store-scoped product labels.

  3. Provable consent

    Customer consent had to be captured and recorded.

    Solution

    GDPR consent capture at login and registration, with full consent logging.

Order export pathAsynchronous, through RabbitMQ.
OrderplacedRabbitMQERP
Scheduled catalog pushInventory, price, product and order data.
CronSyncmoduleERP
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.

Keeping checkout independent of the ERP

The ERP needs every order, but it is slower and less reliable than the storefront; a synchronous call would tie checkout to the ERP’s uptime.

  1. Call the ERP from an order-placed observer — any ERP slowness breaks checkout
  2. Have the ERP poll for new orders — decoupled, but adds latency and ERP-side work
  3. Publish an event on order placement and export from a queue consumer (chosen)
Decision

An afterPlace plugin publishes an order-created message to RabbitMQ; a separate consumer performs the ERP export.

Trade-off accepted

Eventual consistency — an order can exist in Magento before the ERP sees it — plus a queue and consumer to keep healthy and monitored.

TECHNOLOGIES & INTEGRATIONS

The stack behind it.

Core platform
Adobe Commerce (Magento 2)PHPLESS / SCSS
Integration
ERPCronRabbitMQ
Themes
Magedelight BeautyGoMagedelight FashionGo
Login
Magecomp MobileloginMagedelight social login
Skills shown
ERP integrationMessage queuesAdmin toolingTheme customisationPrivacy compliance
FULL BUILD LOG

The work, piece by piece.

  1. Customised two Magedelight themes (BeautyGo, FashionGo) with 203 style files layered on the base themes.

  2. Split ERP sync into a scheduled cron module and an async RabbitMQ order-export queue.

  3. Two from-scratch admin CRUD systems: a banner slider (desktop/mobile images, page targeting) and store-scoped product labels.

  4. GDPR consent capture at login and registration, with full consent logging.

  5. “Buy Now” checkout bypass with bundle support, and AJAX add-to-wishlist across listing, product and search pages.

  6. Customised OTP mobile login and Facebook/Google social login.

Facing a similar commerce problem?

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