Sepet ve Ödeme
Sepet Servisi (Basket API)
Alışveriş Sepeti Listeleme, Sepete Ekleme ve Sepet Temizleme işlemlerine ait ilgili methodları bu başlık altında bulabilirsiniz.
İlgili methodları çağırmadan önce, ilk önce javascript ile eşsiz (unique) bir checkoutId ve basketId üretmelisiniz. Daha sonra alışveriş sepeti ve siparişi tamamlama ile ilgili yapılacak olan bütün işlemlerde, bu basketId ve checkoutId değerleri kullanılacaktır.
Önemli!
basketId ve checkoutId değeri unique bir değerdir ve oturum açmayan kullanıcılar için mutlaka saklanması gerekir. Kullanıcı oturum açarsa, userId ve basketId değerleri eşleştirilir ve bu işlemden sonra kullanıcı nerede oturum açarsa açsın, sepet bilgisine ulaşabilir. Ancak her türlü senaryoda sepet bilgisine ulaşma yöntemi, ilk olarak basketId ile gerçekleşir.
Sepet İçeriğini Listeleme
Bu serviste sepete eklenen ürünleri ve sepet toplamı gibi detaylı bilgileri listeleyebilirsiniz.
Parametre Tanımlamaları
| Değerler | Zorunluluk | Ön Tanımlı | Açıklama |
|---|---|---|---|
| basketId | evet | Daha önce oluşturduğunuz geçerli oturum bilgisine ait sepet kimliği | |
| lang | hayır | tr | Servisten beklenen dil bilgisidir. Merchant'a tanımlı dil bilgileri ile istek yapılabilir. |
Örnek İstek
axios.get('{baseUrl}/api/shop/basket')
Servis Cevabı ve Alan Açıklamaları
| Alan adı | Açıklama |
|---|---|
| basketContent->_id | Sepet line id'si |
| basketContent->merchantId | Satıcıya ait id bilgisi |
| basketContent->basketId | Sepet kimliği |
| basketContent->variantId | Ürün varyant id bilgisi |
| basketContent->attributes | Ürün özellikleri (renk, beden vs.) |
| basketContent->itemType | İçerik tipi (product,fee) |
| basketContent->userId | Kullanıcı id bilgisi |
| basketContent->discountPrice | İndirim tutarı |
| basketContent->unitPrice | Birim fiyat |
| basketContent->totalPrice | Toplam fiyat |
| basketContent->currency | Para birimi |
| basketContent->qty | Adet |
| basketContent->title | Satır açıklaması / Ürün adı |
| basketContent->thumbnail | Varsa ürün görseli |
| basketContent->oldUnitPrice | Varsa indirim öncesi birim fiyat |
| basketContent->oldTotalPrice | Varsa indirim öncesi toplam fiyat |
| basketCount | Sepetteki toplam ürün sayısı |
| oldBasketTotal | Varsa indirimden önceki sepet toplamı |
| basketTotal | Sepet toplamı |
| basketCurrency | Sepet para birimi |
| promoCode | Varsa promosyon kodu bilgileri |
{
"basketContent": [
{
"_id": "62597cbc15239d01f161f362",
"merchantId": 10011,
"basketId": "62309a4f1023707a43600304",
"variantId": 128284,
"itemType": "product",
"userId": null,
"discountPrice": null,
"unitPrice": "357.25",
"totalPrice": 714.5,
"currency": "TRY",
"qty": 2,
"attributes": [],
"title": "Shiseido Hacim Veren Maskara - SMK ControlledChaos Mascaraink 04 730852147690 SMKCNRLCHSMSCR",
"thumbnail": "https://static-labs.s3.eu-central-1.amazonaws.com/products/10011/730852147690/small/730852147690_1.jpg",
"oldUnitPrice": 357.25,
"oldTotalPrice": 714.5
}
],
"basketCount": 2,
"oldBasketTotal": 714.5,
"basketTotal": 714.5,
"basketCurrency": "TRY",
"promoCode": {
"status": "",
"message": null,
"code": null
}
}
Sepete Ürün Ekleme
Bu serviste ürün sepete ekleme ve çıkarma işlemi yapılır. Sepete ekleme işlemleri variantId ile yapılmaktadır. Bu değerin productId ile karıştırılmaması önemlidir.
Sepete ekleme işlemi için qty verisini pozitif değer gönderirseniz sepete qty adedi kadar ürün eklenir. qty adedi setlenmez, sepetteki mevcut adedin üzerine qty adedi kadar ekleme yapılır.
Sepetten çıkarma işlemi için qty verisini 0 yada negatif değer olarak gönderebilirsiniz.
Parametre Tanımlamaları
| Değerler | Zorunluluk | Ön Tanımlı | Açıklama |
|---|---|---|---|
| variantId | evet | Ürün varyant id bilgisidir. | |
| qty | evet | 0 gönderilirse ürün sepetten silinir, pozitif değer gönderilirse, gönderilen değer kadar ekleme yapılır. Eğer ilgili variantId sepette zaten var ise, yeni gönderilen qty değeri, mevcut ürünün adedine eklenir. | |
| basketId | evet | Sepet kimliği | |
| warehouseId | hayır | Çoklu depo kullanan satıcılar için depo id bilgisidir. Gönderilen depo id'sine ait deponun fiyat ve stok bilgileri listelenir. Veri gönderilmezse, ön tanımlı depo ile işlem yapılır. | |
| lang | hayır | tr | Servisten beklenen dil bilgisidir. Merchant'a tanımlı dil bilgileri ile istek yapılabilir. |
Örnek İstek
axios.post('{baseUrl}/api/shop/basket', {
variantId : 52663,
qty : 1,
basketId : "62309a4f1023707a43600304",
lang : "tr"
})
Servis Cevabı ve Alan Açıklamaları
| Alan adı | Açıklama |
|---|---|
| status | İşlem sonucu (success, error) |
| message | İşlem sonucu açıklaması |
{
"status": "success",
"message": "Ürün başarıyla sepete eklendi"
}
Sepet Temizleme
Bu serviste verilen sepet kimliğine ait tüm içerikler sepetten kaldırılır. Aynı sepet kimliğini sonraki işlemlerde kullanmaya devam edebilirsiniz. Sadece sepet içeriği temizlenir.
Örnek İstek
axios.delete('{baseUrl}/api/shop/basket/62309a4f1023707a43600304')
Servis Cevabı ve Alan Açıklamaları
| Alan adı | Açıklama |
|---|---|
| status | İşlem sonucu (success, error) |
| message | İşlem sonucu açıklaması |
{
"status": "success",
"message": "Sepetinizdeki içerikler başarıyla kaldırıldı."
}