Projects/shopenup
Professional / Company project
Shopenup
Headless e-commerce platform with Indian payments, pincode shipping, and merchant-approved fulfillment.
A headless commerce system: Next.js storefront plus a Shopenup backend for catalog, checkout, COD, Shiprocket, and admin operations. Customers buy by region and pincode; staff accept orders, ship, and take returns through the same order pipeline.
- React
- Next.js
- Node.js
- PostgreSQL
- REST APIs
- TypeScript
- Shopenup
- Tailwind CSS
- Razorpay
- Cashfree
- Shiprocket
E-commerce · Headless · Payments · Logistics · Shopenup
Overview
Shopenup is a two-app commerce product: a React/Next.js storefront and a Node.js Shopenup API on PostgreSQL. Core commerce (cart, order, inventory, promotions) is the framework; this implementation adds Shiprocket fulfillment, Razorpay/Cashfree/COD, merchant approval, extended product details, appointments, CMS, and email/SMS.
Problem
A retailer needs a real store—not a brochure site—with location-aware stock, Indian payment methods including COD, courier integration, staff control before shipping, and content around the catalog.
Solution
Headless Shopenup: storefront talks REST to commerce modules; custom providers and subscribers implement COD advance, Shiprocket rates/webhooks, approval gating, returns, and notifications. Admin dashboard plus custom widgets/APIs run merchandising and ops.
Key features
- Region-priced catalog with category/collection filters and header product search
- Extended product details (ingredients, usage, precautions, certifications)
- Pincode serviceability and nearest-warehouse availability
- Cart, promo codes, and buy-get offer badges
- Checkout with Razorpay, Cashfree, and cash on delivery
- Configurable COD advance fee and admin capture of remaining cash
- Merchant accept/decline before fulfillment
- Shiprocket forward shipping, tracking, and reverse returns
- Wishlist, reviews, order history, and invoice PDF on delivery
- Doctor appointment booking with email confirmations
- Blogs, about CMS, contact, newsletter, WhatsApp chat link
- Admin analytics, low-stock alerts, and transactional email/SMS
Technical challenges
Problem
COD is neither full prepaid nor unpaid: a configurable advance may be charged up front and the rest collected later.
Approach
Store metadata holds cod_advance_amount. Checkout adds a non-fulfillable COD fee line and uses the manual payment provider; admin captures remaining on the payment collection after cash is received.
Problem
Stock and courier coverage depend on pincode and warehouse, not a single national pool.
Approach
Availability and fulfillment-options resolve the nearest stock location, then either Shiprocket serviceability/rates or that location’s manual shipping mode.
Problem
Staff must be able to refuse a storefront order before a courier label is created.
Approach
order.placed stamps merchant_approval_status=pending; accept/decline admin APIs gate fulfillment and cancel on decline.
Problem
Forward delivery and customer returns both need courier state, not only an internal order status.
Approach
Shiprocket webhooks update fulfillments; returns persist AWB and payloads in shiprocket_returns when admin accepts a return.
Problem
Customers in different countries should see the right currency while checkout still leans on Indian rails.
Approach
IP/geo maps to admin regions for catalog/cart currency; pincode shipping and several payment paths remain INR-oriented.
What this demonstrates
A production-shaped headless commerce product: dual apps, custom payment/fulfillment providers, webhook-driven shipping, approval workflow, and ops notifications—not a CRUD catalog demo.