2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:28:17 +03:00
2026-07-01 03:42:42 +03:00
2026-07-01 03:28:17 +03:00

WB API Loader

Небольшое Laravel-приложение для загрузки данных из тестового WB API в MySQL.

Что загружается

Команда wb:sync работает с четырьмя endpoint:

  • /api/sales
  • /api/orders
  • /api/incomes
  • /api/stocks

Данные сохраняются в таблицы:

  • wb_sales
  • wb_orders
  • wb_incomes
  • wb_stocks
  • wb_sync_logs

Записи сохраняются в отдельные SQL-колонки. Повторный запуск не создаёт дубли: для каждой записи формируется source_uid, по которому выполняется upsert.

Стек

  • PHP 8.5
  • Laravel 13
  • MySQL 8

Настройка

Скопировать пример окружения:

cp .env.example .env
php artisan key:generate

Заполнить параметры API и БД:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_dev
DB_USERNAME=laravel
DB_PASSWORD=laravel

WB_API_BASE_URL=http://109.73.206.144:6969
WB_API_KEY=SECRET_KEY
WB_API_LIMIT=500

Создание базы

mysql < sql/reset_laravel_dev.sql

Скрипт пересоздаёт базу laravel_dev, создаёт пользователя laravel и таблицы проекта.

Запуск

Один endpoint:

php -d memory_limit=1024M artisan wb:sync --endpoint=stocks --stocks-date=2024-01-01

Период для sales/orders/incomes:

php -d memory_limit=1024M artisan wb:sync --endpoint=sales --from=2024-01-01 --to=2024-01-31

Полная загрузка периода:

./scripts/sync_monthly.sh 2024-01-01 2026-06-30

Скрипт загружает sales, orders, incomes по месяцам, затем запускает stocks от начальной даты периода.

Проверка данных

mysql -h 127.0.0.1 -u laravel -p laravel_dev < sql/check_counts.sql

Проверка примеров строк:

mysql -h 127.0.0.1 -u laravel -p laravel_dev < sql/show_samples.sql

Таблицы

wb_sales Основные поля: sale_date, sale_id, g_number, barcode, nm_id, for_pay, finished_price, price_with_disc, region_name.

wb_orders Основные поля: order_date, g_number, odid, warehouse_name, barcode, nm_id, oblast, total_price, discount_percent, is_cancel.

wb_incomes Основные поля: income_id, income_date, date_close, warehouse_name, supplier_article, barcode, nm_id, quantity, total_price.

wb_stocks Основные поля: stock_date, warehouse_name, barcode, nm_id, quantity, quantity_full, price, discount, sc_code.

wb_sync_logs — технический лог загрузки по endpoint и страницам.

Доступ к БД

Host: 185.254.190.37
Port: 3306
Database: laravel_dev
User: wb_reader
Password: tKod9ykc1pXXLb+v3YaPte5G/eHW2m0x
S
Description
No description provided
Readme
117 KiB
Languages
Blade 50.2%
PHP 48.7%
JavaScript 0.5%
Shell 0.4%
CSS 0.2%