E-Ticaret

products

50 uç · /api/shop/v1/products

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 50 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

GET/api/shop/v1/admin/products

Credential-listesi + kaldırma (müşteri-oturumu).

Oturum
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products

VPOS tanımı ekle/güncelle (upsert bank). bank 1-32 char, threed_mode 3d|non3d. config_ref saklanır

Oturum

ama response'ta dönmez.

İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}

Admin: retention config oku (gün eşikleri; null = o tablo için kapalı).

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/shop/v1/admin/products/{product_id}

Slot güncelle. capacity, mevcut booked'ın altına inemez (pre-check → 409).

OturumYol parametresi: product_id
İstek
curl -X PATCH "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/shop/v1/admin/products/{product_id}

BLE-5057 · sil (kalıcı; kullanım-geçmişi orders snapshot'ında yaşar).

OturumYol parametresi: product_id
İstek
curl -X DELETE "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/adjust-prices

Adjust prices

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/adjust-prices" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/categories

Product category assign

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/categories" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/shop/v1/admin/products/{product_id}/categories/{category_id}

Product category unassign

OturumYol parametresi: product_idcategory_id
İstek
curl -X DELETE "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/categories/<category_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}/channels

Product channels

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/channels" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/channels

Publish

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/channels" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/shop/v1/admin/products/{product_id}/channels/{channel_id}

Unpublish

OturumYol parametresi: product_idchannel_id
İstek
curl -X DELETE "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/channels/<channel_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/shop/v1/admin/products/{product_id}/customs

Ürün gümrük alanlarını ayarla (HS-code rakam ≤12; menşei ISO-2/3 harf). Yoksa 404.

OturumYol parametresi: product_id
İstek
curl -X PUT "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/customs" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}/digital-assets

Credential-listesi + kaldırma (müşteri-oturumu).

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/digital-assets" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/digital-assets

VPOS tanımı ekle/güncelle (upsert bank). bank 1-32 char, threed_mode 3d|non3d. config_ref saklanır

OturumYol parametresi: product_id

ama response'ta dönmez.

İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/digital-assets" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/duplicate

Duplicate

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/duplicate" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/featured

Featured

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/featured" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/generate-content

BLE-5103/5116 · toplu kod-üretici: prefix + rastgele-sonek havuzu; çakışma önleme

OturumYol parametresi: product_id

on-conflict-do-nothing + yeniden-deneme (deterministik olmayan sonek UUID'den türetilir — pratikte çakışma sıfıra yakın; teoride tükenirse 409). Üretilen kodlar yanıtta döner.

İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/generate-content" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}/media

Credential-listesi + kaldırma (müşteri-oturumu).

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/media" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/media

Attach

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/media" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/shop/v1/admin/products/{product_id}/media/{media_id}

BLE-5057 · sil (kalıcı; kullanım-geçmişi orders snapshot'ında yaşar).

OturumYol parametresi: product_idmedia_id
İstek
curl -X DELETE "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/media/<media_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/shop/v1/admin/products/{product_id}/media/{media_id}

Slot güncelle. capacity, mevcut booked'ın altına inemez (pre-check → 409).

OturumYol parametresi: product_idmedia_id
İstek
curl -X PATCH "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/media/<media_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/shop/v1/admin/products/{product_id}/media/reorder

Reorder

OturumYol parametresi: product_id
İstek
curl -X PATCH "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/media/reorder" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/media/upload

POST .../media/upload (StaffCtx PRODUCT_WRITE) — ENFORCED proxy: ham baytlar → validate_upload

OturumYol parametresi: product_id

(magic-byte + boyut) → storage.put → product_media satırı (gerçek storage_key). attach'ın GÜVENLİ hali.

İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/media/upload" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/media/upload-url

POST .../media/upload-url (StaffCtx PRODUCT_WRITE) — yükleme PLANI (declared tip/boyut ön-doğrulama;

OturumYol parametresi: product_id

s3 → presigned direct-PUT, local → proxy uç). Gerçek magic-byte ENFORCE proxy'de.

İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/media/upload-url" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}/options

Option list

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/options" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/options

Option create

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/options" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}/personalization

Credential-listesi + kaldırma (müşteri-oturumu).

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/personalization" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/personalization

VPOS tanımı ekle/güncelle (upsert bank). bank 1-32 char, threed_mode 3d|non3d. config_ref saklanır

OturumYol parametresi: product_id

ama response'ta dönmez.

İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/personalization" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/shop/v1/admin/products/{product_id}/personalization/{field_id}

BLE-5057 · sil (kalıcı; kullanım-geçmişi orders snapshot'ında yaşar).

OturumYol parametresi: product_idfield_id
İstek
curl -X DELETE "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/personalization/<field_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}/recommendations

Credential-listesi + kaldırma (müşteri-oturumu).

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/recommendations" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/recommendations

Karşılaştırmaya ürün ekle (CAP=4; owner başına). Ürün yoksa 404; liste dolu → 409; tekrar → idempotent.

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/recommendations" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/status

Public-api durum ucu: geçerli API versiyonu + deprecation/sunset (X-Api-Version başlığıyla).

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/status" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}/tags

Product tags list

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/tags" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/tags

Product tag add

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/tags" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/shop/v1/admin/products/{product_id}/tags/{tag_id}

Product tag remove

OturumYol parametresi: product_idtag_id
İstek
curl -X DELETE "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/tags/<tag_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/tags/bulk

Product tags bulk

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/tags/bulk" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/{product_id}/variants

Variant list

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/variants" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/variants

Variant create

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/variants" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/{product_id}/variants/generate

Variant generate

OturumYol parametresi: product_id
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/<product_id>/variants/generate" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/bulk-status

TF6 · toplu durum-değişikliği: her sipariş KENDİ tx'inde (kısmi başarı raporlanır; tek

Oturum

bozuk sipariş diğerlerini bloklamaz). En çok 200 id.

İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/bulk-status" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/admin/products/export.csv

Temayı ZIP olarak indir. Ajans temayı müşteriye verir, satıcı yedek alır.

Oturum
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/export.csv" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/import

ZIP'ten tema dosyalarını içeri al. Ham gövde (`application/zip`).

Oturum
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/import" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/shop/v1/admin/products/import.xlsx

Import xlsx

Oturum
İstek
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/products/import.xlsx" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/headless/products

Yayınlı ürünler (read_products). Public storefront `list_products`'ı REUSE eder (active+published).

Oturum
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/headless/products" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/headless/products/{handle}

Tek ürün detayı (read_products). Public `get_detail`'i REUSE eder (yalnız active+published; yoksa 404).

OturumYol parametresi: handle
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/headless/products/<handle>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/storefront/products

Yayınlı ürünler (read_products). Public storefront `list_products`'ı REUSE eder (active+published).

Oturum
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/products" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/storefront/products/{handle}

Detail

OturumYol parametresi: handle
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/products/<handle>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/storefront/products/{handle}/recommendations

Storefront

OturumYol parametresi: handle
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/products/<handle>/recommendations" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/shop/v1/storefront/products/{product_id}/selling-plans

Product plans

OturumYol parametresi: product_id
İstek
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/products/<product_id>/selling-plans" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?