Если вам нужна помощь в настройке и программировании API Ozon, обращайтесь, мои услуги здесь

Давайте рассмотрим небольшой пример, как мы можем соединиться с API Ozon и выполнить какой-то простой запрос на получение данных.

Для того, чтобы это сделать, нам нужно перейти в документацию по API Ozon. Сделать это можно перейдя по адресу:

https://docs.ozon.ru/api/seller

На этой странице идет описание методов, которые мы можем использовать для работы с API.

В документации все разбито по сущностям: склады, схемы, отчеты, и.т.д. В зависимости от того, какие данные вы хотите получить, нужно смотреть свой раздел документации.

Я же хотел в этом примере показать, как можно получить список транзакций, которые есть в вашем аккаунте, для того, чтобы посмотреть что вообще происходило. 

Чтобы нам соединиться и получить этот список транзакций, нам нужно обратиться по следующему адресу методом POST.

/v2/finance/transaction/list

Нужно передать туда следующие заголовки:

Client-id (идентификатор клиента)

Api-key

и некоторые дополнительные параметры. И мы получим в ответе транзакции, которые есть в нашем аккаунте.

Давайте рассмотрим на примере, как мы можем это сделать. 

Я создал простой проект, в котором есть 2 файла: index.php и cred.php

index.php - это главный файл, в котором мы будем писать весь наш код для соединения. 

cred.php - это файл с api-ключом. Данными для соединения.

Содержимое файла cred.php

<?php
$api_key = 'f284c';
$client_id = '88';

Там находиться просто апи ключи и client id. 

Содержимое файла index.php

<?php
include_once 'cred.php';


function post($host, $data) {
    global $api_key, $client_id;




    $headers = [
        'Client-Id: '.$client_id,
        'Api-Key: '.$api_key,
        'Content-Type: application/json'
    ];
    $curl = curl_init($host);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS,json_encode($data));
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    $return = curl_exec($curl);
    $err = curl_error($curl);
    curl_close($curl);
    if ($err) {
        $res = "cURL Error #:" .$err;
    }
    else {
        $res = json_decode($return, true);
    }
    return $res;
}


$num_days_ago = 30;
$data = [
    'filter'=>[
        'date'=>[
            'from'=> date("Y-m-d\TH:i:s\Z", time() - 60 * 60 * 24 * $num_days_ago),
            'to'=>date("Y-m-d\TH:i:s\Z")
        ],
        //'posting_number'=>$id,
        'transaction_type'=>'all'
    ],
    'page'=>1,
    'page_size'=>100
];


echo "<pre>";
print_r(post('https://api-seller.ozon.ru/v2/finance/transaction/list', $data));
echo "</pre>";

Подключаем credentials, чтобы они стали доступными в главном файле.

Далее мы должны прописать запрос, к API Ozon. Я создал функцию post, которая принимает на вход некие данные имя хоста и данные, которые мы должны передать. 

Получаем данные за 30 дней, до текущей даты, указываем, что хотим получить все транзакции. Т.к. транзакций может быть много, для их получения мы указываем, что хотим получить первую страницу и размер количества транзакций для этой страницы - 100 штук.

В функции post мы получаем api key и client id из нашего файла cred.php из глобальных переменных. Далее, мы создаем заголовки для нашего http-запроса, который мы будем выполнять к API Ozon и передаем туда client id, которые мы получили, и выполняем сам запрос с помощью CURL. 

И получаем, соответственно, результат, который выдаст нам API и выводим его на экран. 

Если выполнить этот запрос, мы получим список транзакций, которые соответствуют данному магазину, с которым мы работаем. 

Такой пример, надеюсь это оказалось полезным.