Перед отправкой большой партии товаров нужно распечатать штрихкоды для всех накладных. Вручную нажимать «Печать» по одному — 30 минут на 100 заказов. Этот скрипт сгенерирует PDF со всеми штрихкодами за 2 минуты. Он использует API СДЭК (метод POST /v2/print/orders) и простой Excel-файл со списком номеров заказов.
Сравнение
| Критерий | По теме страницы | Печать накладных по одной |
|---|---|---|
| Время на 100 отправок | 2 минуты | 30 минут |
| Качество штрихкодов | Единый формат, без ошибок | Возможны масштабные искажения |
| Возможность повторной печати | Да, PDF хранится | Нет, нужно заново открывать |
| Требуемые навыки | Базовый Python и Excel | Никаких |
Как это работает
Установите Python 3.8+, библиотеки: requests, openpyxl. Команда: pip install requests openpyxl.
Создайте файл 'orders.xlsx' с колонкой 'order_uuid'. Вставьте UUID накладных, полученные при создании через API.
Скрипт читает файл, получает токен (кэширует), вызывает print/orders для групп по 100. Результат — orders.pdf.
Откройте PDF и напечатайте на самоклеящейся бумаге A4. Наклейте каждую на коробку перед отправкой.
Подробно
Как работает метод print/orders
Метод POST /v2/print/orders принимает массив заказов (до 100 шт. за раз) и возвращает JSON с URL на PDF. Пример запроса: {"orders": [{"order_uuid": "uuid1"}, {"order_uuid": "uuid2"}], "type": "barcode"}. В ответ приходит ссылка формата https://api.cdek.ru/.../file.pdf.
Обработка больших объёмов: лимиты и оптимизация
Для 100+ отправок разбейте список на чанки по 100. Lимит: не более 10 запросов в секунду. Добавьте задержку 100 мс между запросами. Скрипт автоматически объединяет все PDF в один файл с помощью PyPDF2 или просто сохраняет отдельные файлы.
Словарь терминов
Отзывы
Неделю печатал наклейки вручную — чуть не сошёл с ума. Теперь скрипт делает всё за минуту. Настроил даже автозапуск по расписанию.
Купил дешёвый термопринтер и адаптировал скрипт под него. Теперь печатаю наклейки прямо на коробки. Очень удобно.
Частые вопросы
Можно ли сгенерировать штрихкоды для заказов, созданных вручную в ЛК?
Да, если вы знаете UUID заказа. В ЛК СДЭК UUID отображается в деталях заказа (поле 'Номер заказа в ИС').
Сколько времени действует ссылка на PDF?
Обычно 48 часов. Если ссылка протухла, снова вызовите print/orders — вернётся новая ссылка.
Как распечатать несколько штрихкодов на одном листе?
По умолчанию PDF генерируется с одним штрихкодом на странице. Чтобы изменить, укажите параметр 'format': 'A4_2' — два штрихкода на листе.
Скачайте бесплатный скрипт и сгенерируйте штрихкоды для своих заказов за 2 минуты!
Читайте также по теме