← All projectsARCHITECTURE CASE STUDY

Fantasy World Toys

An Adobe Commerce On-Premise store for a Kuwaiti toy retailer: four delivery modes, Kuwait’s national payment networks and a Microsoft Dynamics AX bridge, built across multiple custom modules by a team I led.

Business
Toy retail, Kuwait City
Platform
Adobe Commerce On-Premise, multiple custom modules
Channels
Website and in-store kiosk mode
My role
Dedicated client-side developer; led a team of 2–3 developers
Adobe Commerce On-PremiseMicrosoft Dynamics AXKnet + UPayTabby BNPLAlgolia
delivery modes
4
third-party override touch-points
62
developers led
2–3
HIGHLIGHTS

Five things that set this build apart.

  • Four delivery modes

    Express, Home Delivery, Click & Collect and Curbside, each with its own payment rules.

  • Local payment rails

    Knet and UPay alongside CyberSource cards and Tabby buy-now-pay-later.

  • Dynamics AX bridge

    Categories, customers and orders synced with the ERP.

  • Team leadership

    Task assignment and code review for 2–3 developers, shared delivery with the PM.

  • Deep extension work

    15 purchased extensions adapted across 62 override touch-points.

ARCHITECTURE OVERVIEW

One delivery engine, wired to local payments and the ERP.

Shoppers reach the store on the web or through an in-store kiosk. Delivery mode, payment and notifications are handled in Magento; payments, search and the ERP sit behind integrations.

ChannelsPlatformBusiness systemsWebsiteIn-store kioskREST & GraphQLAdobe CommerceOn-Premise · custom modulesMulti-mode deliveryPayments & BNPLGift wrap & couponsMerchandisingIntegrationsDynamics AXcategories, customers, ordersKnet · UPay · CyberSourcepayment networksTabbybuy now, pay laterAlgoliaproduct searchSMS gatewayOTP login, order milestonesSMS OTP · Facebook/Google login62 third-party touch-pointsOptimised REST & GraphQL
What makes it different

Every order carries its delivery mode from cart to doorstep: it decides which payment methods are allowed and which SMS milestones the customer receives.

WHAT THE PLATFORM DOES

What the platform does.

  • Delivery

    Express (1-hour and 2-hour), Home Delivery, Click & Collect and Curbside Pickup, with per-mode cutoff times, daily order caps, mode-specific payment restrictions and SMS milestones through the order lifecycle.

  • Store pickup

    A store locator and per-store stock, so pickup availability is checked at checkout, plus a store stock report.

  • Payments

    Kuwait national payment networks (Knet, UPay) alongside CyberSource Secure Acceptance and Tabby buy-now-pay-later.

  • ERP

    A Microsoft Dynamics AX bridge syncing categories, customers and orders (with line items and payments), plus a customer-facing AX order-history view.

  • Customer accounts

    SMS OTP login, Facebook and Google social login, and an in-store kiosk mode.

  • Gifting & coupons

    A full gift-wrap options system and a coupon auto-apply engine, built on Mageplaza GiftWrap and Abandoned Cart.

  • Merchandising

    Shop-by-age filtering, daily-deal and star-product merchandising, and shop-by-brand navigation.

  • Search & APIs

    Algolia for search; REST and GraphQL APIs optimised.

  • Extensions

    62 of 66 class overrides target purchased extensions — Mageplaza GiftWrap alone accounts for 11 — across Amasty, Magedelight, Mageplaza, CyberSource, Eltrino, FireGento and more.

  • Orders & marketing

    Order tracking, printable orders, UTM link tracking and coupon-code campaigns.

HOW AN ORDER MOVES

Delivery mode first, everything else follows.

The delivery mode the customer picks shapes the rest of the order.

  1. STEP 1

    Choose

    Customer picks Express, Home Delivery, Click & Collect or Curbside.

  2. STEP 2

    Pay

    Only the payment methods allowed for that mode appear: Knet, UPay, cards or Tabby.

  3. STEP 3

    Notify

    SMS milestones keep the customer updated through the order lifecycle.

  4. STEP 4

    Sync

    The order reaches Microsoft Dynamics AX through the ERP bridge.

KEY TECHNICAL CHALLENGES

What made this build hard.

A new fulfilment model, local payment networks and a heavily extended codebase, delivered by a small team.

  1. Four ways to deliver

    Express, Home, Click & Collect and Curbside each needed their own payment rules and customer updates.

    Solution

    One multi-mode delivery engine with mode-specific payment restrictions and SMS milestones.

    Result

    Customers only see payment options that work for their delivery mode, and hear from the store at each milestone.

  2. Local payment rails

    Kuwaiti shoppers expect Knet and UPay alongside cards and buy-now-pay-later.

    Solution

    Integrated Knet and UPay with CyberSource Secure Acceptance and Tabby.

    Result

    Local networks, cards and BNPL in one checkout.

  3. A heavily extended codebase

    Over a dozen third-party extensions needed site-specific behaviour.

    Solution

    Patched and extended Amasty, Magedelight, Mageplaza, CyberSource, Eltrino and others across 62 touch-points.

  4. Small team, one client

    Backend work, integrations and production support all ran through one engagement.

    Solution

    Acted as the dedicated client-side developer and led 2–3 developers on task assignment and code review, sharing delivery with the PM.

The Dynamics AX bridgeCategories, customers and orders kept in sync.
AdobeCommerceAX bridgeDynamicsAX
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.

Patch in place, or rebuild?

The new fulfilment model needed gift wrap, abandoned-cart marketing, layered navigation and other purchased extensions to behave differently, with no budget to rebuild them.

  1. Rebuild the functionality in-house — full control, but expensive and no more vendor updates
  2. Fork the extensions’ code — fast, but no safe updates later
  3. Override only the classes that need different behaviour (chosen)
Decision

For each affected extension, only the specific blocks, observers and models that had to change were overridden through preferences or plugins.

Trade-off accepted

An ongoing dependency: an override can stop applying, or start conflicting, when a vendor restructures a class, so every override has to be tracked on each vendor update.

TECHNOLOGIES & INTEGRATIONS

The stack behind it.

Core platform
Adobe Commerce On-PremisePHPMySQLREST APIsGraphQL
ERP
Microsoft Dynamics AX
Payments
KnetUPayCyberSource Secure AcceptanceTabby
Search
Algolia
Extensions
AmastyMagedelightMageplazaEltrino
Accounts & messaging
SMS OTPFacebook loginGoogle login
Skills shown
Team leadershipFulfilment designPayment integrationERP integrationExtension customisation
FULL BUILD LOG

The work, piece by piece.

  1. Dedicated client-side developer handling day-to-day backend operations and prioritisation.

  2. Led a team of 2–3 developers on task assignment and code review, sharing delivery accountability with the PM.

  3. Multi-mode delivery engine (Express, Home Delivery, Click & Collect, Curbside) with mode-specific payment restrictions and SMS milestone notifications.

  4. Integrated Knet and UPay alongside CyberSource Secure Acceptance and Tabby buy-now-pay-later.

  5. Microsoft Dynamics AX ERP bridge syncing categories, customers and orders.

  6. Gift-wrap options and a coupon auto-apply engine built on Mageplaza GiftWrap and Abandoned Cart.

  7. Patched and extended over a dozen third-party extensions (Amasty, Magedelight, Mageplaza, CyberSource, Eltrino) across 62 touch-points.

  8. SMS OTP login, Facebook/Google social login and an in-store kiosk mode.

  9. Shop-by-age filtering, daily-deal and star-product merchandising, and shop-by-brand navigation.

  10. Optimised REST and GraphQL APIs; integrated Algolia search and Tabby checkout.

Facing a similar commerce problem?

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