Yorum Yazma
storefront:account — müşteri token'ı zorunlu. Token almak için Kimlik Doğrulama, hata gövdelerinin biçimi için Genel Bakış.Giriş yapmış müşterinin bir ürüne yorum göndermesini sağlar. Uç hesap sürüm kökü altındadır: https://<domain>/api/v3/storefront/account/2026-01. Müşteri token'ı (storefront:account scope'u) gerekir; uygulama (app) token'ı ile yapılan istek 401 döner. Bu kaynak yalnızca yazma ucudur — onaylı yorumları okumak için Yorumlar sayfasındaki GET /products/{id}?include=comments kullanılır.
Yorum gönderme
POST /product-comments
İstek gövdesi JSON:API biçimindedir (data.type = product-comments):
curl -X POST "https://<domain>/api/v3/storefront/account/2026-01/product-comments" \
-H "Accept: application/vnd.api+json" \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer <customer_access_token>" \
-d '{
"data": {
"type": "product-comments",
"attributes": {
"productId": 771,
"title": "Çok beğendim",
"comment": "Kumaşı kaliteli, bedeni tam oldu. Tavsiye ederim.",
"rating": 5,
"isNameDisplayed": true
}
}
}'
Yanıt 201 Created — oluşturulan yorum kaydı döner:
{
"jsonapi": { "version": "1.0" },
"links": { "self": "https://<domain>/api/v3/storefront/account/2026-01/product-comments/14" },
"data": {
"type": "product-comments",
"id": "14",
"attributes": {
"productId": 771,
"title": "Çok beğendim",
"comment": "Kumaşı kaliteli, bedeni tam oldu. Tavsiye ederim.",
"rating": 5,
"isNameDisplayed": true,
"createdAt": 1783705366,
"authorName": "Portal Verify2"
},
"links": { "self": "https://<domain>/api/v3/storefront/account/2026-01/product-comments/14" }
}
}
Görselli yorum gönderme
POST /product-comments/with-image
Yorumun yanına bir fotoğraf eklemek için bu uç kullanılır. Gövde JSON:API değil multipart/form-data biçimindedir: alanlar düz form alanı olarak, görsel dosya olarak gider.
curl -X POST "https://<domain>/api/v3/storefront/account/2026-01/product-comments/with-image" \
-H "Accept: application/vnd.api+json" \
-H "Authorization: Bearer <customer_access_token>" \
-F "productId=771" \
-F "title=Çok beğendim" \
-F "comment=Kumaşı kaliteli, bedeni tam oldu." \
-F "rating=5" \
-F "isNameDisplayed=1" \
-F "image=@/yol/urun-fotograf.jpg"
Yanıt 201 Created — gövde düz yorum ucuyla aynı kaydı döner.
| Alan | Tip | Kural |
|---|---|---|
image | dosya | Opsiyonel. Tek görsel. İzin verilen tipler: jpeg, jpg, png. En fazla 4608 KB. |
Diğer alanların (productId, title, comment, rating, isNameDisplayed) kuralları düz yorum ucuyla birebir aynıdır; aşağıdaki tabloya bak.
image gönderilmezse görselsiz yorum oluşur — davranış POST /product-comments ile aynı olur. İzin verilen tipler bu uçta jpeg/jpg/png ile sınırlıdır; Görsel Yükleme sayfasındaki kişiselleştirme ucunun tip listesi ve boyut sınırı farklıdır, ikisini karıştırma.
Moderasyon, satın alma şartı ve sıklık sınırı bu uçta da geçerlidir.
Alanlar
| Alan | Tip | Kural |
|---|---|---|
productId | int | ZORUNLU. Yorum yapılan ürünün id'si (Ürünler kataloğundan). |
title | string | ZORUNLU. Yorum başlığı, en fazla 100 karakter. |
comment | string | ZORUNLU. Yorum metni, en fazla 5000 karakter. |
rating | int | ZORUNLU. Puan, 0–5 arası tamsayı. Aralık dışı değer 422 döner. |
isNameDisplayed | bool | true = müşterinin adı soyadı yorumda görünsün. Gönderilmezse false. |
createdAt | int | SALT OKUNUR. Yorumun oluşturulma anı (Unix timestamp). |
authorName | string | SALT OKUNUR. isNameDisplayed true ise müşterinin ad soyadı; false ise boş string — vitrinde de gizli kalır. |
Moderasyon kuyruğu
Gönderilen yorum onay bekleyen durumda oluşturulur ve mağaza panelinden onaylanana kadar vitrinde görünmez: 201 yanıtı alınsa bile yorum, Yorumlar okumasındaki include=comments sonucuna onaylanmadan girmez. Uygulama, gönderim sonrası "Yorumunuz onaya gönderildi" benzeri bir mesaj göstermelidir.
Gönderim kısıtları
- Satın alma şartı: mağaza "yalnızca ürünü satın alanlar yorum yapabilsin" ayarını açtıysa, o ürünü satın almamış müşterinin isteği
403döner ("Yalnızca ürünü satın alan müşteriler yorum yapabilir."). - Sıklık sınırı: mağazanın yorum sıklığı ayarı (saniye) içinde aynı ürüne ikinci yorum
422döner ("Yorum ekleme sıklık limitine ulaşıldı.").
Hatalar
| Durum kodu | Sebep |
|---|---|
| 401 | Token yok/geçersiz veya müşteri token'ı değil |
| 403 | Satın alma şartı açık ve müşteri ürünü satın almamış |
| 406 | Accept başlığı application/vnd.api+json değil |
| 422 | Doğrulama hatası (eksik alan, uzunluk/aralık aşımı — errors[].source.pointer alanı gösterir) veya sıklık sınırı. Görselli uçta ayrıca: dosya tipi jpeg/jpg/png değil ya da boyut 4608 KB üstü |