Ram Digital Store
Private sourceA digital product store with guest checkout, stock reservations, QRIS payments, invoices, and product delivery.

Digital products. A simple shopping flow. Browse the catalogue on home, review your items, and complete the checkout form. Home and the checkout form before creating an order
My contribution highlights
- Worked on product/stock/order/popup administration, CSV/XLSX imports, stock exports, server-side search, and deferred chart loading.
- Integrated KlikQRIS/Pakasir with webhook verification and provider status confirmation.
- Handled late callbacks, missing transactions, payments after order expiry, and admin recovery.
Contents · 8 contribution modules
Main workflow
6 stepsGuest purchases connect product selection, stock reservations, QRIS confirmation, and digital fulfilment. Provider status guides payment handling.
01Choose and order products
Catalogue and cart
BuyerCreate an order and reservation
Store backend
02Verify payment
Pay the order invoice
Buyer & QRIS providerReconcile status
Store backend
03Fulfil and deliver
Fulfil by product type
System & adminInvoice and follow-up
Buyer & admin
Process details & branches
Catalogue and cartBuyer
Choose products, quantities, and multiple items in one cart. Checkout does not require an account.
Create an order and reservationStore backend
The system checks availability, reserves stock, and connects items to a parent order and order page access.
Pay the order invoiceBuyer & QRIS provider
The QRIS invoice is linked to the order. Status arrives through webhooks and provider checks.
Reconcile statusStore backend
Callback verification and provider status determine the next step, including when callbacks arrive late.
What is the payment outcome?
- Valid payment. Proceed to digital product fulfilment.
- Expired without payment. Release the reservation so stock becomes available again.
- Late or mismatched payment. Use reconciliation and admin recovery rather than automatically treating it as failed.
Fulfil by product typeSystem & admin
A valid order unlocks account product details/access, or follows the user account upgrade path for that purchase type.
Invoice and follow-upBuyer & admin
Invoices and emails are linked to the order. Admins handle resending or recovery if delivery encounters issues.
Stock reservations, expiry, and provider status are connected through reconciliation. Fulfilment follows valid payment and the order type.
About Ram Digital Store
Ram Digital Store is a digital product store with a catalogue, cart, guest purchases, QRIS payments, fulfilment, invoices, and an admin dashboard. It distinguishes account product purchases from user account upgrade services and connects stock with payment status.
I developed the frontend, backend, database, payment integrations, digital delivery, and tests. The technical focus includes consistent stock reservations and handling transaction status changes.
My contributions
Catalogue, cart, and guest checkout
I built catalogue, category, and product detail pages, quantity selection, and multi-item carts. I implemented guest checkout and token-based order pages so buyers can follow their purchases. Cart items connect to a parent order to unify payment status and order outputs.
Product management and admin operations
I developed product, category, stock, order, and promotional popup management. I added CSV/XLSX imports, stock exports, and server-side order search. Dashboard chart loading is deferred so those components do not add to the admin page’s initial load.
Stock reservations and order expiry
I worked on available/sold stock calculations, checkout reservations, and reservation release when payment is not completed. I also separated fulfilment paths for account products and user account upgrades. Import validation helps keep stock data consistent with the processes that consume it.
QRIS integration and webhook verification
I connected payment providers, including the KlikQRIS integration, to order invoices. I checked callbacks/webhooks and confirmed status with the provider before updating orders. This connects external payment information with product access in the application.
Payment reconciliation and recovery
I handled late callbacks, transactions not yet found, and payments confirmed after local order expiry. I added reconciliation and admin recovery to handle timing differences between polling, callbacks, and expiry jobs against the relevant order status.
Digital delivery, invoices, and email
I connected valid payments to fulfilment, detail disclosure, invoices, and email delivery through Brevo. I improved invoice resending from cart parent orders, email retries, and admin delivery controls. Product detail availability follows the application’s access duration resolver.
Database and admin access control
I migrated runtime storage to PostgreSQL and removed the previous Supabase runtime dependency. I worked on admin authentication, same-origin mutation protection, Turnstile validation, and payment checks. I also connected object storage, image processing, and spreadsheets to store operations.
Transaction scenario testing
I wrote Vitest tests for payment verification, race conditions, expiry, recovery, and access duration resolution. These scenarios check relationships between orders, stock, and provider status when processes arrive at different times, including multi-item carts and fulfilment linked to parent orders.
Fields & core technologies
Project fields
Core technologies
73 commits in the last 12 months
All branches| Nov | Dec | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sept | Oct | Nov | |||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sunday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Monday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tuesday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Wednesday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Thursday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Friday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Saturday |
How it is counted · 1 repo · 2 branch
My authored commits reachable from all remote branches at sync time. Each SHA is counted once, even across branches or forks. Merge commits are excluded. Dates use the author timestamp in Western Indonesia Time (UTC+7), rather than push time. The current streak remains active when the last commit was yesterday and today is still in progress.
This calendar covers commits across all branches. Its totals may differ from GitHub’s contribution calendar, which includes other activity types and follows its own branch rules. This calendar covers only the project you are viewing.
Contribution history
73 of my non-merge commits · All branches · Data as of 3 November 2026.