Purpose: For every production lot, this SOP produces: (1) a branded provenance page live at daralbeida.com/verify/[LotID], (2) a QR code for the bottle neck label, and (3) a completed row in the Lot Register with SHA-256 document hashes. All three must be complete before QR codes are sent to the label printer.
Prerequisites — Complete before starting
- Gate 1 certificate signed and saved as PDF (filename:
[LotID]_Gate1Cert.pdf)
- Eurofins COA received and saved as PDF (filename:
[LotID]_EurofinsCA.pdf)
- Certificate of Origin reference number confirmed
- Bottling run complete — unit count confirmed
- FNSKU assigned in Amazon Seller Central for this lot
- Both Gate 1 AND Gate 2 results = PASS
Do not generate QR code until both gates are confirmed PASS and Eurofins COA is in hand. A QR code printed on a label before Gate 2 is received creates an unverified public page.
Step 1 — Confirm the Lot ID
1
Format the Lot ID correctly
The Lot ID is the unique identifier that links everything — the spreadsheet row, the provenance page URL, the QR code, and the label. Format:
DAB-[YY]-[HarvestMonth]-[SupplierCode]-T[TankNum]-[BottlingSeq]
| Field | Format | Example |
| YY | 2-digit year | 26 |
| HarvestMonth | 3-letter month | OCT |
| SupplierCode | 3-letter internal code | SNH |
| TankNum | T + 2 digits | T03 |
| BottlingSeq | 3-digit sequence | 001 |
Full example:
DAB-26-OCT-SNH-T03-001
Step 2 — Generate SHA-256 Hashes
2
Hash both PDFs before doing anything else
Open Terminal (Mac/Linux) and run:
sha256sum DAB-26-OCT-SNH-T03-001_EurofinsCA.pdf
sha256sum DAB-26-OCT-SNH-T03-001_Gate1Cert.pdf
Each command outputs a 64-character hex string. Copy both strings — you'll paste them into the spreadsheet (Step 3) and the provenance page HTML (Step 4).
Hash BEFORE opening or annotating the PDFs. Any edit after hashing changes the hash and breaks verification. Mark PDFs read-only immediately after hashing.
- Windows PowerShell:
Get-FileHash [filename] -Algorithm SHA256 | Select-Object Hash
- Online (no install): emn178.github.io/online-tools/sha256_checksum.html
Step 3 — Complete the Lot Register Row
3
Open DAB_Lot_Record.xlsx → Lot Register tab → new row
Fill in all 24 columns. Mandatory fields before proceeding:
- Column A: Lot ID (exact format from Step 1)
- Columns B–F: Harvest, region, variety, pressing date, method
- Columns G–K: Gate 1 values and certificate number
- Columns L–M: Gate 2 COA number and pass status
- Column N: SHA-256 hash of Eurofins COA PDF (from Step 2)
- Column O: SHA-256 hash of Gate 1 Certificate PDF (from Step 2)
- Columns P–R: Best By date, FNSKU, bottle count
Logistics columns (S–U: B/L, 3PL received, FBA confirmed) are filled in as events occur — they can be blank at label-print time.
Step 4 — Build the Provenance Page
4
Duplicate verify-template.html → rename → fill in 10 fields
- Duplicate
verify-template.html
- Rename to the exact Lot ID:
DAB-26-OCT-SNH-T03-001.html
- Open in a text editor. Find every
<!-- EDIT --> comment and fill in:
| Field in HTML | What to enter |
| Lot ID (badge) | Exact Lot ID string |
| Harvest | Month Year (e.g. October 2026) |
| Pressing Date | Month Year |
| Best By | MM/YYYY |
| COA link + number | COA-EU-26-001 (link to PDF if published) |
| CO reference | Chamber of Commerce CO reference |
| Eurofins COA SHA-256 | 64-character hash from Step 2 |
| Gate 1 Cert SHA-256 | 64-character hash from Step 2 |
- Do not change: variety (Picholine Marocaine), method (Continuous Cold Press), QC labels (Gate 1 / Gate 2 structure), footer text
- Do not enter raw FFA %, peroxide, or polyphenol numbers — "Within spec" and "High-polyphenol" are the correct consumer-facing values
Step 5 — Upload to cPanel
5
Upload via cPanel File Manager or FTP
- Log into GoDaddy cPanel → File Manager
- Navigate to
public_html/verify/ (create folder if first lot)
- Upload
DAB-26-OCT-SNH-T03-001.html
- In browser, test:
daralbeida.com/verify/DAB-26-OCT-SNH-T03-001.html
- Confirm page loads correctly on mobile (use phone or browser dev tools)
URL note: The QR code must point to the exact filename including .html extension, or you must configure a redirect. Simplest: include .html in the QR URL.
Step 6 — Generate QR Code
6
Generate → test → deliver to label printer
- Go to qr-code-generator.com (free, no account needed)
- Select URL type. Enter:
https://daralbeida.com/verify/DAB-26-OCT-SNH-T03-001.html
- Download as SVG (preferred) or PNG at minimum 1000×1000px
- Test scan immediately with iPhone Camera app and a QR reader app — confirm it resolves to the correct page
- Name file:
[LotID]_QR.svg
- Send SVG file to label designer/printer — minimum printed size: 15mm × 15mm at 300 dpi
QR spec from label design: Error correction level M, QR version 3–5, 15mm × 15mm minimum on neck label.
Step 7 — Close the Lot Record
7
Mark complete in Lot Register
Return to the Lot Register spreadsheet row and complete:
- Column V: Provenance URL (full URL including .html)
- Column W: QR Generated? →
YES
Archive all lot files into a dedicated folder:
/LotRecords/DAB-26-OCT-SNH-T03-001/
├── DAB-26-OCT-SNH-T03-001_Gate1Cert.pdf [READ-ONLY]
├── DAB-26-OCT-SNH-T03-001_EurofinsCA.pdf [READ-ONLY]
├── DAB-26-OCT-SNH-T03-001.html
└── DAB-26-OCT-SNH-T03-001_QR.svg
Final Checklist — Before Releasing QR to Printer
- Lot Register row fully complete (all mandatory columns filled)
- Both SHA-256 hashes recorded in spreadsheet columns N and O
- Both PDFs marked read-only and archived in lot folder
- Provenance page live and tested at correct URL on mobile
- QR code tested with scan — resolves to correct lot page
- QR SVG file named correctly and sent to label printer
- Lot Register: QR Generated = YES