QR Code Labels
Every plant listing generates a unique QR code. These codes link to the LeafCast botanical reveal page where visitors see your plant's information, hear its audio narration, and contact you.
How QR Codes Work
When you create a plant listing, a QR code is automatically generated. The code encodes a signed URL pointing to the vendor-scan-qr Supabase Edge Function:
{SUPABASE_URL}/functions/v1/vendor-scan-qr?id={UUID}&sig={HMAC}
The signature (HMAC) is a SHA-256 hash (truncated to 16 hex characters) of the message pepohon:plant:{UUID}. This prevents tampering — only QR codes generated through the Pepohon platform are accepted.
Downloading Labels
Single label: On the My Plants page, click the QR count number for any listing to download a single PDF label. Each label is 60mm × 60mm and contains:
- The QR code at 900px resolution (~300 DPI at 3 inches)
- The plant's common name
- The price and currency
- Your vendor business name
Bulk download: Select multiple listings using the checkboxes, then click the Bulk Print button. The resulting PDF contains one 60mm label per selected listing, suitable for printing on adhesive label sheets.
Label Tracking
Once a label is downloaded, it is marked as label printed with a timestamp. This helps you track which physical labels have been deployed at your nursery or exhibition booth.
Permanent QR Identity
QR codes are never regenerated. If you edit a listing's price or custom text, the QR code remains the same. This is intentional — physical labels may be engraved on plaques or permanently affixed to planters. A changed QR code would break existing labels.
The visitor always sees the latest data from your listing, so updating your listing (price, text, location) immediately updates what appears when the existing QR code is scanned.
Printing Recommendations
- Print on waterproof or laminated paper for outdoor use
- For permanent installations, consider acrylic or aluminium plaques
- Minimum label size: 60mm × 60mm (the default PDF size)
- QR code uses High error correction — remains scannable even if partially damaged