Как узнать warehouse_id Вашего склада на Ozon?

Т.к. эта статья будет первой по данной тематике, приведу немного вводной информации. Кому невтерпеж, может сразу перейти вот сюда.

Вот уже более года мы сотрудничаем с маркетплейсами, в частности, с Ozon. В наших интернет-магазинах представлен достаточно широкий ассортимент продукции (В общей сложности около 20 тысяч товаров без учета вариаций). Когда значительная его часть перекочевала на Ozon, возник вопрос: как оперативно контролировать изменение наличия и цен на товары, когда их, допустим, больше 500 или 1000? А что, если общее число товаров — 10 тысяч?

В решении таких вопросов всегда есть два пути: Вариант 1. Нанять дополнительный персонал на работу с возросшим объемом контента на площадках. Здесь есть куча минусов. Прежде всего, дополнительный персонал — это затраты. Также нельзя не отметить, что вероятность человеческой ошибки достаточно большая, а неправильно назначенная цена или остатки для товара всегда могут обернуться неприятной ситуацией с клиентом для магазина и потерянной репутацией. Вариант 2. Автоматизировать процессы по управлению контентом. В идеале, чтобы система бух.учёта, которую Вы используете, была интегрирована во все ваши сайты и на всех маркетплейсах, на которых Вы работаете. Да, это затраты на разработку на старте, но в итоге Вы получите практически автономную систему, которая будет без Вашего участия делать объем работы целого отдела по работе с контентом. Плюсы здесь на лицо — нет необходимости нанимать доп. сотрудников для работы с контентом, обновлять наличие товаров можно в режиме 24/7, при этом без ошибок и сбоев (при должном качестве работ, контроле и своевременном обновлении кода).

В общем, без автоматизации этих процессов никуда. В целом, работа по актуализации наличия и остатков достаточно монотонный, неблагодарный труд — если сотрудник плотно работает с контентом, как правило, достаточно быстро выгорает. Поэтому эти функции лучше автоматизировать, а сотруднику дать более интересную и креативную работу 🙂

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

Аналогичную систему можно реализовать и при работе с OZON, используя Ozon Seller API — программный интерфейс для работы с маркетплейсом. Он дает возможность обмениваться информацией между системой продавца и OZON.

Методы Seller API позволяют изменять данные магазина, например, остатки товаров или их стоимость, и получать данные, такие как информация о возвратах или список складов. Работа с API состоит из отправки запроса и получения ответа. Также можно настроить интеграцию с системами учёта, например 1С, ERP или МойСклад.

Мы же реализовали систему, аналогичную той, которая работает у нас на сайтах: есть некоторое кол-во кода, который запрашивает файлы у поставщика, а потом обрабатывает эти файлы методами Ozon Seller API (обновляет остатки, меняет цены). Все это располагается на веб-сервере, отдельные скрипты поставлены в CRON, при необходимости могут быть запущены вручную через SSH-консоль. Фактически, мы используем всего два метода Ozon:

/v1/product/import/prices - метод для обновления цен  
/v2/products/stocks - метод для обновления остатков

Так вот, использование некоторых методов Ozon, в частности,
/v2/products/stocks может потребовать от Вас не только знания offer_id Ваших продуктов на Ozon, но и warehouse_id склада, к которому эти товары относятся.

warehouse_id — это уникальный идентификационный номер склада. Посмотреть его в админ-панели OZON — нельзя. Есть, конечно, вариант — запросить у поддержки, но мы не пробовали, поэтому не знаю, насколько он рабочий. Мы пошли другим путем, о котором я расскажу ниже.

Чтобы узнать warehouse_id Ваших складов, достаточно использовать метод Ozon Seller API:

/v1/warehouse/list - метод для определения warehouse_id

Чтобы использовать этот метод, пишем незамысловатый код php (небольшая функция, которая формирует запрос к Ozon), представленный ниже:

<?php // Get the list of OZON warehouse_id`s

function post($clientId, $apiKey, $method, $data){
  $url = 'http://api-seller.ozon.ru'.$method; 
  $headers = array(                                                                          
    'Content-Type: application/json',
    'Host: api-seller.ozon.ru', 
    'Client-Id: '.$clientId,
    'Api-Key: '.$apiKey
  ) ;                                                                                  
  $ch = curl_init();
  $options = array(
    CURLOPT_URL => $url,         
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => $data,
    CURLOPT_HTTPHEADER => $headers
  );    
  curl_setopt_array($ch, $options);
  $html = curl_exec($ch);
  curl_close($ch); 
  return $html;
};

$clientId = ''; // Client`s ID
$apiKey   = ''; // API KEY 
$method   = '/v1/warehouse/list'; // method
$body = '{}' ; // body of request

$result = post($clientId, $apiKey, $method, $body); // send JSON to change prices

echo 'Информация о складах Ozon:';
echo $result;

?>

Сохраняем этот код на веб-сервере, запускаем через консоль ssh и получаем вот такой ответ:

root@123:~# /usr/bin/php7.4 /home/web/ozon/OzonWarehouseChecker.php
Информация о складах Ozon:{"result":[{"warehouse_id":23599220117000,"name":"Основной склад FBS","is_rfbs":false,"is_able_to_set_price":false,"has_entrusted_acceptance":false,"first_mile_type":{"dropoff_point_id":"22961045669000","dropoff_timeslot_id":20258,"first_mile_is_changing":false,"first_mile_type":"DropOff"},"is_kgt":false,"can_print_act_in_advance":false,"min_working_days":5,"is_karantin":false,"has_postings_limit":false,"postings_limit":-1,"working_days":[1,2,3,4,5],"min_postings_limit":10,"is_timetable_editable":true,"status":"created"},
{"warehouse_id":23599245870000,"name":"Экспресс","is_rfbs":true,"is_able_to_set_price":false,"has_entrusted_acceptance":false,"first_mile_type":{"dropoff_point_id":"","dropoff_timeslot_id":0,"first_mile_is_changing":false,"first_mile_type":""},"is_kgt":false,"can_print_act_in_advance":false,"min_working_days":5,"is_karantin":false,"has_postings_limit":false,"postings_limit":-1,"working_days":[1,2,3,4,5],"min_postings_limit":10,"is_timetable_editable":true,"status":"created"},
{"warehouse_id":23599256099000,"name":"Крупногабаритные товары","is_rfbs":false,"is_able_to_set_price":false,"has_entrusted_acceptance":false,"first_mile_type":{"dropoff_point_id":"","dropoff_timeslot_id":0,"first_mile_is_changing":false,"first_mile_type":""},"is_kgt":false,"can_print_act_in_advance":true,"min_working_days":5,"is_karantin":false,"has_postings_limit":false,"postings_limit":-1,"working_days":[1,2,3,4,5],"min_postings_limit":10,"is_timetable_editable":true,"status":"created"}]}

Собственно, в ответе Вы найдете подробную информацию о Ваших складах, включая warehouse_id.

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Прокрутить вверх