Trendyol Entegrasyonu Nasıl Yapılır?

Trendyol API Entegrasyonu Nasıl Yapılır

Trendyol Entegrasyonu Nasıl Yapılır?

Merhaba,
Bu yazımızda çok merak edilen konulardan  Trendyol API konusunu ele alacağız.

Trendyol Entegrasyonu hakkında Github üzerinde onlarca kütüphane bulmak mümkün. Bu Mersev Bilişim Kılavuzunda ismail0234 rumuzlu geliştiriciye ait API’den bahsedeceğiz.

Yazımızda Localhost üzerinde çalışacağız. Sisteminizde Apache ve PHP Kurulu değilse Windows 10’da Apache ve PHP 7 Kurulumu veya MacOS HomeBrew, Apache ve PHP 7 Kurulumu yazılarımızdan faydalanabilirsiniz.

Windows/MacOS’ta Composer Kurulumu

Windows Composer Kurulumu

Composer kurulum dosyasını buradan indirin.
Composer-Setup.exe dosyasını indirin. Kurulum aşamasında size PHP’nizin kurulu olduğu dizini ve PHP.exe dosyasını seçmenizi isteyecek. Seçip devam edin ve kurulumu bitirin.

MacOS için Composer Kurulumu

Zaten Composer’a sahipseniz bu adımları atlayın.
Başarısız Composer yüklemesi yaptıysanız önce;

/usr/local/bin/composer

Klasörünü tamamen silin. Ardından, Terminal’inizi açın ve şu komutları yapıştırın.

curl -sS https://getcomposer.org/installer | php
chmod +x composer.phar
mv composer.phar /usr/local/bin/composer
composer

Artık Composer’ı başarıyla kurdunuz!

Şimdi Trendyol API’sini GitHub üzerinden indirelim.
Windows için Başlat -> Çalıştır -> CMD,
MacOS için Terminal’i açıp projenizi çalıştırmak istediğiniz dizine gidin.

Mersev Bilişim Trendyol Entegrasyonu Composer Kurulumu
GitHub’dan İndirdikten Sonra Şu Şekilde Olmalı
composer require ismail0234/trendyol-php-api

Komutunu çalıştırın. Trendyol API’si belirttiğiniz klasöre inecektir.

Trendyol Entegrasyon API’sinin Kullanımı

Vendor klasörüyle aynı yere config.php adıyla bir dosya oluşturalım.

<?php
include "vendor/autoload.php";
use IS\PazarYeri\Trendyol\TrendyolClient;
use IS\PazarYeri\Trendyol\Helper\TrendyolException;
$trendyol = new TrendyolClient();
$trendyol->setSupplierId(Satıcı IDniz);
$trendyol->setUsername("API KEY");
$trendyol->setPassword("SECRET KEY");
?>

Kodlarını ekleyip Trendyol Mağazanızdaki Entegrasyon Bilgilerinini girin ve kaydedin.

Trendyol API Entegrasyonu: Marka Sorgulama (GetBrandByName) Nasıl Yapılır?

API bağlantı bilgilerinizi içeren config.php dosyanızın yanında marka.php adında bir dosya oluşturun ve şu kodları ekleyin:

Kod:

<?php
require_once ('config.php');
$sorgula = $trendyol->brand->getBrandByName("Mersevkids");
$coz = json_decode(json_encode($sorgula), true);
echo "<b>Marka ID:</b> " . $coz[0]['id'];
echo "<br>";
echo "<b>Marka Adı:</b> " . $coz[0]['name'];
?>

Çıktı:
Trendyol API Entegrasyon Marka Sorgulama Nasıl Yapılır

Trendyol API Entegrasyonu: Sipariş Sorgulama (OrderList) Nasıl Yapılır?

Yine aynı dizine siparis.php adıyla bir dosya oluşturup içine aşağıdaki kodları ekleyelim.

Kod:

<?php
require_once ('config.php');
$siparis = $trendyol->order->orderList(
array(
// Belirli bir tarihten sonraki siparişleri getirir. Timestamp olarak gönderilmelidir.
'startDate'          => time() - (86400 * 14),
// Belirtilen tarihe kadar olan siparişleri getirir. Timestamp olarak gönderilmelidir ve startDate ve endDate aralığı en fazla 2 hafta olmalıdır
'endDate'            => time(),
// Sadece belirtilen sayfadaki bilgileri döndürür
'page'               => 0,
// Bir sayfada listelenecek maksimum adeti belirtir. (Max 200)
'size'               => 200,
// Sadece belirli bir sipariş numarası verilerek o siparişin bilgilerini getirir
'orderNumber'        => '',
// Siparişlerin statülerine göre bilgileri getirir. (Created, Picking, Invoiced, Shipped, Cancelled, Delivered, UnDelivered, Returned, Repack, UnSupplied)
'status'             => 'Delivered',
// Siparişler neye göre sıralanacak? (PackageLastModifiedDate, CreatedDate)
'orderByField'       => 'CreatedDate',
// Siparişleri sıralama türü? (ASC, DESC)
'orderByDirection'   => 'DESC',
// Paket numarasıyla sorgu atılır.
'shipmentPackagesId' => '',
)
);
$al = json_decode(json_encode($siparis), true); // stdObjects'tan Array'a Döndür
$musteri = $al['content'][0]['shipmentAddress']; // Müşterinin Kargo Bilgileri ve Adresini Al
$urun = $al['content'][0]['lines'][0]; // Sipariş Edilen Ürünü Al
print_r($musteri);
echo "<br>";
print_r($urun);
?>

Çıktı:

Trendyol API Entegrasyon Sipariş Sorgulama Nasıl Yapılır

Trendyol API Entegrasyonu: Ürün Ekleme (createProducts) Nasıl Yapılır?

Yine aynı dizinimize urun_ekle.php adında bir dosya oluşturalım. Trendyol Resmi Entegrasyon dökümanından aldığımız örnek JSON ile ürün ekleyelim. Örnek JSON için:

{
"items": [
{
"barcode": "MRSVBLSM-721738137",
"title": "Mersev Bilişim Test Ürün",
"productMainId": "1234BT553wd3e",
"brandId": 969548,
"categoryId": 1182,
"quantity": 100,
"stockCode": "MB-3455",
"dimensionalWeight": 2,
"description": "Ürün açıklama bilgisi",
"currencyType": "TRY",
"listPrice": 250.99,
"salePrice": 120.99,
"vatRate": 8,
"cargoCompanyId": 10,
"images": [
{
"url": "https://www.mersevkids.com/uploads/images/202011/img_1920x_5fbfdf79566cc7-58193882-99832508.jpg"
}
],
"attributes": [
{
"attributeId": 343,
"attributeValueId": 4295
},
{
"attributeId": 47,
"customAttributeValue": "PUDRA"
},
{
"attributeId": 346,
"attributeValueId": 4291
},
{
"attributeId": 338,
"attributeValueId": 5162
}
]
}
]
}

Bu JSON’umuzu bir değişkene tanımlayıp CallBack URL’imize göndereceğiz. Örnek PHP kodunu urun_ekle.php dosyanıza ekleyin.

Kod:

<?php
namespace IS\PazarYeri\Trendyol\Services;

use IS\PazarYeri\Trendyol\Helper\Request;
use IS\PazarYeri\Trendyol\Helper\TrendyolException;
require_once ('config.php');

$jsonla = '{
"items": [
{
"barcode": "MRSVBLSM-721738137", 
"title": "Mersev Bilişim Test Ürün", 
"productMainId": "1234BT553wd3e", 
"brandId": 969548, 
"categoryId": 1182, 
"quantity": 100, 
"stockCode": "MB-3455",
"dimensionalWeight": 2,
"description": "Ürün açıklama bilgisi",
"currencyType": "TRY",
"listPrice": 250.99,
"salePrice": 120.99,
"vatRate": 8,
"cargoCompanyId": 10,
"images": [
{
"url": "https://www.mersevkids.com/uploads/images/202011/img_1920x_5fbfdf79566cc7-58193882-99832508.jpg"
}
],
"attributes": [
{
"attributeId": 343,
"attributeValueId": 4295
},
{
"attributeId": 47,
"customAttributeValue": "PUDRA"
},
{
"attributeId": 346,
"attributeValueId": 4291
},
{
"attributeId": 338,
"attributeValueId": 5162
}
]
}
]
}';

$dondur = json_decode($jsonla, true);
$urun_ekle = $trendyol->product->createProducts($don); // Ürün Ekle
$arr = (array) $urun_ekle;
print_r($arr['batchRequestId']); // Request ID Ver

?>

Urun_ekle.php kodunu çalıştırdığımızda batchRequestID kodumuzu verecek. Bu kod Trendyol API’si tarafından Ürün Ekleme İşleminin başarılı olup olmadığını sorgulamamızı sağlayacak olan requestID’dir.

İşlemimizin başarılı olup olmadığını sorgulama işlemine bakalım.

Dizinimize sorgula.php adında bir dosya daha oluşturalım. Aşağıdaki kodları ekleyelim.

Kod:

<?php
namespace IS\PazarYeri\Trendyol\Services;

use IS\PazarYeri\Trendyol\Helper\Request;
use IS\PazarYeri\Trendyol\Helper\TrendyolException;
require_once ('config.php');
$kod = "

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxxxxxxx // Trendyol Tarafından Size Dönen BatchRequestID

";
$sorgu = $trendyol->product->getBatchRequestResult($kod);
$cozumle = json_decode(json_encode($sorgu), true);
$var = $cozumle['items'][0];
print_r($var);

?>

Sorgula.php dosyası SUCCESS çıktısı verdiyse ürününüz başarılı bir şekilde eklenmiş, onay aşamasını bekliyor olacaktır.
FAILED çıktısında ise eksik alanın veya hatanızın nerde olduğunu ekrana basacaktır.

Şimdilik genel konulara değindik. Daha sonra daha detaylı bir şekilde devam etmek dileğiyle…
İyi Çalışmalar…