承接 wiensa/trendyol-sp-api 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wiensa/trendyol-sp-api

最新稳定版本:v1.0.2

Composer 安装命令:

composer require wiensa/trendyol-sp-api

包简介

Trendyol Marketplace API entegrasyonu için Laravel paketi

README 文档

README

Bu paket, Trendyol Marketplace API'si ile entegrasyon sağlamak için Laravel uygulamalarında kullanılabilecek bir istemci sağlar.

Kurulum

Packagist Üzerinden Kurulum (Tavsiye Edilen)

Paketi Composer aracılığıyla yükleyin:

composer require wiensa/trendyol-sp-api

GitHub Üzerinden Kurulum

Eğer paket henüz Packagist'e yüklenmemişse, GitHub üzerinden doğrudan kurulum yapabilirsiniz. Bu yöntem için composer.json dosyanıza aşağıdaki kod bloğunu ekleyin:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/wiensa/trendyol-sp-api"
    }
],
"require": {
    "wiensa/trendyol-sp-api": "dev-main"
}

Sonra Composer'ı güncellemeyi unutmayın:

composer update

Lokal Geliştirme İçin Kurulum

Geliştirme sürecinde lokal olarak kullanmak için composer.json dosyanıza path repository ekleyebilirsiniz:

"repositories": [
    {
        "type": "path",
        "url": "../trendyol-sp-api"
    }
],
"require": {
    "wiensa/trendyol-sp-api": "*"
}

Laravel 5.5 ve üstü için, paket otomatik olarak kaydedilecektir.

Yapılandırma dosyasını yayınlamak için:

php artisan vendor:publish --provider="TrendyolApi\TrendyolSpApi\Providers\TrendyolServiceProvider" --tag="config"

Yapılandırma

Paket yapılandırması, yayınlanan config/trendyol.php dosyasında veya .env dosyasında aşağıdaki şekilde ayarlanabilir:

TRENDYOL_SUPPLIER_ID=your-supplier-id
TRENDYOL_API_KEY=your-api-key
TRENDYOL_API_SECRET=your-api-secret
TRENDYOL_API_URL=https://api.trendyol.com/sapigw
TRENDYOL_CACHE_ENABLED=true
TRENDYOL_CACHE_TTL=3600
TRENDYOL_DEBUG=false

Kullanım

Facade Kullanımı

use TrendyolApi\TrendyolSpApi\Facades\Trendyol;

// Ürünleri listeleme
$products = Trendyol::products()->list(['page' => 0, 'size' => 50]);

// Sipariş bilgilerini alma
$orders = Trendyol::orders()->list(['status' => 'Created', 'startDate' => '2023-01-01', 'endDate' => '2023-12-31']);

// Kategorileri listeleme
$categories = Trendyol::categories()->list();

// Markaları arama
$brands = Trendyol::brands()->search('Apple');

// İadeleri listeleme
$returns = Trendyol::returns()->list(['startDate' => '2023-01-01', 'endDate' => '2023-12-31']);

// Müşteri sorularını listeleme
$questions = Trendyol::customerQuestions()->list(['status' => 'WAITING_FOR_ANSWER']);

// Şikayetleri/talepleri listeleme
$claims = Trendyol::claims()->list(['status' => 'OPEN']);

// Kargo firmalarını listeleme
$shipmentProviders = Trendyol::shipmentProviders()->list();

Helper Fonksiyonu Kullanımı

// Ürünleri listeleme
$products = trendyol()->products()->list(['page' => 0, 'size' => 50]);

// Sipariş bilgilerini alma
$orders = trendyol()->orders()->list();

// İadeleri listeleme
$returns = trendyol()->returns()->list();

// Müşteri sorusuna yanıt verme
$answer = trendyol()->customerQuestions()->answer(12345, 'Ürünümüz 2 yıl garantilidir.');

Dependency Injection Kullanımı

use TrendyolApi\TrendyolSpApi\Trendyol;

class ProductController extends Controller
{
    protected Trendyol $trendyol;
    
    public function __construct(Trendyol $trendyol)
    {
        $this->trendyol = $trendyol;
    }
    
    public function index()
    {
        return $this->trendyol->products()->list();
    }
}

Özellikler

  • Ürün Yönetimi:

    • Ürün listeleme, detay görüntüleme
    • Ürün oluşturma (tekli ve toplu)
    • Ürün güncelleme (tekli ve toplu)
    • Ürün silme
    • Stok ve fiyat güncelleme
  • Sipariş Yönetimi:

    • Siparişleri listeleme ve detay görüntüleme
    • Sipariş paketini onaylama veya iptal etme
    • Kargo takip numarası güncelleme
    • Fatura bilgisi/dosyası gönderme
  • İade Yönetimi:

    • İadeleri listeleme ve detay görüntüleme
    • İade durumunu güncelleme (onaylama/reddetme)
    • İade kargo takip numarasını güncelleme
  • Müşteri Soruları Yönetimi:

    • Soruları listeleme ve detay görüntüleme
    • Soruları yanıtlama
    • Soruları eskalasyon yapma/üst kademeye iletme
  • Talep/Şikayet Yönetimi:

    • Talepleri listeleme ve detay görüntüleme
    • Talep durumunu güncelleme
    • Talebe not ekleme
    • Talebe döküman/delil yükleme
  • Kargo ve Sevkiyat Yönetimi:

    • Kargo firmalarını listeleme
    • Tedarikçi kargo hesaplarını görüntüleme
    • Sevkiyat çıkışlarını listeleme ve detay görüntüleme
    • Kargo etiketi indirme (tekli ve toplu)
    • Sevkiyat çıkışı oluşturma
    • Teslimat seçeneklerini görüntüleme
  • Kategori ve Marka Yönetimi:

    • Kategori ve markaları listeleme ve arama
  • Tedarikçi Adresi Yönetimi:

    • Tedarikçi adreslerini yönetme
  • Genel Özellikler:

    • API İstek Rate Limiting: API istek sınırlamalarına otomatik uyum sağlama
    • Önbellek Desteği: API yanıtlarını önbelleğe alma özelliği
    • Debug Modu: API isteklerini ve yanıtlarını günlüğe kaydetme özelliği

Hata Yönetimi

use TrendyolApi\TrendyolSpApi\Exceptions\TrendyolApiException;

try {
    $products = Trendyol::products()->list();
} catch (TrendyolApiException $e) {
    // API hatası işlemleri
    $error_code = $e->getCode();
    $error_message = $e->getMessage();
} catch (\Exception $e) {
    // Diğer hatalar
}

Detaylı Kullanım Örnekleri

İade İşlemleri

// İadeleri listeleme
$returns = Trendyol::returns()->list([
    'startDate' => '2023-01-01',
    'endDate' => '2023-12-31',
    'status' => 'PENDING'
]);

// İade detayını görüntüleme
$returnDetail = Trendyol::returns()->get(12345);

// İade durumunu güncelleme (onaylama)
$updateStatus = Trendyol::returns()->updateStatus(12345, 'APPROVED');

// İade durumunu güncelleme (reddetme)
$updateStatus = Trendyol::returns()->updateStatus(12345, 'REJECTED', 'Ürün hasarlı geldi');

// İade kargo takip numarasını güncelleme
$updateTracking = Trendyol::returns()->updateTrackingNumber(12345, '1234567890');

Müşteri Soruları

// Müşteri sorularını listeleme
$questions = Trendyol::customerQuestions()->list([
    'status' => 'WAITING_FOR_ANSWER',
    'startDate' => '2023-01-01',
    'endDate' => '2023-12-31'
]);

// Soru detayını görüntüleme
$questionDetail = Trendyol::customerQuestions()->get(12345);

// Soruyu yanıtlama
$answer = Trendyol::customerQuestions()->answer(12345, 'Ürünümüz 2 yıl garantilidir.');

// Soruyu eskalasyon yapma/üst kademeye iletme
$escalate = Trendyol::customerQuestions()->escalate(12345, 'Teknik bilgi gerektiren bir soru');

Talep/Şikayet İşlemleri

// Talepleri listeleme
$claims = Trendyol::claims()->list([
    'status' => 'OPEN',
    'startDate' => '2023-01-01',
    'endDate' => '2023-12-31'
]);

// Talep detayını görüntüleme
$claimDetail = Trendyol::claims()->get(12345);

// Talebe not ekleme
$addNote = Trendyol::claims()->addNote(12345, 'Müşteri ile görüşüldü, çözüm sağlandı.');

// Talep durumunu güncelleme
$updateStatus = Trendyol::claims()->updateStatus(12345, 'SOLVED', 'Müşteriye yeni ürün gönderildi');

// Talebe döküman/delil yükleme (Base64 formatında dosya içeriği)
$uploadDocument = Trendyol::claims()->uploadDocument(
    12345,
    base64_encode(file_get_contents('kargo_fisi.pdf')),
    'kargo_fisi.pdf'
);

Kargo ve Sevkiyat İşlemleri

// Kargo firmalarını listeleme
$shipmentProviders = Trendyol::shipmentProviders()->list();

// Tedarikçi kargo hesaplarını görüntüleme
$supplierAccounts = Trendyol::shipmentProviders()->getSupplierAccounts();

// Sevkiyat çıkışlarını listeleme
$shipmentOutbounds = Trendyol::shipmentProviders()->getShipmentOutbounds([
    'startDate' => '2023-01-01',
    'endDate' => '2023-12-31'
]);

// Sevkiyat çıkışı detayını görüntüleme
$shipmentOutbound = Trendyol::shipmentProviders()->getShipmentOutbound(12345);

// Teslimat seçeneklerini görüntüleme
$deliveryOptions = Trendyol::shipmentProviders()->getDeliveryOptions();

// Kargo etiketi indirme
$shippingLabel = Trendyol::shipmentProviders()->downloadShippingLabel(12345);

// Toplu kargo etiketi indirme
$bulkShippingLabels = Trendyol::shipmentProviders()->downloadBulkShippingLabel([12345, 67890]);

// Sevkiyat çıkışı oluşturma
$createOutbound = Trendyol::shipmentProviders()->createShipmentOutbound([
    'shipmentProvider' => 'Aras',
    'packageDetails' => [
        // ...
    ]
]);

Testler

Testleri çalıştırmak için:

composer test

Lisans

Bu paket MIT lisansı altında lisanslanmıştır.

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-18