Главная / Создание и продвижение сайтов / САЙТОСТРОЕНИЕ / Prestashop / Выгрузка остатков и цен из 1С:Предприятие 7.7 Торговля+Склад в PrestaShop

Выгрузка остатков и цен из 1С:Предприятие 7.7 Торговля+Склад в PrestaShop

Продолжаем разбираться с особенностями администрирования интернет-магазина на CMS PrestaShop. Любой более-менее крупный магазин, имеющий в своем ассортименте не одну сотню позиций, довольно проблематично администрировать вручную. В процессе его работы часть номенклатурных позиций распродается в ноль, появляется новый товар, приходуется товар из постоянного ассортимента, периодически меняются закупочные и отпускные цены. За всем этим как-то необходимо следить.

Не ошибусь, наверное, если предположу, что 90% организаций малого и среднего бизнеса в нашей стране ведет товарный учет в бухгалтерской программе 1С: Предприятие, ставшей в последнее десятилетие практически незаменимым инструментом для многих. И у большинства владельцев интернет-магазинов рано или поздно встает на повестку дня вопрос об интеграции 1С: и PrestaShop. Насколько это сложно реализовать? Попробуем разобраться.

Если как следует покопаться в интернете, можно найти несколько решений, благодаря которым связка PrestaShop и 1С: работает с минимальным участием человека — выгрузка из 1С: и загрузка в PrestaShop товарных остатков и цен производится автоматически, часто по запланированному графику. Однако отзывы пользователей на имеющиеся на рынке продукты все еще оставляют желать лучшего. То ли синхронизация 1С: и PrestaShop настолько сложно адаптируется под каждую конкретную конфигурацию (а их в России примерно столько же, сколько и предприятий), то ли эти варианты синхронизации еще сыроваты и нет для них нормальной технической поддержки от производителя — в любом случае, эти негативные отзывы настораживают. Да и цена на программы синхронизации Престы и 1С: Бухгалтерии немалая — около 15000 рублей.

Для вновь открытого интернет-магазина, даже с сотнями и тысячами товаров на складе, не важно — реальном или виртуальном, считаю, нет никакого смысла торопиться с полной автоматизацией выгрузки цен и остатков из бухгалтерии в магазин. Однако есть смысл попытаться автоматизировать этот процесс хотя бы наполовину. Для этой цели достаточно обратиться к программисту, который в вашей организации обслуживает 1С: — в большинстве случаев, это человек приходящий, и часто обладающий достаточным опытом работы с самыми разными пользовательскими задачами. А все, что вам потребуется от него — файл обработки для 1С:, позволяющий сохранять в формате CSV необходимые характеристики товара, использующиеся в вашем магазине. Именно этот формат по умолчанию использует PrestaShop (как, прочем, и другие CMS интернет-магазинов).

В обслуживаемом мной на данный момент магазине я ограничился всего четырьмя параметрами для выгрузки: Артикулом (внутренним кодом товара в 1С), Наименованием для печати, Ценой и Количеством (остатком на складе). В принципе, пока обработка не готова, обкатать загрузку остатков и цен в магазин можно, используя стандартное Перемещение ТМЦ, выводящее все необходимые нам параметры товара (в Прайс-листе, увы, характеристик не достаточно). Но вбивать тысячи позиций в Перемещение для выгрузки вручную постоянно — мартышкин труд. Да и сохраненному в формате XLS Перемещению потребуется конвертация в формат CSV в определенной кодировке.

Готовая же обработка для выгрузки остатков невелика по объему и легко интегрируется в 1С: В итоге получаем дополнительный пункт в меню программы, позволяющий несколькими движениями мышки получить практически готовый результат. А практически — потому, что небольшая пост-обработка нам все-таки потребуется. Ниже опишу последовательность действий по выгрузке-загрузке цен и остатков с использованием специально написанной для 1С: обработки.

Выгрузка остатков из PrestaShop в 1C:

В программе 1С: выбираем меню Сервис — Дополнительные возможности — Выгрузка для сайта. В открывшемся окне выбираем необходимые значения: Фирма, Склад, Тип цен. Выбираем путь сохранения выгрузки. Назначаем имя файлу выгрузки, я всегда даю временным файлам имена типа 20141028 (год, месяц, день). Нажимаем Сформировать.

Файл выгрузки PrestaShop-1C: при количестве номенклатуры на складе до 4000 позиций формируется (менее чем за полминуты) в двух форматах: в формате CSV (сохраняется в заданную вами папку) и в формате XLS (открывается окном в 1С:). Нас интересует выгрузка остатков в CSV.

Сохраненный файл требует дополнительной обработки.

1. Открываем файл CSV в редакторе Notepad++.
2. Выполняем поиск заменой спецсимволов в наименованиях, если таковые имеются. В моем случае: Ctrl+F, Найти «=», Заменить «-» и Найти » » (два пробела», Заменить » » (один пробел). Массовая замена производится нажатием кнопки Заменить все, для операции с пробелами — выполняется несколько раз, до полного порядка.
3. В меню Notepad++ выбираем Кодировки — Преобразовать в UTF-8 без BOM.
4. Сохраняем файл.

Обнуление остатков в интернет магазине PrestaShop

Теперь нам необходимо обнулить (удалить) остатки по складу в самом магазине. Этот шаг необходим потому, что в файл выгрузки попадают только ненулевые остатки товара. Экспериментальным путем было выяснено, что на имеющейся конфигурации 1C: выгрузка всей номенклатуры (более 10000 позиций) занимает достаточно много времени и периодически подвешивает программу, что нам совершенно не нужно. Делается же обнуление остатков магазина на PrestaShop для того, чтобы снять с продажи обнуленные в базе 1С: товарные позиции. В магазине в карточке таких товаров пропадает кнопка Добавить в корзину и появляется надпись Товар временно не доступен.

Все манипуляции производим напрямую в базе данных сайта. Заходим в панель phpMyAdmin хостинга со своим логином и паролем. В базе данных MySQL, относящейся к нашему магазину, находим таблицу stock_available и очищаем ее (не удаляем!).

vygruzka-ostatkov-1s-prestashop-01

vygruzka-ostatkov-1s-prestashop-02

Загрузка данных в PrestaShop из CSV-файла

Далее заходим в бэк-офис (административную часть) магазина, для которого требуется обновление цен и остатков. В PrestaShop 1.5 это меню Конфигурация — Импорт CSV. Нажимаем кнопку Загрузка и показываем путь к сохраненному ранее файлу CSV.

vygruzka-ostatkov-1s-prestashop-03

Прописываем Разделитель полей и Разделитель значений — те спецсимволы, которые используются в вашем CSV-файле. Напротив поля Использовать ссылку товара в качестве ключа? в чекбокс ставим галочку. Этот делается в обязательном порядке, иначе товар на складе не обновится, а продублируется, поскольку в нашей обработке 1С: для выгрузки остатков и цен в качестве ключевой и неизменной характеристики товара используется Артикул товара (в базе 1С: и в интернет-магазине). Именно по Артикулу товара производится сравнение и привязка всех остальных параметров (Наименование, Цена, Количество).

Нажимает кнопку Следующий шаг. В открывшейся новой странице указываем значения соответствующие каждому столбцу. Затем в правом верхнем углу страницы нажимаем кнопку Импорт данных в формате CSV. В течение 1-2 минут происходит загрузка данных из файла в базу данных магазина PrestaShop.

vygruzka-ostatkov-1s-prestashop-04

Дополнительные шаги

Поскольку нами выбран наиболее простой способ обновления цен в PrestaShop — выгрузка товара без выгрузки категорий, при появлении на складе 1С: новых позиций, все они автоматически попадают в Главную (корневую) директорию магазина. В моем случае — это от одной до трех сотен новых наименований товара, которым теперь вручную по позиционно необходимо назначить необходимые категории и подкатегории. Для всех новых товаров это делается один единственный раз (PrestaShop запоминает привязку товара к категориям) и для 2-3 сотен позиций занимает, обыкновенно, не более часа времени. Останется лишь загрузить изображения для новых товаров. И обязательно проиндексировать вновь добавленные позиции, чтобы поиск по сайту работал как следует. На этом все.

Расскажите об этой статье в соцсетях:

4 комментария

  1. Спасибо за алгоритм, позволяет делать выгрузку остатков в Престашоп гораздо быстрее. Только у меня товаров немного, обработку пока не заказывал, все делаю вручную — перевожу xls в csv, убираю все лишнее и скармливаю Престе. С обнулением остатков все проще, для меня это было находкой.

  2. Прежде чем связывать 1С с интернет магазином, необходимо, чтобы все папки с товаром и номенклатура в самой 1С-ке были в порядке. Тогда никаких замен не понадобится и можно будет выгружать товар с категориями, без тысячи никому не нужных действий.

  3. Интересное решение. Все правильно, пока сайт не набрал обороты, нет смысла жестко связывать его с 1С, тем более, что это не дешево.

  4. Об интеграции 1С и интернет-магазина стоит подумать уже на стадии разработки, т.е. — разрабатывать магазин на платформе, способной работать с тысячами товаров и поддерживать выгрузку-загрузку из 1С. Как правило, за немалые деньги в первую очередь предпринимателям предлагают Битрикс. Но есть и более простые и дешевые решения — Опенкарт и Престашоп. Последний развивается хорошими темпами и, скорее всего, очень скоро у этой CMS не останется конкурентов в мире.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *