Уведомления от Wildberries о новых заказах на почту и в telegram

Сообщения
107
Реакции
10
Я продаю:
  1. Wildberries
  2. Яндекс Маркет
  3. Ozon
Опыт продаж:
2 года
Всем привет. Как мы все знаем WB не оповещает селлеров на почту о новых заказах, хотя это очень странно на самом деле, так как WB по сути сам заинтересован в том что бы продавец как можно раньше взял заказ в работу. Ну да ладно, сегодня я покажу пример того, как можно получать уведомления о новых заказах на WB по почте и в telegram. Для этого нам понадобиться любой хостинг. Достаточно будет самого дешевого тарифа, на Timeweb самый дешевый тариф стоит 196 рублей в месяц, при условии что Вы оплачиваете тариф на год, при ежемесячной оплате стоимость будет 250 рублей в месяц. Так же нам понадобится зарегистрировать бота в telegram. Итак по порядку.

Регистрация бота в telegram

Открываем приложение telegram и в поиске пишем @BotFather заходим в бота и пишем первую команду /newbot после этого BotFather попросит придумать имя нашему боту, придумываем имя и пишем его в чат. Далее BotFather попросит придумать username для нашего бота. Обязательное условие: заканчиваться username должен обязательно на: _bot . После этого наш бот будет создан и нам понадобится его токен для взаимодействия по API, токен выделен на скриншоте ниже, его нужно скопировать и сохранить. Так же необходимо в поиске найти созданного Вами бота и начать с ним переписку (что бы чат был создан и мы могли отправлять себе сообщения от имени нашего бота).
Без имени-1.jpg
Так же нам необходимо получить свой ID, для этого ищем в поиске бота Get My ID вводим команду /start и бот в ответ напишет нам наш ID. ID нам понадобится что бы бот знал кому именно необходимо отправлять сообщения, его нужно скопировать и сохранить.
sdf.jpg

Все, на этом работа с telegram закончена.

Регистрация хостинга, создание сайта на служебном поддомене и настройка скрипта для отправки

Если у Вас еще нет хостинга, идем и регистрируем себе аккаунт по ссылке

У Вас будет 10 дней тестового периода, так что оплачивать тариф сразу не обязательно, можно сначала все настроить и протестировать, а дальше уже определиться, нужно Вам это или нет.
Итак нам необходимо создать сайт, идем в панели управления в раздел Сайты -> Мои сайты и жмем ссылку Создать новый сайт. Указываем название директории и жмем Создать.
sdfw.jpg

Далее нам необходимо привязать домен к созданному сайту. Timeweb предоставляет нам служебный домен третьего уровня которым мы можем пользоваться бесплатно, поэтому регистрировать отдельный домен нет необходимости. Итак жмем Привязать домен и выбираем предложенный нам домен.
чсм.jpg

Все, сайт у нас создан, теперь мы можем перейти к настройке скрипта для отправки уведомлений о новых заказах на почту и в telegram. Переходим в раздел Файловый менеджер и выбираем папку с созданным нами сайтом, переходим в папку public_html. Тут нам необходимо нажать кнопку Загрузить и загрузить на сервер 2 файла, wb.php и time.txt . Скачать эти файлы можно под спойлером ниже.
23423.jpg

Разбор файла WB.PHP

Ниже приведен код из файла wb.php, каждая строка прокомментирована и указано где и что нужно заменить.

PHP:
$token = 'ВАШ ТОКЕН ДЛЯ РАБОТЫ С API Wildberries';
 
$data = array(
    'sort' => array(
        'cursor' => array(
            'limit' => 1000
        ),
        'filter' => array(
            'next' => 0
        )  
    )
);

$ch = curl_init('https://suppliers-api.wildberries.ru/api/v3/orders/new');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization:' . $token,
    'Content-Type:application/json'
));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);

$res = json_decode($res, true);
foreach( $res['orders'] as $order ){
    $time = $order['createdAt'];
    $price = $order['convertedPrice'] / 100;
}
$filename = __DIR__ . '/time.txt';
$text = file_get_contents($filename);

if( $time ){
    if( $text !== $time ){
        $to      = 'ВАШ ПОЧТОВЫЙ ЯЩИК НА КОТОРЫЙ ДОЛЖНЫ ПРИХОДИТЬ УВЕДОМЛЕНИЯ, МОЖНО УКАЗАТЬ НЕСКОЛЬКО ШТУК ЧЕРЕЗ ЗАПЯТУЮ';
        $subject = 'Новый заказ на WB для ВАШ МАГАЗИН';
        $message = 'На WB есть новый заказ для ВАШ МАГАЗИН. Сумма - '.$price ;
        $headers = 'From: ВАША ПОЧТА С КОТОРОЙ БУДУТ ОТПРАВЛЯТЬСЯ ПИСЬМА' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();
      
        mail($to, $subject, $message, $headers);
        send_telegram_bot( $message );
        file_put_contents($filename, $time);
    }
}

function send_telegram_bot( $message ){
    $tg_user = 'ВАШ ID ПОЛЬЗОВАТЕЛЯ КОТОРЫЙ МЫ ПОЛУЧАЛИ В TELEGRAM'; // id пользователя, которому отправиться сообщения
    $bot_token = 'ТОКЕН ВАШЕГО БОТА КОТОРЫЙ МЫ ПОЛУЧАЛИ В ТЕЛЕГРАМ'; // токен бота
 
    $text = $message;
  
    // параметры, которые отправятся в api телеграмм
    $params = array(
        'chat_id' => $tg_user, // id получателя сообщения
        'text' => $text, // текст сообщения
        'parse_mode' => 'HTML', // режим отображения сообщения, не обязательный параметр
    );
 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://api.telegram.org/bot' . $bot_token . '/sendMessage'); // адрес api телеграмм
    curl_setopt($curl, CURLOPT_POST, true); // отправка данных методом POST
    curl_setopt($curl, CURLOPT_TIMEOUT, 10); // максимальное время выполнения запроса
    curl_setopt($curl, CURLOPT_POSTFIELDS, $params); // параметры запроса
    $result = curl_exec($curl); // запрос к api
    curl_close($curl);
 
    return json_decode($result);
}

Далее нам необходимо настроить на хостинге CRON для того что бы наш скрипт выполнялся каждые несколько минут, таким образом скрипт будет отправлять запрос на WB и просить прислать ему последние заказы, если новые заказы есть, будут оправляться уведомления. Для настройки CRON идем в раздел Инструменты -> Crontab и жмем кнопку Добавить новую задачу При создании указываем имя задачи, выбираем путь до файла wb.php и указываем периодичность каждую минуту и жмем кнопку Добавить задачу. Теперь каждую минуту хостинг будет запускать наш скрипт и при условии что на WB появился новый заказ, мы будем получать уведомление на почту и в telegram.
сисми.jpg



ПРИМЕЧАНИЕ! там где необходимо указать Вашу почту с которой будут приходить письма, крайне желательно указать формата info@вашдомен.рф что бы доменная зона была той же с которой уходят письма.
Получить токен WB можно в личном кабинете селлера
вапва.jpg


Постарался расписать как мог подробно, в любом случае если будут вопросы, пишите помогу чем смогу.;):)

Скачать файлы time.txt и wb.php:
 

Вложения

  • Files.zip
    1.6 KB · Просмотры: 38

Gulnar

Seller
Сообщения
413
Реакции
16
Я продаю:
  1. Wildberries
  2. Яндекс Маркет
  3. Ozon
  4. СберМегаМаркет
Опыт продаж:
5 лет
Начал оформление, посмотрим что у меня в итоге получится. Так как я профан, думаю быстро не смогу сделать.
 

Kim

Seller
Сообщения
298
Реакции
18
Я продаю:
  1. Wildberries
  2. Ozon
Опыт продаж:
4 года
Пока сам не начал делать вопросов нет) В целом вроде все понятно, если не получится настроить, то напишу. Спасибо.
 
Сообщения
2
Реакции
0
Опыт продаж:
7 лет
Всем привет. Как мы все знаем WB не оповещает селлеров на почту о новых заказах, хотя это очень странно на самом деле, так как WB по сути сам заинтересован в том что бы продавец как можно раньше взял заказ в работу. Ну да ладно, сегодня я покажу пример того, как можно получать уведомления о новых заказах на WB по почте и в telegram. Для этого нам понадобиться любой хостинг. Достаточно будет самого дешевого тарифа, на Timeweb самый дешевый тариф стоит 196 рублей в месяц, при условии что Вы оплачиваете тариф на год, при ежемесячной оплате стоимость будет 250 рублей в месяц. Так же нам понадобится зарегистрировать бота в telegram. Итак по порядку.

Регистрация бота в telegram

Открываем приложение telegram и в поиске пишем @BotFather заходим в бота и пишем первую команду /newbot после этого BotFather попросит придумать имя нашему боту, придумываем имя и пишем его в чат. Далее BotFather попросит придумать username для нашего бота. Обязательное условие: заканчиваться username должен обязательно на: _bot . После этого наш бот будет создан и нам понадобится его токен для взаимодействия по API, токен выделен на скриншоте ниже, его нужно скопировать и сохранить. Так же необходимо в поиске найти созданного Вами бота и начать с ним переписку (что бы чат был создан и мы могли отправлять себе сообщения от имени нашего бота).
Посмотреть вложение 60
Так же нам необходимо получить свой ID, для этого ищем в поиске бота Get My ID вводим команду /start и бот в ответ напишет нам наш ID. ID нам понадобится что бы бот знал кому именно необходимо отправлять сообщения, его нужно скопировать и сохранить.
Посмотреть вложение 61

Все, на этом работа с telegram закончена.

Регистрация хостинга, создание сайта на служебном поддомене и настройка скрипта для отправки

Если у Вас еще нет хостинга, идем и регистрируем себе аккаунт по ссылке

У Вас будет 10 дней тестового периода, так что оплачивать тариф сразу не обязательно, можно сначала все настроить и протестировать, а дальше уже определиться, нужно Вам это или нет.
Итак нам необходимо создать сайт, идем в панели управления в раздел Сайты -> Мои сайты и жмем ссылку Создать новый сайт. Указываем название директории и жмем Создать.
Посмотреть вложение 62

Далее нам необходимо привязать домен к созданному сайту. Timeweb предоставляет нам служебный домен третьего уровня которым мы можем пользоваться бесплатно, поэтому регистрировать отдельный домен нет необходимости. Итак жмем Привязать домен и выбираем предложенный нам домен.
Посмотреть вложение 63

Все, сайт у нас создан, теперь мы можем перейти к настройке скрипта для отправки уведомлений о новых заказах на почту и в telegram. Переходим в раздел Файловый менеджер и выбираем папку с созданным нами сайтом, переходим в папку public_html. Тут нам необходимо нажать кнопку Загрузить и загрузить на сервер 2 файла, wb.php и time.txt . Скачать эти файлы можно под спойлером ниже.
Посмотреть вложение 65

Разбор файла WB.PHP

Ниже приведен код из файла wb.php, каждая строка прокомментирована и указано где и что нужно заменить.

PHP:
$token = 'ВАШ ТОКЕН ДЛЯ РАБОТЫ С API Wildberries';
 
$data = array(
    'sort' => array(
        'cursor' => array(
            'limit' => 1000
        ),
        'filter' => array(
            'next' => 0
        ) 
    )
);

$ch = curl_init('https://suppliers-api.wildberries.ru/api/v3/orders/new');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization:' . $token,
    'Content-Type:application/json'
));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);

$res = json_decode($res, true);
foreach( $res['orders'] as $order ){
    $time = $order['createdAt'];
    $price = $order['convertedPrice'] / 100;
}
$filename = __DIR__ . '/time.txt';
$text = file_get_contents($filename);

if( $time ){
    if( $text !== $time ){
        $to      = 'ВАШ ПОЧТОВЫЙ ЯЩИК НА КОТОРЫЙ ДОЛЖНЫ ПРИХОДИТЬ УВЕДОМЛЕНИЯ, МОЖНО УКАЗАТЬ НЕСКОЛЬКО ШТУК ЧЕРЕЗ ЗАПЯТУЮ';
        $subject = 'Новый заказ на WB для ВАШ МАГАЗИН';
        $message = 'На WB есть новый заказ для ВАШ МАГАЗИН. Сумма - '.$price ;
        $headers = 'From: ВАША ПОЧТА С КОТОРОЙ БУДУТ ОТПРАВЛЯТЬСЯ ПИСЬМА' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();
     
        mail($to, $subject, $message, $headers);
        send_telegram_bot( $message );
        file_put_contents($filename, $time);
    }
}

function send_telegram_bot( $message ){
    $tg_user = 'ВАШ ID ПОЛЬЗОВАТЕЛЯ КОТОРЫЙ МЫ ПОЛУЧАЛИ В TELEGRAM'; // id пользователя, которому отправиться сообщения
    $bot_token = 'ТОКЕН ВАШЕГО БОТА КОТОРЫЙ МЫ ПОЛУЧАЛИ В ТЕЛЕГРАМ'; // токен бота
 
    $text = $message;
 
    // параметры, которые отправятся в api телеграмм
    $params = array(
        'chat_id' => $tg_user, // id получателя сообщения
        'text' => $text, // текст сообщения
        'parse_mode' => 'HTML', // режим отображения сообщения, не обязательный параметр
    );
 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://api.telegram.org/bot' . $bot_token . '/sendMessage'); // адрес api телеграмм
    curl_setopt($curl, CURLOPT_POST, true); // отправка данных методом POST
    curl_setopt($curl, CURLOPT_TIMEOUT, 10); // максимальное время выполнения запроса
    curl_setopt($curl, CURLOPT_POSTFIELDS, $params); // параметры запроса
    $result = curl_exec($curl); // запрос к api
    curl_close($curl);
 
    return json_decode($result);
}

Далее нам необходимо настроить на хостинге CRON для того что бы наш скрипт выполнялся каждые несколько минут, таким образом скрипт будет отправлять запрос на WB и просить прислать ему последние заказы, если новые заказы есть, будут оправляться уведомления. Для настройки CRON идем в раздел Инструменты -> Crontab и жмем кнопку Добавить новую задачу При создании указываем имя задачи, выбираем путь до файла wb.php и указываем периодичность каждую минуту и жмем кнопку Добавить задачу. Теперь каждую минуту хостинг будет запускать наш скрипт и при условии что на WB появился новый заказ, мы будем получать уведомление на почту и в telegram.
Посмотреть вложение 67



ПРИМЕЧАНИЕ! там где необходимо указать Вашу почту с которой будут приходить письма, крайне желательно указать формата info@вашдомен.рф что бы доменная зона была той же с которой уходят письма.
Получить токен WB можно в личном кабинете селлера
Посмотреть вложение 66


Постарался расписать как мог подробно, в любом случае если будут вопросы, пишите помогу чем смогу.;):)

Скачать файлы time.txt и wb.php:
Слушайте, круто! А подскажите как добавить наименование товара и его остаток, после заказа. Так было бы ещё круче!!!
 
Сообщения
2
Реакции
0
Опыт продаж:
7 лет
Здравствуйте, очень полезно!!! Но было бы здорово доработать наименование товара и остатком на складе.
 

HyLog

Seller
Сообщения
16
Реакции
2
Я продаю:
  1. Wildberries
  2. Яндекс Маркет
  3. Ozon
Опыт продаж:
1 год
Я правильно понял что если вместо id юзера ввести id канала то сообщения будет приходить в канал. И посмотрел API WB и не понял как подтягивать наименование товара.
 
Сообщения
107
Реакции
10
Я продаю:
  1. Wildberries
  2. Яндекс Маркет
  3. Ozon
Опыт продаж:
2 года
Здравствуйте, очень полезно!!! Но было бы здорово доработать наименование товара и остатком на складе.
Я правильно понял что если вместо id юзера ввести id канала то сообщения будет приходить в канал. И посмотрел API WB и не понял как подтягивать наименование товара.

Именно наименование товара не получить. В ответе от API содержится массив баркодов. Для получения остатков товара необходимо сделать дополнительный запрос к API /api/v3/stocks/ и передать туда полученные баркоды. Для того что бы узнать наименование товара, можно например хранить в файле массив товаров вида

PHP:
$array = [
    'баркод 1' => 'Наименование 1',
    'баркод 2' => 'Наименование 2',
    'и т.д.'
]

Тогда не проблема узнать наименование товаров в заказе.

Я правильно понял что если вместо id юзера ввести id канала то сообщения будет приходить в канал.
Не уверен, надо пробовать. Для того что бы бот мог публиковать на канале записи, он должен быть админом там.
 

HyLog

Seller
Сообщения
16
Реакции
2
Я продаю:
  1. Wildberries
  2. Яндекс Маркет
  3. Ozon
Опыт продаж:
1 год
Именно наименование товара не получить. В ответе от API содержится массив баркодов. Для получения остатков товара необходимо сделать дополнительный запрос к API /api/v3/stocks/ и передать туда полученные баркоды. Для того что бы узнать наименование товара, можно например хранить в файле массив товаров вида

PHP:
$array = [
    'баркод 1' => 'Наименование 1',
    'баркод 2' => 'Наименование 2',
    'и т.д.'
]

Тогда не проблема узнать наименование товаров в заказе.


Не уверен, надо пробовать. Для того что бы бот мог публиковать на канале записи, он должен быть админом там.
Да вариант с сообщениями в канал работает. Как Вы и написали нужно бота было сделать админом.

С массивом вариант слишком муторный тк придётся тогда писать базу товаров, но на это время не хотел тратить.

Нашел сервис который выполняет +/- те же функции, но проверка происходит раз в 20 минут и меня это не устраивает тк хотелось бы о заказах узнавать почти сразу.

Осталось понять как на этом сервисе реализовано что через API тянется фото товара.

Если не сложно то может быть Вы знаете как это сделать?
 
Сообщения
107
Реакции
10
Я продаю:
  1. Wildberries
  2. Яндекс Маркет
  3. Ozon
Опыт продаж:
2 года
Да вариант с сообщениями в канал работает. Как Вы и написали нужно бота было сделать админом.

С массивом вариант слишком муторный тк придётся тогда писать базу товаров, но на это время не хотел тратить.

Нашел сервис который выполняет +/- те же функции, но проверка происходит раз в 20 минут и меня это не устраивает тк хотелось бы о заказах узнавать почти сразу.

Осталось понять как на этом сервисе реализовано что через API тянется фото товара.

Если не сложно то может быть Вы знаете как это сделать?
Завтра у меня будет время. Я посмотрю. Возможно перепишу и дополню скрипт.
 
Сообщения
107
Реакции
10
Я продаю:
  1. Wildberries
  2. Яндекс Маркет
  3. Ozon
Опыт продаж:
2 года
С массивом вариант слишком муторный тк придётся тогда писать базу товаров, но на это время не хотел тратить.
Других вариантов нет, так как даже стандартные выгрузки WB не отображают наименование товара а только баркоды, на озоне тоже самое. Не понимаю с чем это связано. Я особо в API не углублялся, требовалось просто уведомления сделать для того что бы реагировать на заказы и не сидеть, обновлять страницу.
 

HyLog

Seller
Сообщения
16
Реакции
2
Я продаю:
  1. Wildberries
  2. Яндекс Маркет
  3. Ozon
Опыт продаж:
1 год
Других вариантов нет, так как даже стандартные выгрузки WB не отображают наименование товара а только баркоды, на озоне тоже самое. Не понимаю с чем это связано. Я особо в API не углублялся, требовалось просто уведомления сделать для того что бы реагировать на заказы и не сидеть, обновлять страницу.
Oзон и ЯМ хоть человеческие приложения сделали которые присылают уведомления, а подключились к продажам на ВБ и меня это немного удивило, что нет оповещений. В целом данного скрипта хватает что бы мониторить заказы. Спасибо что написали скрипт.
 
T

Trans

Гость
Всем привет!

Внесу небольшое изменение.

С 30 января вб отключает старые урл и необходимо изменить api url

Вместо этой строчки

Код:
$ch = curl_init('https://suppliers-api.wildberries.ru/api/v3/orders/new');

Ставим эту строчку

Код:
$ch = curl_init('https://marketplace-api.wildberries.ru/api/v3/orders/new');
 

Похожие темы

Сверху