1

Тема: Клієнт Amazon SP API

Всім доброго дня !

Підкажіть, будь ласка, шукаю готового клієнта (PHP) або сервісу для роботи з Amazon SP API.
Готовий розглянути варіант платного рішення.
Може, хто стикався з таким питанням?

Дякую  за допомогу!

2

Re: Клієнт Amazon SP API

GPT-4 написав:

Щоб знайти готового клієнта (PHP) або сервіс для роботи з Amazon SP API, вам слід розглянути варіанти на GitHub або інших ресурсах з відкритим кодом. На жаль, я не можу надати посилання на конкретний ресурс або рекомендувати конкретний PHP клієнт чи сервіс, оскільки моя база знань останнього оновлення датується вереснем 2021 року. Проте, я можу порекомендувати вам виконати наступні дії:

Відвідайте сайт GitHub (https://github.com) і введіть в поле пошуку "Amazon SP API PHP client" або "Amazon SP API PHP сервіс".
Прогляньте результати пошуку та зверніть увагу на репозиторії з високим рейтингом зірок та активним розвитком.
Прочитайте документацію для вибраних репозиторіїв, щоб зрозуміти, як вони працюють, які функції підтримуються та як встановити та налаштувати клієнта або сервіс.
Виберіть клієнт або сервіс, який найкраще відповідає вашим потребам та вимогам.
Якщо у вас виникнуть проблеми з встановленням або налаштуванням вибраного рішення, зверніться до документації або спільноти розробників для отримання допомоги.

Щоб працювати з Amazon SP API, вам потрібно спершу отримати доступ до API. Я надам вам базовий приклад коду PHP для роботи з API, але перш ніж ви зможете використовувати його, слід забезпечити, що у вас є налаштований Amazon SP API та всі необхідні облікові дані.

Встановіть guzzlehttp/guzzle (HTTP-клієнт) та lcobucci/jwt (для генерації JWT) через Composer:

(код bash)

composer require guzzlehttp/guzzle
composer require lcobucci/jwt

Ось простий приклад коду PHP для роботи з Amazon SP API:

<?php

require_once 'vendor/autoload.php';

use GuzzleHttp\Client;
use Lcobucci\JWT\Configuration;
use Lcobucci\JWT\Signer\Key\InMemory;
use Lcobucci\JWT\Signer\Rsa\Sha256;

// Облікові дані Amazon SP API
$awsAccessKey = 'your_access_key';
$awsSecretKey = 'your_secret_key';
$awsClientId = 'your_client_id';
$awsClientSecret = 'your_client_secret';
$refreshToken = 'your_refresh_token';

// Конфігурація JWT
$config = Configuration::forSymmetricSigner(new Sha256(), InMemory::plainText($awsClientSecret));
$now = new DateTimeImmutable();

// Створення JWT
$token = $config->builder()
    ->issuedBy($awsClientId)
    ->permittedFor('https://sellingpartnerapi-na.amazon.com')
    ->issuedAt($now)
    ->expiresAt($now->modify('+60 minutes'))
    ->withClaim('access_key', $awsAccessKey)
    ->withClaim('secret_key', $awsSecretKey)
    ->withClaim('refresh_token', $refreshToken)
    ->getToken($config->signer(), $config->signingKey());

// Створення клієнта Guzzle
$client = new Client([
    'base_uri' => 'https://sellingpartnerapi-na.amazon.com',
    'headers' => [
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer ' . $token->toString()
    ]
]);

// Запит до Amazon SP API
$response = $client->get('/sellers/v1/marketplaceParticipations');
$data = json_decode($response->getBody(), true);

// Вивід результатів
echo "Marketplaces:\n";
foreach ($data['payload']['participations'] as $participation) {
    $marketplaceId = $participation['marketplace']['id'];
    $marketplaceName = $participation['marketplace']['name'];
    echo "ID: {$marketplaceId}, Name: {$marketplaceName}\n";
}

Цей приклад показує, як отримати список маркетплейсів, в яких продавець бере участь. Замініть облікові дані на власні.