perfectdesign.

Ecommerce website development

An online store that makes buying from you simple

We build online stores with a product catalogue, a checkout that takes FPX, DuitNow QR and cards, and the order and stock handling your team runs every day. We build on Shopify, WooCommerce or custom, and help you choose the route that fits how you sell.

Prefer a form? Send us your details
  • Free working prototype first
  • Shopify, WooCommerce or custom
  • Store, data and accounts in your name

Get a quote

Tell us about your store

Leave your details and we will WhatsApp you with a few questions and a price range for your store. No obligation, and we reply within an hour between 9 am and 9 pm.

What you need

We use these details only to reply to you, as our privacy notice explains under Malaysia's Personal Data Protection Act.

What you get

What is included

The parts of the work you receive, and what each one lets you do.

A catalogue shoppers can search

Products, variants, prices and stock structured so filters and search work, before any page is designed.

A complete checkout

Cart, delivery details, payment and a confirmation the customer can act on, built as payment and checkout rather than a payment button.

Malaysian payment methods

FPX, DuitNow QR and cards presented as equals, in ringgit throughout, through the gateway you choose on fees, settlement speed and coverage.

Order records your team can work from

Every order with its items, the delivery promise made at purchase, the price actually paid after discounts and a contact route when something goes wrong.

Stock that stays accurate

An agreed rule for when an item stops being available, with stock re-checked at the moment of payment and a set route for supplier-shipped lines.

Delivery updates for customers

Order statuses that move as the parcel does, and the messages customers receive at each step.

Failed payments and refunds handled

Failed payments, double confirmations, short stock, partial shipments and refunds, each with an owner and a tested path.

Admin, accounts and handover

One order list your team works from, plus the code, domain, hosting and every account in your business name.

Proof

Work you can inspect

Aruva Marketplace and PestaHub are concept prototypes we built to demonstrate commerce workflows. Neither is a client store, and no client results are implied.

All our work

Concept prototypes are labelled as prototypes everywhere they appear. They demonstrate what we can build, not work delivered for that named client. More client work is going live and will be added as it does.

Price and terms

A published starting price, and a straight answer on platforms

Most shops start from our published ecommerce package. Specialised stores and connections to systems you already run are quoted after you have seen the prototype.

Ecommerce website

From RM 5,999

A complete online store for physical or digital products.

  • Everything in the Business website
  • Payment gateway integration, including FPX
  • Product and inventory management
  • A checkout shaped around how you sell

Specialised or connected store

Quoted

Custom builds scoped to how you sell.

  • Subscriptions, rentals, ticketing or restaurant ordering
  • Dealer or wholesale prices by customer account
  • Connections to accounting, stock or supplier systems

Billed or quoted separately

  • Payment gateway fees are charged by your gateway on each transaction; the gateway table further down shows what four of them publish.
  • If you choose Shopify or premium WooCommerce extensions, their subscriptions and app fees are paid to those providers.
  • System care after launch starts from RM 250 a month, confirmed against what was launched.

Ownership

Everything belongs to your business

You own everything we build for you: the code, the content, the domain, the hosting account and every third-party account opened for the project. There is no lock-in. If you move to another provider, everything goes with you and we help with the handover.

  • Source code, handed over in your own repository
  • Domain and DNS, registered to your business
  • Hosting and every service account, in your name
  • Analytics, search and ad accounts, with us as a manager you can remove
  • All content, media and data in the system

Support

We normally respond within one working day

We normally respond to a support request in under one working day, and we work to solve problems as fast as we can. That is how we normally work rather than a contractual guarantee, and responding is not the same as resolving. If your operation needs a formal response or resolution commitment, we can write one into your scope.

Before you decide

Questions people ask before they commit

Shopify, WooCommerce or a custom build?

All three are real options and the right one depends on what you sell and how you operate. We lean towards custom when the decision is open, because the checkout follows how your customers buy, the data stays in your own database and no platform takes a share of each sale. A small catalogue with ordinary needs often launches faster and cheaper on Shopify or WooCommerce, and we will tell you when that is your situation.

Which payment methods can customers use?

FPX, DuitNow QR and cards in ringgit, through the gateway you choose. We are not tied to any provider: compare gateways on the fees they publish, how quickly they pay out and whether they cover the methods your buyers use. The gateway table further down records what four gateways published.

Can you move our products from another platform?

Yes, and it is usually the first job. We have moved catalogues out of WordPress, spreadsheets and older systems into a structured database and checked them against other sources. You review the imported data before launch, so old inconsistencies do not come across with it.

How long does a store take to build?

A more complex website or business system normally takes three to four weeks, and a larger platform is scheduled against the agreed scope. Catalogue data is usually what sets the pace, not the code.

What happens next

From a message to a working prototype

We build a free working prototype first. It carries no payment obligation, so you can judge the direction before committing.

  1. 1

    Tell us what you sell

    Message us with your products, how you deliver and how customers buy from you today. We reply normally within one working day.

  2. 2

    See a free prototype

    We build a working prototype of the buying journey you can try on your own phone. There is no payment obligation at this stage.

  3. 3

    Choose the route and approve the quote

    We recommend Shopify, WooCommerce or custom with the reasons and costs, then confirm the scope in writing. The deposit is paid only when you approve it.

  4. 4

    Build, test and launch

    We build the store with your real catalogue, test failed payments and refunds on purpose, and launch after your approval.

How it runs

Decide how you sell, then the platform

The platform argument is the loudest part of a store project and the least important. We settle what you sell, who ships it and what happens when an order goes wrong, and the route follows from that.

  1. 01

    Catalogue and operations

    We work through what you sell, how the catalogue is really structured with variants and stock, and who runs the store after launch.

  2. 02

    A clear platform recommendation

    Shopify, WooCommerce or custom, with the reasons and the costs of each, including when we would not build custom.

  3. 03

    Prototype the buying journey

    You click through the real journey on a live link before anything is committed.

  4. 04

    Build and connect

    We build the approved scope and connect the systems whose access, data and terms are confirmed, keeping the rest as a documented later phase.

  5. 05

    Test what can go wrong, then hand over

    Failed payments, short stock, partial shipments and duplicate refunds are tested on purpose, then the accounts, code and data are handed to you.

The detail

How we approach e-commerce websites

The longer explanation, for anyone comparing options or planning the work in detail.

In this section7 sections
  1. 01What to decide before choosing a platform
  2. 02Your catalogue, stock and who ships the order
  3. 03Shopify, WooCommerce or a custom build
  4. 04What Malaysian payment gateways publish
  5. 05Match the store to what you sell
  6. 06The order process every store shares
  7. 07When you need a developer, and when a theme is enough

What to decide before choosing a platform

An online store is a business website plus three things it cannot avoid: a catalogue people search, an order that takes money and a promise about when the goods arrive. So before choosing a platform we settle a short list with you. What you sell and how. What the buyer does, from the first product view to the message confirming delivery. How complicated the catalogue really is once variants, prices and stock are included. Who runs the store day to day. And who deals with a late parcel, a failed payment or a refund.

The rest of this page uses one invented example to keep those decisions concrete: a shopper buys physical products with sizes and colours, a store operator confirms the order, stock is held by the store or sent from a supplier, payment is confirmed before stock is allocated, and a stock, payment or delivery problem can lead to a refund. Your own roles and rules are agreed for your project.

Malaysia pays electronically now. An average Malaysian now makes more than ten electronic payments a week. A checkout that only takes cards on delivery is refusing the way the country pays. A full text version follows.

Malaysia pays electronically now

Published statistic. An average Malaysian now makes more than ten electronic payments a week. A checkout that only takes cards on delivery is refusing the way the country pays.

Source: Bank Negara Malaysia: Annual Report 2025 and Payment Statistics T1. Reviewed .

Read the graphic as text
  • 2020: 170.
  • 2021: 220.
  • 2022: 284.
  • 2023: 343.
  • 2024: 432.
  • 2025: 538. Three times 2020

Chart scale: Electronic payments made per Malaysian, per year.

Download this infographic (SVG)

Your catalogue, stock and who ships the order

Your catalogue and your operations decide the size of the build far more than your design taste does. Six things matter: how each product is identified, whether it has variants with their own prices and stock, who owns the stock, where you deliver, how the parcel is handed to whoever ships it, and who is responsible when something goes wrong. A hundred products in three sizes is not a hundred products; it is several hundred items to sell, each needing a price, a stock figure and a photo that matches what arrives. How that data is structured decides whether filters and catalogue search can work at all.

Who ships the order changes the store more than anything else on that list. If you hold your own stock, you control allocation and the delivery promise. If a supplier ships for you, your store is placing an order with someone else, and their stock accuracy and lead time become part of a promise your customer thinks you made. When some lines ship from you and some from a supplier, you need an agreed rule for what happens when only half an order can be met.

When an item stops being available to the next shopper is a business decision, and platforms handle it differently. Odoo, as one documented example, offers three reservation methods: at order confirmation, manually, and a set number of days before the delivery date. That is specific to Odoo rather than a universal rule, but it frames the question every store has to answer.

Who actually ships the parcel. Fulfilment ownership changes the workflow more than any design decision on the page. A full text version follows.

Who actually ships the parcel

Editorial framework. Fulfilment ownership changes the workflow more than any design decision on the page.

Basis: Perfect Design: how ecommerce works. Reviewed .

Read the graphic as text
  • You hold the stock. Allocation and the delivery promise are yours
  • A supplier ships. Their lead time becomes your promise
  • Split across both. Needs a rule for a half filled order
Download this infographic (SVG)

Shopify, WooCommerce or a custom build

Compare the three by who carries which responsibility. A hosted platform such as Shopify takes hosting, security updates and payment plumbing off your hands, and charges for that through a subscription, app fees and often a share of each sale. An open-source platform such as WooCommerce gives you the code and the flexibility, along with the hosting, the updates and the occasional plugin conflict. A custom build means the checkout, the data and the admin are written for your business, with nothing included that you did not ask for. Whichever route you choose, the domain, hosting, platform and payment accounts, the catalogue data and any integrations should be in your business name from the start.

Every route still needs the same order handling underneath. WooCommerce's own documentation, as one example, treats orders placed at checkout, orders created by staff, order statuses, payment handling, test orders and abandoned carts as separate things to set up and check. That list is a fair checklist for any platform: somebody has to decide how each of them behaves.

Why we lean towards custom, and when we do not

When the decision is genuinely open, we tend to recommend a custom store, for practical reasons:

  • The checkout follows how your customers actually buy, instead of a platform template, so the steps that lose customers can be removed.
  • You are not paying a platform a percentage of every sale on top of your payment gateway fees.
  • Stock, orders and customers live in your own database, so connecting an existing system is an integration rather than a workaround.
  • No monthly app subscriptions stacking up to add back features the platform left out.
  • The store is not tied to a theme system, so speed and layout are yours to control.

Custom is not automatically right. A small catalogue with ordinary needs often launches faster and cheaper on Shopify or WooCommerce, and we will say so. If you sell forty products, take card and FPX payments, ship with one courier and have nobody in-house to run a system, the hosted route is the sensible one, and paying for it is not a defeat.

The full comparison, with what each route costs over three years for a small store and a growing one, is in Shopify vs WooCommerce vs a custom store.

What Malaysian payment gateways publish

Gateway fees are an ongoing cost of trading, so they belong in the plan rather than in a footnote. The table below records what four gateways published on their own pricing pages, read on 18 September 2026. Nothing is interpreted, converted or averaged here, and where a page did not publish a figure clearly, the cell says so instead of guessing. Check the current rate at the source before you commit, because gateway pricing changes.

What each gateway published on its own pricing page, read 18 September 2026
GatewayTo startFPXCardsE-walletsPayout
toyyibPayNo fee on the FPX plan. Card payments carry a RM100 onboarding fee and RM100 a year from the second year.RM1.00 per consumer transaction, RM2.00 per business transaction1.50% local, 3.5% foreignDuitNow QR at 1.00% or RM1.00 per transactionFPX in one to four business days, cards in four, DuitNow QR in two
Curlec by RazorpayNo setup or annual fee on the basic plan. The premium plan is a one-off RM999.1.50% or RM1 per transaction, whichever is greater. 1.00% on the premium plan2.40% domestic, 3.30% foreign. 2.00% and 3.10% on premiumDuitNow Pay at 1.20%, Touch n Go and Boost at 1.50%Not published on the pricing page
BillplzFree basic plan. The standard plan is RM999 a year.A flat per-transaction fee, published without a unit label. Check the current figure on their page1.8% in ringgit, 3.8% otherwise. 1.5% and 3.5% on the standard planDuitNow QR, Touch n Go, Boost and GrabPay at 1.5%FPX next business day, cards in two business days, wallets next day
StripeNo setup, monthly or hidden feesListed on their pricing page. Confirm the current rate with Stripe3% + RM1.00 domestic, plus 1% international and 2% for currency conversionGrabPay at 3%, Alipay at 2.9% + RM1.00. DuitNow QR and Touch n Go are not listedNot stated on the pricing page. Instant payouts cost 1%, minimum RM2.00

Four gateways Malaysian merchants regularly ask about, iPay88, senangPay, Razer Merchant Services and Revenue Monster, do not publish transaction rates publicly and quote on application. Revenue Monster publishes a RM499 setup fee and terminal rental but no transaction rates. That is useful to know before you plan around a number heard second hand: a like-for-like comparison with those four needs a written quote from each, and the quote usually depends on your volume.

What settlement speed does to cash. Hypothetical figures: settlement speed decides when the money is usable, which a tenth of a per cent rarely outweighs. A full text version follows.

What settlement speed does to cash

Illustrative calculation. Hypothetical figures: settlement speed decides when the money is usable, which a tenth of a per cent rarely outweighs.

Basis: Stripe: Payouts. Reviewed .

Read the graphic as text
  • Daily sales: RM 10,000. A round figure chosen for the example
  • Next day payout: RM 10,000. About one day of sales in transit
  • Four day payout: RM 40,000. About four days of sales in transit
  • The difference: RM 30,000. Cash you cannot spend on stock this week
Download this infographic (SVG)

Match the store to what you sell

What you sell decides how the store works, because each kind of selling revolves around something different. Retail revolves around a buyer and a product. Business-to-business or dealer ordering revolves around approved accounts with their own prices, so the catalogue changes with who is logged in and an order may need approval first. A marketplace revolves around buyers, sellers and payouts, which means running other people's shops as well as your own. Our Aruva Marketplace prototype follows one order through all six roles a marketplace has to run: buyer, seller, operations, warehouse, courier and support.

The other stores we are asked for are custom builds scoped to the business rather than off-the-shelf packages. Subscriptions revolve around a recurring agreement and a renewal that can quietly fail. Digital products revolve around access rather than a parcel. Rentals revolve around an item that has to come back in one piece. Event ticketing revolves around capacity and admission, course sales around enrolment, and restaurant ordering around menu availability, preparation time and a pickup or delivery window. Our PestaHub prototype shows the timed kind: a live floor plan where each booth is either free or taken.

Payments, order records, stock and the admin view are shared by all of them. What is never shared is the exception rule: a failed renewal, an unreturned rental and a missed collection slot are three different problems with three different owners, so we plan each one explicitly.

Online banking carries Malaysian checkouts. FPX is the rail Malaysian buyers reach for first. A store that hides it behind a card form is choosing the more expensive, less familiar option for its customers. A full text version follows.

Online banking carries Malaysian checkouts

Published statistic. FPX is the rail Malaysian buyers reach for first. A store that hides it behind a card form is choosing the more expensive, less familiar option for its customers.

Source: Bank Negara Malaysia: Payment Statistics, Table T3 Payment Systems. Reviewed .

Read the graphic as text
  • 2020: 367m.
  • 2021: 639m.
  • 2022: 646m.
  • 2023: 714m.
  • 2024: 826m.
  • 2025: 956m. RM465 billion

Chart scale: FPX transactions per year, in millions.

Download this infographic (SVG)

The order process every store shares

Whatever you sell, the same steps run underneath: choosing a product, checkout and confirmed payment, allocating stock, shipping, then handling problems and refunds. The table follows the invented example through them. The last column lists checks we run before launch, not results claimed in advance.

The shared order process, using the invented store as the example
StepWho actsWhat the store doesWhat can go wrongWhat we test before launch
Choose a productShopperAdds the chosen size or colour to the cart at the agreed priceThe variant sells out, or its price changes after the page loadsCart, price and availability checks
Checkout and paymentShopperPlaces the order and waits for a confirmed payment status before confirming anythingPayment fails, is delayed or is confirmed twiceSuccessful, failed, delayed and repeated payments, with the order status checked after each
Allocate stockStock ownerAllocates stock under the agreed rule, or passes the line to the supplierStock is short, or the supplier declines the lineAllocation timing, simultaneous orders and supplier routing
Ship the orderFulfilment teamRecords the handover and updates the order status as the parcel movesThe handover is missed, or only part of the order shipsStatus changes, customer messages and delivery references, end to end
Problems and refundsSupport and financeLinks each refund to its order and puts stock back under the agreed ruleA refund is requested twice, or payment and order records disagreeA duplicate refund and a partial return, reconciled against payments and stock
What a card payment costs, as published. The headline rate is half the decision. Settlement speed, the online banking fee and what a plan upgrade costs decide what you actually keep. A full text version follows.

What a card payment costs, as published

Published statistic. The headline rate is half the decision. Settlement speed, the online banking fee and what a plan upgrade costs decide what you actually keep.

Source: toyyibPay pricing plans. Reviewed .

Also: Billplz pricing.

Also: Curlec by Razorpay pricing.

Also: Stripe Malaysia pricing.

Read the graphic as text
  • toyyibPay: 1.50%. Cards carry a RM100 onboarding fee
  • Billplz: 1.80%. 1.5% on the paid plan
  • Curlec: 2.40%. 2.00% on the premium plan
  • Stripe: 3.00%. Plus RM1.00 per transaction

Chart scale: Domestic card rate on the entry-level plan, read from each gateway on 18 September 2026.

Download this infographic (SVG)

When you need a developer, and when a theme is enough

The honest test is where the boundaries fall. If the catalogue, payments, shipping, permissions and exceptions all sit inside one platform, a hosted store and a good theme may be all you need. Once any of them has to reach another system — an accounting package, a supplier feed, a dealer price list or a customer database you already run — the work stops being configuration and becomes engineering. That is where we help most.

FAQ

More questions about e-commerce websites

Straight answers to what people ask. Anything else, message us and a person replies.

Ask a question
Can you build subscriptions, rentals, ticketing or restaurant ordering?

Yes. They are custom builds scoped to your business rather than an off-the-shelf package, because each has its own exception rules: a renewal that fails, an item that does not come back, a capacity limit, a collection window. We plan those explicitly instead of bolting them onto a shop.

Can we sell to businesses at different prices?

Yes. Business-to-business ordering works on approved accounts with their own prices, so the catalogue and prices change with who is logged in, and an order can require approval. See dealer portal development for how we build it.

We also sell in a shop. Can stock stay in step?

Yes, as long as one system holds the stock figure and the others read from it. See inventory management systems for how we keep one figure across the website, the shop and the warehouse.

Tell us what you sell

Send us your products and how you deliver them. We reply normally within one working day, recommend a platform with the reasons, and build a free working prototype of the buying journey.