T-SOFT/Admin API/Siparişler

Siparişler

Kapsam: okuma için read_orders, durum değiştirmek için write_order_status, fatura bilgisi ve not yazmak için write_orders. Müşterinin adı, e-postası, telefonu ve adresi için ayrıca read_customer_personal_data (Müşteri kişisel verisi).

Siparişleri listeleme

GET /order/orders
curl 'https://magaza.com/api/v3/admin/2026-01/order/orders?filter[placedBetween]=2026-10-01,2026-10-31&include=items&sort=-createdAt' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Accept: application/vnd.api+json'

Tek sipariş için GET /order/orders/{id}.

Alanlar

AlanTürAçıklama
orderNumberstringSipariş numarası
orderStatusintegerDurum; adı için Sipariş durumları
fulfillmentStatusIdintegerHazırlık/gönderim durumu
currencystringPara birimi
paymentMethod, paymentSubMethodstringÖdeme yöntemi
orderTotalnumberSipariş toplamı
orderSubtotal, orderTaxnumberAra toplam ve vergi
productsTotal, cargoTotalnumberÜrün ve kargo tutarı
cargoNumberstringKargo takip numarası
customerIdintegerMüşteri
customerFirstName, customerLastName, customerEmail, customerPhonestringSipariş anındaki müşteri bilgisi
customerGroupNamestringMüşteri grubu
isInvoiced, invoiceNumber, waybillNumberboolean, stringFatura ve irsaliye
createdAtdatetimeSipariş zamanı
customerFirstName, customerLastName, customerEmail ve customerPhone yalnız read_customer_personal_data ya da read_customers kapsamı olan uygulamaya dolu gelir; diğerlerine null döner. Bu veriyi yalnız uygulamanızın işi için saklayın ve uygulama kaldırıldığında silin.

Filtreler ve sıralama

FiltreÖrnek
idfilter[id]=1042,1043
orderNumberfilter[orderNumber]=TS-1042
customerIdfilter[customerId]=318
orderStatusfilter[orderStatus]=1,2
placedBetweenfilter[placedBetween]=2026-10-01,2026-10-31

Sıralama: orderNumber, orderStatus, orderTotal, createdAt, id.

Yeni siparişleri periyodik çekmek yerine ORDER.CREATE olayına abone olun; kaçırılan olaylar için placedBetween ile aralık sorgusu yapın.

Sipariş kalemleri

?include=items ya da GET /order/orders/{id}/items ile gelir; tipi order-products'tır. ?include=items.product ürün kaydını da ekler.

AlanAçıklama
productIdÜrün
productName, productCode, barcodeSipariş anındaki ürün bilgisi
variantName, variantProductCode, variantWsProductCodeVaryant bilgisi
quantity, quantityRefundAdet ve iade edilen adet
salePrice, totalSalePriceBirim ve satır tutarı
taxRateKDV oranı
orderStatusKalemin durumu

Müşteri kaydı için ?include=customer. Kişisel veri kapsamı yoksa müşterinin adı, e-postası ve telefonları null gelir.

Sipariş durumları

Durumlar mağazaya göre değişir; kimlikleri sabit kodlamayın, bu uçtan okuyun.

GET /order/order-statuses
curl 'https://magaza.com/api/v3/admin/2026-01/order/order-statuses' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Accept: application/vnd.api+json'
AlanAçıklama
namePaneldeki ad
nameSeenByUserMüşteriye gösterilen ad
isActiveKullanımda mı
listNoSıra
disallowCargoAppPermission1 ise uygulamalar siparişi bu durumdan başka duruma taşıyamaz

Sipariş durumunu değiştirme

POST /order/orders/{id}/-actions/status
curl -X POST 'https://magaza.com/api/v3/admin/2026-01/order/orders/1042/-actions/status' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Content-Type: application/json' \
  -d '{"orderStatusId": 4, "currentStatusId": 2, "cargoNumber": "TRK123456"}'
AlanZorunluAçıklama
orderStatusIdEvetYeni durum; aktif bir durum olmalı
currentStatusIdHayırSiparişin şu an bu durumda olmasını beklediğinizi belirtir; değilse 409 döner
cargoNumberHayırKargo takip numarası
cargoCompanyIdHayırKargo firması

Durum değişikliği panelden yapılan değişiklikle aynı akışı işletir ve ORDER.STATUS.CHANGE olayını tetikler. Durum aynı kalırsa (yalnız kargo numarası güncellenirse) olay gönderilmez. Yanıt güncellenmiş sipariş kaydıdır.

Şu durumlarda 422 döner:

  • Sipariş "tamamlanmamış" durumdaysa,
  • Siparişin mevcut durumunda disallowCargoAppPermission değeri 1 ise,
  • Mağazanın durum kuralları geçişe izin vermiyorsa (detail alanı nedeni yazar).
currentStatusId göndermek, mağaza sahibi siparişi panelden değiştirdikten sonra sizin eski bilgiyle üzerine yazmanızı engeller.

Fatura bilgisi yazma

E-fatura ve e-arşiv uygulamaları kestikleri faturanın bilgisini siparişe bu uçla yazar.

POST /order/orders/{id}/-actions/invoice
curl -X POST 'https://magaza.com/api/v3/admin/2026-01/order/orders/1042/-actions/invoice' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Content-Type: application/json' \
  -d '{"isInvoiced": true, "invoiceNumber": "GIB2026000000001", "invoiceDate": 1793700000, "isEarchive": true, "einvoiceLink": "https://fatura.example.com/GIB2026000000001.pdf"}'
AlanZorunluAçıklama
isInvoicedEvetSipariş faturalandı mı
invoiceNumberHayırFatura numarası (en fazla 128 karakter)
invoiceDateHayırFatura tarihi (Unix zaman damgası, saniye)
waybillNumberHayırİrsaliye numarası (en fazla 16 karakter)
isEarchiveHayırE-arşiv faturası mı
earchiveUuidHayırE-arşiv ETTN
einvoiceLinkHayırFaturanın görüntülenebileceği adres

Gövde düz JSON'dur. Kapsam write_orders. Yanıt güncellenmiş sipariş kaydıdır; yazılan değerler siparişin isInvoiced, invoiceNumber, invoiceDate, waybillNumber, isEarchive, earchiveUuid ve einvoiceLink alanlarında görünür.

Sipariş notları

UçMetotKapsam
order/order-notes?filter[orderId]={id}GETread_orders
order/order-notesPOSTwrite_orders

Listeleme sipariş filtresi ister. Uygulamanın yazdığı not, panelde uygulamanın adıyla görünür.

POST /order/order-notes
curl -X POST 'https://magaza.com/api/v3/admin/2026-01/order/order-notes' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Content-Type: application/vnd.api+json' \
  -d '{"data": {"type": "order-notes", "attributes": {"orderId": 1042, "text": "Fatura e-postayla gönderildi."}}}'

Alanlar: orderId, text, noteType, adminName, createdAt.