E-Çarşı API Dokümantasyonu

Giriş

E-Çarşı satıcı paneli API servisleri

Bu dokümantasyon, API servislerimizi kullanmanız için ihtiyacınız olan tüm bilgileri içermektedir.

Sorumluluk Reddi

API kullanımı ile ilgili önemli bilgiler:

  • API üzerinden yapılan tüm işlemlerin sorumluluğu tamamen satıcıya aittir
  • Satıcılar, API üzerinden yaptıkları tüm işlemleri yasal mevzuata uygun şekilde gerçekleştirmekle yükümlüdür
  • Ürün bilgilerinin doğruluğu, stok durumu ve fiyatlandırma konularında tüm sorumluluk satıcıya aittir
  • E-Çarşı, API üzerinden yapılan işlemler nedeniyle oluşabilecek hatalardan, kayıplardan veya zararlardan sorumlu tutulamaz
  • API kullanımı sırasında oluşabilecek teknik sorunlardan kaynaklı zararlardan E-Çarşı sorumlu değildir
  • E-Çarşı, önceden bildirmeksizin API servislerinde değişiklik yapma, sınırlama getirme veya servisleri durdurma hakkını saklı tutar
  • Satıcılar, API kullanımı sırasında müşteri verilerinin gizliliğini korumakla yükümlüdür

Destek

API kullanımı sırasında herhangi bir sorunla karşılaşırsanız:

Sürüm Geçmişi

  • v1.1.0 (13 Mart 2025)
    • Ürün resim sisteminde değişiklikler yapıldı
    • Ürünlerde stok kodu gönderildiğinde gönderilen stok kodu ile ürün oluşturuyoruz
    • Sipariş detay endpoint'inde fatura ve teslimat bilgileri de eklendi
  • v1.0.0 (22 Şubat 2025)
    • İlk sürüm yayınlandı
    • Temel API endpoint'leri eklendi
    • Ürün yönetimi için gerekli servisler eklendi

Hata Kodları

API'den dönen hata kodları ve açıklamaları:

  • 400 - İstek formatı hatalı
  • 401 - Yetkisiz erişim
  • 403 - Erişim engellendi
  • 404 - Kaynak bulunamadı
  • 422 - Validasyon hatası
  • 429 - Çok fazla istek
  • 500 - Sunucu hatası

İstek Limitleri

  • Her IP adresi için dakikada maksimum 60 istek
  • Token başına günlük maksimum 1000 istek
  • Dosya yükleme limiti: 10MB

Öneriler

  • İstekleri mümkün olduğunca filtreleyerek yapın
  • Büyük veri setleri için sayfalama kullanın
  • Hata durumlarını uygun şekilde yönetin
  • API anahtarınızı güvenli bir şekilde saklayın

İsteklerin Doğrulanması

İstekleri doğrulamak için, Authorization başlığını "Bearer {token}" değeri ile ekleyin.

Kimlik doğrulama gerektiren tüm servisler aşağıdaki dokümantasyonda kimlik doğrulama gerekli rozeti ile işaretlenmiştir.

Token almak için /api/auth endpoint'ini kullanın.

Giriş ve Doğrulama

API'ye erişim için gerekli token alma işlemleri

Giriş Yap

POST
https://api.e-carsi.com
/api/auth

E-posta ve şifre ile giriş yaparak token alır

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

Gövde Parametreleri

Örnek istek:
curl --request POST \
    "https://api.e-carsi.com/api/auth" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\",
    \"password\": \"123456\"
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Giriş başarılı",
        "en": "Login successful"
    },
    "data": {
        "token": "xxxxxxxx",
        "seller": {
            "id": 1,
            "email": "[email protected]"
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz kimlik bilgileri",
        "en": "Invalid credentials"
    }
}
{
    "success": false,
    "message": {
        "tr": "Şifre hatalı",
        "en": "Invalid password"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz giriş bilgileri",
        "en": "Invalid login credentials"
    },
    "errors": {
        "email": [
            "E-posta adresi zorunludur",
            "Geçerli bir e-posta adresi giriniz"
        ],
        "password": [
            "Şifre zorunludur"
        ]
    }
}

Kategoriler

Kategori yönetimi ile ilgili işlemler

Kategori Listesi

GET
https://api.e-carsi.com
/api/categories

Tüm kategorileri listeler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

Sorgu Parametreleri

parent_id
integer

Ana kategori ID'si.

Örnek:
0
with_children
boolean

Alt kategorileri de getir.

Örnek:
true
page
integer

Sayfa numarası (en az: 1).

Örnek:
1
per_page
integer

Sayfa başına kayıt sayısı (en az: 1, en fazla: 100).

Örnek:
20
Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/categories?parent_id=0&with_children=1&page=1&per_page=20" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Kategoriler başarıyla listelendi",
        "en": "Categories listed successfully"
    },
    "data": {
        "categories": [
            {
                "id": 1,
                "name": "Elektronik",
                "slug": "elektronik",
                "parent_id": 0,
                "children": [
                    {
                        "id": 2,
                        "name": "Cep Telefonu",
                        "slug": "cep-telefonu",
                        "parent_id": 1
                    }
                ]
            }
        ],
        "pagination": {
            "total": 50,
            "per_page": 20,
            "current_page": 1,
            "last_page": 3
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz parametreler",
        "en": "Invalid parameters"
    },
    "errors": {
        "parent_id": [
            "Geçersiz üst kategori ID'si"
        ],
        "page": [
            "Sayfa numarası en az 1 olmalıdır"
        ],
        "per_page": [
            "Sayfa başına kayıt sayısı 1 ile 100 arasında olmalıdır"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Kategoriler listelenirken bir hata oluştu",
        "en": "An error occurred while listing categories"
    },
    "error": "..."
}

Kategori Detayı

GET
https://api.e-carsi.com
/api/categories/{category_id}

Belirtilen kategorinin detaylarını getirir

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

category_id
integer
zorunlu

Kategori ID.

Örnek:
1
Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/categories/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Kategori detayları başarıyla getirildi",
        "en": "Category details retrieved successfully"
    },
    "data": {
        "category": {
            "id": 1,
            "name": "Elektronik",
            "slug": "elektronik",
            "description": "Elektronik ürünler",
            "parent_id": 0,
            "filters": [
                {
                    "id": 1,
                    "name": "Marka",
                    "type": "select",
                    "required": true
                }
            ],
            "variants": [
                {
                    "id": 1,
                    "name": "Renk",
                    "type": "color",
                    "required": true
                }
            ]
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Kategori bulunamadı",
        "en": "Category not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Kategori detayları getirilirken bir hata oluştu",
        "en": "An error occurred while retrieving category details"
    },
    "error": "..."
}

Varyant Seçenekleri

GET
https://api.e-carsi.com
/api/variants/{variant_id}/options

Belirtilen varyanta ait seçenekleri listeler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

variant_id
integer
zorunlu

Varyant ID.

Örnek:
1

Sorgu Parametreleri

search
string

Seçenek adı ile arama yapar.

Örnek:
siyah
page
integer

Sayfa numarası (en az: 1).

Örnek:
1
per_page
integer

Sayfa başına kayıt sayısı (en az: 1, en fazla: 100).

Örnek:
20
Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/variants/1/options?search=siyah&page=1&per_page=20" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Varyant seçenekleri başarıyla listelendi",
        "en": "Variant options listed successfully"
    },
    "data": {
        "options": [
            {
                "id": 1,
                "name": "Siyah",
                "value": "#000000"
            }
        ],
        "pagination": {
            "total": 50,
            "per_page": 20,
            "current_page": 1,
            "last_page": 3
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Varyant bulunamadı",
        "en": "Variant not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz parametreler",
        "en": "Invalid parameters"
    },
    "errors": {
        "page": [
            "Sayfa numarası en az 1 olmalıdır"
        ],
        "per_page": [
            "Sayfa başına kayıt sayısı 1 ile 100 arasında olmalıdır"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Varyant seçenekleri listelenirken bir hata oluştu",
        "en": "An error occurred while listing variant options"
    },
    "error": "..."
}

Filtre Seçenekleri

GET
https://api.e-carsi.com
/api/filters/{filter_id}/options

Belirtilen filtreye ait seçenekleri listeler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

filter_id
integer
zorunlu

Filtre ID.

Örnek:
1

Sorgu Parametreleri

search
string

Seçenek adı ile arama yapar.

Örnek:
apple
page
integer

Sayfa numarası (en az: 1).

Örnek:
1
per_page
integer

Sayfa başına kayıt sayısı (en az: 1, en fazla: 100).

Örnek:
20
Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/filters/1/options?search=apple&page=1&per_page=20" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Filtre seçenekleri başarıyla listelendi",
        "en": "Filter options listed successfully"
    },
    "data": {
        "options": [
            {
                "id": 1,
                "name": "Apple",
                "value": "apple"
            }
        ],
        "pagination": {
            "total": 50,
            "per_page": 20,
            "current_page": 1,
            "last_page": 3
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Filtre bulunamadı",
        "en": "Filter not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz parametreler",
        "en": "Invalid parameters"
    },
    "errors": {
        "page": [
            "Sayfa numarası en az 1 olmalıdır"
        ],
        "per_page": [
            "Sayfa başına kayıt sayısı 1 ile 100 arasında olmalıdır"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Filtre seçenekleri listelenirken bir hata oluştu",
        "en": "An error occurred while listing filter options"
    },
    "error": "..."
}

Ürünler

Ürün yönetimi ile ilgili işlemler

Ürün Listesi

GET
https://api.e-carsi.com
/api/products

GET /api/products

Satıcıya ait ürünleri listeler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

Sorgu Parametreleri

page
integer
zorunlu

Sayfa numarası (en az: 1).

Örnek:
1
per_page
integer

Sayfa başına kayıt sayısı (en az: 1, en fazla: 100).

Örnek:
20
search
string

Ürün adı veya model kodu ile arama yapar.

Örnek:
iphone
status
string

Ürün durumu filtresi (active: Aktif, passive: Pasif, rejected: Reddedildi).

Örnek:
active
date_start
string

date Başlangıç tarihi (Y-m-d formatında).

Örnek:
2024-01-01
date_end
string

date Bitiş tarihi (Y-m-d formatında).

Örnek:
2024-02-19

Gövde Parametreleri

Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/products?page=1&per_page=20&search=iphone&status=active&date_start=2024-01-01&date_end=2024-02-19" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 19,
    \"per_page\": 18,
    \"status\": \"active\",
    \"date_start\": \"2025-02-22\",
    \"date_end\": \"2025-02-22\"
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Ürünler başarıyla listelendi",
        "en": "Products listed successfully"
    },
    "data": {
        "products": [
            {
                "id": 1,
                "name": "iPhone 13",
                "model_code": "IP13-128",
                "cover_image": "https://e-carsi.com/dosya/urun/iphone13.jpg",
                "market_price": 25000,
                "status": {
                    "code": "active",
                    "label": "Aktif"
                },
                "created_at": "2024-02-19 10:00:00"
            }
        ],
        "pagination": {
            "total": 50,
            "per_page": 20,
            "current_page": 1,
            "last_page": 3
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz parametreler",
        "en": "Invalid parameters"
    },
    "errors": {
        "page": [
            "Sayfa numarası en az 1 olmalıdır"
        ],
        "per_page": [
            "Sayfa başına kayıt sayısı 1 ile 100 arasında olmalıdır"
        ],
        "status": [
            "Geçersiz durum değeri"
        ],
        "date_start": [
            "Geçersiz tarih formatı"
        ],
        "date_end": [
            "Bitiş tarihi başlangıç tarihinden büyük olmalıdır"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Ürünler listelenirken bir hata oluştu",
        "en": "An error occurred while listing products"
    },
    "error": "..."
}

Ürün Oluştur

POST
https://api.e-carsi.com
/api/products

POST /api/products

Yeni bir ürün oluşturur. Varyantlar ve filtreler ile birlikte kaydedilir.

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

Gövde Parametreleri

Örnek istek:
curl --request POST \
    "https://api.e-carsi.com/api/products" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"iPhone 13\",
    \"category_id\": 1,
    \"model_code\": \"IP13-128\",
    \"average_price\": \"24999.99\",
    \"barcode\": \"8680000000000\",
    \"estimated_shipping_time\": 3,
    \"description\": \"Detaylı ürün açıklaması\",
    \"shipping_company_id\": 1,
    \"desi\": 5,
    \"variants\": [
        \"molestiae\"
    ],
    \"filters\": [
        \"qui\"
    ]
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Ürün başarıyla oluşturuldu",
        "en": "Product created successfully"
    },
    "data": {
        "product_id": 1,
        "stock_codes": [
            "STK123456"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz ürün bilgileri",
        "en": "Invalid product information"
    },
    "errors": {
        "model_code": [
            "Bu model kodu zaten kullanılıyor"
        ],
        "category_id": [
            "Geçersiz kategori"
        ],
        "filters": [
            "Zorunlu filtreler eksik"
        ],
        "variants": [
            "Seçilen varyant bu kategoriye ait değil"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Ürün oluşturulurken bir hata oluştu",
        "en": "An error occurred while creating the product"
    },
    "error": "..."
}

Ürün Silme (Toplu)

DELETE
https://api.e-carsi.com
/api/products/bulk-delete

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

product_ids
string

array required Silinecek ürün ID'leri.

Örnek:
[1,2,3]
Örnek istek:
curl --request DELETE \
    "https://api.e-carsi.com/api/products/bulk-delete" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Ürünler başarıyla silindi",
        "en": "Products deleted successfully"
    },
    "data": {
        "deleted": [
            1,
            2
        ],
        "failed": {
            "3": "Ürün sipariş sepetinde bulunuyor"
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz istek",
        "en": "Invalid request"
    }
}

Ürün Resmi Yükleme

POST
https://api.e-carsi.com
/api/products/{product_id}/images

POST /api/products/{product_id}/images

Ürüne ait resimleri yükler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

product_id
integer
zorunlu

Ürün ID.

Örnek:
1

Gövde Parametreleri

Örnek istek:
curl --request POST \
    "https://api.e-carsi.com/api/products/1/images" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"images\": null
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Resimler başarıyla yüklendi",
        "en": "Images uploaded successfully"
    },
    "data": {
        "images": [
            {
                "id": 1,
                "url": "https://e-carsi.com/dosya/urun/resim1.jpg"
            }
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Ürün bulunamadı",
        "en": "Product not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz resim dosyası",
        "en": "Invalid image file"
    },
    "errors": {
        "images": [
            "Resim dosyası jpg veya png formatında olmalıdır",
            "Resim boyutu en fazla 2MB olmalıdır",
            "En fazla 5 resim yüklenebilir"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Resimler yüklenirken bir hata oluştu",
        "en": "An error occurred while uploading images"
    },
    "error": "..."
}

Varyant Oluştur

POST
https://api.e-carsi.com
/api/products/{product_id}/variants

POST /api/products/{product_id}/variants

Belirtilen ürüne yeni bir varyant ekler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

product_id
integer
zorunlu

Ürün ID.

Örnek:
1

Gövde Parametreleri

Örnek istek:
curl --request POST \
    "https://api.e-carsi.com/api/products/1/variants" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"iPhone 13 128GB Siyah\",
    \"market_price\": \"24999.99\",
    \"price\": \"24999.99\",
    \"stock\": 100,
    \"variants\": [
        \"officia\"
    ]
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Varyant başarıyla oluşturuldu",
        "en": "Variant created successfully"
    },
    "data": {
        "variant": {
            "stock_code": "STK123456",
            "name": "iPhone 13 128GB Siyah",
            "market_price": 24999.99,
            "price": 24999.99,
            "stock": 100,
            "options": [
                {
                    "variant_id": 1,
                    "name": "Kapasite",
                    "option_id": 1,
                    "value": "128GB"
                },
                {
                    "variant_id": 2,
                    "name": "Renk",
                    "option_id": 1,
                    "value": "Siyah"
                }
            ]
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Bu varyant kombinasyonu zaten mevcut",
        "en": "This variant combination already exists"
    }
}
{
    "success": false,
    "message": {
        "tr": "Ürün bulunamadı",
        "en": "Product not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz varyant bilgileri",
        "en": "Invalid variant information"
    },
    "errors": {
        "variants": [
            "Seçilen varyant bu kategoriye ait değil"
        ]
    }
}

Varyant Güncelleme

PUT
https://api.e-carsi.com
/api/products/{product_id}/variants/{stock_code}

PUT /api/products/{product_id}/variants/{stock_code}

Belirtilen ürünün varyantını günceller

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

product_id
integer
zorunlu

Ürün ID.

Örnek:
1
stock_code
string
zorunlu

Stok kodu.

Örnek:
IP13-128-SIYAH

Gövde Parametreleri

Örnek istek:
curl --request PUT \
    "https://api.e-carsi.com/api/products/1/variants/IP13-128-SIYAH" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"price\": \"24999.99\",
    \"stock\": 100,
    \"status\": \"active\"
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Varyant başarıyla güncellendi",
        "en": "Variant updated successfully"
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Ürün veya varyant bulunamadı",
        "en": "Product or variant not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz parametreler",
        "en": "Invalid parameters"
    },
    "errors": {
        "price": [
            "Fiyat en az 1 TL olmalıdır"
        ],
        "stock": [
            "Stok adedi en az 0 olmalıdır"
        ],
        "status": [
            "Geçersiz durum değeri"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Varyant güncellenirken bir hata oluştu",
        "en": "An error occurred while updating variant"
    },
    "error": "..."
}

Varyant Listesi

GET
https://api.e-carsi.com
/api/products/{product_id}/variants

GET /api/products/{product_id}/variants

Belirtilen ürünün varyantlarını listeler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

product_id
integer
zorunlu

Ürün ID.

Örnek:
1
Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/products/1/variants" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Varyasyonlar başarıyla listelendi",
        "en": "Variants listed successfully"
    },
    "data": {
        "product": {
            "id": 1,
            "name": "iPhone 13",
            "model_code": "IP13-128",
            "barcode": "IP13-128"
        },
        "variants": [
            {
                "id": 1,
                "stock_code": "IP13-128-SIYAH",
                "name": "iPhone 13",
                "market_price": 25000,
                "price": 24999.99,
                "stock": 100,
                "options": [
                    {
                        "variant_id": 1,
                        "name": "Renk",
                        "option_id": 1,
                        "value": "Siyah"
                    }
                ]
            }
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Ürün bulunamadı",
        "en": "Product not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Varyasyonlar listelenirken bir hata oluştu",
        "en": "An error occurred while listing variants"
    },
    "error": "..."
}

Varyant Silme

DELETE
https://api.e-carsi.com
/api/products/{product_id}/variants/{stock_code}

DELETE /api/products/{product_id}/variants/{stock_code}

Belirtilen ürünün varyantını siler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

product_id
integer
zorunlu

Ürün ID.

Örnek:
1
stock_code
string
zorunlu

Stok kodu.

Örnek:
IP13-128-SIYAH
Örnek istek:
curl --request DELETE \
    "https://api.e-carsi.com/api/products/1/variants/IP13-128-SIYAH" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Varyasyon başarıyla silindi",
        "en": "Variant deleted successfully"
    }
}
{
    "success": false,
    "message": {
        "tr": "Son varyasyon silinemez",
        "en": "Cannot delete the last variant"
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Ürün veya varyant bulunamadı",
        "en": "Product or variant not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Varyasyon silinirken bir hata oluştu",
        "en": "An error occurred while deleting variant"
    },
    "error": "..."
}

Toplu Varyant Güncelleme

PUT
https://api.e-carsi.com
/api/products/{product_id}/variants/bulk-update

PUT /api/products/{product_id}/variants/bulk-update

Belirtilen ürünün birden fazla varyantını günceller

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

product_id
integer
zorunlu

Ürün ID.

Örnek:
1

Gövde Parametreleri

Örnek istek:
curl --request PUT \
    "https://api.e-carsi.com/api/products/1/variants/bulk-update" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"variants\": [
        {
            \"stock_code\": \"IP13-128-SIYAH\",
            \"price\": 24999.99,
            \"stock\": 100
        }
    ]
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Varyasyonlar başarıyla güncellendi",
        "en": "Variants updated successfully"
    },
    "data": {
        "variants": [
            {
                "stock_code": "IP13-128-SIYAH",
                "market_price": 24999.99,
                "price": 24999.99,
                "stock": 100,
                "updated_at": "2024-02-19 10:00:00"
            }
        ],
        "errors": []
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Ürün bulunamadı",
        "en": "Product not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz parametreler",
        "en": "Invalid parameters"
    },
    "errors": {
        "variants": [
            "Varyantlar boş olamaz"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Varyasyonlar güncellenirken bir hata oluştu",
        "en": "An error occurred while updating variants"
    },
    "error": "..."
}

Resim Silme

DELETE
https://api.e-carsi.com
/api/products/{product_id}/images/{image_id}

DELETE /api/products/{product_id}/images/{image_id}

Ürüne ait belirtilen resmi siler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

product_id
integer
zorunlu

Ürün ID.

Örnek:
1
image_id
integer
zorunlu

Resim ID.

Örnek:
1
Örnek istek:
curl --request DELETE \
    "https://api.e-carsi.com/api/products/1/images/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Resim başarıyla silindi",
        "en": "Image deleted successfully"
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Resim bulunamadı",
        "en": "Image not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Resim silinirken bir hata oluştu",
        "en": "An error occurred while deleting the image"
    },
    "error": "..."
}

Kargo

Kargo işlemleri ile ilgili endpoint'ler

Kargo Firmaları

GET
https://api.e-carsi.com
/api/shipping-companies

Anlaşmalı kargo firmalarını listeler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

Yanıt Alanları

Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/shipping-companies" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Kargo firmaları başarıyla listelendi",
        "en": "Shipping companies listed successfully"
    },
    "data": [
        {
            "id": 1,
            "name": "Yurtiçi Kargo",
            "logo": "https://e-carsi.com/dosya/kargo/yurtici.png"
        }
    ]
}

Siparişler

Sipariş yönetimi ile ilgili işlemler

Sipariş Listesi

GET
https://api.e-carsi.com
/api/orders

Satıcıya ait siparişleri listeler

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

Sorgu Parametreleri

page
integer

Sayfa numarası (en az: 1).

Örnek:
1
per_page
integer

Sayfa başına kayıt sayısı (en az: 1, en fazla: 100).

Örnek:
20
seller_status
string

Satıcı durumu filtresi. Seçenekler: waiting (Beklemede), approved (Onaylandı), in_supply (Tedarik Sürecinde), preparing (Hazırlanıyor), packaging (Paketleniyor), shipped (Kargoda), delivered (Teslim Edildi), return_waiting (İade Bekleniyor), return_received (İade Alındı), completed_return (İade Tamamlandı), completed_cancel (İptal Tamamlandı), partial_return (Kısmi İade), partial_cancel (Kısmi İptal).

Örnek:
waiting
customer_status
string

Müşteri durumu filtresi. Seçenekler: waiting (Beklemede), completed (Tamamlandı), returned (İade Edildi), cancelled (İptal Edildi).

Örnek:
waiting
invoice_status
string

Fatura durumu. Seçenekler: uploaded (Fatura Yüklendi), not_uploaded (Fatura Yüklenmedi).

Örnek:
not_uploaded
date
date

Belirli bir tarihte oluşmuş siparişleri getirmektedir.

Örnek:
20.02.2024
date_mode
string

exact,after,before

Örnek:
exact

Gövde Parametreleri

Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/orders?page=1&per_page=20&seller_status=waiting&customer_status=waiting&invoice_status=not_uploaded" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 45,
    \"per_page\": 23
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Siparişler başarıyla listelendi",
        "en": "Orders listed successfully"
    },
    "data": {
        "orders": [
            {
                "order_id": "123456",
                "seller_status": "waiting",
                "customer_status": "waiting",
                "invoice_status": "not_uploaded",
                "customer_email": "[email protected]",
                "product_count": 2,
                "price": 150,
                "order_date": "2024-02-19 10:00:00"
            }
        ],
        "pagination": {
            "total": 50,
            "per_page": 20,
            "current_page": 1,
            "last_page": 3
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz parametreler",
        "en": "Invalid parameters"
    },
    "errors": {
        "page": [
            "Sayfa numarası en az 1 olmalıdır"
        ],
        "per_page": [
            "Sayfa başına kayıt sayısı 1 ile 100 arasında olmalıdır"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Siparişler listelenirken bir hata oluştu",
        "en": "An error occurred while listing orders"
    },
    "error": "..."
}

Sipariş Detayı

GET
https://api.e-carsi.com
/api/orders/{order_id}

GET /api/orders/{order_id}

Belirtilen siparişin detaylarını getirir

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

order_id
string
zorunlu

Sipariş ID.

Örnek:
123456
Örnek istek:
curl --request GET \
    --get "https://api.e-carsi.com/api/orders/123456" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Sipariş detayları başarıyla getirildi",
        "en": "Order details retrieved successfully"
    },
    "data": {
        "order": {
            "id": "123456",
            "date": "2024-02-19 10:00:00",
            "customer": {
                "email": "[email protected]",
                "phone": "5551234567",
                "name": "Ahmet Yılmaz"
            },
            "address": {
                "city": "İstanbul",
                "district": "Kadıköy",
                "full_address": "Örnek Mah. Test Sok. No:1 D:2"
            },
            "address": {
                "corporate": false,
                "name": "Taha KOÇAK",
                "phone": "5555555555",
                "tc": "11111111111",
                "city": "Adana",
                "district": "Aladag",
                "full_address": "Aladag asdasdasdas",
                "tax_office": "",
                "tax_number": "",
                "company_name": ""
            },
            "invoice": {
                "corporate": false,
                "name": "Taha KOÇAK",
                "phone": "5555555555",
                "tc": "11111111111",
                "city": "Adana",
                "district": "Ceyhan",
                "full_address": "Büyükmangit dasdasdas",
                "tax_office": "",
                "tax_number": "",
                "company_name": ""
            },
            "status": {
                "seller": "waiting",
                "customer": "waiting",
                "invoice": "not_uploaded"
            },
            "items": [
                {
                    "name": "iPhone 13",
                    "barcode": "123456789",
                    "stock_code": "IP13-128",
                    "quantity": 1,
                    "price": 25000,
                    "variants": [
                        "128GB",
                        "Siyah"
                    ]
                }
            ],
            "totals": {
                "subtotal": 25000,
                "shipping": 0,
                "total": 25000
            }
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Sipariş bulunamadı",
        "en": "Order not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Sipariş detayları getirilirken bir hata oluştu",
        "en": "An error occurred while retrieving order details"
    },
    "error": "..."
}

Kargo Oluşturma

POST
https://api.e-carsi.com
/api/orders/{order_id}/shipping

POST /api/orders/{order_id}/shipping

Sipariş için kargo kaydı oluşturur

Başlıklar

Content-Type
Örnek:
application/json
Accept
Örnek:
application/json

URL Parametreleri

order_id
string
zorunlu

Sipariş ID.

Örnek:
123456

Gövde Parametreleri

Örnek istek:
curl --request POST \
    "https://api.e-carsi.com/api/orders/123456/shipping" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"company_id\": 1,
    \"tracking_number\": \"1234567890\",
    \"desi\": 2
}"
Örnek yanıt:
{
    "success": true,
    "message": {
        "tr": "Kargo kaydı başarıyla oluşturuldu",
        "en": "Shipping record created successfully"
    },
    "data": {
        "tracking": {
            "number": "1234567890",
            "url": "https://www.yurticikargo.com/takip?code=1234567890",
            "barcode_url": "https://e-carsi.com/kargo-barkod/1234567890.png"
        }
    }
}
{
    "success": false,
    "message": {
        "tr": "Yetkisiz erişim",
        "en": "Unauthorized access"
    }
}
{
    "success": false,
    "message": {
        "tr": "Sipariş bulunamadı",
        "en": "Order not found"
    }
}
{
    "success": false,
    "message": {
        "tr": "Geçersiz parametreler",
        "en": "Invalid parameters"
    },
    "errors": {
        "company_id": [
            "Geçersiz kargo firması"
        ],
        "tracking_number": [
            "Kargo takip numarası zorunludur"
        ],
        "desi": [
            "Desi bilgisi 1 ile 100 arasında olmalıdır"
        ]
    }
}
{
    "success": false,
    "message": {
        "tr": "Kargo kaydı oluşturulurken bir hata oluştu",
        "en": "An error occurred while creating shipping record"
    },
    "error": "..."
}