Когда в магазине десятки или сотни товаров, ручное изменение цен и остатков быстро превращается в источник ошибок. Запрос «как импортировать товары в WooCommerce» часто появляется после смены прайс-листа, а вопрос про остатки — когда данные приходят из учетной системы или от поставщика. Надежный процесс должен не просто загрузить файл, а сохранить связь между строкой источника и конкретным товаром.
Начните с модели данных
Главный идентификатор для обновления — SKU. Название товара может измениться, а SKU должен оставаться стабильным. Перед импортом проверьте, что он заполнен, уникален и записан в одном формате. Нельзя смешивать в одной колонке числа, текстовые значения с ведущими нулями и варианты с лишними пробелами. Если у товара есть вариации, каждой вариации нужен свой идентификатор, иначе данные могут попасть на родительскую карточку.
Определите, какие поля действительно изменяются. Для простого обновления достаточно SKU, цены и остатка. Не включайте в файл название, описание, изображения и категории, если задача касается только складских значений. Чем меньше колонок, тем ниже риск случайно стереть контент или перезаписать данные, которые ведутся в другом процессе.
Также заранее зафиксируйте смысл остатка. Ноль может означать «нет на складе», «под заказ» или временно не подтвержденное значение. WooCommerce умеет управлять наличием и разрешать заказы при нулевом количестве, поэтому импорт должен согласовываться с бизнес-правилом, а не менять его случайно.
Подготовьте файл CSV или Excel
Если источник — Excel, перед загрузкой проверьте формат выгрузки. В CSV важны кодировка, разделитель, десятичный разделитель и формат чисел. Цена с запятой может превратиться в текст, а артикул с ведущим нулем — потерять этот ноль. Хорошая практика — сохранить исходный файл отдельно, а для импорта сделать копию с понятной датой и названием поставщика.
Не смешивайте в одном обновлении разные правила округления. Если цены приходят без налога, с налогом или в разных валютах, это должно быть преобразовано до загрузки. WooCommerce запишет получившееся значение, но не сможет объяснить, почему оно оказалось неверным. Для сложной матрицы лучше использовать промежуточную таблицу и отдельную проверку нескольких контрольных товаров.
Почему staging нужен даже для небольшого импорта
Перед первым массовым обновлением создайте резервную копию базы и проверьте процесс на копии сайта. Убедитесь, что файл сопоставляет нужные SKU, не меняет видимость товаров и не ломает вариации. Если отдельного staging нет, хотя бы ограничьте тестовую выборку несколькими товарами и выберите время с низкой нагрузкой. Но для регулярного процесса полноценная тестовая среда безопаснее.
Тест должен включать обычный товар, вариативный товар, товар с нулевым остатком, цену со скидкой и строку с ошибочным SKU. Важно заранее решить, что делать с ошибочной строкой: остановить импорт целиком или пропустить ее с записью в отчет. Молчаливое пропускание опасно, если менеджер считает файл примененным полностью.
Контроль после загрузки
- сверьте количество обработанных строк с количеством строк в исходном файле;
- выберите несколько SKU из начала, середины и конца таблицы;
- проверьте цену в карточке, каталоге, корзине и оформлении заказа;
- проверьте остаток на фронтенде и в административной части;
- очистите кэш только по понятному сценарию и убедитесь, что видна новая цена;
- сохраните журнал импорта и список строк, которые не прошли проверку.
После обновления цен особенно важно проверить корзины, созданные до импорта, если магазин допускает длительное хранение товаров. Нужно определить, какая цена показывается при возврате к старой корзине и как система обрабатывает изменение стоимости. Это не универсальное правило WooCommerce, а часть конкретной логики магазина, поэтому ее лучше описать в тест-кейсах.
Когда нужен автоматический обмен
Если прайс-лист приходит регулярно, ручная загрузка становится промежуточным решением. Можно настроить расписание, обмен по API или загрузку через защищенную папку, но при этом сохраняются требования к журналу, повторному запуску и обработке частичных ошибок. Автоматизация без контроля опаснее ручного процесса: ошибка в источнике может изменить весь каталог за один запуск.
При доработке стоит разделить получение файла, проверку и публикацию изменений. Сначала система принимает данные, затем проверяет SKU и диапазоны цен, после чего применяет изменения и формирует отчет. Такой подход упрощает откат и помогает быстро найти причину расхождения.
Вывод
Массовое обновление цен и остатков — это управляемый процесс: стабильный SKU, минимальный набор полей, тестовый импорт, резервная копия и проверяемый отчет. Такой порядок снижает риск перезаписи контента и позволяет повторять операцию при каждом новом прайс-листе. Если данные приходят из нескольких источников, лучше заранее спроектировать единое правило приоритета и журнал изменений.
