Skip to main content

ONAÏ case study: a Korean pre-order fashion store built to review-ready in 4 days

Published · Updated

TL;DR: ONAÏ is a pre-order fashion store that RedClaw owns and runs for Taiwanese shoppers. It sells womenswear and girls' clothing (age 2 and up, under the Little Her line) sourced from Seoul's Dongdaemun wholesale market. We went from proposal on 1 October 2026 to a review-ready site on 4 October, four days in total, with Lighthouse mobile scores of 97–100 and 107 end-to-end checks passing. It has zero orders on purpose: the site runs in "review mode" and won't accept orders until the payment gateway approves us.

Some Taiwan context first

  • ECPay (綠界) is a local payment gateway that small Taiwanese web shops apply to for card, bank-transfer and convenience-store payments. Before it lets you collect money, it reviews your website and your business details. That review decides when this store can open.
  • Pre-order here means we list items, take orders until a cutoff, and only then buy from the wholesale stalls at Dongdaemun in Seoul. Every ONAÏ item belongs to a batch with its own cutoff time, and we only order from the stalls once that batch has closed.
  • LINE is Taiwan's default messaging app. Links shared there, and on Facebook and Instagram, open in an in-app browser, which turned out to matter for checkout (see pitfall 5).

Store facts

ItemItem
ProductDongdaemun wholesale pre-order: womenswear plus girls' clothing for age 2 and up (Little Her)
ModelPre-order batches with a cutoff; stalls are ordered from after cutoff
Review-ready since4 Oct 2026 (work started 1 Oct)
StackNext.js 16 (App Router), Firebase App Hosting (asia-east1, ISR 60 s), Firestore, Cloudflare DNS
PaymentsECPay integrated and tested on the staging environment; formal application not yet submitted (ECPay fees, Chinese)
ShippingNot decided yet; shipping fees and delivery times are among the details still needed for the application
Indexingnoindex on every page and robots.txt blocking all crawlers while under review

What did four days of building look like?

Date (2026)What happened
1 OctSEO competition research on Korean-style fashion and pre-order shops in Taiwan; 5 UI directions. We chose our own site over a hosted platform and a "strawberry milk" visual style. Build started
2 OctAdmin, checkout, ECPay on staging, technical SEO, first articles. Zero failed checks
2 OctChinese heading font cut down to a single subset; Lighthouse mobile back to 97–100
3 Oct8-week content plan written; groundwork for a virtual try-on shipped with the feature switched off
4 OctBrand named ONAÏ, domain bought, Little Her girls' line added, visual score raised to 86, first 9 items listed. 88 end-to-end checks passed, then a 107-check regression run passed

No orders yet, so what can you measure?

Data as of 7 October 2026.

MetricValue
Proposal to review-ready site4 days
Items in first listing9
Lighthouse mobile97–100 (dropped to 85 before the font fix)
Visual design score55 → 78 → 86
Full-site SEO audit70 (weakest: images 25, content 56)
Article SEO acceptance checks6 of 6 passed
End-to-end testsRound 1: 62 checks (53 passed, 7 failed, 2 not built) → round 2: 88 all passed → regression: 107 all passed
Real orders0 (review mode; the server refuses to create orders)
Ad spend0 (no ads yet)
Google Search ConsoleNot verified yet, no search data

Is zero orders a sign it won't sell?

No. Checkout has three modes: review, stage and live. The site is in review mode, which shows "payment opening soon" on the checkout page. The server also refuses to create orders, so even submitting the form with the Enter key gets blocked.

The reason: a payment gateway wants to see a complete site it can browse, but until it approves us, we don't want orders that can't be paid. Our dried-peach store, Taolilife, ran into exactly this. While its payment applications were stuck, its ads kept spending.

Which problems came up in four days?

1. Without product photos, layout can't save you

  • What happened: when the build was done there were no images anywhere, and the visual score was 55.
  • Cost: empty product cards made the whole site look unfinished, no matter how much we polished the layout.
  • Fix: added illustrations and fixed details, which took the score to 86. For a fashion store, product imagery has to come first.

2. Using an environment variable to decide "is this a test?"

  • What happened: the original code treated anything not explicitly set to production as a test environment. If the production site ever lost that variable, a simulated payment would be recorded as a real one.
  • Cost: no real loss, since we aren't taking orders. But it was a design that fails open.
  • Fix: we now check the merchant ID in ECPay's callback. Only ECPay's public test merchant can trigger a simulated payment; everything else is blocked.

3. The email you register with ECPay must match the one on your site

  • What happened: ECPay's application guides (documents, review criteria, both in Chinese) require your registration details to match the contact info published on the website, and our domain mailbox didn't exist yet.
  • Cost: the application had to wait until the mailbox was set up.
  • Fix: setting up the domain mailbox now comes before the application. Taolilife was rejected by ECPay for a similar mismatch, with a phone number.

4. A Chinese heading font split into 110 files

  • What happened: loading the Chinese font through next/font/google split it into about 110 files. Each page downloaded 8 of them, 329 KB in total.
  • Cost: Lighthouse fell to 85.
  • Fix: built a single subset containing only the characters used in headings. Back to 97–100. The subset has to be rebuilt whenever heading text changes.

5. LINE, Facebook and Instagram in-app browsers can't complete payment

  • What happened: when the site is opened inside those apps, the in-app browser can't POST the payment form to ECPay.
  • Cost: shoppers who arrive from a LINE or Instagram link would get stuck right at payment.
  • Fix: checkout detects in-app browsers and asks the shopper to open the page in their regular browser.

When will it start taking orders?

The site, admin, checkout and ECPay staging integration are done. What's left is paperwork:

  1. Fill in business details, shipping fees, delivery times and permission to use photos from the wholesale stalls, and finalise the terms of service.
  2. Submit the formal ECPay application.
  3. Once approved, switch checkout to live, remove noindex, and verify the site in Google Search Console with a sitemap.

When orders start coming in, we'll add the order and ad numbers to this page.

What this means for your store

  1. A fast build doesn't mean you can take money fast. We built the site in four days. What holds it up is business details, shipping fees and photo permissions, things only the owner can provide. Our coaching starts from that application checklist. See our e-commerce coaching service.
  2. Don't take orders before the payment gateway approves you. A review mode lets the gateway see a complete site without collecting orders nobody can pay for. Taolilife didn't do this; the cost is in the Taolilife case.
  3. For a fashion store, sort out product images and fonts first. Those two things decided our visual score and mobile speed. Our other stores, including the MaoMuse case, are collected in our e-commerce hub.

FAQ

Can a store built in four days be any good?

We measure it. Lighthouse mobile is 97–100. The first end-to-end round of 62 checks had 7 failures; after fixes, a second round of 88 checks and a 107-check regression run both passed. The full-site SEO audit scored 70, with images and content the weakest areas, so there's work left.

Why not start selling now?

The formal ECPay application hasn't been submitted, because business details, shipping fees, delivery times and stall photo permissions are still missing. Until then, checkout deliberately takes no orders.

Is ONAÏ running ads?

Not yet. Ad spend is zero, and Google Search Console isn't verified yet.

Planning your own web store in Taiwan and want to know what the payment application needs? Message us on Telegram: https://t.me/eric16888999