Case study · Beauty store

A Norwegian beauty store that checks out the way Norway pays

Klarna invoice, Nordic cards and pickup points on one checkout

A Norwegian beauty store that checks out the way Norway pays
Vertical
Cosmetics, fragrance and hair care retail
Scope
Direct to consumer and business customers — Norway, with Sweden and Denmark ready
Platform
AspDotNetStorefront 9.1 (ASP.NET) on the Mercante framework · SAP via SAP PI
Commerce model
D2C · B2B · Integration
Technologies used
  • Klarna
  • Digital River
  • SAP
  • Lucene
Business outcomes
11
Storefront releases between August and December 2013, including a full redesign
9
Integration jobs keep orders, invoices, deliveries, products and customers in step with SAP
Every minute
Price, stock and description changes from SAP picked up by the storefront
Live
Pickup points looked up by postcode from Komplett's own collection network
Executive summary

The client sells cosmetics, fragrance and hair care online to Norwegian shoppers. Beauty is a repeat-purchase category with thin margins and impatient customers. Shoppers expect to pay by invoice, collect from a pickup point near home and know exactly when an order will arrive. If the checkout asks them to do it any other way — or the warehouse and finance teams have to re-key the order — you have not made a sale, you have made a basket that never converts.

Wired In Commerce build and run the website on AspDotNetStorefront 9.1, extended with our Mercante framework rather than forked into something unmaintainable. Over 11 releases in 2013 we shipped a full redesign and rebuilt the parts that matter to a Norwegian beauty shopper. Checkout takes Klarna invoice against a personnummer and Digital River card payments in NOK, with SEK and DKK accounts ready for the rest of the Nordics. Pickup points come live from the retailers collection network by postcode. Behind the shop, we built the SAP integration too: nine jobs that exchange XML with SAP PI, so orders, refunds, invoices, deliveries, products, prices, stock and customers move both ways without anyone re-keying them. Around it sit a Lucene-powered search, an AJAX basket, colour swatches, bestsellers, “also bought” and a back-in-stock notifier — all running from the catalogue SAP keeps current.

The challenge

Checkout is the whole problem. Norwegian shoppers pay by invoice, not just by card, and Klarna needs a personnummer, a fee line and a clean hand-off to finance. Delivery is just as local: a parcel goes by Brevpakke or to a Tollpost collection point, and which one depends on weight and postcode. An out-of-the-box storefront knows none of this, so every gap becomes a bolt-on that breaks on the next upgrade.

The back office is the second problem. Every order has to reach SAP, and every invoice has to find its way back to the customer. Business customers and staff need their own prices, VAT display and pickup points. Meanwhile the shop floor needs to sell: products that go out of stock lose the customer to a competitor, and a beauty shopper who cannot find their shade in two clicks does not try a third.

The solution

One proven storefront, extended rather than replaced. Payments, delivery, ERP and merchandising are built as Mercante modules and client-specific libraries on top of AspDotNetStorefront, with their own tables beside the core schema. The platform stays upgradeable, and the checkout, the warehouse and the finance team all work from the same order.

The SAP integration runs as nine jobs, in both directions. The store sends orders and customer changes out. SAP sends back everything that happens to them afterwards, and keeps the catalogue current.

Technical highlights

  • Pay the Norwegian way — Klarna invoice is built into checkout: the customer enters a personnummer, the invoice fee is added as its own SAP SKU and the invoice is created on order. Card payments run through Digital River World Payments, with merchant accounts in NOK, SEK and DKK so a Nordic rollout is configuration, not a rebuild.

  • Pickup points, live from the retailer— as the customer types a postcode, checkout asks the retailers collection-point service for the nearest Tollpost locations and shows them with a map. Weight rules choose between Brevpakke and pickup, a cut-off timer shows when an order ships today, and staff get their own pickup points.

  • Orders to SAP, exactly as SAP needs them — each new order leaves as schema-checked XML with pickup point, delivery date and payment reference. Order-level coupons are spread pro rata across the lines, gift cards become credit lines on the nearest-value SAP SKU, and Klarna and freight fees get lines of their own. An order is flagged as exported only once its file is written.

  • Everything after the order comes back — SAP sends order changes, cancellations, refunds and credit notes, invoice numbers and delivery tracking. The storefront applies each one to the original order, adjusts the customer's loyalty points when an order ships or is voided, and serves the SAP invoice PDF in the account area — no one emails a copy by hand.

  • A catalogue mastered in SAP — delta files for materials, prices, availability and descriptions land in staging tables every minute, then create or update products and variants. List, offer and weekly-offer prices, cost, EAN, manufacturer part number, stock and sales status all come from SAP. Descriptions arrive per language and distribution channels map to stores, so a new Nordic store needs no new integration.

  • Changes that never echo — customers, addresses and email opt-ins changed on the site are flagged for SAP by database triggers. The triggers pause while SAP's own updates are applied, so a change never bounces back. Every file ends in Processed or Failed, and every run is logged.

  • Search that finds the shade — a Lucene.Net index, rebuilt by a separate indexing service, powers attribute filters, sorting and type-ahead suggestions. Colour swatches switch the product image, name and price in place, so a customer picks a shade without reloading the page.

  • A basket built to convert, retention on a schedule — the redesign brought a fully AJAX basket, faster add-to-cart, “also bought” and top-12 bestsellers per category, with 15-minute caching on the busiest queries. A back-in-stock notifier, abandoned-basket and review-request emails and comparison-site feeds all run as timed jobs.

Results

Before

  • Payment options that didn't match how Norway shops

  • Delivery choice left to the customer to work out

  • Orders, refunds and invoices passed between web and finance by hand

  • Prices, stock and product copy kept in two places

  • Out-of-stock products losing customers for good

After

  • Klarna invoice and Nordic card payments in one checkout

  • Nearest pickup points found by postcode, with a same-day cut-off shown

  • Orders flow to SAP, and refunds, invoices and tracking flow back on their own

  • SAP is the master, and the storefront picks up its changes within a minute

  • Shoppers emailed automatically the moment stock returns

Got a commerce problem that doesn't fit neatly into a platform?
Tell us how your business works. We'll help you work out the right architecture.
Talk to our team