SHOP · Multi-vendor commerce

A multi-vendor shopping mall.

A buyer storefront, a seller center for each brand and an operator console, served from one domain. Buyers put several brands in one cart and pay once; at payment the order splits into one order per seller, each seller ships its own share, and the buyer follows every shipment from one order. Prices, delivery fees, carriers and tax invoices follow Korean commerce rules.

One order, followed end to end. Payment, the split per seller, shipping with a tracking number, the buyer's tracking history and the seller's e-tax invoice all run on the same order. The whole path is replayed as an automated check after every change.

Design

Three decisions that shaped it

Built as three connected sides of one store: buying, selling and operating.

The order splits at paymentEach order line is tagged with the seller of its product. When payment settles, the order splits into one order per seller, carrying that seller's lines and delivery fee. The buyer's order stays whole and aggregates the sellers' progress.
Sellers isolated by channelEvery brand has its own sales channel, role and accounts. A seller account reads and updates only its own products and orders; a request for the shared catalog or another brand is refused by the server, not hidden by the screen.
Integration points in place of providersPayment, carrier tracking and the e-tax invoice sit behind the interfaces a real provider plugs into, with simulated providers inside. Moving to production replaces the inside of each point; orders, screens and data stay as they are.
Orders

From cart to delivery

The buyer side, in the order a purchase goes through it.

Five brands, one catalogClothing, home goods, coffee, electronics and digital content in one storefront, 10 products and 34 variants by size, color and edition. Webtoon episodes and web novels are sold through the same product structure as physical goods.
CheckoutGuest checkout or a signed-in account. Domestic address, the delivery fee computed from the cart, then payment. Prices are in won with no decimals and include 10% VAT.
Shipment status per sellerThe order page lists each seller's shipment with carrier, tracking number and tracking history. The order status is derived from the sellers' orders: shipped, partially delivered, delivered.
Korean first, three languagesKorean by default, with English and German. Laid out for phone screens first, in light and dark themes.
Sellers

The seller center

A separate screen for each brand, from its own dashboard to the invoice for a single order.

Dashboard and productsProducts, variants, orders and sales for the brand, and its own product list with stock.
Orders and shippingEach paid order is shipped by choosing a carrier and entering the tracking number. Spaces and hyphens are removed, anything other than 10 to 14 digits is rejected, and the lines to ship are read again on the server. A shipped order is then marked delivered.
Tracking lookupCarrier and tracking number in, the tracking history out, from the order or on its own.
E-tax invoice previewA preview laid out with the required fields of a Korean e-tax invoice. The seller is the supplier, and each line is split into supply value and VAT.
Operations

The operator console

The operator sees every seller at once, in Korean.

All ordersBuyer orders and the seller orders split from them, with payments, shipments and the tax summary per order.
Catalog and brandsProducts, variants, stock, collections and the seller channels behind each brand.
Rules as settingsDelivery fee, free-delivery threshold, remote-area surcharge and payment options are arguments of each method, changed from the console without a deployment.
MetricsOrder count, order total and average order value over a chosen period.
Integrations

What is simulated, and what replaces it

Each point already carries real orders. Only the provider behind it is simulated.

Point Now In production
PaymentSimulated domestic PG: authorized and settled at once, refunds recordedA card and simple-pay PG contract behind the same payment method
Delivery fee₩3,000, free from ₩50,000, remote areas +₩3,000, Korean addresses onlySame rule, values set per operator
Carrier trackingCJ Logistics, Hanjin, Lotte, Korea Post, Logen; history simulated from the tracking numberCarrier or aggregator tracking API, same result format
E-tax invoicePreview document per seller order, not issuedIssuing and transmission to the National Tax Service through an e-invoice service provider
Currency and taxWon with no decimals, prices include 10% VATUnchanged
Limits

What this does not claim

The commerce flow is implemented end to end. Money, parcels, tax filing and the brands themselves are outside the scope.

No real paymentThe PG is simulated. No money moves and no card details are collected.
No real parcelsTracking histories are generated from the tracking number. No carrier is connected.
No tax invoice issuedThe invoice is a preview. Nothing is transmitted to the National Tax Service, and business registration numbers are placeholders.
Fictional brandsThe five brands and their products are made up for the presentation, with stock photography. Outbound mail such as order confirmations is not sent.