Интерфейс расширения для сбора маркировок заказов

Chrome-расширение для сбора маркировок заказов Avito

Опубликовано: 11 февраля 2026 г. Обновлено: 19 февраля 2026 г.

Теги

chrome-extensionavitologisticsworkflow

Стек

JavaScriptChrome Extension APIDOM parsingJsBarcodeQRCode

GitHub: https://github.com/vbel254/order-labels-collector

Неофициальный инструмент (не аффилирован с Авито) для продавцов на Avito: собирает заказы со статусом «Отправьте заказ», подтягивает номера отправлений и готовит карточки со штрихкодами/QR для печати.

По состоянию на начало 2026 года в публичном контуре API Авито для частных аккаунтов нет удобного сценария работы с заказами; методы, связанные с заказами, ориентированы на бизнес-аккаунты (ИП/ООО).

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

Подойдет для тех, кто отправляет каждый день большое количество заказов.

Что умеет

  • Сканирует текущую страницу https://www.avito.ru/orders* и собирает заказы со статусом «Отправьте заказ».
  • Показывает результаты в popup: товар, служба доставки, номер отправления, код для маркировки.
  • Открывает отдельную страницу печати (print.html) и позволяет сделать Скачать PDF / Печать.
  • Сохраняет последние результаты локально в chrome.storage.local.
  • Показывает на иконке расширения badge с количеством собранных этикеток.

Поддерживаемые службы доставки

Сейчас в интерфейсе и сортировке поддерживаются:

  • Авито
  • Яндекс Доставка
  • Почта России
  • DPD
  • СДЭК
  • 5Post

Как это работает (коротко)

  1. Нажимаете кнопку сбора в popup.
  2. content.js читает заказы на странице списка.
  3. background.js пытается получить недостающие номера отправлений:
    • сначала через fetch HTML страницы заказа (с вашими cookie-сессиями Avito),
    • если не получилось, открывает отдельное окно и временные вкладки заказов, чтобы считать номер из DOM.
  4. После обработки сохраняет результат в локальное хранилище расширения.
  5. На странице печати строятся коды:
    • Code128 для обычных служб,
    • QR для 5Post.

Пример использования

  1. Откройте страницу заказов Avito: https://www.avito.ru/orders.
  2. Убедитесь, что на странице есть заказы со статусом «Отправьте заказ».
  3. Если заказов много, прокрутите страницу вниз, чтобы Avito динамически подгрузил все карточки заказов. Запускайте сбор только после полной подгрузки списка.
  4. Нажмите иконку расширения.
  5. Нажмите «Собрать этикетки».
  6. Дождитесь завершения обработки (иногда расширение откроет отдельное окно и несколько вкладок для сбора номеров).
  7. После завершения сбора popup может автоматически закрыться (ограничение формата popup в браузере при длительной фоновой обработке). Чтобы увидеть результаты или перейти к печати, просто снова нажмите на значок расширения.
  8. Нажмите «Открыть для печати» и затем «Скачать PDF / Печать».

Важно

  • Инструмент предназначен только для личного использования.
  • Инструмент не является официальным продуктом Авито и не аффилирован с Авито.
  • Для 5Post номер отправления всегда добирается со страницы конкретного заказа.
  • Для Авито номер отправления добирается со страницы заказа, если его нет или он некорректный в списке.
  • Для неизвестных служб расширение показывает карточку, но выводит, что маркировка пока не реализована.

Установка (для неразработчика)

Расширение пока устанавливается как локальное (unpacked) в Chromium-браузеры (Chrome/Edge/Яндекс Браузер и т.д.).

  1. Скачайте проект:
    • на GitHub нажмите Code -> Download ZIP,
    • распакуйте архив в удобную папку.
  2. Откройте страницу расширений:
    • Chrome: chrome://extensions
    • Edge: edge://extensions
    • Яндекс Браузер: browser://extensions
  3. Включите Режим разработчика (Developer mode).
  4. Нажмите Загрузить распакованное расширение (Load unpacked).
  5. Выберите папку проекта, где лежит manifest.json.
  6. Закрепите расширение на панели браузера для быстрого доступа.

Ограничения и важные нюансы

  • Расширение работает только на Avito и ожидает страницу формата .../orders.
  • Логика парсинга привязана к текущей DOM-структуре Avito; после изменений вёрстки сайта может потребоваться обновление.
  • Для части заказов расширение может временно переключать фокус на отдельное окно во время добора номеров отправлений.
  • Если номер отправления не найден, в карточке будет показан соответствующий статус вместо кода.

Безопасность и приватность

  • В проекте нет встроенных API-ключей, токенов или паролей.
  • Данные заказов хранятся локально в chrome.storage.local на вашем браузере.
  • Отправка данных на сторонние серверы проектом не реализована; сетевые запросы выполняются к страницам Avito для чтения данных заказа.

Структура проекта

  • manifest.json — манифест расширения (MV3), разрешения, подключение скриптов.
  • popup.html, popup.js — UI popup и управление сбором.
  • content.js — сбор заказов со страницы списка заказов.
  • background.js — фоновая обработка добора номеров отправлений.
  • print.html, print.js — страница печати собранных этикеток.
  • vendor/ — локальные генераторы штрихкода и QR.

Лицензия

Проект распространяется по лицензии MIT. См. файл LICENSE.

Для vendor/code128.js (основано на JsBarcode) текст MIT-лицензии лежит в vendor/JsBarcode.LICENSE.txt.

Автотесты

  • Тесты лежат в папке tests/ и запускаются локально через Node.js:
    • npm test
  • Файлы тестов и package.json не подключаются в manifest.json, поэтому не участвуют в работе расширения в браузере.
  • Расширение можно устанавливать в Chrome вместе с этими файлами: конфликтов с загрузкой Load unpacked быть не должно.
Назад к списку