Restoran uçları
Bu uçlar restoran hesabıyla oluşturulan anahtarlarla çalışır.
Siparişler
POST /api/v1/ordersorders:write
Tek bir tedarikçiye yeni sipariş oluşturur. Tüm ürünler aynı tedarikçiye ait olmalı. Sunucuda doğrulanır: tedarikçi onaylı mı, ödeme yöntemi kabul ediliyor mu, ürünler aktif mi, stok/min. sipariş yeterli mi. Hatalıysa 400 + açıklama döner. Idempotency-Key başlığı desteklenir: ağ hatasında aynı anahtarla tekrar denediğinizde yeni sipariş açılmaz, mevcut sipariş 200 ile döner.
İstek gövdesi
{
"supplier_id": "uuid", // zorunlu
"payment_method": "cari", // zorunlu: "cari" | "online"
"delivery_address": "İzmit merkez", // opsiyonel
"note": "sabah teslim", // opsiyonel
"items": [ // zorunlu, en az 1
{ "product_id": "uuid", "qty": 3 }
]
}Yanıt
{ "order_id": "uuid" } // HTTP 201Örnek
curl -X POST https://restomarkt.com/api/v1/orders \
-H "Authorization: Bearer rmk_live_..." \
-H "Content-Type: application/json" \
-d '{
"supplier_id": "SUPPLIER_ID",
"payment_method": "cari",
"items": [ { "product_id": "PRODUCT_ID", "qty": 3 } ]
}'GET /api/v1/ordersorders:read
Verdiğiniz siparişler (yeniden eskiye). Filtreler: ?status=, ?from=YYYY-MM-DD, ?to=YYYY-MM-DD, ?limit (varsayılan 50, en çok 200), ?offset.
Yanıt
{
"orders": [
{ "id": "uuid", "status": "confirmed", "payment_method": "cari", "payment_status": "unpaid",
"subtotal": 1740, "kdv_total": 174, "discount_total": 0, "commission_total": 69.6,
"total": 1914, "created_at": "2026-06-10T08:30:00Z" }
],
"meta": { "limit": 50, "offset": 0, "total": 23 }
}Örnek
curl https://restomarkt.com/api/v1/orders \
-H "Authorization: Bearer rmk_live_..."GET /api/v1/orders/:idorders:read
Verdiğiniz tek siparişin durumu ve kalemleri (tedarikçideki ile aynı şema).
Yanıt
{ "order": {
"id": "uuid", "status": "shipped", "payment_method": "cari", "payment_status": "unpaid",
"subtotal": 1740, "commission_total": 69.6, "total": 1740,
"delivery_address": "...", "note": "...", "created_at": "...",
"order_items": [
{ "product_name": "Klasik San Sebastian", "unit": "adet", "qty": 1, "unit_price": 1160, "line_total": 1160 }
]
} }Stok bildirimi (POS / Restomenüm)
POST /api/v1/stockstock:write
POS/entegrasyon malzeme stoklarını bildirir. Kalem başına iki mod: stock (mutlak seviye — POS malzeme stoğu tutuyorsa) veya delta (göreli değişim — POS yalnız satışı biliyorsa, örn. satışta -2). Tam olarak biri zorunlu; delta sonucu 0'ın altına inmez. Malzemeler restoran panelinde Restomarkt ürünlerine eşlenir; mod 'otomatik' ise eşiğin ÜSTÜNDEN ALTINA geçen eşlenmiş malzemeler için cari sipariş otomatik oluşturulur (aynı kalem için 6 saat bekleme süresi vardır).
İstek gövdesi
{ "items": [
{ "ingredient": "Pizza Hamuru", "stock": 4 }, // mutlak seviye
{ "ingredient": "Mozzarella", "delta": -2 } // göreli değişim (satış düşümü)
] }Yanıt
{ "updated": 2, "created_orders": ["uuid"] }Örnek
curl -X POST https://restomarkt.com/api/v1/stock \
-H "Authorization: Bearer rmk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"items":[{"ingredient":"Pizza Hamuru","stock":4},{"ingredient":"Mozzarella","delta":-2}]}'GET /api/v1/stockstock:read
Stok kalemlerini ve eşleme durumunu listeler — entegrasyonunuz hangi malzemelerin ürünle eşlenmediğini görüp kullanıcıyı panele yönlendirebilir. Filtre: ?mapped=true|false. Sayfalama: ?limit (varsayılan 50, en çok 200), ?offset. meta.unmapped filtreden bağımsız toplam eşlenmemiş sayısıdır.
Yanıt
{
"items": [
{ "ingredient": "Pizza Hamuru", "ingredient_key": "pizza hamuru", "stock": 4,
"threshold": 5, "reorder_qty": 10, "mapped": true, "product_id": "uuid",
"last_synced_at": "2026-07-13T09:15:00Z" }
],
"meta": { "limit": 50, "offset": 0, "total": 12, "unmapped": 3 }
}Örnek
curl "https://restomarkt.com/api/v1/stock?mapped=false" \
-H "Authorization: Bearer rmk_live_xxx"Sipariş durumunu tedarikçi günceller; restoran anahtarı siparişi yalnızca okur. Stok uçları için anahtarınızda stock:write / stock:read yetkileri olmalı. Uçtan uca POS akışı (eşleme, otomatik sipariş, webhook ile teslim onayı) için POS Entegrasyon Rehberine bakın.
