Back to Portfolio

Sleep Project Indonesia

An ecommerce website for high-quality bedding, pajamas, and robes made from Japanese cotton, premium cotton, and Tencel.

Sleep Project Indonesia ecommerce storefront

About the App

Sleep Project Indonesia is an ecommerce platform for custom bedding products, built around a Laravel storefront and a back-office CMS for managing products, categories, homepage content, promos, blogs, customers, and orders.

The project handles the full customer journey from catalog browsing and product variant selection through cart management, address capture, shipping-rate calculation, payment tokenization, order creation, and member transaction history. The implementation combines server-rendered Blade pages with Vue components where the purchasing workflow needs richer interaction.

Main Features

User Flow

01

Discover Products

Customers browse homepage modules, category pages, search results, blog content, and product detail pages with SEO-friendly metadata.

02

Configure Cart

Customers choose product variants, optional additional items, quantities, colors, and order notes before adding items to a persistent cart.

03

Checkout

The checkout flow captures customer and address details, syncs product pricing and weights, calculates shipping rates with Biteship, applies eligible promos, and creates an order.

04

Pay and Track

Midtrans handles payment options while member pages and admin order tools keep payment status, order status, tracking numbers, and transaction history visible.

Technical Decisions

  • Hybrid Laravel and Vue Architecture: Blade templates provide the marketing, catalog, account, and admin surfaces, while Vue components power cart, checkout, product configuration, profile, and admin controls that need client-side state.
  • Repository Layer for Core Commerce Data: Products, carts, orders, categories, users, addresses, blogs, and homepage content are accessed through repositories, keeping controllers focused on request handling and workflow orchestration.
  • Server-Side Checkout Validation: The checkout controller recalculates totals from saved cart records before creating Midtrans payloads, reducing the risk of client-side price or weight tampering.

Challenges

  • Variant-Heavy Product Modeling: Bedding products need size, type, color, discount pricing, weight, images, and optional add-ons, so product and cart logic must keep variant data synchronized during checkout.
  • Coordinating External Commerce Services: Payments and shipping rates depend on third-party APIs, requiring retry handling, configurable credentials, normalized courier responses, and careful order-state updates after payment callbacks.

Ready to see more?

Back to Portfolio