Обратный звонок
Вам перезвонят
Ваше имя
Телефон для обратной связи
E-mail
Краткое описание Вашего вопроса
Портфолио

Доработка интернет-магазина Datika.me на Webasyst и Shop-Script

Многолетняя разработка Datika.me на Webasyst и Shop-Script: маркетплейс и кабинет продавца, закупки у поставщиков, доставка, мультиязычный каталог и ИИ-обогащение.

О проекте

Datika.me — действующий мультиязычный интернет-магазин и онлайн-маркетплейс в Черногории, работающий на Webasyst и Shop-Script. В этом кейсе собраны ключевые направления многолетней разработки и технической поддержки проекта: от витрины, каталога и оформления заказа до закупок у поставщиков, логистики, кабинета продавца и автоматизации наполнения товаров.

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

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

Развитие магазина на Webasyst и переход на Shop-Script X

Обновление платформы без потери бизнес-логики

Проект развивался на нескольких поколениях Shop-Script. В ходе сопровождения магазин переводили на Shop-Script X Pro и новый интерфейс Webasyst 2, обновляли совместимые приложения и проверяли работу ранее созданных модулей. Для Datika это было особенно важно: стандартное обновление могло затронуть изменённые плагины, расчёт доставки, складские правила и интерфейсы сотрудников.

После обновлений восстанавливали отдельные настройки и адаптировали собственные доработки к новому интерфейсу. В частности, возвращали расчёт времени доставки, работу «Купить в 1 клик», сортировки каталога, отчёты, CRM и элементы административной панели. Такой подход позволял обновлять платформу поэтапно и проверять не только открытие страниц, но и рабочие сценарии магазина.

Редизайн и адаптация действующей витрины

В рамках проекта обновлялся внешний вид Datika.me и адаптивное представление страниц. Доработки затрагивали главную, категории, карточки товаров, корзину, информационные блоки, мобильные баннеры, кнопки и навигацию. Актуальная витрина использует новый фирменный стиль Datika с обновлённой шапкой, каталогом популярных категорий и брендов, товарными подборками и адаптивной компоновкой.

Кабинет продавца и права доступа для маркетплейса

Изоляция ассортимента и складов поставщика

Административную часть Shop-Script адаптировали для работы с внешними продавцами. Для поставщика создаётся учётная запись, она связывается с записью продавца и его складом, после чего пользователь получает доступ к собственному ассортименту. В интерфейсе скрываются разделы и сведения, которые не относятся к его товарам и полномочиям.

Права детализировались по операциям с карточкой товара. В проекте учитывались отдельные разрешения на публикацию и доступность для заказа, изменение URL, типа, налога и категории, работу со списками, SEO-полями, ценами, остатками, изображениями, характеристиками и связанными разделами. Задача состояла не просто в создании роли «продавец», а в ограничении каждого чувствительного действия.

Рабочая панель и выгрузка данных

Для панели продавца дорабатывались названия и локализация элементов, статусы товара, сортировки и экспорт. В выгрузку добавлялись сведения о поставщике, складе, количестве и проданных единицах. Предусматривались фильтры по категориям, складам, брендам и состоянию товара, чтобы партнёр мог работать с большим ассортиментом без доступа к данным других продавцов.

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

Poručena roba: закупка товаров у поставщиков

Выбор поставщика непосредственно в заказе

Для Datika разработали и последовательно расширяли плагин Poručena roba — инструмент учёта товаров, которые нужно заказать у поставщиков под клиентские заказы. Менеджер видит связанные с товаром предложения поставщиков и отмечает, у кого будет закуплена конкретная позиция. Выбор сохраняется вместе с сотрудником, датой и временем действия.

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

Статусы, фильтры и контроль готовности заказа

Плагин формирует общий список заказанных товаров в реальном времени. Для него реализовывались фильтры по поставщику, менеджеру, кладовщику, городу, дате заказа, расчётной дате доставки, способу получения, статусу товара и статусу заказа. Полученные позиции можно отметить как Primljeno, а при перемещении между точками — как Poslato с сохранением истории действий.

Отдельный режим Spremno za isporuku показывает только заказы, в которых получены все позиции. Это исключает ситуацию, когда заказ ошибочно считается готовым после поступления лишь одного товара. Номер заказа остаётся активной ссылкой для быстрого перехода к работе менеджера.

Мобильный список для водителей и кладовщиков

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

Список поддерживает печатную версию, отправку по email и очистку уже обработанных позиций без удаления истории из заказа. Даты и время приведены к европейскому формату и часовому поясу Подгорицы, а основные элементы интерфейса локализованы для сотрудников.

Прайс-листы, парсинг и импорт ассортимента

Импорт данных от разных поставщиков

Магазин работает с большим количеством поставщиков и регулярно обновляет цены и наличие. Для этого дорабатывались импорт прайс-листов и отдельные парсеры сайтов. В проекте настраивались первичная загрузка названий, артикулов, цен, описаний, характеристик и фотографий, а затем периодическое обновление изменяемых данных.

Для поставщиков Okov и Petmarket развивался сценарий сопоставления внешней структуры с каталогом Datika. До загрузки можно связать категории и типы поставщика с существующими категориями и типами Shop-Script, выбрать налог и склад, проверить настройки и только после этого применить импорт. Это снижает объём ручной сортировки после добавления тысяч товаров.

Сохранение ручных настроек при обновлении

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

В настройки профиля поставщика добавлялись колонки для названия, бренда, SKU, EAN или Barcode и описания. Для некоторых значений поддерживается объединение данных из нескольких столбцов, например когда бренд и модель находятся в разных колонках. Эти исходные сведения используются и при создании товара, и как контекст для дальнейшего обогащения карточки.

Складская логика новых товаров

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

ИИ-обогащение карточек товаров

Собственный плагин и серверная система обработки

Для массового наполнения каталога разработана отдельная система ИИ-обогащения. Она состоит из интерфейса в Webasyst и серверной части на Python. Система получает доступные сведения о товаре, ищет недостающие данные и готовит название, описание, характеристики, фотографии и метаданные, а также предлагает тип, категорию и налог.

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

Защита от неверных фотографий и характеристик

В строгом режиме источник ограничивается выбранными сайтами поставщиков. Плагин открывает найденную страницу и сверяет код артикула; если он не совпадает, проверяет следующие результаты. При отсутствии подтверждённого совпадения фотографии не добавляются — пустая галерея безопаснее, чем изображения другого товара.

Для подтверждённой страницы предусмотрена загрузка нескольких фотографий с установленным лимитом. Характеристики берутся с сайта поставщика, а не из краткого поискового ответа. Отдельные обработчики добавлялись для источников с нестандартной вёрсткой и страницами, которые полностью формируются JavaScript.

Приоритет исходных данных и сохранение ручной работы

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

Для уже заполненных товаров предусматривается защита значений, внесённых человеком. Название, тип, категория, налог, фотографии, характеристики и описание могут быть оставлены без изменений, а автоматизация используется только для пустых полей. Текст поставщика форматируется на читаемые абзацы без перестановки и переписывания исходных слов.

Это направление продолжало развиваться после запуска. Последняя проверка выявила различия между поставщиками: для GroupTrade корректнее подбирались фотографии, но часть описаний и метаданных оставалась пустой; для EWE загружались не все доступные фотографии и характеристики. Поэтому данный раздел описывает созданный инструмент и реализованные правила, но не заявляет о полностью автоматическом и безошибочном наполнении любого товара.

Заказы, склады и административная панель

Расширенная информация о товаре в заказе

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

Для товара с несколькими предложениями можно показать поставщиков, у которых он есть по последнему обновлению прайс-листа. Это связывает карточку клиентского заказа с фактическим процессом закупки и уменьшает количество переходов между разными разделами бэкенда.

Каталог в бэкенде и массовые операции

В список товаров добавлялись колонки «Поставщик», «Склад» и «Продано», настройка количества строк на странице и фильтры для открытых, закрытых, не связанных с поставщиками товаров, позиций без склада или с несколькими складами. Поддерживались массовое назначение склада и формирование выгрузок по категории, бренду или складу.

Для расчёта прибыли в отчётах менялась формула: прибыль определяется как сумма заказа за вычетом закупочной стоимости, без повторного вычитания доставки и налога. Платная доставка выводится отдельно. Также создавалась печатная форма контроля заказов за период с разбивкой сумм по способам оплаты и сведениями о сотрудниках, которые меняли статусы.

Интеграции доставки: HALO Dostava, Pošta CG и пункты выдачи

Создание отправлений HALO Dostava по API

Для курьерской службы HALO Dostava реализована интеграция создания отправлений из заказа Shop-Script. Сотрудник запускает отправку из административной панели, а в запрос передаются необходимые сведения о заказе, получателе, стоимости и параметрах посылки. При переходе сервиса на HTTPS интеграцию обновили на новый защищённый endpoint.

Логику наложенного платежа связали со способом оплаты. Если покупатель выбрал наличные, в сумму к получению передаётся итог заказа после скидок и с учётом доставки. Для безналичных способов признак возврата денег курьером не устанавливается, что снижает риск ручной ошибки при создании отправления.

Несколько упаковок в одной посылке

Интеграцию расширили для заказов из нескольких коробок. Отправитель может указать количество упаковок и вес каждой из них; по умолчанию заказ создаётся с одной упаковкой, а общий вес товаров подставляется в первую. Для остальных упаковок вес можно заполнить вручную в соответствии с фактической комплектацией.

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

Трекинг Pošta CG и HALO Dostava

Для отправлений через Pošta Crne Gore в email-уведомление добавлялся трекинг-номер и ссылка для отслеживания. Позднее аналогичный блок подготовили для заказов HALO Dostava. Данные берутся из конкретного заказа при переводе в статус отправки, поэтому покупатель получает номер своей посылки, а не общий текст без идентификатора.

Расчёт стоимости и срока доставки

На витрине дорабатывались правила для курьера и пунктов выдачи: регион, время оформления заказа, расписание, склад поставщика, вес и стоимость корзины. В информационном блоке карточки товара показываются доступные ПВЗ, цена и ожидаемый срок. Для разных городов Черногории можно задать отдельные условия, а дополнительные дни склада учитываются при расчёте даты.

Корзина, оплата, скидки и покупка в рассрочку

Оформление заказа и «Купить в 1 клик»

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

Формат телефонного номера адаптировали для Черногории и международных покупателей. В формах и печатных документах убирались российские маски со скобками и дефисами, чтобы номер сохранялся и отображался без искажений.

Карты, скидки и статусы платежа

В рамках сопровождения проверялись полная и частичная фиксация средств, отмена платежа и отображение результата в истории заказа. Отдельно дорабатывалось распределение скидки между товарными позициями, включая скидки по бонусной программе, чтобы изменённые цены корректно попадали в заказ и печатные формы.

Для промоакций использовалась автоматическая отмена скидок по окончании заданного периода. После обнаружения сбоя восстановили cron-задачу и возврат обычных цен; товары, помеченные как бессрочная акция, обрабатываются по отдельному правилу.

Кредитный калькулятор и рассрочка

Для услуги покупки в рассрочку доработали расчёт ежемесячного платежа и общей суммы при выборе срока. В формуле учитываются стоимость товара и процент услуги, после чего сумма делится на выбранное количество месяцев. Доступность рассрочки можно ограничивать минимальной ценой товара.

На сайте также создавалась форма подачи заявки на кредит с отправкой данных на email и переделывались печатные документы: счёт, квитанция для оплаты через банк или почту, PDF/JPG-вложения и компактное размещение реквизитов заказа.

Мультиязычная витрина и карточка товара

Три языковые версии в одной теме

Datika работает на черногорской, русской и английской витринах. Для проекта настраивались MyLang, переключение CG/RU/EN, переводы регистрации, личного кабинета, корзины, способов доставки и оплаты, бонусной программы, дат и системных сообщений. Ссылки из информационных блоков ведут на страницы соответствующей языковой версии.

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

Информационный блок доставки и оплаты

Карточку товара дополнили блоком, который помогает покупателю понять условия до перехода в корзину. В нём можно выбрать регион, увидеть курьерскую доставку и пункты выдачи, открыть карту, проверить цену и срок, а также посмотреть способы оплаты, гарантию и возврат.

Данные связаны с настройками доставки и характеристиками товара. Например, срок зависит от города, времени заказа и склада, а текст гарантии берётся из выбранной характеристики Garancija. Блок адаптирован для мобильных экранов и всех трёх языков.

Категории, изображения и элементы интерфейса

Для категорий и подкатегорий подбирались изображения и иконки, дорабатывалось отображение товарных фотографий и стикеров, адаптивный размер видео, кнопки и отступы. На страницах товаров исправлялось форматирование многострочных описаний и характеристик, чтобы текст можно было вводить без ручной расстановки HTML-тегов перед каждой строкой.

Каталог, бренды и техническое SEO

Единая мультиязычная структура категорий

Исторически товары распределялись по отдельным категориям для каждого языка. Структуру переводили к единой категории с локализованными названиями через MyLang. При изменении адресов учитывались редиректы со старых URL, чтобы сохранить доступность проиндексированных страниц и ранее созданных ссылок.

Для категорий и карточек обсуждались и внедрялись шаблоны H1, title и description. При построении структуры учитывались категории, которые могут входить в несколько разделов, и необходимость уникальных понятных URL без лишней глубины.

Архив товаров, бренды и сортировки

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

Страница брендов получила алфавит A–Z и отдельный блок выбранных популярных брендов с изображениями. Каталог A–Z по типам и брендам приводился к общему дизайну магазина. Для категорий восстанавливались сортировки по цене и по бестселлерам — в штуках и по сумме продаж, за всё время и за последние 30 дней.

Скорость и корректность страниц

Проводилась оптимизация по PageSpeed, Pingdom и HTML-валидатору: проверялись изображения, загрузка ресурсов, разметка и ошибки, влияющие на стабильность страниц. Эти работы дополняют содержание и структуру каталога, но сами по себе не заменяют полноценную стратегию поискового продвижения.

Контакт-центр, уведомления и работа с отзывами

Браузерный контакт-центр для операторов

Для удалённой работы операторов разработали отдельное решение с телефонным каналом и IVR. В функциональность вошли голосовое меню, очередь звонков, удержание и парковка, запись разговоров, сообщения в нерабочее время, маршрутизация по навыкам и управляемый чёрный список.

Пропущенные звонки собираются в очередь Callback без лишних дублей: повторные обращения с одного номера объединяются, а после успешного разговора запись удаляется. Для супервайзера предусмотрены режимы участия в разговоре, прослушивания и подсказки оператору. Заказчик отдельно отметил удобство и скорость работы созданного инструмента.

Email, мессенджеры и формы

В Webasyst настраивались почтовые ящики, получение и отправка писем, cron и маршрутизация обращений из веб-форм. Для статусов заказа прорабатывались уведомления на трёх языках, а также сценарии подписки и отписки в Viber и WhatsApp. После обновлений восстанавливалась работа CRM и Контактов.

Отзывы и бонусы

Настроены автоматические письма с просьбой оценить купленный товар и оставить отзыв. В уведомление можно подставить ссылку на товар, размер бонуса или кешбэка и ссылку на профиль компании в Google. В личном кабинете кнопка отзыва показывается для подходящих заказов независимо от их возраста и исчезает после уже оставленной оценки.

Размер вознаграждения можно задавать по типу, категории или конкретному товару. Отдельно исправлялись начисления за анонимные отзывы и мобильное отображение длинных подписей кнопок, чтобы механика работала одинаково на разных устройствах.

Производительность, безопасность и сопровождение

Контроль обновлений и серверного окружения

Магазин содержит плагины с индивидуальными изменениями, поэтому обновления фреймворка, PHP, базы данных и приложений проверялись поэтапно. После переносов и смены версий устранялись ошибки MySQL, PHP и MyLang, восстанавливались CRM, категории, отчёты, расчёт доставки и другие зависимые функции.

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

Защита форм от автоматического спама

В форму обратного звонка добавили CAPTCHA и возможность массового удаления сообщений. Аналогичная защита была установлена для формы «Нашли дешевле?». Это позволило закрыть конкретный канал автоматических отправок и упростить очистку накопившихся обращений.

Задачи в развитии и повторной проверке

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

  • ИИ-обогащение: требуется продолжить проверку полного переноса фотографий, характеристик, описаний и метаданных для EWE и GroupTrade, а также единообразного форматирования абзацев.
  • Фильтры каталога: зафиксировано обращение по прокрутке длинного списка фильтров на десктопе и положению кнопки применения.
  • Мобильный баннер: после оптимизации изображений отмечалось искажение одного из баннеров на мобильной витрине.
  • Полная SEO-оптимизация: в документе выделена как отдельный большой этап; её нельзя считать завершённой только на основании уже выполненных работ по структуре, скорости и метаданным.

Такое разделение сохраняет полезную для будущего заказчика конкретику, но не превращает открытые задачи в заявления о готовом функционале.

Итоги разработки и технической поддержки Datika.me

Datika.me — пример длительного развития интернет-магазина на Webasyst и Shop-Script, где доработки охватывают одновременно покупателей, менеджеров, продавцов, поставщиков, кладовщиков и курьеров. В одном проекте связаны мультиязычный каталог, импорт прайс-листов, складской учёт, закупки под заказы, доставочные API, кабинет продавца и собственные плагины.

Среди наиболее заметных результатов — кабинет продавца с ограничением доступа, плагин Poručena roba с мобильным списком, интеграция HALO Dostava, уведомления Pošta CG, правила распределения товаров по складам, многоязычная карточка товара и система ИИ-обогащения с обязательной модерацией. При этом для функций, которые продолжают тестироваться на разных поставщиках, в кейсе честно сохранён текущий статус.

Обсудить похожую доработку интернет-магазина

Если вашему магазину нужен собственный плагин, интеграция с поставщиками или службой доставки, перенос на новую версию Shop-Script либо доработка кабинета сотрудников, пришлите адрес сайта и описание рабочего сценария. Для первичной оценки достаточно обезличенного примера и ожидаемого результата — доступы и пароли в открытом сообщении не нужны.

Подробнее: программирование интернет-магазинов и другие кейсы по доработке сайтов.

Контакты

Телефон для связи+373 684 33 335
Закажите БЕСПЛАТНУЮ
консультацию по созданию сайта
Проверочный код (изображение)