E-Commerce Website + Payment Gateway
Description
Two jobs, run as one. The store is exactly the one I build on its own. The difference is the checkout: the gateway goes in during the first week, so payment gets tested alongside the cart rather than patched on after the shop is finished. One schedule, one handover, one invoice. Rp 3.500.000 less than buying the two apart.
Details
This one is for launching a shop that has to take money on day one, with a look and a codebase of your own.
### What only this package gives you
- A design built for your shop, not an existing look reused.
- Any feature your workflow needs, as long as we agree it up front.
- The repository becomes yours. You can carry on with anyone afterwards, including without me.
- The gateway is in from week one, so the payment flow is tested together with checkout rather than bolted on at the end.
- You deal with one agreement, one schedule, and one handover, instead of two projects you have to bridge yourself.
- Bought separately, these two jobs come to Rp 33.500.000. Together they are Rp 30.000.000.
### The store
- Next.js App Router, rendered on the server, so each product sits on its own URL that Google can read.
- Catalog with categories, search, and stock tracking.
- Cart and checkout.
- An admin page you can run yourself: products, categories, stock, orders.
- Layout adapts to the screen, with light and dark modes.
- SEO groundwork: sitemap, structured data, and Open Graph images.
- Core Web Vitals in the green on the launch build.
- Deployed to Vercel on your own domain, with SSL.
- Repository and every account handed over to you at the end.
- Two rounds of revisions, as long as they stay inside the scope we agreed.
- Thirty days of bug fixes after handover.
### The payments
- One gateway only: Xendit, DOKU, Midtrans, or Flip. Which one, we settle at the first call.
- The channels you actually need: virtual account, e-wallet, QRIS, retail outlet, or card.
- Amounts recalculated on the server. A price sent by the browser is ignored.
- Webhooks with signature verification. If the same notification arrives twice, that order will not be charged or shipped twice.
- Recovery for payments whose notification never arrives. Gateway notifications do go missing, and without this you hear about it from a customer who has already paid.
- Order states wired all the way through: waiting, paid, expired, failed. Stock that was held returns on its own the moment a payment dies.
- Payment instructions saved onto the order record. Someone who closed the tab at lunch can still pay that evening.
- Everything built against sandbox first. You test each channel, and only once you say it works does it move to production.
### If your buyers are abroad
The right gateway depends on where your company is registered, not where your customers live. Stripe is the one worth knowing about: its Indonesian accounts take rupiah and pay out rupiah, with no cross-border support. Plenty of people assume it solves this. For an Indonesian company, it does not.
I have shipped the four above myself. Anything else we settle at the first call, and I will tell you straight whether I have run it before or would be learning it on your budget.
### Not included
- Merchant registration and KYC. The account stays in your name, and so does the money.
- Gateway transaction fees and settlement.
- A second gateway. I price that as its own job.
- A refunds screen in your admin.
- Cross-border tax. A gateway moves money; it does not register you for EU VAT or US sales tax. If you sell to consumers overseas, that is a merchant-of-record decision, and we talk it through before you commit to anything.
- Shipping and courier integration.
- Product photos, copywriting, and typing your catalog in.
- Hosting, domain, and third-party fees. All of it stays in your name.
- Anything we did not agree on at the start. If you ask for more mid-project, I price it before I build it.
### Stack
| Layer | What I use |
|---|---|
| Framework | Next.js (App Router), TypeScript |
| Styling | Tailwind CSS |
| Auth | Firebase Auth or Supabase Auth |
| Database | Firestore or Supabase Postgres |
| Media | Cloudflare R2 |
| Hosting | Vercel |
The auth and database rows are not locked in here. We decide them together at the first call, weighing what your team already runs against what the catalog actually needs.
Category: Services
Price: IDR 30000000
Availability: In stock
