Vaflet LLC
← All work

ASAR TECH

A Dubai tech shop where retail and wholesale share one cart — storefront, checkout and an admin the owner can actually use

Product design · Full-stack build · E-commerce

ASAR TECH home: hero banner, categories, new arrivals

Retail and wholesale, same shelf

One price list, two kinds of buyer

A Dubai reseller sells the same laptop twice over: one to a traveller who wants it today, fifty to a shop that will resell them.

The usual answer is two websites — a retail store, and a B2B portal where the price hides behind a login, an account approval and a quote request.

Here there is one shop. The ladder is printed on the product page, and the tenth unit drops the price in the cart in front of everybody.

Price per unit, AED

MacBook Pro 14" M4 Pro · 512 GB

1–9

AED 8,999

retail

10–49

AED 8,449

wholesale

50+

AED 7,899

by the pallet

Medusa price lists carry the tiers, the product page prints them, and the cart applies them the moment the quantity crosses. No B2B portal, no login for prices, no invoice on credit.

01The shelf

The wholesale price is printed on the page

Product page at twelve units: wholesale price, and the ladder under it

02The cart

The tenth unit changes the bill

Cart with a batch of twelve at the wholesale unit price

03The counter

Duties prepaid, 249 countries deep

Checkout: contact, ship-to, delivery and payment on one rail

The shop we shipped

Product — the ladder, before anyone asks for it
Product — the ladder, before anyone asks for it
Catalogue — facets, brands and sort over the whole shop
Catalogue — facets, brands and sort over the whole shop
Category — a spec sheet on every card
Category — a spec sheet on every card
Search — results and filters on the same screen
Search — results and filters on the same screen
Order placed — the receipt the customer keeps
Order placed — the receipt the customer keeps
Contact — form, callback, WhatsApp and Telegram
Contact — form, callback, WhatsApp and Telegram

Drawn at 390 px, then widened

Bottom nav · sticky buy-bar · filter sheet

Home — the shop as most of its buyers will see it
Home — the shop as most of its buyers will see it
Product — gallery, specs, the ladder
Product — gallery, specs, the ladder
Sticky buy-bar — variant and price, one thumb
Sticky buy-bar — variant and price, one thumb
Cart — the batch and what it saved
Cart — the batch and what it saved
Catalogue — filters in a bottom sheet
Catalogue — filters in a bottom sheet
Search — over the page, not away from it
Search — over the page, not away from it
Contact — the reason picker does the sorting
Contact — the reason picker does the sorting

The back office

The owner never opens Medusa

A commerce engine ships with an admin built for developers. The person running this shop is not one, and reads Russian.

So the console lives inside the same Next.js app, in their language, with task names instead of Medusa nouns — and the admin token stays in an httpOnly cookie the browser never reads.

Every write goes through a narrow endpoint of its own. There is no generic proxy handing the whole admin API to a browser tab.

The console
The consoleSales, the order queue and catalogue health on one screen
Products
ProductsOne form, EN and RU side by side
Orders
OrdersCapture, pack, ship, deliver — each step a real workflow
Requests
RequestsEvery lead in the database, triaged, never in a metadata blob
Payments
PaymentsMethods and keys, write-only — the operator never opens a .env
Home
HomeHero and promo banners, changed without a deploy

How it runs

Built to be handed over

Real data

Catalogue, prices, specs and photos are the owner’s own, entered in the console and live the moment they are saved.

Payments

Cash on delivery, cards, Tabby and Tamara — each method carries its own keys, entered in the admin and switched on without a redeploy.

Tax and duties

Prices exclude VAT and delivery is DDP: duties are prepaid at checkout, so nothing is collected at the customer’s door.

Recommendations

Six engines — similar, customers-also-bought, frequently-bought-together, bestsellers, new arrivals and recently viewed — ranked on the backend and rendered from the live catalogue.

Built for a reseller

The shop sources to order out of Dubai, so availability and lead time come from the desk that answers the phone, not from a warehouse counter.

Two languages

EN and RU, key for key — 541 = 541 — so one switch changes the whole shop, product copy and spec labels included.

0

prices on every product, one cart

0

countries the checkout accepts

0

recommendation engines behind the shop

What came out

One cart serves the tourist buying one and the shop buying fifty — no login, no quote request

The owner runs the whole shop from one Russian console: catalogue, orders, leads, payment keys and the home page, no redeploy

7,474 pages in the production build, EN/RU parity 541 = 541, unit and end-to-end suites green

Medusa 2 · Next.js 15 · PostgreSQL · Redis · Playwright

asarstore.com
Next projectTMCARS