6. Adım 3 — Menü ürünleri ve ürün eşleme (opsiyonel)
Bu bölümün tamamını atlayabilirsiniz; tek istisna, POS'unuzun belirli bir ad ve fiyatla ürün ekleyememesidir (6.4). Ürün eşleme sadece fişi daha düzgün yapar: fişte serbest metinli bir satır yerine sizin kendi ürününüz görünür.
6.1 İşletmenin Fırsat menüsünü okuma
curl 'https://partner-api.firsat.dev/api/partner/pos/v1/menu-items?limit=50' \
-H 'Authorization: Bearer fpt_Xk3...' \
-H 'X-Firsat-Pos: adisyo/k7qm2x' \
-H 'X-Firsat-Connection: 0199a3c2-...'{
"items": [
{ "id": "0199b001-…", "name": "Latte", "price": 95, "imagePath": null, "archived": false, "externalItemId": "ADS-1042" },
{ "id": "0199b002-…", "name": "Günün Tatlısı", "price": 140, "imagePath": null, "archived": false, "externalItemId": null }
],
"nextCursor": "eyJ…"
}- Bir sayfada en fazla 100 satır olur (
limit, varsayılan 50). Sonraki sayfa için?cursor=<nextCursor>ile tekrar çağırın.nextCursornullolduğunda durun. externalItemId, bu menü ürününün eşlendiği sizin ürün id'nizdir; eşleme yoksanull.archived: true, işletmenin ürünü menüden kaldırdığı anlamına gelir. Eski bir kupon yine de bu ürünü içerebilir.
6.2 Bir ürünü eşleme
curl -X PUT https://partner-api.firsat.dev/api/partner/pos/v1/menu-items/0199b001-.../mapping \
-H 'Authorization: Bearer fpt_Xk3...' \
-H 'X-Firsat-Pos: adisyo/k7qm2x' \
-H 'X-Firsat-Connection: 0199a3c2-...' \
-H 'Content-Type: application/json' \
-d '{ "externalItemId": "ADS-1042", "externalName": "Latte (Büyük)" }'externalItemIdsizin ürün id'nizdir (en fazla 128 karakter).externalNameopsiyoneldir; sadece işletmenin Fırsat ekranlarında görünür.PUT'u tekrar göndermek eşlemenin yerine yenisini yazar.- Aynı adrese
DELETEeşlemeyi kaldırır ve{ "deleted": true }döner. - Birden fazla Fırsat menü ürünü sizin aynı ürününüze bağlanabilir. Bir Fırsat menü ürünü ise en fazla bir ürününüze bağlanır.
6.3 Ürün eşleme neyi değiştirir
| Önizleme satırında | Fişe eklediğiniz |
|---|---|
externalItemId: "ADS-1042" | Sizin ADS-1042 ürününüz, quantity adet. |
externalItemId: null | Adı satırın name değeri, fiyatı unitPrice olan bir özel / açık ürün, quantity adet. |
Her ikisi de doğrudur. Fırsat, eksik ürün eşleme yüzünden bir kupon kullanımını asla engellemez.
6.4 Açık fiyatlı (özel) ürünü olmayan POS'lar
POS'unuz belirli bir ad ve fiyatla ürün ekleyemiyorsa her Fırsat menü ürününü eşleyin (6.1 ve 6.2); böylece her önizleme satırı bir externalItemId ile gelir.
Bir önizleme yine de externalItemId: null olan bir satır dönerse (örneğin işletme Fırsat menüsüne yeni bir ürün eklemiştir) fişe yazmayın ve onay göndermeyin. "Bu kupon bu kasada eşleşmemiş bir ürün içeriyor. İşletme sahibi ürünü eşlemeli." gösterin ve işletmeye o ürünü eşlemesini söyleyin. Hiçbir şey harcanmadı; ürün eşlendikten sonra kodu tekrar okutun.