⚡ FLASH SALE Limited time offer! Ends in: 00:00:00
🇱🇰 Sri Lanka's Premium Store

SH Shopping

Curated premium products, island-wide delivery. Quality you trust, experience you remember.

Bank Transfer
Island-wide
Products
Orders
✦ Premium Quality
🚚 Island-wide
🔒 Secure Pay
🛍️
SH Shopping
Premium Quality

All Products

Rs.

Your Wishlist

Your Cart

My Loyalty Points

Track Order

Enter your Order ID (from your receipt) or the phone number used at checkout.

Overview
Manage
Growth
Reports
Configure

Dashboard

Revenue — Last 6 Months

Top Products by Orders

Recent Orders

Products

All Orders

Payment Proofs

Review buyer receipts uploaded via ImgBB. Confirm or reject payments below.

Coupon Codes

Create percentage or flat-amount discounts with expiry dates and usage limits.

Loyalty Points

Every Rs.100 spent = 1 point. Set how many points equals Rs.100 discount. Tracked by customer phone number — no account needed.

⭐ Points Configuration

Customer Points

Low Stock Alerts

🔔 Alert Settings

Profit Reports

Expenses

Track all business expenses manually. Monthly totals are shown in Profit Reports as net profit = revenue − expenses.

➕ Add New Expense

Settings

🏦 Bank Account Details

Shown to buyers at checkout.

📱 WhatsApp Notifications

Choose how to receive WhatsApp alerts when orders arrive. Pick the method that works for you.

⚡ Flash Sale Countdown Timer

Shows a countdown banner at the top of your store. Disappears automatically when timer hits zero.

Flash Sale ActiveShow countdown banner on store homepage

🚚 Free Shipping Threshold

Show a progress bar in the store. When cart total reaches this amount, shipping becomes free. Set 0 to disable.

📣 Homepage Announcement

Shows a custom announcement bar in the large space above the homepage hero. Type the message yourself and optionally upload one image to Google Drive.

Announcement ActiveShow or hide the announcement with one toggle

🗄️ Media Storage — Google Drive or ImgBB

Choose where to upload receipt images. Google Drive recommended — free, unlimited, your own account.

Active Storage Google Drive is active
ImgBB Google Drive

✓ Google Drive Active

Receipts and product images are uploaded to your Google Drive folder via the API. Files are stored in your Google account — you own everything.

📖 How to set up Google Drive as your server →
Step 1 — Create the upload folder Go to drive.google.com → New → Folder → name it "SH Shopping Receipts"
Right-click the folder → Share → Anyone with the link → Viewer
Copy the folder ID from the URL: drive.google.com/drive/folders/THIS_IS_THE_ID

Step 2 — Create the Apps Script Go to script.google.com → New Project → paste this code:
function doPost(e){ try{ var d=JSON.parse(e.postData.contents); var bytes=Utilities.base64Decode(d.base64); var blob=Utilities.newBlob(bytes,d.mimeType,d.filename); var folder=DriveApp.getFolderById(d.folderId); var file=folder.createFile(blob); file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); return ContentService .createTextOutput(JSON.stringify({ url:'https://drive.google.com/uc?export=view&id='+file.getId(), id:file.getId() })) .setMimeType(ContentService.MimeType.JSON); }catch(err){ return ContentService .createTextOutput(JSON.stringify({error:err.message})) .setMimeType(ContentService.MimeType.JSON); } }
Step 3 — Deploy the Apps Script Click Deploy → New deployment
Type: Web app
Execute as: Me
Who has access: Anyone
Click Deploy → Authorize → Copy the Web app URL
Paste it in the "Apps Script Web App URL" field above.

Step 4 — Done! Every receipt uploaded at checkout and every product image added via Google Drive URL will be stored in your own Drive. You own all files permanently.

📧 EmailJS — Order Notifications & Reports

⚠ Getting "Email failed: undefined" or error 412?

Your Gmail OAuth token expired. Fix in 30 seconds: Go to emailjs.comEmail Services → click your Gmail service → click Reconnect Account → sign in with Google again. This happens every few weeks.

Fix Now — Open EmailJS Services ↗

Setup at emailjs.com (free 200/month). Orders and reports auto-emailed.

📢 Store Features

Promotional BannerShow discount banner on homepage
Peak Sales ModeHide delivery promos during high traffic
Store OnlineToggle offline for maintenance
Social Proof PopupsShow recent purchase notifications on store

🔐 Admin Password

Stored in Firebase Auth — never in code. To change: Build → Authentication → Users → ⋮ → Reset password

Open Firebase Console ↗

🔄 System Restart

Use if the site behaves unexpectedly. Soft restart just reloads. Hard restart clears all local cache (cart, wishlist, loyalty cache, stored configs) then reloads. Firebase data (orders, products) is never affected.

🔥 Firebase Configuration

Paste your Firebase project config here. Get it from console.firebase.google.com → Project Settings → Your apps → Web → firebaseConfig.
Saved in browser localStorage on this device only — never sent anywhere.

⚠ After saving, refresh the page to connect to Firebase with the new config.

Product Reviews

Customer reviews now require a matching order ID and phone number. Admins can add unlimited official reviews below.

Add Admin Review

Payment receipt