Upload shipping label PDFs — data goes straight into your Google Sheet. If a label is uploaded again, it won't overwrite the order — it flags it as a repeat, so you can see which orders come back most often.
⚙️ Google Sheet Connection
Paste your Apps Script Web App URL here once — it stays connected from then on.
Not connected
Setting up for the first time — show me the steps
Open your Google Sheet (or create a new one) → Extensions → Apps Script
Delete any existing code there, then paste the code below in its place
Click Deploy → New deployment → type: Web app
Select Execute as: Me, Who has access: Anyone, then click Deploy
Copy the URL you get (it ends in …/exec) and paste it into the box above
function doPost(e) {
var sheet = getOrdersSheet();
var data = JSON.parse(e.postData.contents);
var values = sheet.getDataRange().getValues();
var headers = values[0];
var orderCol = headers.indexOf("Order No");
var repeatCol = headers.indexOf("Repeat Count");
for (var i = 1; i < values.length; i++) {
if (String(values[i][orderCol]) === String(data.orderNo) && data.orderNo) {
var newCount = (Number(values[i][repeatCol]) || 1) + 1;
sheet.getRange(i + 1, repeatCol + 1).setValue(newCount);
return jsonOut({ status: "duplicate", repeatCount: newCount });
}
}
sheet.appendRow([
new Date(), data.platform || "Unknown", data.orderNo, data.purchaseOrderNo, data.invoiceNo, data.awbNumber,
data.customerName, data.customerAddress, data.state, data.sku, data.size, data.color,
data.qty, data.totalAmount, data.orderDate, data.invoiceDate, data.courier,
"New", 1, data.sourceFile
]);
return jsonOut({ status: "new" });
}
function doGet(e) {
var sheet = getOrdersSheet();
return jsonOut({ rows: sheet.getDataRange().getValues() });
}
function getOrdersSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Orders");
if (!sheet) {
sheet = ss.insertSheet("Orders");
sheet.appendRow([
"Timestamp", "Platform", "Order No", "Purchase Order No", "Invoice No", "AWB Number",
"Customer Name", "Address", "State", "SKU", "Size", "Color", "Qty", "Total Amount",
"Order Date", "Invoice Date", "Courier", "Status", "Repeat Count", "Source File"
]);
}
return sheet;
}
function jsonOut(obj) {
return ContentService.createTextOutput(JSON.stringify(obj))
.setMimeType(ContentService.MimeType.JSON);
}
📤 Upload Labels
You can drop one or multiple PDF labels at once — each page is treated as one order.
📄
Click or drag & drop your PDFs here
Supports multiple files
🔍 Review Extracted Orders
Check/edit before sending. A duplicate Order No. won't overwrite the existing row in your sheet.
Platform
Order No
Customer
Address
State
SKU
Qty
Total
Courier
AWB
Status
📊 Dashboard
Live data straight from your Google Sheet.
→Showing: All time
—
📦 Total Orders
—
👤 Unique Customers
—
🔁 Repeat Orders
—
💰 Total Revenue (Rs)
🏆 Top Performers
Connect your sheet and hit refresh to see data.
Order No
Customer
SKU
Qty
State
Total
Courier
Status
Repeat
Date
No data yet. Connect your sheet and refresh.
How to Use
1. Connect your Google Apps Script Sheet URL.
2. Upload your shipping label PDF(s).
3. Click "Send to Sheet" — data syncs automatically.
4. View your dashboard, or export a CSV with "Download Sheet".
FAQ
Where is my data saved?
In your own Google Sheet — whichever Apps Script URL you connect.
What happens if I upload a duplicate label?
It won't overwrite the order — the "Repeat" count goes up instead, so you can see which orders come back most.
Is this a Pro tool?
Yes — Order Tracker is part of the ₹99/month Pro bundle.
🔒
Not unlocked yet
Start a free 1-day trial of this Pro tool, or unlock it for ₹199/month — one payment unlocks every Pro tool on Playzia.