Mağaza API

Mağaza modülünün tüm işlemleri (74) ve veri modelleri (33): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Satış kanalları, stok, kargo ve siparişler — sepetten kapıya.

Modül kodu retail · 74 işlem · 33 veri modeli · 56 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: retail (hepsi), retail:read (yalnız okuma) ya da retail:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
allocationsallocation/api/v1/allocations
checkout_linescheckout_line/api/v1/checkout_lines
checkoutscheckout/api/v1/checkoutsretail.create_checkout
collection_itemsitem_collection_item/api/v1/collection_items
collectionsitem_collection/api/v1/collectionsretail.save_collectionretail.delete_collection
fulfilment_linesfulfilment_line/api/v1/fulfilment_lines
fulfilmentsfulfilment/api/v1/fulfilments
item_collection_channel_listingsitem_collection_channel_listing/api/v1/item_collection_channel_listings
order_discountssales_order_discount/api/v1/order_discounts
order_gift_cardssales_order_gift_card/api/v1/order_gift_cards
order_granted_refund_linesorder_granted_refund_line/api/v1/order_granted_refund_lines
order_granted_refundsorder_granted_refund/api/v1/order_granted_refunds
order_linessales_order_line/api/v1/order_lines
order_return_linesorder_return_line/api/v1/order_return_lines
order_returnsorder_return/api/v1/order_returns
orderssales_order/api/v1/ordersretail.create_draft_orderretail.update_orderretail.delete_draft_order
preorder_allocationspreorder_allocation/api/v1/preorder_allocations
product_listingsitem_channel_listing/api/v1/product_listings
sales_channel_warehouseschannel_warehouse/api/v1/sales_channel_warehouses
sales_channelschannel/api/v1/sales_channelsretail.save_channelretail.delete_channel
shipping_method_channel_listingsshipping_method_channel_listing/api/v1/shipping_method_channel_listings
shipping_method_excluded_itemsshipping_method_excluded_item/api/v1/shipping_method_excluded_items
shipping_method_postal_code_rulesshipping_method_postal_code_rule/api/v1/shipping_method_postal_code_rules
shipping_methodsshipping_method/api/v1/shipping_methodsretail.save_shipping_methodretail.delete_shipping_method
shipping_zone_channelsshipping_zone_channel/api/v1/shipping_zone_channels
shipping_zonesshipping_zone/api/v1/shipping_zonesretail.save_shipping_zoneretail.delete_shipping_zone
stock_movementsstock_movement/api/v1/stock_movements
stock_reservationsstock_reservation/api/v1/stock_reservations
stocksstock/api/v1/stocks
variant_listingsitem_variant_channel_listing/api/v1/variant_listings
variant_preordersvariant_preorder/api/v1/variant_preorders
warehouse_shipping_zoneswarehouse_shipping_zone/api/v1/warehouse_shipping_zones
warehouseswarehouse/api/v1/warehousesretail.create_warehouseretail.update_warehouseretail.delete_warehouse

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
retail.adjust_stockretail:writeStoğu düzelt
retail.approve_fulfilmentretail:approveGönderiyi onayla
retail.attach_gift_cardretail:writeHediye kartıyla öde
retail.bulk_update_pricesretail:writeToplu fiyatla
retail.cancel_fulfilmentretail:handleGönderiyi iptal et
retail.cancel_orderretail:manageSiparişi iptal et
retail.close_returnretail:handleİadeyi kapat
retail.complete_checkoutretail:writeSiparişi ver
retail.complete_draft_orderretail:writeTaslak siparişi ver
retail.confirm_gift_cardretail:writeHediye kartı kullanımını onayla
retail.confirm_orderretail:approveSiparişi onayla
retail.create_checkoutretail:writeSepet aç
retail.create_draft_orderretail:writeTaslak sipariş başlat
retail.create_warehouseretail:manageDepo aç
retail.delete_channelretail:deleteKanalı sil
retail.delete_collectionretail:deleteKoleksiyonu sil
retail.delete_draft_orderretail:deleteTaslak siparişi at
retail.delete_draft_ordersretail:deleteTaslakları at
retail.delete_shipping_methodretail:deleteTeslimat ücretini sil
retail.delete_shipping_zoneretail:deleteKargo bölgesini sil
retail.delete_warehouseretail:deleteDepoyu kapat
retail.detach_gift_cardretail:writeHediye kartını çıkar
retail.duplicate_orderretail:writeYeniden sipariş ver
retail.end_preorderretail:manageÖn siparişi bitir
retail.expire_orderretail:handleOnaylanmamış siparişi düşür
retail.expire_stock_reservationsretail:handleSüresi dolan stok ayırmalarını bırak
retail.fulfil_orderretail:handleSiparişi gönder
retail.grant_refundretail:manageİade tutarı onayla
retail.import_channel_orderretail:handlePazaryeri siparişini içe al
retail.inspect_returnretail:handleİadeyi incele
retail.open_shopretail:manageMağazayı aç
retail.raise_abandoned_checkoutsretail:handleTerk edilen sepetleri işaretle
retail.receive_returnretail:handleİadeyi teslim al
retail.refresh_collectionretail:writeAkıllı koleksiyonu yenile
retail.reject_returnretail:handleİadeyi reddet
retail.remove_order_discountretail:writePersonel indirimini kaldır
retail.renew_checkout_reservationretail:writeÖdeme için stoğu ayır
retail.request_returnretail:handleİade aç
retail.return_productsretail:handleİade kaydet
retail.save_channelretail:manageSatış kanalını kaydet
retail.save_collectionretail:writeKoleksiyonu kaydet
retail.save_shipping_methodretail:manageTeslimat ücretini kaydet
retail.save_shipping_zoneretail:manageKargo bölgesini kaydet
retail.set_channel_activeretail:manageKanalı aç veya kapat
retail.set_channel_warehousesretail:manageKanalın depolarını seç
retail.set_checkout_deliveryretail:writeTeslimatı seç
retail.set_checkout_linesretail:writeSepeti değiştir
retail.set_collection_itemsretail:writeKoleksiyonun içeriğini seç
retail.set_collection_ruleretail:writeKoleksiyonu bir kuralla doldur
retail.set_item_listingretail:writeKanalda listele
retail.set_order_discountretail:writePersonel indirimi ver
retail.set_order_linesretail:writeSiparişin satırlarını değiştir
retail.set_order_voucherretail:writeKupon uygula
retail.set_postal_code_rulesretail:managePosta kodu kurallarını belirle
retail.set_preorderretail:manageÖn siparişle sat
retail.set_shipping_excluded_itemsretail:manageÜrünleri teslimat ücretinden hariç tut
retail.set_shipping_priceretail:manageTeslimat ücretini kanalda fiyatla
retail.set_stockretail:writeStok say
retail.set_stock_policyretail:manageGüvenlik stoğu ayır
retail.set_trackingretail:handleTakip numarası gir
retail.set_variant_priceretail:writeVaryantı kanalda fiyatla
retail.set_warehouse_zonesretail:manageDeponun hizmet verdiği bölgeleri seç
retail.site_cart_addretail:writeSepete ekle (site)
retail.site_cart_claimretail:writeGiriş yapınca sepetimi koru
retail.site_cart_setretail:writeSepet satırını değiştir (site)
retail.site_checkout_deliveryretail:writeTeslimat seç (site)
retail.site_checkout_detailsretail:writeÖdeme bilgilerini gir (site)
retail.site_checkout_voucherretail:writeİndirim kodu kullan (site)
retail.site_place_orderretail:writeSipariş ver (site)
retail.sync_charge_statusretail:writeSiparişin ödeme durumunu güncelle
retail.transfer_stockretail:writeDepolar arasında stok taşı
retail.update_orderretail:writeSiparişi düzenle
retail.update_order_metadataretail:writeSipariş ek bilgilerini düzenle
retail.update_warehouseretail:manageDepoyu düzenle

retail.adjust_stock

Stoğu düzelt — Bir depoya bir miktar mal girişi veya çıkışı; defter için bir nedenle.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/stocks/actions/adjust_stock
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.adjust_stock

Girdi

AlanTürZorunluAçıklama
warehouseIduuidevetDepo · kimliği: warehouse
itemVariantIduuidevetVaryant · kimliği: item_variant
deltanumberevetDeğiştir · Pozitif giriş, negatif çıkış.
reasonstring (enum)evetNeden · İzin verilen değerler: count, received, damaged, correction
notestringNot · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
no_changeDeğişiklik sıfırdan farklı bir tam sayı olmalı.
warehouse_not_foundDepo bulunmalı.
variant_not_foundVaryant bulunmalı.
below_allocatedRaf, siparişlerin ayırdığının altına düşemez.

Yayımladığı olaylar: retail.stock_changed, retail.stock_low

Neye yazar: stock (upsert) — Moves the count by the amount, in the statement; stock_movement (insert) — Records the movement and its reason

curl -X POST https://app.getera.io/api/v1/stocks/actions/adjust_stock \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"warehouseId":"WAREHOUSE_ID","itemVariantId":"ITEM_VARIANT_ID","delta":1,"reason":"count"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.stock_changed",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.stocks.adjustStock({
  warehouseId: "WAREHOUSE_ID",
  itemVariantId: "ITEM_VARIANT_ID",
  delta: 1,
  reason: "count"
})
era stocks adjust_stock \
  --warehouse-id "WAREHOUSE_ID" \
  --item-variant-id "ITEM_VARIANT_ID" \
  --delta 1 \
  --reason "count"
tools/call
{
  "name": "era__retail__adjust_stock",
  "arguments": {
    "warehouseId": "WAREHOUSE_ID",
    "itemVariantId": "ITEM_VARIANT_ID",
    "delta": 1,
    "reason": "count"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 no_change, warehouse_not_found, variant_not_found, below_allocated · 429 çok sık istek

retail.approve_fulfilment

Gönderiyi onayla — Yalnızca mağaza gönderileri otomatik onaylamıyorsa gerekir.

Gereken izin retail:approve · veriyi değiştirir

POSThttps://app.getera.io/api/v1/fulfilments/{id}/actions/approve_fulfilment
API anahtarı ya da OAuth token · retail:approve
  • Asıl adres: POST /api/v1/actions/retail.approve_fulfilment

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Gönderi · kimliği: fulfilment

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundGönderi bulunmalı.
fulfilment_not_awaitingYalnızca onay bekleyen bir gönderi onaylanabilir.

Yayımladığı olaylar: retail.fulfilment_approved

Neye yazar: fulfilment (update) — Marks it fulfilled

curl -X POST https://app.getera.io/api/v1/fulfilments/FULFILMENT_ID/actions/approve_fulfilment \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.fulfilment_approved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.fulfilments.approveFulfilment("FULFILMENT_ID")
era fulfilments approve_fulfilment FULFILMENT_ID
tools/call
{
  "name": "era__retail__approve_fulfilment",
  "arguments": {
    "id": "FULFILMENT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:approve izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, fulfilment_not_awaiting · 429 çok sık istek

retail.attach_gift_card

Hediye kartıyla öde — Harcamayı bekliyor olarak kaydeder ve hediye kartından düşülmesini ister; ret olursa başarısız işaretlenir ve tutar geri konur.

Gereken izin retail:write · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/orders/{id}/actions/attach_gift_card
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.attach_gift_card

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
codestringHediye kartı kodu · en çok 64
giftCardIduuidHediye kartı (zaten kullanılmış)
giftCardEventIduuidKullanım
codeTailstringSon dört hane · en çok 16
amountnumber (money)evetTutar · en az 1
idempotencyKeystringTekrar önleme anahtarı · en çok 512

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_editableYalnızca taslak veya onaylanmamış bir sipariş hediye kartı alır.
gift_card_not_on_orderKart, koduyla ya da zaten kullanılmış bir kart olarak belirtilir.
gift_card_exceeds_dueHediye kartı, kalan ödeme tutarından fazlasını ödeyemez.

Yayımladığı olaylar: retail.gift_card_requested, retail.gift_card_applied

Neye yazar: sales_order_gift_card (insert) — Records the spend (pending until redeemed); sales_order_gift_card (delete) — A failed try of the same card gives way to the new one; sales_order (update) — Lowers the amount due

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/attach_gift_card \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"amount":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.gift_card_requested",
    "retail.gift_card_applied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.attachGiftCard("ORDER_ID", {
  amount: 1
})
era orders attach_gift_card ORDER_ID \
  --amount 1
tools/call
{
  "name": "era__retail__attach_gift_card",
  "arguments": {
    "id": "ORDER_ID",
    "amount": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_editable, gift_card_not_on_order, gift_card_exceeds_due · 429 çok sık istek

retail.bulk_update_prices

Toplu fiyatla — Bir kanaldaki birçok varyanta tek bir kural — belirle, tutar veya yüzde olarak artır ya da azalt.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/variant_listings/actions/bulk_update_prices
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.bulk_update_prices

Girdi

AlanTürZorunluAçıklama
channelIduuidevetKanal · kimliği: channel
itemVariantIdsobject / arrayevetVaryantlar
modestring (enum)evetDeğiştir · İzin verilen değerler: set, increase_percent, decrease_percent, increase_amount, decrease_amount
valuenumberevetDeğer · en az 0
fieldstring (enum)Hangi rakam · İzin verilen değerler: price, cost

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
no_variantsEn az bir varyant seçilmeli.
variant_not_foundHer varyant bulunmalı.
negative_priceHiçbir varyant sıfırın altına düşemez; tek bir ret tüm işlemi durdurur.

Yayımladığı olaylar: retail.channel_price_changed

Neye yazar: item_variant_channel_listing (upsert) — Writes each new channel price or cost

curl -X POST https://app.getera.io/api/v1/variant_listings/actions/bulk_update_prices \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"channelId":"CHANNEL_ID","itemVariantIds":{},"mode":"set","value":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.channel_price_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.variantListings.bulkUpdatePrices({
  channelId: "CHANNEL_ID",
  itemVariantIds: {},
  mode: "set",
  value: 1
})
era variant_listings bulk_update_prices --data '{"channelId":"CHANNEL_ID","itemVariantIds":{},"mode":"set","value":1}'
tools/call
{
  "name": "era__retail__bulk_update_prices",
  "arguments": {
    "channelId": "CHANNEL_ID",
    "itemVariantIds": {},
    "mode": "set",
    "value": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, no_variants, variant_not_found, negative_price · 429 çok sık istek

retail.cancel_fulfilment

Gönderiyi iptal et — Mallar çıktıkları rafa geri döner.

Gereken izin retail:handle · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/fulfilments/{id}/actions/cancel_fulfilment
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.cancel_fulfilment

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Gönderi · kimliği: fulfilment

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundGönderi bulunmalı.
fulfilment_not_cancellableİade edilmiş veya iptal edilmiş bir gönderi yeniden iptal edilemez.

Yayımladığı olaylar: retail.fulfilment_canceled

Neye yazar: fulfilment (update) — Marks it cancelled; stock (update) — Puts the goods back; sales_order_line (update) — Lowers quantity_fulfilled

curl -X POST https://app.getera.io/api/v1/fulfilments/FULFILMENT_ID/actions/cancel_fulfilment \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.fulfilment_canceled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.fulfilments.cancelFulfilment("FULFILMENT_ID")
era fulfilments cancel_fulfilment FULFILMENT_ID
tools/call
{
  "name": "era__retail__cancel_fulfilment",
  "arguments": {
    "id": "FULFILMENT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, fulfilment_not_cancellable · 429 çok sık istek

retail.cancel_order

Siparişi iptal et — Tuttuğu her şeyi serbest bırakır. Mallar raftan hiç çıkmadı.

Gereken izin retail:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/orders/{id}/actions/cancel_order
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.cancel_order

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
reasonstringNeden · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_cancellableTamamlanmış, iptal edilmiş veya süresi dolmuş bir sipariş iptal edilemez.
order_has_fulfilmentsÖnce devam eden gönderiler iptal edilmeli.
gift_card_pendingSipariş iptal edilmeden önce işlenmekte olan hediye kartı ödemesinin sonucu beklenir.

Yayımladığı olaylar: retail.order_canceled, retail.gift_card_removed, retail.customer_notification_requested

Neye yazar: sales_order (update) — Marks it cancelled; allocation (delete) — Releases the stock it held; stock (update) — Lowers the allocated count; sales_order_gift_card (delete) — Gives every gift card back (gift_cards refunds it, a reaction)

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/cancel_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"reason":"Reason"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_canceled",
    "retail.gift_card_removed",
    "retail.customer_notification_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.cancelOrder("ORDER_ID", {
  reason: "Reason"
})
era orders cancel_order ORDER_ID \
  --reason "Reason"
tools/call
{
  "name": "era__retail__cancel_order",
  "arguments": {
    "id": "ORDER_ID",
    "reason": "Reason"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_cancellable, order_has_fulfilments, gift_card_pending · 429 çok sık istek

retail.close_return

İadeyi kapat — Bu iade için başka işlem yapılmayacak.

Gereken izin retail:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/order_returns/{id}/actions/close_return
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.close_return

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · İade · kimliği: order_return

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
return_not_foundİade bulunmalı.
return_not_openYalnızca teslim alınmış veya incelenmiş bir iade kapatılabilir.

Yayımladığı olaylar: retail.return_closed

Neye yazar: order_return (update) — Marks it closed

curl -X POST https://app.getera.io/api/v1/order_returns/ORDER_RETURN_ID/actions/close_return \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.return_closed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orderReturns.closeReturn("ORDER_RETURN_ID")
era order_returns close_return ORDER_RETURN_ID
tools/call
{
  "name": "era__retail__close_return",
  "arguments": {
    "id": "ORDER_RETURN_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 return_not_found, return_not_open · 429 çok sık istek

retail.complete_checkout

Siparişi ver — Sepeti siparişe çevirir, stok ayırır ve sepeti kapatır — bir kez.

Gereken izin retail:write · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/orders/actions/complete_checkout
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.complete_checkout

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSepet bulunmalı.
checkout_completingÇift gönderim kilidi: bir sepet bir sipariş olur.
checkout_emptyBoş bir sepet sipariş değildir.
prices_staleÇok önce hesaplanmış bir fiyat yeniden hesaplanmalı.
order_not_paidKanal ödenmemiş siparişlere izin vermedikçe ödenmiş olmalı.
shipping_address_missingGönderilecek bir şeyin gönderileceği bir yer olmalı.
insufficient_stockTakip edilen her satır karşılanabilmeli; yoksa hiçbiri alınmaz.
voucher_not_applicableSepetteki kupon, sipariş edilen ürünlere artık uygulanamıyor.
voucher_usage_exceededSepetteki kuponun kullanım hakkı sipariş verilmeden önce doldu.

Yayımladığı olaylar: retail.order_placed, retail.customer_notification_requested, retail.stock_low, retail.order_discounts_applied

Neye yazar: sales_order (insert) — Writes the order; sales_order_line (insert) — Writes its lines, frozen; allocation (insert) — Promises stock to the order; stock (update) — Raises the allocated count; stock_reservation (update) — Commits the basket hold into the order allocation; checkout (delete) — Closes the basket

curl -X POST https://app.getera.io/api/v1/orders/actions/complete_checkout \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"token":"TOKEN_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_placed",
    "retail.customer_notification_requested",
    "retail.stock_low",
    "retail.order_discounts_applied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.completeCheckout({
  token: "TOKEN_ID"
})
era orders complete_checkout \
  --token "TOKEN_ID"
tools/call
{
  "name": "era__retail__complete_checkout",
  "arguments": {
    "token": "TOKEN_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, checkout_completing, checkout_empty, prices_stale, order_not_paid, shipping_address_missing, insufficient_stock, voucher_not_applicable, voucher_usage_exceeded · 429 çok sık istek

retail.complete_draft_order

Taslak siparişi ver — Stok ayırır ve taslağı sipariş sürecine taşır.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/{id}/actions/complete_draft_order
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.complete_draft_order

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
not_a_draftYalnızca taslak verilebilir.
order_emptySatırı olmayan bir taslak sipariş değildir.
gift_card_pendingTaslak verilmeden önce işlenmekte olan hediye kartı ödemesinin sonucu beklenir.
shipping_address_missingGönderilecek bir şeyin gönderileceği bir yer olmalı.
insufficient_stockTakip edilen her satır karşılanabilmeli; yoksa hiçbiri alınmaz.
voucher_not_foundTaslaktaki kupon hâlâ bulunmalı.
voucher_not_applicableTaslaktaki kupon hâlâ geçerli olmalı.
voucher_usage_exceededTaslaktaki kupon bu arada tükenmemiş olmalı.

Yayımladığı olaylar: retail.order_placed, retail.order_discounts_applied, retail.customer_notification_requested, retail.stock_low

Neye yazar: sales_order (update) — Moves it out of draft; sales_order_line (update) — Freezes the discount snapshot; sales_order_discount (insert) — Records what was applied; allocation (insert) — Promises stock to the order; preorder_allocation (insert) — Promises preorders; stock (update) — Raises the allocated count

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/complete_draft_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_placed",
    "retail.order_discounts_applied",
    "retail.customer_notification_requested",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.completeDraftOrder("ORDER_ID")
era orders complete_draft_order ORDER_ID
tools/call
{
  "name": "era__retail__complete_draft_order",
  "arguments": {
    "id": "ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_a_draft, order_empty, gift_card_pending, shipping_address_missing, insufficient_stock, voucher_not_found, voucher_not_applicable, voucher_usage_exceeded · 429 çok sık istek

retail.confirm_gift_card

Hediye kartı kullanımını onayla — Otomatik: kart kullanıldı, siparişteki bekleyen satır uygulanır.

Gereken izin retail:write · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/order_gift_cards/{id}/actions/confirm_gift_card
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.confirm_gift_card

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Siparişteki hediye kartı · kimliği: sales_order_gift_card
giftCardIduuidevetHediye kartı
giftCardEventIduuidKullanım

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_on_orderHediye kartı siparişte olmalı.

Yayımladığı olaylar: retail.gift_card_applied

Neye yazar: sales_order_gift_card (update) — Applies the pending row

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_on_order · 429 çok sık istek

retail.confirm_order

Siparişi onayla — Yalnızca kanal otomatik onaylamıyorsa var olan adım.

Gereken izin retail:approve · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/{id}/actions/confirm_order
API anahtarı ya da OAuth token · retail:approve
  • Asıl adres: POST /api/v1/actions/retail.confirm_order

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_unconfirmedYalnızca onaylanmamış bir sipariş onaylanabilir.

Yayımladığı olaylar: retail.order_confirmed

Neye yazar: sales_order (update) — Moves it to unfulfilled

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/confirm_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_confirmed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.confirmOrder("ORDER_ID")
era orders confirm_order ORDER_ID
tools/call
{
  "name": "era__retail__confirm_order",
  "arguments": {
    "id": "ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:approve izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_unconfirmed · 429 çok sık istek

retail.create_checkout

Sepet aç — Bir kanalda, bir müşteri veya misafir için sepet.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/checkouts/actions/create_checkout
API anahtarı ya da OAuth token · retail:write
  • REST kısayolu: POST /api/v1/checkouts
  • Asıl adres: POST /api/v1/actions/retail.create_checkout

Girdi

AlanTürZorunluAçıklama
channelIduuidevetKanal · kimliği: channel
customerIduuidMüşteri · kimliği: customer
emailemailE-posta
linesobject / arrayKalemler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
channel_closedKapalı bir kanal sepet almaz.
malformed_linesHer satır bir varyant ve miktar gerektirir.
variant_not_foundHer varyant bulunmalı.
variant_not_pricedBu kanalda fiyatı olmayan bir varyant burada satılamaz.
reservation_stock_unavailableStok takibi yapılan her ürün on beş dakikalığına ayrılabilmeli; yeterli stok yok.
gift_line_lockedKampanyanın hediye satırı elle düzenlenemez.

Yayımladığı olaylar: retail.checkout_created

Neye yazar: checkout (insert) — Opens the basket; checkout_line (upsert) — Writes its lines; stock_reservation (upsert) — Holds tracked stock for fifteen minutes

curl -X POST https://app.getera.io/api/v1/checkouts/actions/create_checkout \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"channelId":"CHANNEL_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.checkout_created"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.checkouts.create({
  channelId: "CHANNEL_ID"
})
era checkouts create \
  --channel-id "CHANNEL_ID"
tools/call
{
  "name": "era__retail__create_checkout",
  "arguments": {
    "channelId": "CHANNEL_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, channel_closed, malformed_lines, variant_not_found, variant_not_priced, reservation_stock_unavailable, gift_line_locked · 429 çok sık istek

retail.create_draft_order

Taslak sipariş başlat — Mağaza çalışanının sepeti: henüz kimsenin vermediği bir sipariş.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/actions/create_draft_order
API anahtarı ya da OAuth token · retail:write
  • REST kısayolu: POST /api/v1/orders
  • Asıl adres: POST /api/v1/actions/retail.create_draft_order

Girdi

AlanTürZorunluAçıklama
channelIduuidevetKanal · kimliği: channel
customerIduuidMüşteri · kimliği: customer
emailemailE-posta
customerNotestringNot · en çok 2000
billingAddressIduuidFatura adresi · kimliği: address
shippingAddressIduuidTeslimat adresi · kimliği: address
fulfilmentMethodstring (enum)Teslimat · İzin verilen değerler: shipping, pickup

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
channel_closedKapalı bir kanal sipariş almaz.

Yayımladığı olaylar: retail.draft_order_created

Neye yazar: sales_order (insert) — Writes the draft

curl -X POST https://app.getera.io/api/v1/orders/actions/create_draft_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"channelId":"CHANNEL_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.draft_order_created"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.create({
  channelId: "CHANNEL_ID"
})
era orders create \
  --channel-id "CHANNEL_ID"
tools/call
{
  "name": "era__retail__create_draft_order",
  "arguments": {
    "channelId": "CHANNEL_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, channel_closed · 429 çok sık istek

retail.create_warehouse

Depo aç — Stoğun tutulduğu ve siparişlerin gönderildiği bir yer.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/warehouses/actions/create_warehouse
API anahtarı ya da OAuth token · retail:manage
  • REST kısayolu: POST /api/v1/warehouses
  • Asıl adres: POST /api/v1/actions/retail.create_warehouse

Girdi

AlanTürZorunluAçıklama
namestringevetAd · en çok 250
slugstringAdres · en çok 255
addressIduuidKayıtlı adres · kimliği: address
streetAddress1stringSokak · en çok 250
streetAddress2stringSokak (ikinci satır) · en çok 250
cityAreastringİlçe · en çok 120
citystringŞehir · en çok 120
countryAreastringBölge · en çok 120
postalCodestringPosta kodu · en çok 32
countrystringÜlke · en çok 2
phonephoneTelefon
emailemailE-posta
clickAndCollectOptionstring (enum)Koleksiyon · İzin verilen değerler: disabled, local, all
isPrivatebooleanMüşterilerden gizli

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_nameAd kullanılabilir bir adres üretmeli.
slug_takenAdres bu çalışma alanında boşta olmalı.
address_not_foundDepo adressiz olamaz.

Yayımladığı olaylar: retail.warehouse_saved

Neye yazar: warehouse (insert) — Creates the warehouse

curl -X POST https://app.getera.io/api/v1/warehouses/actions/create_warehouse \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.warehouse_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.warehouses.create({
  name: "Name"
})
era warehouses create \
  --name "Name"
tools/call
{
  "name": "era__retail__create_warehouse",
  "arguments": {
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_name, slug_taken, address_not_found · 429 çok sık istek

retail.delete_channel

Kanalı sil — Yalnızca hiç sipariş veya sepet almamış bir kanal; satış yapmış olan kapatılır.

Gereken izin retail:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/sales_channels/{id}/actions/delete_channel
API anahtarı ya da OAuth token · retail:delete
  • REST kısayolu: DELETE /api/v1/sales_channels/{id}
  • Asıl adres: POST /api/v1/actions/retail.delete_channel

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Kanal · kimliği: channel

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
channel_in_useSiparişi veya sepeti olan bir kanal kalır; bunun yerine kapatın.

Yayımladığı olaylar: retail.channel_deleted

Neye yazar: channel (delete) — Removes the channel and its listings

curl -X POST https://app.getera.io/api/v1/sales_channels/SALES_CHANNEL_ID/actions/delete_channel \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.channel_deleted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.salesChannels.deleteChannel("SALES_CHANNEL_ID")
era sales_channels delete_channel SALES_CHANNEL_ID
tools/call
{
  "name": "era__retail__delete_channel",
  "arguments": {
    "id": "SALES_CHANNEL_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, channel_in_use · 429 çok sık istek

retail.delete_collection

Koleksiyonu sil — Liste gider; içindeki ürünler katalogdadır ve kalır.

Gereken izin retail:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/collections/{id}/actions/delete_collection
API anahtarı ya da OAuth token · retail:delete
  • REST kısayolu: DELETE /api/v1/collections/{id}
  • Asıl adres: POST /api/v1/actions/retail.delete_collection

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Koleksiyon · kimliği: item_collection

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundTahsilat bulunmalı.

Yayımladığı olaylar: retail.collection_deleted

Neye yazar: item_collection (delete) — Removes the collection

curl -X POST https://app.getera.io/api/v1/collections/COLLECTION_ID/actions/delete_collection \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.collection_deleted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.collections.deleteCollection("COLLECTION_ID")
era collections delete_collection COLLECTION_ID
tools/call
{
  "name": "era__retail__delete_collection",
  "arguments": {
    "id": "COLLECTION_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

retail.delete_draft_order

Taslak siparişi at — Bir sipariş taslağını yalnızca verilmeden önce kaldırır.

Gereken izin retail:delete · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/orders/{id}/actions/delete_draft_order
API anahtarı ya da OAuth token · retail:delete
  • REST kısayolu: DELETE /api/v1/orders/{id}
  • Asıl adres: POST /api/v1/actions/retail.delete_draft_order

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
not_a_draftVerilmiş siparişler silinmez, iptal edilir.
draft_has_gift_cardsTaslakta harcanan bir hediye kartı önce çıkarılır.

Yayımladığı olaylar: retail.draft_order_deleted

Neye yazar: sales_order (delete) — Removes the draft and its lines

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/delete_draft_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.draft_order_deleted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.deleteDraftOrder("ORDER_ID")
era orders delete_draft_order ORDER_ID
tools/call
{
  "name": "era__retail__delete_draft_order",
  "arguments": {
    "id": "ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_a_draft, draft_has_gift_cards · 429 çok sık istek

retail.delete_draft_orders

Taslakları at — Sipariş listesinden birden çok taslak tek seferde. Hepsi ya da hiçbiri.

Gereken izin retail:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/orders/actions/delete_draft_orders
API anahtarı ya da OAuth token · retail:delete
  • Asıl adres: POST /api/v1/actions/retail.delete_draft_orders

Girdi

AlanTürZorunluAçıklama
idsobject / arrayevetTaslaklar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
no_ordersEn az bir taslak seçilmeli.
not_a_draftHer biri taslak olmalı.
draft_has_gift_cardsHediye kartıyla ödeme yapılmış bir taslak, kart çıkarılana kadar kalır.

Yayımladığı olaylar: retail.draft_order_deleted

Neye yazar: sales_order (delete) — Removes the drafts

curl -X POST https://app.getera.io/api/v1/orders/actions/delete_draft_orders \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"ids":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.draft_order_deleted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.deleteDraftOrders({
  ids: {}
})
era orders delete_draft_orders --data '{"ids":{}}'
tools/call
{
  "name": "era__retail__delete_draft_orders",
  "arguments": {
    "ids": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 no_orders, not_a_draft, draft_has_gift_cards · 429 çok sık istek

retail.delete_shipping_method

Teslimat ücretini sil — Geçmiş siparişler satıldıkları adı korur.

Gereken izin retail:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/shipping_methods/{id}/actions/delete_shipping_method
API anahtarı ya da OAuth token · retail:delete
  • REST kısayolu: DELETE /api/v1/shipping_methods/{id}
  • Asıl adres: POST /api/v1/actions/retail.delete_shipping_method

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Oran · kimliği: shipping_method

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundOran bulunmalı.

Yayımladığı olaylar: retail.shipping_method_deleted

Neye yazar: shipping_method (delete) — Removes the rate

curl -X POST https://app.getera.io/api/v1/shipping_methods/SHIPPING_METHOD_ID/actions/delete_shipping_method \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.shipping_method_deleted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.shippingMethods.deleteShippingMethod("SHIPPING_METHOD_ID")
era shipping_methods delete_shipping_method SHIPPING_METHOD_ID
tools/call
{
  "name": "era__retail__delete_shipping_method",
  "arguments": {
    "id": "SHIPPING_METHOD_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

retail.delete_shipping_zone

Kargo bölgesini sil — Yalnızca boş bir bölge silinebilir; ücretleri siparişleri ücretsiz bırakırdı.

Gereken izin retail:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/shipping_zones/{id}/actions/delete_shipping_zone
API anahtarı ya da OAuth token · retail:delete
  • REST kısayolu: DELETE /api/v1/shipping_zones/{id}
  • Asıl adres: POST /api/v1/actions/retail.delete_shipping_zone

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Bölge · kimliği: shipping_zone

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBölge bulunmalı.
zone_has_methodsÜcret içeren bir bölge silinemez.

Yayımladığı olaylar: retail.shipping_zone_deleted

Neye yazar: shipping_zone (delete) — Removes the zone

curl -X POST https://app.getera.io/api/v1/shipping_zones/SHIPPING_ZONE_ID/actions/delete_shipping_zone \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.shipping_zone_deleted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.shippingZones.deleteShippingZone("SHIPPING_ZONE_ID")
era shipping_zones delete_shipping_zone SHIPPING_ZONE_ID
tools/call
{
  "name": "era__retail__delete_shipping_zone",
  "arguments": {
    "id": "SHIPPING_ZONE_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, zone_has_methods · 429 çok sık istek

retail.delete_warehouse

Depoyu kapat — Depo ve adresi birlikte kaldırılır.

Gereken izin retail:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/warehouses/{id}/actions/delete_warehouse
API anahtarı ya da OAuth token · retail:delete
  • REST kısayolu: DELETE /api/v1/warehouses/{id}
  • Asıl adres: POST /api/v1/actions/retail.delete_warehouse

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Depo · kimliği: warehouse

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundDepo bulunmalı.
warehouse_has_allocationsÖnce açık siparişlere ayrılmış stok çözülmeli.

Yayımladığı olaylar: retail.warehouse_deleted

Neye yazar: warehouse (delete) — Removes the warehouse and its stock rows

curl -X POST https://app.getera.io/api/v1/warehouses/WAREHOUSE_ID/actions/delete_warehouse \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.warehouse_deleted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.warehouses.deleteWarehouse("WAREHOUSE_ID")
era warehouses delete_warehouse WAREHOUSE_ID
tools/call
{
  "name": "era__retail__delete_warehouse",
  "arguments": {
    "id": "WAREHOUSE_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, warehouse_has_allocations · 429 çok sık istek

retail.detach_gift_card

Hediye kartını çıkar — Hediye kartını siparişten kaldırır; para karta geri yüklenir.

Gereken izin retail:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/order_gift_cards/{id}/actions/detach_gift_card
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.detach_gift_card

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Siparişteki hediye kartı · kimliği: sales_order_gift_card
failurestringKartın reddedilme nedeni (telafi) · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_on_orderHediye kartı siparişte olmalı.
gift_card_pendingHâlâ kullanılmakta olan bir kart yanıtını bekler.
order_not_editableVerilmiş bir sipariş hediye kartlarını korur.

Yayımladığı olaylar: retail.gift_card_removed

Neye yazar: sales_order_gift_card (delete) — Removes the spend; sales_order_gift_card (update) — Marks a refused redemption failed; sales_order (update) — Raises the amount due again

curl -X POST https://app.getera.io/api/v1/order_gift_cards/ORDER_GIFT_CARD_ID/actions/detach_gift_card \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"failure":"Why the card was refused (compensation)"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.gift_card_removed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orderGiftCards.detachGiftCard("ORDER_GIFT_CARD_ID", {
  failure: "Why the card was refused (compensation)"
})
era order_gift_cards detach_gift_card ORDER_GIFT_CARD_ID \
  --failure "Why the card was refused (compensation)"
tools/call
{
  "name": "era__retail__detach_gift_card",
  "arguments": {
    "id": "ORDER_GIFT_CARD_ID",
    "failure": "Why the card was refused (compensation)"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_on_order, gift_card_pending, order_not_editable · 429 çok sık istek

retail.duplicate_order

Yeniden sipariş ver — Aynı müşteri, adresler ve satırlarla, bugünün kanal fiyatlarından yeni bir taslak.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/{id}/actions/duplicate_order
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.duplicate_order

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
channel_closedKanalı hâlâ açık olmalı.

Yayımladığı olaylar: retail.draft_order_created, retail.order_lines_changed, retail.order_discounts_applied

Neye yazar: sales_order (insert) — Writes the new draft; sales_order_line (insert) — Copies the lines at today’s prices; sales_order_discount (insert) — Records what applies to the new draft

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/duplicate_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.draft_order_created",
    "retail.order_lines_changed",
    "retail.order_discounts_applied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.duplicateOrder("ORDER_ID")
era orders duplicate_order ORDER_ID
tools/call
{
  "name": "era__retail__duplicate_order",
  "arguments": {
    "id": "ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, channel_closed · 429 çok sık istek

retail.end_preorder

Ön siparişi bitir — Mallar geldi: her ön sipariş raftaki gerçek bir ayırmaya dönüşür — hepsi ya da hiçbiri.

Gereken izin retail:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/allocations/actions/end_preorder
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.end_preorder

Girdi

AlanTürZorunluAçıklama
itemVariantIduuidevetVaryant · kimliği: item_variant

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
variant_not_foundVaryant bulunmalı.
not_preorderVaryant ön siparişte olmalı.
insufficient_stockRaftaki stok, ön siparişlere ayrılan miktarı karşılamalı.

Yayımladığı olaylar: retail.preorder_ended, retail.stock_low

Neye yazar: preorder_allocation (delete) — Releases the preorders; variant_preorder (delete) — Ends the preorder; allocation (insert) — Promises the shelf instead; stock (update) — Raises the allocated count

curl -X POST https://app.getera.io/api/v1/allocations/actions/end_preorder \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"itemVariantId":"ITEM_VARIANT_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.preorder_ended",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.allocations.endPreorder({
  itemVariantId: "ITEM_VARIANT_ID"
})
era allocations end_preorder \
  --item-variant-id "ITEM_VARIANT_ID"
tools/call
{
  "name": "era__retail__end_preorder",
  "arguments": {
    "itemVariantId": "ITEM_VARIANT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 variant_not_found, not_preorder, insufficient_stock · 429 çok sık istek

retail.expire_order

Onaylanmamış siparişi düşür — Otomatik: mağaza taraması, zamanında onaylanmamış siparişi stoğu ve kuponuyla bırakır.

Gereken izin retail:handle · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/orders/{id}/actions/expire_order
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.expire_order

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_expirableYalnızca süre ayarını geçmiş onaylanmamış bir siparişin süresi dolar.

Yayımladığı olaylar: retail.order_expired

Neye yazar: sales_order (update) — Marks it expired; allocation (delete) — Releases the stock it held; stock (update) — Lowers the allocated count

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/expire_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_expired"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.expireOrder("ORDER_ID")
era orders expire_order ORDER_ID
tools/call
{
  "name": "era__retail__expire_order",
  "arguments": {
    "id": "ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_expirable · 429 çok sık istek

retail.expire_stock_reservations

Süresi dolan stok ayırmalarını bırak — Sistem işlemi: on beş dakikadan eski ödeme stok ayırmalarını serbest bırakır.

Gereken izin retail:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/stock_reservations/actions/expire_stock_reservations
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.expire_stock_reservations

Girdi

Bu işlem girdi almaz.

Yayımladığı olaylar: retail.stock_reservations_expired

Neye yazar: stock_reservation (update) — Marks expired claims released

curl -X POST https://app.getera.io/api/v1/stock_reservations/actions/expire_stock_reservations \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.stock_reservations_expired"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.stockReservations.expireStockReservations()
era stock_reservations expire_stock_reservations
tools/call
{
  "name": "era__retail__expire_stock_reservations",
  "arguments": {}
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek

retail.fulfil_order

Siparişi gönder — Mallar belirli bir raftan çıkar. Sayı gerçekten burada düşer.

Gereken izin retail:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/{id}/actions/fulfil_order
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.fulfil_order

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
linesobject / arrayevetKalemler
trackingNumberstringTakip numarası · en çok 255
carrierstringKargo firması · en çok 120
trackingUrlstringTakip bağlantısı · en çok 1000
notifyCustomerbooleanMüşteriye bildir

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_fulfillableYalnızca açık bir siparişten gönderi yapılabilir.
preorder_not_fulfillableÖn siparişteki bir satır ön siparişin bitmesini bekler.
malformed_linesHer gönderi satırı bir sipariş satırı ve miktar gerektirir.
line_not_foundHer satır bu siparişte olmalı.
over_fulfilmentSipariş edilenden fazlası çıkamaz.
insufficient_stockBelirtilen depoda ürünler gerçekten bulunmalı.

Yayımladığı olaylar: retail.fulfilment_created, retail.customer_notification_requested, retail.stock_low

Neye yazar: fulfilment (insert) — Records the despatch; fulfilment_line (insert) — Records which shelf each line left from; stock (update) — Lowers the count and the allocation; sales_order_line (update) — Raises quantity_fulfilled; sales_order (update) — Settles the order status

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/fulfil_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"lines":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.fulfilment_created",
    "retail.customer_notification_requested",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.fulfilOrder("ORDER_ID", {
  lines: {}
})
era orders fulfil_order ORDER_ID --data '{"lines":{}}'
tools/call
{
  "name": "era__retail__fulfil_order",
  "arguments": {
    "id": "ORDER_ID",
    "lines": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_fulfillable, preorder_not_fulfillable, malformed_lines, line_not_found, over_fulfilment, insufficient_stock · 429 çok sık istek

retail.grant_refund

İade tutarı onayla — Mağaza bir tutarı geri vermeyi kabul eder. Para Finans’ta hareket eder.

Gereken izin retail:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/order_granted_refunds/actions/grant_refund
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.grant_refund

Girdi

AlanTürZorunluAçıklama
iduuidevetSipariş · kimliği: sales_order
amountnumber (money)Tutar · Satırlardan hesaplanması için boş bırakın. · en az 0
linesobject / arrayKalemler
includeShippingbooleanKargoyu dahil et
reasonstringNeden · en çok 500
returnIduuidİade · kimliği: order_return

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
line_not_foundHer satır bu siparişte olmalı.
no_refund_amountOnaylanan iadenin bir tutarı olur.
refund_exceeds_orderOnaylanan iadeler asla siparişin satış tutarını aşmaz.
return_not_foundBelirtilen iade bulunmalı.

Yayımladığı olaylar: retail.refund_granted, retail.customer_notification_requested

Neye yazar: order_granted_refund (insert) — Records the grant; order_granted_refund_line (insert) — Records the lines it is for

curl -X POST https://app.getera.io/api/v1/order_granted_refunds/actions/grant_refund \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"SALES_ORDER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.refund_granted",
    "retail.customer_notification_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orderGrantedRefunds.grantRefund({
  id: "SALES_ORDER_ID"
})
era order_granted_refunds grant_refund \
  --id "SALES_ORDER_ID"
tools/call
{
  "name": "era__retail__grant_refund",
  "arguments": {
    "id": "SALES_ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, line_not_found, no_refund_amount, refund_exceeds_order, return_not_found · 429 çok sık istek

retail.import_channel_order

Pazaryeri siparişini içe al — Pazaryerinden ya da başka bir mağazadan gelen siparişi yazar (ya da günceller): kalemler, dondurulmuş adresler, ayırdığı stok.

Gereken izin retail:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/actions/import_channel_order
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.import_channel_order

Girdi

AlanTürZorunluAçıklama
channelIduuidevetKanal · kimliği: channel
accountIduuidEntegrasyon hesabı
providerstringevetSağlayıcı · en çok 41
warehouseIduuidDepo · kimliği: warehouse
customerIduuidMüşteri · kimliği: customer
orderobject / arrayevetSipariş

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
malformed_orderSiparişin kimliği, bilinen bir durumu, para birimi ve kalemleri olmalı.
channel_not_foundSatış kanalı bu çalışma alanında yok.
unknown_orderYalnız durum güncellemesi, Era’da olmayan bir siparişi oluşturamaz.

Yayımladığı olaylar: retail.channel_order_imported, retail.channel_order_updated, retail.stock_low

Neye yazar: sales_order (upsert) — The order, keyed on (channel, external reference); sales_order_line (insert) — Its lines, each tied to a variant where one matched; allocation (upsert) — Holds the stock (may oversell; returned as a shortage); stock (update) — Allocated, released or taken off the shelf by a despatch; stock_movement (insert) — The despatch in the stock ledger; fulfilment (insert) — The despatch when the marketplace shipped it; fulfilment_line (insert) — What left, from which shelf

curl -X POST https://app.getera.io/api/v1/orders/actions/import_channel_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"channelId":"CHANNEL_ID","provider":"Provider","order":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.channel_order_imported",
    "retail.channel_order_updated",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.importChannelOrder({
  channelId: "CHANNEL_ID",
  provider: "Provider",
  order: {}
})
era orders import_channel_order --data '{"channelId":"CHANNEL_ID","provider":"Provider","order":{}}'
tools/call
{
  "name": "era__retail__import_channel_order",
  "arguments": {
    "channelId": "CHANNEL_ID",
    "provider": "Provider",
    "order": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 malformed_order, channel_not_found, unknown_order · 429 çok sık istek

retail.inspect_return

İadeyi incele — Yeniden satılabilecek olan belirli bir rafa, defter satırıyla geri döner; hasarlı olan dönmez.

Gereken izin retail:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/order_returns/{id}/actions/inspect_return
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.inspect_return

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · İade · kimliği: order_return
linesobject / arrayevetKalemler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
return_not_foundİade bulunmalı.
return_not_openYalnızca teslim alınmış bir iade incelenebilir.
line_not_foundHer satır bu iadede olmalı.
over_restockGeri gelenden fazlası rafa dönemez.
warehouse_not_foundStoğa geri alma, döneceği rafı belirtir.

Yayımladığı olaylar: retail.return_inspected, retail.stock_changed, retail.stock_low

Neye yazar: order_return_line (update) — Records the condition and the restock; order_return (update) — Marks it inspected; stock (upsert) — Puts resellable goods back; stock_movement (insert) — Explains the restock

curl -X POST https://app.getera.io/api/v1/order_returns/ORDER_RETURN_ID/actions/inspect_return \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"lines":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.return_inspected",
    "retail.stock_changed",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orderReturns.inspectReturn("ORDER_RETURN_ID", {
  lines: {}
})
era order_returns inspect_return ORDER_RETURN_ID --data '{"lines":{}}'
tools/call
{
  "name": "era__retail__inspect_return",
  "arguments": {
    "id": "ORDER_RETURN_ID",
    "lines": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 return_not_found, return_not_open, line_not_found, over_restock, warehouse_not_found · 429 çok sık istek

retail.open_shop

Mağazayı aç — Çalışma alanının adıyla, TL cinsinden açık bir satış kanalı; mağaza zaten açıksa onu gösterir.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/sales_channels/actions/open_shop
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.open_shop

Girdi

AlanTürZorunluAçıklama
namestringAd · Boş = çalışma alanının adı. · en çok 250
currencyCodestringPara birimi · ISO-4217. Boş = TRY. · en çok 3
defaultCountrystringVarsayılan ülke · Boş = TR. · en çok 2

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_currencyPara birimi bir ISO-4217 kodu olmalı.

Yayımladığı olaylar: retail.channel_saved

Neye yazar: channel (upsert) — Creates (or opens) the shop channel

curl -X POST https://app.getera.io/api/v1/sales_channels/actions/open_shop \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.channel_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.salesChannels.openShop({
  name: "Name"
})
era sales_channels open_shop \
  --name "Name"
tools/call
{
  "name": "era__retail__open_shop",
  "arguments": {
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_currency · 429 çok sık istek

retail.raise_abandoned_checkouts

Terk edilen sepetleri işaretle — Makine işi: adresi olan ve süre boyunca sessiz kalan her sepet bir kez bildirilir.

Gereken izin retail:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/checkouts/actions/raise_abandoned_checkouts
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.raise_abandoned_checkouts

Girdi

Bu işlem girdi almaz.

Yayımladığı olaylar: retail.checkout_abandoned

Neye yazar: checkout (update) — Records that the basket was flagged as abandoned

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek

retail.receive_return

İadeyi teslim al — Paket geldi. Sipariş iade edildi veya kısmen iade edildi olur; raf, incelemeyi bekler.

Gereken izin retail:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/order_returns/{id}/actions/receive_return
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.receive_return

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · İade · kimliği: order_return
linesobject / arrayKalemler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
return_not_foundİade bulunmalı.
return_not_openYalnızca talep edilmiş bir iade teslim alınabilir.
over_receiptGeri istenenden fazlası gelemez.

Yayımladığı olaylar: retail.return_received, retail.order_returned

Neye yazar: order_return_line (update) — Records what arrived; order_return (update) — Marks it received; sales_order (update) — Moves it to returned or partially returned

curl -X POST https://app.getera.io/api/v1/order_returns/ORDER_RETURN_ID/actions/receive_return \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"lines":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.return_received",
    "retail.order_returned"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orderReturns.receiveReturn("ORDER_RETURN_ID", {
  lines: {}
})
era order_returns receive_return ORDER_RETURN_ID --data '{"lines":{}}'
tools/call
{
  "name": "era__retail__receive_return",
  "arguments": {
    "id": "ORDER_RETURN_ID",
    "lines": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 return_not_found, return_not_open, over_receipt · 429 çok sık istek

retail.refresh_collection

Akıllı koleksiyonu yenile — Kuralı, o zamandan beri eklenen veya değişen ürünler için yeniden çalıştırır.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/collection_items/actions/refresh_collection
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.refresh_collection

Girdi

AlanTürZorunluAçıklama
iduuidevetKoleksiyon · kimliği: item_collection

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundTahsilat bulunmalı.
collection_not_smartYalnızca kurallı bir koleksiyon yenilenebilir.

Yayımladığı olaylar: retail.collection_items_changed

Neye yazar: item_collection_item (upsert) — Replaces the membership

curl -X POST https://app.getera.io/api/v1/collection_items/actions/refresh_collection \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"ITEM_COLLECTION_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.collection_items_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.collectionItems.refreshCollection({
  id: "ITEM_COLLECTION_ID"
})
era collection_items refresh_collection \
  --id "ITEM_COLLECTION_ID"
tools/call
{
  "name": "era__retail__refresh_collection",
  "arguments": {
    "id": "ITEM_COLLECTION_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, collection_not_smart · 429 çok sık istek

retail.reject_return

İadeyi reddet — İade kabul edilmez — süre dışında ya da satılan ürün değil.

Gereken izin retail:handle · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/order_returns/{id}/actions/reject_return
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.reject_return

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · İade · kimliği: order_return
reasonstringNeden · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
return_not_foundİade bulunmalı.
return_not_openYalnızca talep edilmiş bir iade reddedilebilir.

Yayımladığı olaylar: retail.return_rejected

Neye yazar: order_return (update) — Marks it rejected

curl -X POST https://app.getera.io/api/v1/order_returns/ORDER_RETURN_ID/actions/reject_return \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"reason":"Reason"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.return_rejected"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orderReturns.rejectReturn("ORDER_RETURN_ID", {
  reason: "Reason"
})
era order_returns reject_return ORDER_RETURN_ID \
  --reason "Reason"
tools/call
{
  "name": "era__retail__reject_return",
  "arguments": {
    "id": "ORDER_RETURN_ID",
    "reason": "Reason"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 return_not_found, return_not_open · 429 çok sık istek

retail.remove_order_discount

Personel indirimini kaldır — Kupon ve kampanyalar yeniden uygulanır.

Gereken izin retail:write · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/orders/{id}/actions/remove_order_discount
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.remove_order_discount

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_editableYalnızca taslak veya onaylanmamış bir sipariş indirimini değiştirir.

Yayımladığı olaylar: retail.order_discounts_applied

Neye yazar: sales_order (update) — Clears the discount and recomputes the totals; sales_order_line (update) — Rewrites the per-line snapshot; sales_order_discount (insert) — Records what applies now

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/remove_order_discount \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_discounts_applied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.removeOrderDiscount("ORDER_ID")
era orders remove_order_discount ORDER_ID
tools/call
{
  "name": "era__retail__remove_order_discount",
  "arguments": {
    "id": "ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_editable · 429 çok sık istek

retail.renew_checkout_reservation

Ödeme için stoğu ayır — Sepetteki ürünler için ayrılan stoğu on beş dakika uzatır.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/stock_reservations/actions/renew_checkout_reservation
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.renew_checkout_reservation

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSepet bulunmalı.
checkout_completingSiparişe dönüştürülmekte olan bir sepetin ayırma süresi uzatılamaz.
reservation_stock_unavailableStok takibi yapılan her ürün ayrılabilmeli; yeterli stok yok.

Yayımladığı olaylar: retail.stock_reserved

Neye yazar: stock_reservation (upsert) — Replaces the fifteen-minute stock hold

curl -X POST https://app.getera.io/api/v1/stock_reservations/actions/renew_checkout_reservation \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"token":"TOKEN_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.stock_reserved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.stockReservations.renewCheckoutReservation({
  token: "TOKEN_ID"
})
era stock_reservations renew_checkout_reservation \
  --token "TOKEN_ID"
tools/call
{
  "name": "era__retail__renew_checkout_reservation",
  "arguments": {
    "token": "TOKEN_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, checkout_completing, reservation_stock_unavailable · 429 çok sık istek

retail.request_return

İade aç — Müşteri bir şey geri gönderiyor. Gelene kadar hiçbir şey değişmez.

Gereken izin retail:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/order_returns/actions/request_return
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.request_return

Girdi

AlanTürZorunluAçıklama
iduuidevetSipariş · kimliği: sales_order
linesobject / arrayevetKalemler
reasonstringNeden · en çok 500
notestringNot · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_returnableHiç çıkmamış bir şey geri gelemez.
malformed_linesHangi satırların ve kaç tanesinin geri geldiğini belirtin.
line_not_foundHer satır bu siparişte olmalı.
over_returnÇıkandan ve zaten yolda olmayandan fazlası geri gelemez.

Yayımladığı olaylar: retail.return_requested

Neye yazar: order_return (insert) — Opens the return; order_return_line (insert) — Lists what is coming back

curl -X POST https://app.getera.io/api/v1/order_returns/actions/request_return \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"SALES_ORDER_ID","lines":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.return_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orderReturns.requestReturn({
  id: "SALES_ORDER_ID",
  lines: {}
})
era order_returns request_return --data '{"id":"SALES_ORDER_ID","lines":{}}'
tools/call
{
  "name": "era__retail__request_return",
  "arguments": {
    "id": "SALES_ORDER_ID",
    "lines": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_returnable, malformed_lines, line_not_found, over_return · 429 çok sık istek

retail.return_products

İade kaydet — Durum değişir; raf değişmez. İade edilen ürün hasarlı olabilir.

Gereken izin retail:handle · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/orders/{id}/actions/return_products
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.return_products

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
linesobject / arrayevetKalemler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_returnableHiç çıkmamış bir şey geri gelemez.
malformed_linesHangi satırların ve kaç tanesinin geri geldiğini belirtin.
line_not_foundHer satır bu siparişte olmalı.
over_returnÇıkandan fazlası geri gelemez.

Yayımladığı olaylar: retail.order_returned

Neye yazar: sales_order (update) — Moves it to returned or partially returned

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/return_products \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"lines":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_returned"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.returnProducts("ORDER_ID", {
  lines: {}
})
era orders return_products ORDER_ID --data '{"lines":{}}'
tools/call
{
  "name": "era__retail__return_products",
  "arguments": {
    "id": "ORDER_ID",
    "lines": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_returnable, malformed_lines, line_not_found, over_return · 429 çok sık istek

retail.save_channel

Satış kanalını kaydet — Satış yapılan bir yer: adı, adresi, para birimi ve ülkesi.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/sales_channels/{id}/actions/save_channel
API anahtarı ya da OAuth token · retail:manage
  • REST kısayolu: PATCH /api/v1/sales_channels/{id}
  • Asıl adres: POST /api/v1/actions/retail.save_channel

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Kanal · kimliği: channel
namestringevetAd · en çok 250
slugstringAdres · en çok 255
currencyCodestringPara birimi · ISO-4217, üç harf. · en çok 3
defaultCountrystringVarsayılan ülke · en çok 2

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_nameAd kullanılabilir bir adres üretmeli.
slug_takenAdres bu çalışma alanında boşta olmalı.
invalid_currencyPara birimi bir ISO-4217 kodu olmalı.
channel_not_foundKanal bulunmalı.
channel_currency_lockedİçinde fiyat olan bir kanal para birimini değiştiremez.

Yayımladığı olaylar: retail.channel_saved

Neye yazar: channel (upsert) — Creates or edits the channel

curl -X POST https://app.getera.io/api/v1/sales_channels/SALES_CHANNEL_ID/actions/save_channel \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.channel_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.salesChannels.saveChannel("SALES_CHANNEL_ID", {
  name: "Name"
})
era sales_channels save_channel SALES_CHANNEL_ID \
  --name "Name"
tools/call
{
  "name": "era__retail__save_channel",
  "arguments": {
    "id": "SALES_CHANNEL_ID",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_name, slug_taken, invalid_currency, channel_not_found, channel_currency_locked · 429 çok sık istek

retail.save_collection

Koleksiyonu kaydet — Elle sıralanan bir vitrin listesi — “Yaz”, “Ekibin seçtikleri”.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/collections/{id}/actions/save_collection
API anahtarı ya da OAuth token · retail:write
  • REST kısayolu: PATCH /api/v1/collections/{id}
  • Asıl adres: POST /api/v1/actions/retail.save_collection

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Koleksiyon · kimliği: item_collection
namestringevetAd · en çok 250
slugstringAdres · en çok 255
descriptionstringAçıklama · en çok 4000
seoTitlestringSEO başlığı · en çok 200
seoDescriptionstringSEO açıklaması · en çok 500
backgroundFileIduuidKapak görseli · kimliği: file
backgroundAltstringAfiş açıklaması · en çok 250

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_nameAd kullanılabilir bir adres üretmeli.
slug_takenAdres bu çalışma alanında boşta olmalı.
not_foundBelirtildiğinde koleksiyon bulunmalı.

Yayımladığı olaylar: retail.collection_saved

Neye yazar: item_collection (upsert) — Creates or edits the collection

curl -X POST https://app.getera.io/api/v1/collections/COLLECTION_ID/actions/save_collection \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.collection_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.collections.saveCollection("COLLECTION_ID", {
  name: "Name"
})
era collections save_collection COLLECTION_ID \
  --name "Name"
tools/call
{
  "name": "era__retail__save_collection",
  "arguments": {
    "id": "COLLECTION_ID",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_name, slug_taken, not_found · 429 çok sık istek

retail.save_shipping_method

Teslimat ücretini kaydet — Sipariş tutarına veya ağırlığa göre fiyatlanan bir teslimat yolu.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/shipping_methods/{id}/actions/save_shipping_method
API anahtarı ya da OAuth token · retail:manage
  • REST kısayolu: PATCH /api/v1/shipping_methods/{id}
  • Asıl adres: POST /api/v1/actions/retail.save_shipping_method

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Oran · kimliği: shipping_method
shippingZoneIduuidevetBölge · kimliği: shipping_zone
namestringevetAd · en çok 100
typestring (enum)Fiyatlandıran · İzin verilen değerler: price, weight
descriptionstringAçıklama · en çok 2000
minimumOrderWeightGramsnumberBaşlangıç (gram) · en az 0
maximumOrderWeightGramsnumberBitiş (gram) · en az 0
minimumDeliveryDaysnumberEn hızlı (gün) · en az 0
maximumDeliveryDaysnumberEn yavaş (gün) · en az 0
taxClassIduuidVergi sınıfı · Boş: ülkenin varsayılan oranı. · kimliği: tax_class

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
zone_not_foundBölge bulunmalı.
tax_class_not_foundVergi sınıfı var olmalı ve arşivlenmemiş olmalı.
not_foundBelirtildiğinde ücret bulunmalı.
weight_on_price_methodFiyata dayalı bir ücret ağırlık aralığı taşımaz.
range_invertedAralığın küçük ucu büyük ucunu aşmamalı.

Yayımladığı olaylar: retail.shipping_method_saved

Neye yazar: shipping_method (upsert) — Creates or edits the rate

curl -X POST https://app.getera.io/api/v1/shipping_methods/SHIPPING_METHOD_ID/actions/save_shipping_method \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"shippingZoneId":"SHIPPING_ZONE_ID","name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.shipping_method_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.shippingMethods.saveShippingMethod("SHIPPING_METHOD_ID", {
  shippingZoneId: "SHIPPING_ZONE_ID",
  name: "Name"
})
era shipping_methods save_shipping_method SHIPPING_METHOD_ID \
  --shipping-zone-id "SHIPPING_ZONE_ID" \
  --name "Name"
tools/call
{
  "name": "era__retail__save_shipping_method",
  "arguments": {
    "id": "SHIPPING_METHOD_ID",
    "shippingZoneId": "SHIPPING_ZONE_ID",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 zone_not_found, tax_class_not_found, not_found, weight_on_price_method, range_inverted · 429 çok sık istek

retail.save_shipping_zone

Kargo bölgesini kaydet — Aynı teslimat ücretlerini paylaşan bir ülke grubu.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/shipping_zones/{id}/actions/save_shipping_zone
API anahtarı ya da OAuth token · retail:manage
  • REST kısayolu: PATCH /api/v1/shipping_zones/{id}
  • Asıl adres: POST /api/v1/actions/retail.save_shipping_zone

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Bölge · kimliği: shipping_zone
namestringevetAd · en çok 100
descriptionstringAçıklama · en çok 2000
countriesobject / arrayÜlkeler
isDefaultbooleanDiğer her yer
channelIdsobject / arrayKanallar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_countryHer ülke iki harfli bir kod olmalı.
not_foundBelirtildiğinde bölge bulunmalı.
channel_not_foundHer kanal bulunmalı.

Yayımladığı olaylar: retail.shipping_zone_saved

Neye yazar: shipping_zone (upsert) — Creates or edits the zone

curl -X POST https://app.getera.io/api/v1/shipping_zones/SHIPPING_ZONE_ID/actions/save_shipping_zone \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.shipping_zone_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.shippingZones.saveShippingZone("SHIPPING_ZONE_ID", {
  name: "Name"
})
era shipping_zones save_shipping_zone SHIPPING_ZONE_ID \
  --name "Name"
tools/call
{
  "name": "era__retail__save_shipping_zone",
  "arguments": {
    "id": "SHIPPING_ZONE_ID",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_country, not_found, channel_not_found · 429 çok sık istek

retail.set_channel_active

Kanalı aç veya kapat — Kapalı bir kanal sepet ve sipariş almaz.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/sales_channels/{id}/actions/set_channel_active
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.set_channel_active

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Kanal · kimliği: channel
isActivebooleanevetAç

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
channel_has_open_workAçık sepeti veya siparişi olan bir kanal kapatılamaz.

Yayımladığı olaylar: retail.channel_saved

Neye yazar: channel (update) — Opens or closes the channel

curl -X POST https://app.getera.io/api/v1/sales_channels/SALES_CHANNEL_ID/actions/set_channel_active \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"isActive":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.channel_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.salesChannels.setChannelActive("SALES_CHANNEL_ID", {
  isActive: true
})
era sales_channels set_channel_active SALES_CHANNEL_ID \
  --is-active true
tools/call
{
  "name": "era__retail__set_channel_active",
  "arguments": {
    "id": "SALES_CHANNEL_ID",
    "isActive": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, channel_has_open_work · 429 çok sık istek

retail.set_channel_warehouses

Kanalın depolarını seç — Bir kanalın stoğu hangi depolardan, hangi sırayla aldığı.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/sales_channel_warehouses/actions/set_channel_warehouses
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.set_channel_warehouses

Girdi

AlanTürZorunluAçıklama
channelIduuidevetKanal · kimliği: channel
warehouseIdsobject / arrayevetDepolar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
warehouse_not_foundHer depo bulunmalı.

Yayımladığı olaylar: retail.channel_warehouses_changed

Neye yazar: channel_warehouse (upsert) — Replaces the channel’s warehouse order

curl -X POST https://app.getera.io/api/v1/sales_channel_warehouses/actions/set_channel_warehouses \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"channelId":"CHANNEL_ID","warehouseIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.channel_warehouses_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.salesChannelWarehouses.setChannelWarehouses({
  channelId: "CHANNEL_ID",
  warehouseIds: {}
})
era sales_channel_warehouses set_channel_warehouses --data '{"channelId":"CHANNEL_ID","warehouseIds":{}}'
tools/call
{
  "name": "era__retail__set_channel_warehouses",
  "arguments": {
    "channelId": "CHANNEL_ID",
    "warehouseIds": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, warehouse_not_found · 429 çok sık istek

retail.set_checkout_delivery

Teslimatı seç — Adres, ücret ve sunuluyorsa teslim alma noktası.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/checkouts/actions/set_checkout_delivery
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_checkout_delivery

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet
shippingAddressIduuidTeslimat adresi · kimliği: address
billingAddressIduuidFatura adresi · kimliği: address
shippingMethodIduuidKargo ücreti · kimliği: shipping_method
collectionPointIduuidTeslim alma noktası · kimliği: warehouse

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSepet bulunmalı.
shipping_method_not_availableBu kargo ücreti bu adres ve sipariş tutarı için geçerli olmalı.
collection_point_unavailableBu konum teslim alma sunmalı.

Yayımladığı olaylar: retail.checkout_updated

Neye yazar: checkout (update) — Writes the delivery choice

curl -X POST https://app.getera.io/api/v1/checkouts/actions/set_checkout_delivery \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"token":"TOKEN_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.checkout_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.checkouts.setCheckoutDelivery({
  token: "TOKEN_ID"
})
era checkouts set_checkout_delivery \
  --token "TOKEN_ID"
tools/call
{
  "name": "era__retail__set_checkout_delivery",
  "arguments": {
    "token": "TOKEN_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, shipping_method_not_available, collection_point_unavailable · 429 çok sık istek

retail.set_checkout_lines

Sepeti değiştir — Satır ekle, değiştir veya kaldır. Sıfır miktar satırı kaldırır.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/checkout_lines/actions/set_checkout_lines
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_checkout_lines

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet
linesobject / arrayevetKalemler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSepet bulunmalı.
checkout_completingSiparişe dönüştürülmekte olan bir sepet düzenlenemez.
malformed_linesHer satır bir varyant ve miktar gerektirir.
variant_not_pricedBu kanalda fiyatı olmayan bir varyant burada satılamaz.
variant_not_foundHer varyant bulunmalı.
reservation_stock_unavailableStok takibi yapılan her ürün on beş dakikalığına ayrılabilmeli; yeterli stok yok.
gift_line_lockedKampanyanın hediye satırı elle düzenlenemez.

Yayımladığı olaylar: retail.checkout_updated

Neye yazar: checkout_line (upsert) — Writes the basket lines; stock_reservation (upsert) — Replaces the basket stock hold

curl -X POST https://app.getera.io/api/v1/checkout_lines/actions/set_checkout_lines \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"token":"TOKEN_ID","lines":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.checkout_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.checkoutLines.setCheckoutLines({
  token: "TOKEN_ID",
  lines: {}
})
era checkout_lines set_checkout_lines --data '{"token":"TOKEN_ID","lines":{}}'
tools/call
{
  "name": "era__retail__set_checkout_lines",
  "arguments": {
    "token": "TOKEN_ID",
    "lines": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, checkout_completing, malformed_lines, variant_not_priced, variant_not_found, reservation_stock_unavailable, gift_line_locked · 429 çok sık istek

retail.set_collection_items

Koleksiyonun içeriğini seç — Tüm içerik, mağaza sitesinin çizdiği sırayla.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/collection_items/actions/set_collection_items
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_collection_items

Girdi

AlanTürZorunluAçıklama
iduuidevetKoleksiyon · kimliği: item_collection
itemIdsobject / arrayevetÖğe

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundTahsilat bulunmalı.
item_not_foundHer katalog kaydı bulunmalı.
collection_is_smartKurallı koleksiyon elle seçilmez.

Yayımladığı olaylar: retail.collection_items_changed

Neye yazar: item_collection_item (upsert) — Replaces the membership

curl -X POST https://app.getera.io/api/v1/collection_items/actions/set_collection_items \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"ITEM_COLLECTION_ID","itemIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.collection_items_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.collectionItems.setCollectionItems({
  id: "ITEM_COLLECTION_ID",
  itemIds: {}
})
era collection_items set_collection_items --data '{"id":"ITEM_COLLECTION_ID","itemIds":{}}'
tools/call
{
  "name": "era__retail__set_collection_items",
  "arguments": {
    "id": "ITEM_COLLECTION_ID",
    "itemIds": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, item_not_found, collection_is_smart · 429 çok sık istek

retail.set_collection_rule

Koleksiyonu bir kuralla doldur — Akıllı koleksiyon: üyeleri eşleşen her şeydir — bir kategori, marka, fiyat aralığı, ad.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/collections/{id}/actions/set_collection_rule
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_collection_rule

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Koleksiyon · kimliği: item_collection
ruleobject / arrayKural

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundTahsilat bulunmalı.
invalid_ruleKuralın en az bir koşulu ve makul bir fiyat aralığı olmalı.

Yayımladığı olaylar: retail.collection_items_changed

Neye yazar: item_collection (update) — Writes the rule; item_collection_item (upsert) — Replaces the membership

curl -X POST https://app.getera.io/api/v1/collections/COLLECTION_ID/actions/set_collection_rule \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"rule":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.collection_items_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.collections.setCollectionRule("COLLECTION_ID", {
  rule: {}
})
era collections set_collection_rule COLLECTION_ID --data '{"rule":{}}'
tools/call
{
  "name": "era__retail__set_collection_rule",
  "arguments": {
    "id": "COLLECTION_ID",
    "rule": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, invalid_rule · 429 çok sık istek

retail.set_item_listing

Kanalda listele — Bir katalog kaydının bir kanalda yayımlanmış, görünür ve satışta olup olmadığı.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/product_listings/actions/set_item_listing
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_item_listing

Girdi

AlanTürZorunluAçıklama
itemIduuidevetKalem · kimliği: item
channelIduuidKanal · Boş = mağaza. · kimliği: channel
isPublishedbooleanYayımlandı
visibleInListingsbooleanListelerde göster
availableForPurchaseAtdate-timeSatış başlangıcı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
item_not_foundKatalog kaydı bulunmalı.
store_missingMağazan yok — açayım mı?

Yayımladığı olaylar: retail.listing_changed

Neye yazar: item_channel_listing (upsert) — Writes the channel listing

curl -X POST https://app.getera.io/api/v1/product_listings/actions/set_item_listing \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"itemId":"ITEM_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.listing_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.productListings.setItemListing({
  itemId: "ITEM_ID"
})
era product_listings set_item_listing \
  --item-id "ITEM_ID"
tools/call
{
  "name": "era__retail__set_item_listing",
  "arguments": {
    "itemId": "ITEM_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, item_not_found, store_missing · 429 çok sık istek

retail.set_order_discount

Personel indirimi ver — Taslak veya onaylanmamış bir siparişe gerekçesiyle bir yüzde veya tutar indirimi. Bu varken sipariş kuponu ve kampanyalar devre dışı kalır.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/{id}/actions/set_order_discount
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_order_discount

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
valueTypestring (enum)evetİndirim · İzin verilen değerler: percentage, fixed
valuenumberevetDeğer (yüzde veya kuruş) · en az 0
reasonstringNeden · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_editableYalnızca taslak veya onaylanmamış bir siparişe indirim yapılır.
invalid_discount_valueSıfırın üstünde; yüzde en fazla 100, tutar en fazla indirimsiz toplam.

Yayımladığı olaylar: retail.order_discounts_applied

Neye yazar: sales_order (update) — Writes the discount and the new totals; sales_order_line (update) — Spreads the discount over the lines; sales_order_discount (insert) — Records what was applied

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/set_order_discount \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"valueType":"percentage","value":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_discounts_applied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.setOrderDiscount("ORDER_ID", {
  valueType: "percentage",
  value: 1
})
era orders set_order_discount ORDER_ID \
  --value-type "percentage" \
  --value 1
tools/call
{
  "name": "era__retail__set_order_discount",
  "arguments": {
    "id": "ORDER_ID",
    "valueType": "percentage",
    "value": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_editable, invalid_discount_value · 429 çok sık istek

retail.set_order_lines

Siparişin satırlarını değiştir — Yalnızca taslak veya onaylanmamışken.

Gereken izin retail:write · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/orders/{id}/actions/set_order_lines
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_order_lines

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
linesobject / arrayevetKalemler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_editableYalnızca taslak ve onaylanmamış siparişlerin satırları değişebilir.
malformed_linesHer satır bir varyant ve miktar gerektirir.
variant_not_foundHer varyant bulunmalı.
variant_not_pricedFiyatı olmayan bir varyant için fiyat yazılmalı.

Yayımladığı olaylar: retail.order_lines_changed, retail.order_discounts_applied

Neye yazar: sales_order_line (upsert) — Replaces the lines, with promotions and the coupon applied; allocation (delete) — Releases what the old lines held; sales_order (update) — Recomputes the totals; sales_order_discount (insert) — Records what was applied

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/set_order_lines \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"lines":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_lines_changed",
    "retail.order_discounts_applied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.setOrderLines("ORDER_ID", {
  lines: {}
})
era orders set_order_lines ORDER_ID --data '{"lines":{}}'
tools/call
{
  "name": "era__retail__set_order_lines",
  "arguments": {
    "id": "ORDER_ID",
    "lines": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_editable, malformed_lines, variant_not_found, variant_not_priced · 429 çok sık istek

retail.set_order_voucher

Kupon uygula — Taslak veya onaylanmamış bir siparişe kupon kodu ekler ya da kaldırır. Kupon varken sipariş kampanyaları devre dışı kalır.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/{id}/actions/set_order_voucher
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_order_voucher

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
codestringKupon kodu · en çok 255

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
order_not_editableYalnızca taslak veya onaylanmamış bir sipariş kuponunu değiştirir.
voucher_not_foundKod bir kuponu belirtmeli.
voucher_not_applicableKupon devam ediyor olmalı, kanalda fiyatlanmış olmalı ve koşulları sağlanmalı.
voucher_usage_exceededKod tükenmemiş olmalı.

Yayımladığı olaylar: retail.order_discounts_applied

Neye yazar: sales_order (update) — Writes the code and the new totals; sales_order_line (update) — Writes the per-line discount snapshot; sales_order_discount (insert) — Records what was applied

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/set_order_voucher \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"code":"Coupon code"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_discounts_applied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.setOrderVoucher("ORDER_ID", {
  code: "Coupon code"
})
era orders set_order_voucher ORDER_ID \
  --code "Coupon code"
tools/call
{
  "name": "era__retail__set_order_voucher",
  "arguments": {
    "id": "ORDER_ID",
    "code": "Coupon code"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, order_not_editable, voucher_not_found, voucher_not_applicable, voucher_usage_exceeded · 429 çok sık istek

retail.set_postal_code_rules

Posta kodu kurallarını belirle — Kural yoksa her yer geçerlidir; kural eklemek ücretin geçtiği yeri kısıtlar.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/shipping_method_postal_code_rules/actions/set_postal_code_rules
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.set_postal_code_rules

Girdi

AlanTürZorunluAçıklama
shippingMethodIduuidevetOran · kimliği: shipping_method
rulesobject / arrayevetKurallar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundOran bulunmalı.
malformed_rulesHer kuralın bir başlangıç kodu olmalı.
duplicate_ruleAynı aralık iki kez görünemez.

Yayımladığı olaylar: retail.shipping_rules_changed

Neye yazar: shipping_method_postal_code_rule (upsert) — Replaces the rate’s postal-code rules

curl -X POST https://app.getera.io/api/v1/shipping_method_postal_code_rules/actions/set_postal_code_rules \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"shippingMethodId":"SHIPPING_METHOD_ID","rules":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.shipping_rules_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.shippingMethodPostalCodeRules.setPostalCodeRules({
  shippingMethodId: "SHIPPING_METHOD_ID",
  rules: {}
})
era shipping_method_postal_code_rules set_postal_code_rules --data '{"shippingMethodId":"SHIPPING_METHOD_ID","rules":{}}'
tools/call
{
  "name": "era__retail__set_postal_code_rules",
  "arguments": {
    "shippingMethodId": "SHIPPING_METHOD_ID",
    "rules": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, malformed_rules, duplicate_rule · 429 çok sık istek

retail.set_preorder

Ön siparişle sat — Mallar rafa gelmeden, kanal başına ve toplamda bir sınıra kadar sipariş al.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/variant_preorders/actions/set_preorder
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.set_preorder

Girdi

AlanTürZorunluAçıklama
itemVariantIduuidevetVaryant · kimliği: item_variant
enabledbooleanevetÖn siparişte
endDatedate-timeBitiş
globalThresholdnumberLimit, tüm kanallar · en az 0
channelThresholdsobject / arrayKanal başına sınırlar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
variant_not_foundVaryant bulunmalı.
invalid_preorderÖn sipariş gelecekte biter.
preorder_has_ordersÖn sipariş tutan siparişler kapatılarak değil, ön sipariş bitirilerek taşınır.
channel_not_foundHer kanal bulunmalı.

Yayımladığı olaylar: retail.preorder_changed

Neye yazar: variant_preorder (upsert) — Writes the preorder; item_variant_channel_listing (upsert) — Writes the per-channel limit

curl -X POST https://app.getera.io/api/v1/variant_preorders/actions/set_preorder \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"itemVariantId":"ITEM_VARIANT_ID","enabled":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.preorder_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.variantPreorders.setPreorder({
  itemVariantId: "ITEM_VARIANT_ID",
  enabled: true
})
era variant_preorders set_preorder \
  --item-variant-id "ITEM_VARIANT_ID" \
  --enabled true
tools/call
{
  "name": "era__retail__set_preorder",
  "arguments": {
    "itemVariantId": "ITEM_VARIANT_ID",
    "enabled": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 variant_not_found, invalid_preorder, preorder_has_orders, channel_not_found · 429 çok sık istek

retail.set_shipping_excluded_items

Ürünleri teslimat ücretinden hariç tut — Bunlardan birini içeren siparişe bu ücret sunulmaz.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/shipping_method_excluded_items/actions/set_shipping_excluded_items
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.set_shipping_excluded_items

Girdi

AlanTürZorunluAçıklama
shippingMethodIduuidevetOran · kimliği: shipping_method
itemIdsobject / arrayevetÜrünler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundOran bulunmalı.
item_not_foundHer ürün bulunmalı.

Yayımladığı olaylar: retail.shipping_exclusions_changed

Neye yazar: shipping_method_excluded_item (upsert) — Replaces the rate’s exclusions

curl -X POST https://app.getera.io/api/v1/shipping_method_excluded_items/actions/set_shipping_excluded_items \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"shippingMethodId":"SHIPPING_METHOD_ID","itemIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.shipping_exclusions_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.shippingMethodExcludedItems.setShippingExcludedItems({
  shippingMethodId: "SHIPPING_METHOD_ID",
  itemIds: {}
})
era shipping_method_excluded_items set_shipping_excluded_items --data '{"shippingMethodId":"SHIPPING_METHOD_ID","itemIds":{}}'
tools/call
{
  "name": "era__retail__set_shipping_excluded_items",
  "arguments": {
    "shippingMethodId": "SHIPPING_METHOD_ID",
    "itemIds": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, item_not_found · 429 çok sık istek

retail.set_shipping_price

Teslimat ücretini kanalda fiyatla — Teslimatın ne kadar tuttuğu ve hangi sipariş tutarları arasında geçerli olduğu.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/shipping_method_channel_listings/actions/set_shipping_price
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.set_shipping_price

Girdi

AlanTürZorunluAçıklama
shippingMethodIduuidevetOran · kimliği: shipping_method
channelIduuidevetKanal · kimliği: channel
priceAmountnumber (money)evetFiyat (küçük birim) · en az 0
minimumOrderPriceAmountnumber (money)Sipariş tutarından itibaren · en az 0
maximumOrderPriceAmountnumber (money)Sipariş tutarına kadar · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
not_foundOran bulunmalı.
range_invertedEn küçük sipariş tutarı en büyüğünü aşmamalı.

Yayımladığı olaylar: retail.shipping_price_changed

Neye yazar: shipping_method_channel_listing (upsert) — Writes the channel price

curl -X POST https://app.getera.io/api/v1/shipping_method_channel_listings/actions/set_shipping_price \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"shippingMethodId":"SHIPPING_METHOD_ID","channelId":"CHANNEL_ID","priceAmount":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.shipping_price_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.shippingMethodChannelListings.setShippingPrice({
  shippingMethodId: "SHIPPING_METHOD_ID",
  channelId: "CHANNEL_ID",
  priceAmount: 1
})
era shipping_method_channel_listings set_shipping_price \
  --shipping-method-id "SHIPPING_METHOD_ID" \
  --channel-id "CHANNEL_ID" \
  --price-amount 1
tools/call
{
  "name": "era__retail__set_shipping_price",
  "arguments": {
    "shippingMethodId": "SHIPPING_METHOD_ID",
    "channelId": "CHANNEL_ID",
    "priceAmount": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, not_found, range_inverted · 429 çok sık istek

retail.set_stock

Stok say — Bir depoda, bir varyant için raftaki sayı.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/stocks/actions/set_stock
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_stock

Girdi

AlanTürZorunluAçıklama
warehouseIduuidevetDepo · kimliği: warehouse
itemVariantIduuidevetVaryant · kimliği: item_variant
quantitynumberevetMiktar
notestringNot · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
warehouse_not_foundDepo bulunmalı.
variant_not_foundVaryant bulunmalı.
below_allocatedMiktar, zaten ayrılmış olanın altına düşemez.

Yayımladığı olaylar: retail.stock_changed, retail.stock_low

Neye yazar: stock (upsert) — Writes the count; stock_movement (insert) — Records the stocktake difference in the ledger

curl -X POST https://app.getera.io/api/v1/stocks/actions/set_stock \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"warehouseId":"WAREHOUSE_ID","itemVariantId":"ITEM_VARIANT_ID","quantity":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.stock_changed",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.stocks.setStock({
  warehouseId: "WAREHOUSE_ID",
  itemVariantId: "ITEM_VARIANT_ID",
  quantity: 1
})
era stocks set_stock \
  --warehouse-id "WAREHOUSE_ID" \
  --item-variant-id "ITEM_VARIANT_ID" \
  --quantity 1
tools/call
{
  "name": "era__retail__set_stock",
  "arguments": {
    "warehouseId": "WAREHOUSE_ID",
    "itemVariantId": "ITEM_VARIANT_ID",
    "quantity": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 warehouse_not_found, variant_not_found, below_allocated · 429 çok sık istek

retail.set_stock_policy

Güvenlik stoğu ayır — Bu raftakilerden kaçının hiçbir siparişe söz verilmeyeceği.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/stocks/actions/set_stock_policy
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.set_stock_policy

Girdi

AlanTürZorunluAçıklama
warehouseIduuidevetDepo · kimliği: warehouse
itemVariantIduuidevetVaryant · kimliği: item_variant
safetyStocknumberevetGüvenlik stoku · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
stock_not_foundBu varyant depoda bulunmalı.

Yayımladığı olaylar: retail.stock_policy_changed, retail.stock_low

Neye yazar: stock (update) — Writes the safety stock

curl -X POST https://app.getera.io/api/v1/stocks/actions/set_stock_policy \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"warehouseId":"WAREHOUSE_ID","itemVariantId":"ITEM_VARIANT_ID","safetyStock":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.stock_policy_changed",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.stocks.setStockPolicy({
  warehouseId: "WAREHOUSE_ID",
  itemVariantId: "ITEM_VARIANT_ID",
  safetyStock: 1
})
era stocks set_stock_policy \
  --warehouse-id "WAREHOUSE_ID" \
  --item-variant-id "ITEM_VARIANT_ID" \
  --safety-stock 1
tools/call
{
  "name": "era__retail__set_stock_policy",
  "arguments": {
    "warehouseId": "WAREHOUSE_ID",
    "itemVariantId": "ITEM_VARIANT_ID",
    "safetyStock": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 stock_not_found · 429 çok sık istek

retail.set_tracking

Takip numarası gir — Müşterinin kargoyu takip ettiği numara.

Gereken izin retail:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/fulfilments/{id}/actions/set_tracking
API anahtarı ya da OAuth token · retail:handle
  • Asıl adres: POST /api/v1/actions/retail.set_tracking

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Gönderi · kimliği: fulfilment
trackingNumberstringevetTakip numarası · en çok 255
carrierstringKargo firması · en çok 120
trackingUrlstringTakip bağlantısı · en çok 1000
notifyCustomerbooleanMüşteriye bildir

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundGönderi bulunmalı.

Yayımladığı olaylar: retail.fulfilment_tracking_updated, retail.customer_notification_requested

Neye yazar: fulfilment (update) — Writes the carrier, tracking number and link

curl -X POST https://app.getera.io/api/v1/fulfilments/FULFILMENT_ID/actions/set_tracking \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"trackingNumber":"Tracking number"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.fulfilment_tracking_updated",
    "retail.customer_notification_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.fulfilments.setTracking("FULFILMENT_ID", {
  trackingNumber: "Tracking number"
})
era fulfilments set_tracking FULFILMENT_ID \
  --tracking-number "Tracking number"
tools/call
{
  "name": "era__retail__set_tracking",
  "arguments": {
    "id": "FULFILMENT_ID",
    "trackingNumber": "Tracking number"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

retail.set_variant_price

Varyantı kanalda fiyatla — Kanala özel fiyat. Yoksa katalog liste fiyatı geçerlidir.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/variant_listings/actions/set_variant_price
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.set_variant_price

Girdi

AlanTürZorunluAçıklama
itemVariantIduuidevetVaryant · kimliği: item_variant
channelIduuidevetKanal · kimliği: channel
priceAmountnumber (money)Fiyat (küçük birim) · en az 0
costPriceAmountnumber (money)Maliyet (küçük birim) · en az 0
priorPriceAmountnumber (money)Eski fiyat (kuruş) · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
channel_not_foundKanal bulunmalı.
variant_not_foundVaryant bulunmalı.

Yayımladığı olaylar: retail.channel_price_changed

Neye yazar: item_variant_channel_listing (upsert) — Writes the price override

curl -X POST https://app.getera.io/api/v1/variant_listings/actions/set_variant_price \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"itemVariantId":"ITEM_VARIANT_ID","channelId":"CHANNEL_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.channel_price_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.variantListings.setVariantPrice({
  itemVariantId: "ITEM_VARIANT_ID",
  channelId: "CHANNEL_ID"
})
era variant_listings set_variant_price \
  --item-variant-id "ITEM_VARIANT_ID" \
  --channel-id "CHANNEL_ID"
tools/call
{
  "name": "era__retail__set_variant_price",
  "arguments": {
    "itemVariantId": "ITEM_VARIANT_ID",
    "channelId": "CHANNEL_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 channel_not_found, variant_not_found · 429 çok sık istek

retail.set_warehouse_zones

Deponun hizmet verdiği bölgeleri seç — Bir depo yalnızca bölgelerinin kapsadığı ülkelere gönderir.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/warehouse_shipping_zones/actions/set_warehouse_zones
API anahtarı ya da OAuth token · retail:manage
  • Asıl adres: POST /api/v1/actions/retail.set_warehouse_zones

Girdi

AlanTürZorunluAçıklama
warehouseIduuidevetDepo · kimliği: warehouse
shippingZoneIdsobject / arrayevetKargo bölgeleri

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundDepo bulunmalı.
zone_not_foundHer kargo bölgesi bulunmalı.

Yayımladığı olaylar: retail.warehouse_zones_changed

Neye yazar: warehouse_shipping_zone (upsert) — Replaces the zone assignment

curl -X POST https://app.getera.io/api/v1/warehouse_shipping_zones/actions/set_warehouse_zones \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"warehouseId":"WAREHOUSE_ID","shippingZoneIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.warehouse_zones_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.warehouseShippingZones.setWarehouseZones({
  warehouseId: "WAREHOUSE_ID",
  shippingZoneIds: {}
})
era warehouse_shipping_zones set_warehouse_zones --data '{"warehouseId":"WAREHOUSE_ID","shippingZoneIds":{}}'
tools/call
{
  "name": "era__retail__set_warehouse_zones",
  "arguments": {
    "warehouseId": "WAREHOUSE_ID",
    "shippingZoneIds": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, zone_not_found · 429 çok sık istek

retail.site_cart_add

Sepete ekle (site) — Ziyaretçi bir ürünü sepetine koyar; sepeti yoksa sitenin satış kanalında açılır.

Gereken izin retail:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/checkouts/actions/site_cart_add
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.site_cart_add

Girdi

AlanTürZorunluAçıklama
tokenuuidSepet
itemVariantIduuidevetVaryant · kimliği: item_variant
quantitynumberMiktar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
shop_closedMağaza şu anda satışa kapalı.
not_for_saleBu ürün satışta değil.
bad_quantityAdet 0 ile 99 arasında bir tam sayı olmalı.

Yayımladığı olaylar: retail.checkout_created, retail.checkout_updated

Neye yazar: checkout (insert) — Opens the basket when there is none; checkout_line (upsert) — Adds the quantity to the line; stock_reservation (upsert) — Holds tracked stock for fifteen minutes

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 shop_closed, not_for_sale, bad_quantity · 429 çok sık istek

retail.site_cart_claim

Giriş yapınca sepetimi koru — Misafir sepeti giriş yapan müşterinin olur; daha önce bıraktığı sepetin ürünleri de eklenir.

Gereken izin retail:write · siler ya da geri alınamaz · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/checkout_lines/actions/site_cart_claim
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.site_cart_claim

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
basket_not_foundSepet bulunamadı ya da başka birine ait.

Yayımladığı olaylar: retail.checkout_updated

Neye yazar: checkout (update) — Puts the customer on the basket; checkout_line (upsert) — Folds in the older basket’s lines; checkout (delete) — Removes the older basket

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 basket_not_found · 429 çok sık istek

retail.site_cart_set

Sepet satırını değiştir (site) — Ziyaretçi sepetteki bir ürünün adedini değiştirir; 0 satırı kaldırır.

Gereken izin retail:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/checkout_lines/actions/site_cart_set
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.site_cart_set

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet
itemVariantIduuidevetVaryant · kimliği: item_variant
quantitynumberevetMiktar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
basket_not_foundSepet bulunamadı.
checkout_completingSiparişe dönüştürülmekte olan bir sepet değiştirilemez.
bad_quantityAdet 0 ile 99 arasında bir tam sayı olmalı.
not_for_saleBu ürün satışta değil.

Yayımladığı olaylar: retail.checkout_updated

Neye yazar: checkout_line (upsert) — Sets or removes the line; stock_reservation (upsert) — Re-holds the basket’s stock

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 basket_not_found, checkout_completing, bad_quantity, not_for_sale · 429 çok sık istek

retail.site_checkout_delivery

Teslimat seç (site) — Site sepeti adresine hizmet veren bir kargo seçeneği ya da kanalın bir teslim alma noktasını seçer.

Gereken izin retail:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/checkouts/actions/site_checkout_delivery
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.site_checkout_delivery

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet
shippingMethodIduuidKargo ücreti · kimliği: shipping_method
pickupPointIduuidTeslim alma noktası · kimliği: warehouse

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
basket_not_foundSepet bulunamadı.
checkout_completingSiparişe dönüştürülmekte olan bir sepet değiştirilemez.
delivery_missingBir kargo seçeneği ya da teslim alma noktası seçilmeli.
collection_point_unavailableBu teslim alma noktası bu mağaza için kullanılamıyor.

Yayımladığı olaylar: retail.checkout_updated

Neye yazar: checkout (update) — Writes the delivery and its charge

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 basket_not_found, checkout_completing, delivery_missing, collection_point_unavailable · 429 çok sık istek

retail.site_checkout_details

Ödeme bilgilerini gir (site) — Site sepetinin e-postası, müşterisi ve teslimat adresi; uygun teslimat seçeneklerini ve teslim alma noktalarını döndürür.

Gereken izin retail:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/checkouts/actions/site_checkout_details
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.site_checkout_details

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet
emailstringevetE-posta · en çok 320
customerIduuidevetMüşteri · kimliği: customer
addressIduuidTeslimat adresi · kimliği: address
notestringNot · en çok 1000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
basket_not_foundSepet bulunamadı.
checkout_completingSiparişe dönüştürülmekte olan bir sepet değiştirilemez.
invalid_emailE-posta adresi geçerli olmalı.
customer_mismatchMüşteri bilgisi, girilen e-posta ya da giriş yapan hesapla eşleşmiyor.
address_not_foundAdres bu ödeme adımında bulunamadı.

Yayımladığı olaylar: retail.checkout_updated

Neye yazar: checkout (update) — Writes the email, the customer and the address

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 basket_not_found, checkout_completing, invalid_email, customer_mismatch, address_not_found · 429 çok sık istek

retail.site_checkout_voucher

İndirim kodu kullan (site) — Site sepeti bir indirim kodu alır ya da bırakır; kod indirim kurallarına göre sepetteki ürünlerde değerlendirilir, sipariş indirimi taşır.

Gereken izin retail:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/checkouts/actions/site_checkout_voucher
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.site_checkout_voucher

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet
codestringKupon kodu · en çok 255

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
basket_not_foundSepet bulunamadı.
checkout_completingSiparişe dönüştürülmekte olan bir sepet değiştirilemez.
voucher_not_foundKod bir kuponu belirtmeli.
voucher_not_applicableKupon etkin olmalı, bu satış kanalında tanımlı olmalı ve sepet kuponun koşullarını karşılamalı.
voucher_usage_exceededKod tükenmemiş olmalı.

Yayımladığı olaylar: retail.checkout_updated

Neye yazar: checkout (update) — Writes the code, the discount and the new total

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 basket_not_found, checkout_completing, voucher_not_found, voucher_not_applicable, voucher_usage_exceeded · 429 çok sık istek

retail.site_place_order

Sipariş ver (site) — Site sepeti, seçilen ödeme yöntemiyle ödeme bekleyen bir siparişe dönüşür; stok ayrılır ve onay e-postası istenir.

Gereken izin retail:write · siler ya da geri alınamaz · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/orders/actions/site_place_order
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.site_place_order

Girdi

AlanTürZorunluAçıklama
tokenuuidevetSepet
paymentMethodstringÖdeme yöntemi · Sepetteki hediye kartı tutarın tamamını karşılıyorsa boş bırakılır. · en çok 40

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
basket_not_foundSepet bulunamadı.
checkout_completingBu sepet zaten siparişe dönüştürülüyor.
payment_method_unavailableÖdeme yöntemi bağlı bir ödeme uygulaması olmalı; test yöntemi yalnızca canlı ortam dışında kullanılabilir.
details_missingSepette e-posta ve müşteri bilgisi eksik.
voucher_usage_exceededSepetteki kupon artık kullanılamıyor.

Yayımladığı olaylar: retail.order_placed, retail.customer_notification_requested, retail.stock_low, retail.order_discounts_applied

Neye yazar: sales_order (insert) — The order; sales_order_line (insert) — Its lines, frozen; allocation (insert) — The stock it holds; checkout (delete) — The basket is gone

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 basket_not_found, checkout_completing, payment_method_unavailable, details_missing, voucher_usage_exceeded · 429 çok sık istek

retail.sync_charge_status

Siparişin ödeme durumunu güncelle — Siparişte para hareket etti; ödeme durumu buna uyar.

Gereken izin retail:write · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/orders/{id}/actions/sync_charge_status
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.sync_charge_status

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.

Yayımladığı olaylar: retail.order_charge_status_changed

Neye yazar: sales_order (update) — Writes the payment status and the total charged

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

retail.transfer_stock

Depolar arasında stok taşı — İki defter satırı, tek hareket. Siparişlerin ayırdığı stok yerinde kalır.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/stocks/actions/transfer_stock
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.transfer_stock

Girdi

AlanTürZorunluAçıklama
fromWarehouseIduuidevetNereden · kimliği: warehouse
toWarehouseIduuidevetBitiş · kimliği: warehouse
itemVariantIduuidevetVaryant · kimliği: item_variant
quantitynumberevetMiktar · en az 1
notestringNot · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
no_changeTransfer en az bir adet taşır.
same_warehouseİki depo farklı olmalı.
warehouse_not_foundİki depo da bulunmalı.
variant_not_foundVaryant bulunmalı.
insufficient_stockKaynak depoda bu kadar serbest stok olmalı.

Yayımladığı olaylar: retail.stock_transferred, retail.stock_low

Neye yazar: stock (upsert) — Moves the count; stock_movement (insert) — Writes both sides of the move

curl -X POST https://app.getera.io/api/v1/stocks/actions/transfer_stock \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"fromWarehouseId":"WAREHOUSE_ID","toWarehouseId":"WAREHOUSE_ID","itemVariantId":"ITEM_VARIANT_ID","quantity":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.stock_transferred",
    "retail.stock_low"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.stocks.transferStock({
  fromWarehouseId: "WAREHOUSE_ID",
  toWarehouseId: "WAREHOUSE_ID",
  itemVariantId: "ITEM_VARIANT_ID",
  quantity: 1
})
era stocks transfer_stock \
  --from-warehouse-id "WAREHOUSE_ID" \
  --to-warehouse-id "WAREHOUSE_ID" \
  --item-variant-id "ITEM_VARIANT_ID" \
  --quantity 1
tools/call
{
  "name": "era__retail__transfer_stock",
  "arguments": {
    "fromWarehouseId": "WAREHOUSE_ID",
    "toWarehouseId": "WAREHOUSE_ID",
    "itemVariantId": "ITEM_VARIANT_ID",
    "quantity": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 no_change, same_warehouse, warehouse_not_found, variant_not_found, insufficient_stock · 429 çok sık istek

retail.update_order

Siparişi düzenle — Notu, e-postası, adresleri ve — düzenlenebilirken — teslimat ücreti.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/{id}/actions/update_order
API anahtarı ya da OAuth token · retail:write
  • REST kısayolu: PATCH /api/v1/orders/{id}
  • Asıl adres: POST /api/v1/actions/retail.update_order

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
customerIduuidMüşteri · kimliği: customer
customerNotestringNot · en çok 2000
emailemailE-posta
billingAddressIduuidFatura adresi · kimliği: address
shippingAddressIduuidTeslimat adresi · kimliği: address
shippingMethodIduuidKargo ücreti · kimliği: shipping_method
fulfilmentMethodstring (enum)Teslimat · İzin verilen değerler: shipping, pickup

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.
customer_not_foundMüşteri bulunamadı ya da etkin değil.
order_not_editableGönderilmiş bir sipariş teslimat yöntemini değiştiremez.
shipping_method_not_availableÜcret bu siparişin kanalında fiyatlanmış olmalı.

Yayımladığı olaylar: retail.order_updated, retail.order_discounts_applied

Neye yazar: sales_order (update) — Edits the order; sales_order_line (update) — Re-applies discounts while editable; sales_order_discount (insert) — Records what was applied

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/update_order \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"customerId":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_updated",
    "retail.order_discounts_applied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.updateOrder("ORDER_ID", {
  customerId: "CUSTOMER_ID"
})
era orders update_order ORDER_ID \
  --customer-id "CUSTOMER_ID"
tools/call
{
  "name": "era__retail__update_order",
  "arguments": {
    "id": "ORDER_ID",
    "customerId": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, customer_not_found, order_not_editable, shipping_method_not_available · 429 çok sık istek

retail.update_order_metadata

Sipariş ek bilgilerini düzenle — Siparişin anahtar → değer ek bilgilerini, herkese açık veya gizli olarak yeniden yazar.

Gereken izin retail:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/orders/{id}/actions/update_order_metadata
API anahtarı ya da OAuth token · retail:write
  • Asıl adres: POST /api/v1/actions/retail.update_order_metadata

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sipariş · kimliği: sales_order
metadataobject / arrayMeta veri
privateMetadataobject / arrayÖzel meta veri

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSipariş bulunmalı.

Yayımladığı olaylar: retail.order_updated

Neye yazar: sales_order (update) — Writes the metadata

curl -X POST https://app.getera.io/api/v1/orders/ORDER_ID/actions/update_order_metadata \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"metadata":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.order_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.orders.updateOrderMetadata("ORDER_ID", {
  metadata: {}
})
era orders update_order_metadata ORDER_ID --data '{"metadata":{}}'
tools/call
{
  "name": "era__retail__update_order_metadata",
  "arguments": {
    "id": "ORDER_ID",
    "metadata": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

retail.update_warehouse

Depoyu düzenle — Adı, adresi, iletişim bilgisi ve müşterilerin oradan teslim alıp alamayacağı.

Gereken izin retail:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/warehouses/{id}/actions/update_warehouse
API anahtarı ya da OAuth token · retail:manage
  • REST kısayolu: PATCH /api/v1/warehouses/{id}
  • Asıl adres: POST /api/v1/actions/retail.update_warehouse

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Depo · kimliği: warehouse
namestringAd · en çok 250
addressIduuidAdres · kimliği: address
streetAddress1stringSokak · en çok 250
streetAddress2stringSokak (ikinci satır) · en çok 250
cityAreastringİlçe · en çok 120
citystringŞehir · en çok 120
countryAreastringBölge · en çok 120
postalCodestringPosta kodu · en çok 32
countrystringÜlke · en çok 2
phonephoneTelefon
emailemailE-posta
clickAndCollectOptionstring (enum)Koleksiyon · İzin verilen değerler: disabled, local, all
isPrivatebooleanMüşterilerden gizli

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundDepo bulunmalı.
address_not_foundAdres bulunmalı.

Yayımladığı olaylar: retail.warehouse_saved

Neye yazar: warehouse (update) — Edits the warehouse

curl -X POST https://app.getera.io/api/v1/warehouses/WAREHOUSE_ID/actions/update_warehouse \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "retail.warehouse_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.warehouses.updateWarehouse("WAREHOUSE_ID", {
  name: "Name"
})
era warehouses update_warehouse WAREHOUSE_ID \
  --name "Name"
tools/call
{
  "name": "era__retail__update_warehouse",
  "arguments": {
    "id": "WAREHOUSE_ID",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde retail:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, address_not_found · 429 çok sık istek

Veri modelleri

Allocation

Tablo allocation · Kaynak allocations

  • GET /api/v1/allocations
  • GET /api/v1/allocations/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
order_line_idstring (uuid) · uuidsales_order_line
stock_idstring (uuid) · uuidstock
quantity_allocatedinteger · int4
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: order_line_id, stock_id

Denetimler:

  • CHECK ((quantity_allocated >= 0))

CheckoutLine

Tablo checkout_line · Kaynak checkout_lines

  • GET /api/v1/checkout_lines
  • GET /api/v1/checkout_lines/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
item_variant_idstring (uuid) · uuiditem_variant
quantityinteger · int4
is_giftboolean · bool
price_overridestring (int64) · int8evet
currencystring · bpcharen çok 3
undiscounted_unit_amountstring (int64) · int8
total_amountstring (int64) · int8
metadataobject · jsonb
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: checkout_token, item_variant_id

Denetimler:

  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK (((price_override IS NULL) OR (price_override >= 0)))
  • CHECK ((quantity >= 1))
  • CHECK ((total_amount >= 0))
  • CHECK ((undiscounted_unit_amount >= 0))

Checkout

Tablo checkout · Kaynak checkouts

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
channel_idstring (uuid) · uuidchannel
currencystring · bpcharen çok 3
countrystring · bpchareveten çok 2
language_codestring · textevet
customer_idstring (uuid) · uuidevetcustomer
emailstring · textevet
notestring · text
billing_address_idstring (uuid) · uuidevetaddress
shipping_address_idstring (uuid) · uuidevetaddress
save_billing_addressboolean · bool
save_shipping_addressboolean · bool
shipping_method_idstring (uuid) · uuidevetshipping_method
shipping_method_namestring · textevet
collection_point_idstring (uuid) · uuidevetwarehouse
delivery_methods_stale_atstring (date-time) · timestamptzevet
subtotal_amountstring (int64) · int8
shipping_amountstring (int64) · int8
discount_amountstring (int64) · int8
total_amountstring (int64) · int8
discount_namestring · textevet
authorize_statusstring · textnone, partial, full
charge_statusstring · textnone, partial, full, overcharged
automatically_refundableboolean · bool
voucher_codestring · textevet
is_voucher_usage_increasedboolean · bool
price_expirationstring (date-time) · timestamptz
discount_expirationstring (date-time) · timestamptz
completing_started_atstring (date-time) · timestamptzevet
redirect_urlstring · textevet
tracking_codestring · textevet
metadataobject · jsonb
created_atstring (date-time) · timestamptz
last_changestring (date-time) · timestamptz
abandoned_notice_atstring (date-time) · timestamptzevet

Birincil anahtar: token

Denetimler:

  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK ((discount_amount >= 0))
  • CHECK ((shipping_amount >= 0))
  • CHECK ((subtotal_amount >= 0))
  • CHECK ((total_amount >= 0))

ItemCollectionItem

Tablo item_collection_item · Kaynak collection_items

  • GET /api/v1/collection_items
  • GET /api/v1/collection_items/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
collection_idstring (uuid) · uuiditem_collection
item_idstring (uuid) · uuiditem
sort_orderinteger · int4
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: collection_id, item_id

ItemCollection

Tablo item_collection · Kaynak collections

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
slugstring · text
descriptionstring · textevet
background_file_idstring (uuid) · uuidevetfile
background_altstring · textevet
seo_titlestring · textevet
seo_descriptionstring · textevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
ruleobject · jsonbevet

Birincil anahtar: id

FulfilmentLine

Tablo fulfilment_line · Kaynak fulfilment_lines

  • GET /api/v1/fulfilment_lines
  • GET /api/v1/fulfilment_lines/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
fulfilment_idstring (uuid) · uuidfulfilment
order_line_idstring (uuid) · uuidsales_order_line
quantityinteger · int4
stock_idstring (uuid) · uuidevetstock
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((quantity >= 1))

Fulfilment

Tablo fulfilment · Kaynak fulfilments

  • GET /api/v1/fulfilments
  • GET /api/v1/fulfilments/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
order_idstring (uuid) · uuidsales_order
sequenceinteger · int4
statusstring · textfulfilled, refunded, returned, replaced, refunded_and_returned, canceled, waiting_for_approval
tracking_numberstring · text
currencystring · bpchareveten çok 3
shipping_refund_amountstring (int64) · int8evet
total_refund_amountstring (int64) · int8evet
metadataobject · jsonb
created_by_user_idstring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
carrierstring · textevet
tracking_urlstring · textevet
customer_notified_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Tekil: order_id, sequence

Denetimler:

  • CHECK (((currency IS NULL) OR (currency ~ '^[A-Z]{3}$'::text)))
  • CHECK ((sequence >= 1))
  • CHECK (((shipping_refund_amount IS NULL) OR (shipping_refund_amount >= 0)))
  • CHECK (((total_refund_amount IS NULL) OR (total_refund_amount >= 0)))

ItemCollectionChannelListing

Tablo item_collection_channel_listing · Kaynak item_collection_channel_listings

  • GET /api/v1/item_collection_channel_listings
  • GET /api/v1/item_collection_channel_listings/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
collection_idstring (uuid) · uuiditem_collection
channel_idstring (uuid) · uuidchannel
is_publishedboolean · bool
published_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Tekil: collection_id, channel_id

SalesOrderDiscount

Tablo sales_order_discount · Kaynak order_discounts

  • GET /api/v1/order_discounts
  • GET /api/v1/order_discounts/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
order_idstring (uuid) · uuidsales_order
order_line_idstring (uuid) · uuidevetsales_order_line
typestring · textpromotion, order_promotion, voucher, manual
scopestring · textorder, line, shipping
value_typestring · textfixed, percentage
valuestring (decimal) · numeric
amountstring (int64) · int8
currencystring · bpcharen çok 3
namestring · textevet
reasonstring · textevet
promotion_rule_idstring (uuid) · uuidevet
voucher_idstring (uuid) · uuidevet
voucher_codestring · textevet
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((amount >= 0))
  • CHECK (((scope = 'line'::text) = (order_line_id IS NOT NULL)))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK ((value >= (0)::numeric))

SalesOrderGiftCard

Tablo sales_order_gift_card · Kaynak order_gift_cards

  • GET /api/v1/order_gift_cards
  • GET /api/v1/order_gift_cards/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
order_idstring (uuid) · uuidsales_order
gift_card_idstring (uuid) · uuidevet
gift_card_event_idstring (uuid) · uuidevet
code_tailstring · text
amountstring (int64) · int8
currencystring · bpcharen çok 3
idempotency_keystring · text
created_atstring (date-time) · timestamptz
statusstring · textpending, applied, failed
pending_codestring · textevet
failure_reasonstring · textevet
resolved_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Tekil: workspace_id, idempotency_key

Denetimler:

  • CHECK ((amount > 0))
  • CHECK (((status <> 'applied'::text) OR (gift_card_id IS NOT NULL)))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK (((status <> 'pending'::text) OR (pending_code IS NOT NULL)))

OrderGrantedRefundLine

Tablo order_granted_refund_line · Kaynak order_granted_refund_lines

  • GET /api/v1/order_granted_refund_lines
  • GET /api/v1/order_granted_refund_lines/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
granted_refund_idstring (uuid) · uuidorder_granted_refund
order_line_idstring (uuid) · uuidsales_order_line
quantityinteger · int4
reasonstring · textevet

Birincil anahtar: id

Tekil: granted_refund_id, order_line_id

Denetimler:

  • CHECK ((quantity > 0))

OrderGrantedRefund

Tablo order_granted_refund · Kaynak order_granted_refunds

  • GET /api/v1/order_granted_refunds
  • GET /api/v1/order_granted_refunds/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
order_idstring (uuid) · uuidsales_order
return_idstring (uuid) · uuidevetorder_return
amountstring (int64) · int8
currencystring · bpcharen çok 3
reasonstring · textevet
shipping_costs_includedboolean · bool
created_by_user_idstring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((amount > 0))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))

SalesOrderLine

Tablo sales_order_line · Kaynak order_lines

  • GET /api/v1/order_lines
  • GET /api/v1/order_lines/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
order_idstring (uuid) · uuidsales_order
item_idstring (uuid) · uuidevetitem
item_variant_idstring (uuid) · uuidevetitem_variant
item_namestring · text
variant_namestring · text
skustring · textevet
is_shipping_requiredboolean · bool
quantityinteger · int4
quantity_fulfilledinteger · int4
is_giftboolean · bool
currencystring · bpcharen çok 3
unit_amountstring (int64) · int8
total_amountstring (int64) · int8
undiscounted_unit_amountstring (int64) · int8
undiscounted_total_amountstring (int64) · int8
unit_discount_amountstring (int64) · int8
unit_discount_typestring · textevetfixed, percentage
unit_discount_reasonstring · textevet
is_price_overriddenboolean · boolevet
voucher_codestring · textevet
draft_base_price_expire_atstring (date-time) · timestamptzevet
display_orderinteger · int4
metadataobject · jsonb
created_atstring (date-time) · timestamptz
tax_class_idstring (uuid) · uuidevet
tax_class_namestring · textevet
tax_ratestring (decimal) · numericevet
tax_amountstring (int64) · int8
tax_includedboolean · bool
order_discount_amountstring (int64) · int8

Birincil anahtar: id

Denetimler:

  • CHECK ((quantity_fulfilled <= quantity))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK ((order_discount_amount >= 0))
  • CHECK ((quantity >= 1))
  • CHECK ((quantity_fulfilled >= 0))
  • CHECK ((tax_amount >= 0))
  • CHECK ((total_amount >= 0))
  • CHECK ((undiscounted_total_amount >= 0))
  • CHECK ((undiscounted_unit_amount >= 0))
  • CHECK ((unit_amount >= 0))
  • CHECK ((unit_discount_amount >= 0))

OrderReturnLine

Tablo order_return_line · Kaynak order_return_lines

  • GET /api/v1/order_return_lines
  • GET /api/v1/order_return_lines/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
return_idstring (uuid) · uuidorder_return
order_line_idstring (uuid) · uuidsales_order_line
quantityinteger · int4
quantity_receivedinteger · int4
quantity_restockedinteger · int4
conditionstring · textevetresellable, damaged
warehouse_idstring (uuid) · uuidevetwarehouse
notestring · textevet

Birincil anahtar: id

Tekil: return_id, order_line_id

Denetimler:

  • CHECK ((quantity_received <= quantity))
  • CHECK ((quantity_restocked <= quantity_received))
  • CHECK ((quantity > 0))
  • CHECK ((quantity_received >= 0))
  • CHECK ((quantity_restocked >= 0))

OrderReturn

Tablo order_return · Kaynak order_returns

  • GET /api/v1/order_returns
  • GET /api/v1/order_returns/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
order_idstring (uuid) · uuidsales_order
sequenceinteger · int4
statusstring · textrequested, received, inspected, closed, rejected
reasonstring · textevet
notestring · textevet
created_by_user_idstring (uuid) · uuidevetapp_user
received_atstring (date-time) · timestamptzevet
inspected_atstring (date-time) · timestamptzevet
closed_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: order_id, sequence

Denetimler:

  • CHECK ((sequence >= 1))

SalesOrder

Tablo sales_order · Kaynak orders

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
numberstring (int64) · int8
statusstring · textdraft, unconfirmed, unfulfilled, partially fulfilled, partially_returned, returned, fulfilled, canceled, expired
originstring · textcheckout, draft, reissue, bulk_create, marketplace
authorize_statusstring · textnone, partial, full
charge_statusstring · textnone, partial, full, overcharged
channel_idstring (uuid) · uuidchannel
currencystring · bpcharen çok 3
language_codestring · textevet
customer_idstring (uuid) · uuidevetcustomer
user_emailstring · textevet
customer_notestring · text
tracking_client_idstring · textevet
billing_address_idstring (uuid) · uuidevetaddress
shipping_address_idstring (uuid) · uuidevetaddress
shipping_method_idstring (uuid) · uuidevetshipping_method
shipping_method_namestring · textevet
collection_point_idstring (uuid) · uuidevetwarehouse
collection_point_namestring · textevet
subtotal_amountstring (int64) · int8
shipping_amountstring (int64) · int8
undiscounted_shipping_amountstring (int64) · int8
discount_total_amountstring (int64) · int8
tax_total_amountstring (int64) · int8
total_amountstring (int64) · int8
undiscounted_total_amountstring (int64) · int8
total_charged_amountstring (int64) · int8
total_authorized_amountstring (int64) · int8
voucher_codestring · textevet
original_order_idstring (uuid) · uuidevetsales_order
lines_countinteger · int4
redirect_urlstring · textevet
external_referencestring · textevet
metadataobject · jsonb
created_by_user_idstring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
expired_atstring (date-time) · timestamptzevet
gift_card_amountstring (int64) · int8
manual_discount_typestring · textevetfixed, percentage
manual_discount_percentagestring (decimal) · numericevet
manual_discount_fixed_amountstring (int64) · int8evet
manual_discount_reasonstring · textevet
shipping_tax_ratestring (decimal) · numeric
shipping_tax_includedboolean · bool
shipping_tax_class_idstring (uuid) · uuidevet
shipping_tax_class_namestring · textevet
shipping_tax_amountstring (int64) · int8
fulfilment_methodstring · textshipping, pickup
private_metadataobject · jsonb

Birincil anahtar: id

Tekil: workspace_id, number

Denetimler:

  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK ((discount_total_amount >= 0))
  • CHECK ((gift_card_amount >= 0))
  • CHECK ((lines_count >= 0))
  • CHECK (((manual_discount_fixed_amount IS NULL) OR (manual_discount_fixed_amount > 0)))
  • CHECK (((manual_discount_percentage IS NULL) OR ((manual_discount_percentage > (0)::numeric) AND (manual_discount_percentage <= (100)::numeric))))
  • CHECK ((((manual_discount_type IS NULL) AND (manual_discount_percentage IS NULL) AND (manual_discount_fixed_amount IS NULL)) OR ((manual_discount_type = 'percentage'::text) AND (manual_discount_percentage IS NOT NULL) AND (manual_discount_fixed_amount IS NULL)) OR ((manual_discount_type = 'fixed'::text) AND (manual_discount_fixed_amount IS NOT NULL) AND (manual_discount_percentage IS NULL))))
  • CHECK ((shipping_amount >= 0))
  • CHECK ((subtotal_amount >= 0))
  • CHECK ((tax_total_amount >= 0))
  • CHECK ((total_amount >= 0))
  • CHECK ((undiscounted_shipping_amount >= 0))
  • CHECK ((undiscounted_total_amount >= 0))

PreorderAllocation

Tablo preorder_allocation · Kaynak preorder_allocations

  • GET /api/v1/preorder_allocations
  • GET /api/v1/preorder_allocations/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
order_line_idstring (uuid) · uuidsales_order_line
item_variant_idstring (uuid) · uuiditem_variant
channel_idstring (uuid) · uuidchannel
quantityinteger · int4
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: order_line_id

Denetimler:

  • CHECK ((quantity > 0))

ItemChannelListing

Tablo item_channel_listing · Kaynak product_listings

  • GET /api/v1/product_listings
  • GET /api/v1/product_listings/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
item_idstring (uuid) · uuiditem
channel_idstring (uuid) · uuidchannel
is_publishedboolean · bool
published_atstring (date-time) · timestamptzevet
visible_in_listingsboolean · bool
available_for_purchase_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: item_id, channel_id

ChannelWarehouse

Tablo channel_warehouse · Kaynak sales_channel_warehouses

  • GET /api/v1/sales_channel_warehouses
  • GET /api/v1/sales_channel_warehouses/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
channel_idstring (uuid) · uuidchannel
warehouse_idstring (uuid) · uuidwarehouse
sort_orderinteger · int4

Birincil anahtar: id

Tekil: channel_id, warehouse_id

Channel

Tablo channel · Kaynak sales_channels

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
slugstring · text
is_activeboolean · bool
currency_codestring · bpcharen çok 3
default_countrystring · bpchareveten çok 2
metadataobject · jsonb
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((currency_code ~ '^[A-Z]{3}$'::text))

ShippingMethodChannelListing

Tablo shipping_method_channel_listing · Kaynak shipping_method_channel_listings

  • GET /api/v1/shipping_method_channel_listings
  • GET /api/v1/shipping_method_channel_listings/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
shipping_method_idstring (uuid) · uuidshipping_method
channel_idstring (uuid) · uuidchannel
currencystring · bpcharen çok 3
price_amountstring (int64) · int8
minimum_order_price_amountstring (int64) · int8evet
maximum_order_price_amountstring (int64) · int8evet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: shipping_method_id, channel_id

Denetimler:

  • CHECK (((maximum_order_price_amount IS NULL) OR (maximum_order_price_amount >= 0)))
  • CHECK (((minimum_order_price_amount IS NULL) OR (minimum_order_price_amount >= 0)))
  • CHECK (((minimum_order_price_amount IS NULL) OR (maximum_order_price_amount IS NULL) OR (minimum_order_price_amount <= maximum_order_price_amount)))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK ((price_amount >= 0))

ShippingMethodExcludedItem

Tablo shipping_method_excluded_item · Kaynak shipping_method_excluded_items

  • GET /api/v1/shipping_method_excluded_items
  • GET /api/v1/shipping_method_excluded_items/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
shipping_method_idstring (uuid) · uuidshipping_method
item_idstring (uuid) · uuiditem

Birincil anahtar: id

Tekil: shipping_method_id, item_id

ShippingMethodPostalCodeRule

Tablo shipping_method_postal_code_rule · Kaynak shipping_method_postal_code_rules

  • GET /api/v1/shipping_method_postal_code_rules
  • GET /api/v1/shipping_method_postal_code_rules/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
shipping_method_idstring (uuid) · uuidshipping_method
start_codestring · text
end_codestring · textevet
inclusion_typestring · textinclude, exclude

Birincil anahtar: id

ShippingMethod

Tablo shipping_method · Kaynak shipping_methods

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
shipping_zone_idstring (uuid) · uuidshipping_zone
namestring · text
descriptionstring · textevet
typestring · textprice, weight
minimum_order_weight_gramsstring (int64) · int8evet
maximum_order_weight_gramsstring (int64) · int8evet
minimum_delivery_daysinteger · int4evet
maximum_delivery_daysinteger · int4evet
metadataobject · jsonb
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
tax_class_idstring (uuid) · uuidevettax_class

Birincil anahtar: id

Denetimler:

  • CHECK (((minimum_order_weight_grams IS NULL) OR (maximum_order_weight_grams IS NULL) OR (minimum_order_weight_grams <= maximum_order_weight_grams)))
  • CHECK (((minimum_delivery_days IS NULL) OR (maximum_delivery_days IS NULL) OR (minimum_delivery_days <= maximum_delivery_days)))
  • CHECK (((type <> 'price'::text) OR ((minimum_order_weight_grams IS NULL) AND (maximum_order_weight_grams IS NULL))))
  • CHECK (((maximum_delivery_days IS NULL) OR (maximum_delivery_days >= 0)))
  • CHECK (((maximum_order_weight_grams IS NULL) OR (maximum_order_weight_grams >= 0)))
  • CHECK (((minimum_delivery_days IS NULL) OR (minimum_delivery_days >= 0)))
  • CHECK (((minimum_order_weight_grams IS NULL) OR (minimum_order_weight_grams >= 0)))

ShippingZoneChannel

Tablo shipping_zone_channel · Kaynak shipping_zone_channels

  • GET /api/v1/shipping_zone_channels
  • GET /api/v1/shipping_zone_channels/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
shipping_zone_idstring (uuid) · uuidshipping_zone
channel_idstring (uuid) · uuidchannel

Birincil anahtar: id

Tekil: shipping_zone_id, channel_id

ShippingZone

Tablo shipping_zone · Kaynak shipping_zones

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
descriptionstring · textevet
countriesstring[] · bpchar[]
is_defaultboolean · bool
metadataobject · jsonb
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

StockMovement

Tablo stock_movement · Kaynak stock_movements

  • GET /api/v1/stock_movements
  • GET /api/v1/stock_movements/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
stock_idstring (uuid) · uuidstock
warehouse_idstring (uuid) · uuidwarehouse
item_variant_idstring (uuid) · uuiditem_variant
quantity_deltainteger · int4
quantity_afterinteger · int4
reasonstring · textcount, received, damaged, correction, fulfilment, fulfilment_canceled, returned, transfer_out, transfer_in
notestring · textevet
order_idstring (uuid) · uuidevetsales_order
fulfilment_idstring (uuid) · uuidevetfulfilment
created_by_user_idstring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
transfer_idstring (uuid) · uuidevet
return_idstring (uuid) · uuidevet

Birincil anahtar: id

Denetimler:

  • CHECK ((quantity_delta <> 0))

StockReservation

Tablo stock_reservation · Kaynak stock_reservations

  • GET /api/v1/stock_reservations
  • GET /api/v1/stock_reservations/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
checkout_line_idstring (uuid) · uuidcheckout_line
stock_idstring (uuid) · uuidstock
quantityinteger · int4
expires_atstring (date-time) · timestamptz
committed_atstring (date-time) · timestamptzevet
released_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: checkout_line_id, stock_id

Denetimler:

  • CHECK ((NOT ((committed_at IS NOT NULL) AND (released_at IS NOT NULL))))
  • CHECK ((quantity > 0))

Stock

Tablo stock · Kaynak stocks

  • GET /api/v1/stocks
  • GET /api/v1/stocks/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
warehouse_idstring (uuid) · uuidwarehouse
item_variant_idstring (uuid) · uuiditem_variant
quantityinteger · int4
quantity_allocatedinteger · int4
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
safety_stockinteger · int4

Birincil anahtar: id

Tekil: warehouse_id, item_variant_id

Denetimler:

  • CHECK ((quantity_allocated >= 0))
  • CHECK ((safety_stock >= 0))

ItemVariantChannelListing

Tablo item_variant_channel_listing · Kaynak variant_listings

  • GET /api/v1/variant_listings
  • GET /api/v1/variant_listings/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
item_variant_idstring (uuid) · uuiditem_variant
channel_idstring (uuid) · uuidchannel
currencystring · bpcharen çok 3
price_amountstring (int64) · int8evet
cost_price_amountstring (int64) · int8evet
prior_price_amountstring (int64) · int8evet
discounted_price_amountstring (int64) · int8evet
discounted_price_dirtyboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
preorder_quantity_thresholdinteger · int4evet

Birincil anahtar: id

Tekil: item_variant_id, channel_id

Denetimler:

  • CHECK (((cost_price_amount IS NULL) OR (cost_price_amount >= 0)))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK (((discounted_price_amount IS NULL) OR (discounted_price_amount >= 0)))
  • CHECK (((preorder_quantity_threshold IS NULL) OR (preorder_quantity_threshold >= 0)))
  • CHECK (((price_amount IS NULL) OR (price_amount >= 0)))
  • CHECK (((prior_price_amount IS NULL) OR (prior_price_amount >= 0)))

VariantPreorder

Tablo variant_preorder · Kaynak variant_preorders

  • GET /api/v1/variant_preorders
  • GET /api/v1/variant_preorders/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
item_variant_idstring (uuid) · uuiditem_variant
end_datestring (date-time) · timestamptzevet
global_thresholdinteger · int4evet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: item_variant_id

Denetimler:

  • CHECK (((global_threshold IS NULL) OR (global_threshold >= 0)))

WarehouseShippingZone

Tablo warehouse_shipping_zone · Kaynak warehouse_shipping_zones

  • GET /api/v1/warehouse_shipping_zones
  • GET /api/v1/warehouse_shipping_zones/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
warehouse_idstring (uuid) · uuidwarehouse
shipping_zone_idstring (uuid) · uuidshipping_zone

Birincil anahtar: id

Tekil: warehouse_id, shipping_zone_id

Warehouse

Tablo warehouse · Kaynak warehouses

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
slugstring · text
address_idstring (uuid) · uuidaddress
emailstring · textevet
click_and_collect_optionstring · textdisabled, local, all
is_privateboolean · bool
external_referencestring · textevet
metadataobject · jsonb
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
retail.channel_deletedHiç satış yapmamış bir kanal silindi.id, slug
retail.channel_order_importedBir pazaryeri siparişi Era’ya geldi.id, number, channelId, provider, externalId, customerId, currency, totalAmount, status, lines
retail.channel_order_updatedBir pazaryeri siparişinin durumu değişti.id, number, channelId, provider, externalId, from, to, remoteStatus
retail.channel_price_changedKanala özel bir fiyat değişti.itemVariantId, channelId, amount, currency
retail.channel_savedBir satış kanalı oluşturuldu ya da düzenlendi.id, slug
retail.channel_warehouses_changedBir kanalın depo sırası değişti.channelId, count
retail.checkout_abandonedE-postası bilinen bir sepet terk edildi.token, customerId, customerName, email, channelId, currency, totalAmount, totalText, lineCount, idleMinutes
retail.checkout_createdBir sepet açıldı.token, channelId
retail.checkout_updatedBir sepet değişti.token
retail.collection_deletedBir koleksiyon kaldırıldı.id
retail.collection_items_changedBir koleksiyonun içeriği değişti.id, count
retail.collection_savedBir koleksiyon oluşturuldu ya da düzenlendi.id, slug
retail.customer_notification_requestedMüşterinin bilmesi gereken bir sipariş onayı, gönderi ya da takip değişikliği; bildirimler modülü e-postayla gönderir.kind, orderId, number, fulfilmentId, sequence, email, customerName, carrier, trackingNumber, trackingUrl, totalAmount, currency
retail.draft_order_createdTaslak bir sipariş başlatıldı.id, number
retail.draft_order_deletedPersonelin oluşturduğu bir taslak silindi.id, number
retail.fulfilment_approvedBir gönderi onaylandı.id, orderId
retail.fulfilment_canceledBir gönderi iptal edildi.id, orderId
retail.fulfilment_createdBir gönderi oluşturuldu.id, orderId, status, customerId, number, sequence, carrier, trackingNumber
retail.fulfilment_tracking_updatedBir takip numarası girildi.id, orderId
retail.gift_card_appliedBir hediye kartı bir siparişin ödemesine katıldı.id, orderId, giftCardId, amount, currency
retail.gift_card_removedBir hediye kartı bir siparişten çıkarıldı.id, orderId, orderNumber, giftCardId, amount, currency
retail.gift_card_requestedBir siparişe hediye kartı eklendi; kartı hediye kartları modülü işler.id, orderId, amount, currency, idempotencyKey
retail.listing_changedBir kanalda bir şey listelendi ya da listeden kaldırıldı.itemId, channelId, isPublished
retail.order_canceledBir sipariş iptal edildi.id, number, releasedQuantity, reason, giftCardsReleased
retail.order_charge_status_changedBir siparişin ödeme durumu değişti (ödenmedi, kısmi, tam, fazla).id, from, to, collectedAmount
retail.order_confirmedBir sipariş onaylandı.id, number
retail.order_discounts_appliedBir siparişe promosyonlar ve bir kupon (yeniden) uygulandı.id, currency, voucherCode, total, discounts
retail.order_expiredOnaylanmamış bir siparişin süresi doldu.id, number, releasedQuantity
retail.order_lines_changedBir siparişin satırları değişti.id, count
retail.order_placedBir sipariş verildi.id, number, channelId, customerId, customerOrderCount, currency, totalAmount, origin, fulfilmentMethod, lines, shippingAmount, undiscountedShippingAmount, giftCardAmount, taxOnTopAmount, voucherCode, discountTotal, discounts, shippingTaxAmount, shippingTaxRate, shippingTaxIncluded, shippingTaxClassId
retail.order_returnedSiparişteki ürünler iade edildi.id, quantity, complete
retail.order_updatedBir sipariş düzenlendi.id
retail.preorder_changedBir varyant ön siparişe açıldı ya da kapatıldı.itemVariantId, enabled, endDate
retail.preorder_endedBir ön sipariş bitti ve siparişleri bir rafa taşındı.itemVariantId, orders
retail.refund_grantedMağaza bir iadeyi onayladı; parayı finans modülü aktarır.id, orderId, amount, currency, reason, idempotencyKey
retail.return_closedBir iade kapatıldı.id, orderId
retail.return_inspectedBir iade incelendi ve stoğa geri kondu.id, orderId, restocked
retail.return_receivedİade edilen bir paket geldi.id, orderId, quantity
retail.return_rejectedBir iade reddedildi.id, orderId, reason
retail.return_requestedBir iade açıldı.id, orderId, sequence, quantity, reason
retail.shipping_exclusions_changedBir teslimat ücretinin kabul etmediği ürünler değişti.shippingMethodId, count
retail.shipping_method_deletedBir teslimat ücreti kaldırıldı.id
retail.shipping_method_savedBir teslimat ücreti oluşturuldu ya da düzenlendi.id, type
retail.shipping_price_changedBir teslimat ücreti bir kanalda fiyatlandı.shippingMethodId, channelId, amount, currency
retail.shipping_rules_changedBir ücretin posta kodu kuralları değişti.shippingMethodId, count
retail.shipping_zone_deletedBir kargo bölgesi kaldırıldı.id
retail.shipping_zone_savedBir kargo bölgesi oluşturuldu ya da düzenlendi.id, countries
retail.stock_changedBir rafın stok miktarı değişti.warehouseId, itemVariantId, quantity
retail.stock_lowBir rafın serbest stoğu düşük stok eşiğine ya da altına indi.stockId, warehouseId, itemVariantId, quantity, free, threshold
retail.stock_policy_changedBir rafın güvenlik stoğu değişti.stockId, safetyStock
retail.stock_reservations_expiredSüresi dolan sepet stok ayırmaları bırakıldı.count
retail.stock_reservedBir sepet stoğu on beş dakikalığına ayırdı.token, quantity, expiresInMinutes
retail.stock_transferredStok iki depo arasında taşındı.transferId, fromWarehouseId, toWarehouseId, itemVariantId, quantity
retail.warehouse_deletedBir depo kapatıldı.id
retail.warehouse_savedBir depo oluşturuldu ya da düzenlendi.id, slug
retail.warehouse_zones_changedBir deponun kargo bölgeleri değişti.warehouseId, count
Bu sayfa yardımcı oldu mu?