Before you start
Make sure you are a Train My Camera team owner or admin, then have these Zettle details ready.
- Your Zettle or PayPal POS login.
- A Train My Camera team where you are an owner or admin.
- A product library in Zettle with the products you want staff to recognize.
Step-by-step setup
- Open Checkout sync. In Train My Camera, switch to the right team, open Manage, then choose Checkout sync.
- Choose Zettle. Select Zettle from the provider list and click Connect Zettle.
- Approve access. Sign in to Zettle when asked and approve product read and write permission. Product sync only reads; write is used only if an admin later chooses to fill empty barcode fields. Train My Camera uses the OAuth authorization-code flow.
- Review products. Back in Train My Camera, click Review products. This preflight step reads products without changing your catalog.
- Choose scope. Select all active Zettle products, selected categories, or individual products. The selected active count is checked against your Train My Camera item limit before sync.
- Choose image handling. Decide whether Zettle product images should be prepared as Train My Camera example photos. Manual examples are kept by default.
- Save and sync. Click Save setup and sync now. Later manual syncs and automatic sync use the saved selection.
Provider facts used by this connector
- Train My Camera uses Zettle product and variant IDs as sync identity.
- Observed Norwegian exports use fields such as Navn, Pris, Kategori, SKU, Strekkode, Produkt-ID, and Variant-ID.
- Missing SKU or Strekkode does not mean the product is missing POS identity. It only means Train My Camera has no SKU or scannable barcode to show for that item.
- EAN-13, UPC-A, and QR are useful barcode display options for many Zettle workflows.
What syncs
Train My Camera imports the fields that exist in your Zettle catalog. Empty fields stay empty in Train My Camera.
| Train My Camera field | Zettle source |
|---|---|
| Name | Product name and variant name. |
| Category | Zettle product category where available. |
| Display price | Zettle product or variant price. |
| SKU | SKU where the product or variant has one. |
| Barcode | Barcode fields such as EAN, UPC, or Strekkode where available. |
| Provider identity | Zettle Produkt-ID and Variant-ID. |
| Image | Variant image, product image, or display image URL where Zettle exposes one. |
| Sizes and variants | Sizes group under one Train My Camera item with a size picker when the provider exposes size-level data. Size options do not count against the item limit. |
Read-only sync, optional barcode fill
Product sync only reads from Zettle. Product names, prices, SKUs, existing barcodes, categories, images, inventory, orders, and checkout settings stay owned by your POS and are never changed. Edit those details in Zettle, then run Sync now or leave automatic sync enabled for the saved selection.
The one optional exception is Fill missing barcodes, which is off by default. A team admin can generate barcodes for products that have none and save them into the empty barcode field in Zettle. Existing barcodes are never overwritten, and nothing is written unless an admin runs it or turns on automatic barcode fill for single-size products. This is why the Zettle connection asks for product read and write permission.
Troubleshooting
The Zettle approval screen fails
Try again from Manage > Checkout sync > Zettle. If it still fails, the Zettle app credentials or callback URL may need to be checked by Train My Camera support.
The catalog preview is empty
Confirm the Zettle account you approved has products in its Product Library and that the products are active enough to be included in the selected sync scope.
Some products have no barcode
Train My Camera only shows barcode values that exist in Zettle. Items without barcodes in Zettle simply show no barcode, unless an admin uses the optional Fill missing barcodes tool to save generated barcodes into those empty fields.
Some products have no image
Zettle images are optional. Add Train My Camera example photos for products that do not have useful checkout images.