Разработка и поддержка интернет-магазина парфюмерии Parfumoda.ru
О проекте
О проекте Parfumoda.ru
Parfumoda.ru — интернет-магазин парфюмерии, в котором один аромат может иметь несколько вариантов: разные объёмы флакона, концентрации, тестеры, миниатюры, пробники и отливанты. Для такого каталога важны точные цены и наличие каждого артикула, понятный выбор варианта и согласованная работа витрины с внутренней учётной системой.
Работы Quadro-Design охватили создание витрины на готовой теме MegaShop, адаптацию магазина под ассортимент парфюмерии и последующее техническое сопровождение. Отдельными направлениями стали синхронизация с Ginger, экспорт новых товаров и артикулов, массовое заполнение характеристик, оформление заказа, рекламные выгрузки и поддержка оптового сайта.
- Проект
- Parfumoda.ru — интернет-магазин парфюмерии.
- Платформа
- Webasyst и Shop-Script; исходный кейс оформлялся для Shop-Script 8.
- Основа витрины
- MegaShop 2.0 с последующей адаптацией темы и плагинов.
- Учётная система
- Ginger — собственная программа заказчика для работы с товарами, ценами и наличием.
- Дополнительная витрина
- opt-parfumoda.ru — оптовое направление проекта.
- Период задач
- 2020–2026 годы.
- Формат сотрудничества
- Разработка, программирование, вёрстка, интеграции, исправление ошибок и последовательные доработки магазина.
Задачи проекта
Основная задача — адаптировать готовую платформу под реальную работу магазина парфюмерии: сохранить возможности темы, согласовать поведение плагинов и сделать выбор конкретного артикула понятным на компьютере, планшете и смартфоне.
- Подготовить витрину с фирменным оформлением, каталогом, алфавитной навигацией по брендам и удобными товарными списками.
- Настроить выбор объёма и формата парфюмерии, корректные диапазоны цен и отдельные состояния доступности каждого артикула.
- Связать сайт с Ginger и сократить ручную обработку новых позиций, цен и наличия.
- Автоматизировать заполнение характеристик на уровне артикулов и товаров.
- Доработать корзину, доставку, оплату и связанные с ними плагины.
- Подготовить рекламные выгрузки и поддержать оптовое направление.
Приоритетом заказчика была скорость открытия страниц. Изменения витрины, изображения, карусели и дополнительные элементы требовалось проверять на влияние на загрузку сайта. Перед изменениями предусматривалось создание резервной копии либо проверка ежедневного автоматического резервного копирования.
Разработка и оформление витрины на MegaShop
Подготовка новой версии магазина
- Настройка магазина на MegaShop 2.0 и перенос необходимых возможностей прежней витрины.
- Работа с тестовым поддоменом и переносом между тестовой и основной версиями сайта.
- Проверка причин медленной загрузки после переноса.
- Очистка каналов продаж: в задании требовалось оставить основную и тестовую витрины Parfumoda.
- Подготовка фирменного оформления; разработка логотипа с привлечением дизайнера была включена в исходное задание.
- Проверка настроек ширины контентной части и возможностей готовой темы.
На главной странице предусматривались направления «Женские», «Мужские», «Унисекс», «Детские», а также переходы к брендам, нотам и странам. Названия разделов требовалось оформить с заглавной первой буквой. Лишние промежуточные элементы вложенной структуры каталога скрывались, чтобы упростить навигацию.
Единое оформление товарных списков
Изменения распространялись на каталог, хиты продаж, результаты поиска, просмотренные, популярные и рекомендованные товары, а также блок «С этим товаром покупают».
- Скрытие номера артикула и отзывов в плитке товара.
- Центрирование названий ароматов на разных устройствах.
- Единые размеры товарных ячеек, аккуратные отступы и сокращение пустого пространства.
- На смартфонах — увеличение изображения парфюма и удаление кнопки «В корзину» из товарной плитки.
- На компьютерах и планшетах — сохранение размера изображений при уменьшении лишних промежутков.
- Для недоступного товара — центрированная надпись «Нет в наличии» вместо нулевой или другой цены, без дополнительного значка «×».
- Удаление лишней подписи «В наличии» и замена состояния «Предзаказ» на согласованную формулировку «Нет в наличии».
- Вывод минимальной и максимальной цены по артикулам, доступным для заказа.
- Исправление диапазонов цен в просмотренных товарах и сравнении; добавление пробелов вокруг тире.
- Вывод цены просмотренного товара в одну строку.
Для мобильных названий было задано отображение до трёх строк вместо блока со звёздочками. Этот пункт возвращался на повторную проверку: после первоначальной отметки о выполнении заказчик указал, что третья строка не появилась.
Изображения, переключатели и слайдер
- Восстановлена возможность переключать изображения товаров между флаконом и упаковкой. Для переключателя требовалось согласовать место с кнопками «Плитка» и «Список» и устранить конфликт функций.
- Отдельно поставлена задача синхронного появления значка переключателя вместе с остальной страницей.
- Проверено перелистывание фотографий в списках новинок средствами темы.
- Для уменьшения высоты главного слайдера примерно в полтора раза согласовано использование изображений меньшей высоты: размер блока зависел от исходных картинок.
- Выполнены отдельные исправления мобильной шапки магазина.
Карточка товара и выбор конкретного артикула
Карточка товара адаптировалась под магазин, где покупатель выбирает не только аромат, но и конкретный вариант его исполнения. В работе использовался плагин «Артикулы с характеристиками в категориях, списках, поиске и карточке товара».
Список вариантов и добавление в корзину
- Оформление строк артикулов по примеру прежнего магазина: согласованные ширина ячеек, межстрочные интервалы и размеры элементов.
- Одинаковый размер кнопок покупки и состояния «Нет в наличии».
- Для товара с несколькими вариантами в каталоге — всплывающее окно выбора артикула с кнопкой добавления в корзину.
- После покупки — согласованный переход к сценариям «Продолжить покупки» и «Перейти в корзину» с учётом особенностей плагина.
- Удаление блока «Рекомендуем» из всплывающего окна после добавления товара.
- Скрытие общего номера артикула и стандартного блока цены, когда покупка осуществляется через отдельные строки вариантов.
- Автоматическое создание кода нового артикула при добавлении и сохранении.
- Исправление выделения нужного артикула при переходе по прямой ссылке.
Мобильная и планшетная карточка
Вместо внутренней вертикальной прокрутки списка вариантов предусматривалось раскрытие по кнопке «Подробнее» или «Показать ещё». После уточнения задания количество первоначально видимых строк увеличили с трёх до шести.
- По умолчанию показывать шесть артикулов, если они существуют.
- При меньшем количестве вариантов не выводить лишнюю кнопку раскрытия.
- Убрать пустое пространство возле «Показать ещё» и скачок страницы вверх при нажатии.
- Сохранить ссылку на бренд над изображением на смартфоне и планшете; позднее бренд добавлен и в компьютерную версию.
- Удалить лишние нижние отступы на всех устройствах.
- В компьютерной версии немного опустить блок артикулов — ориентировочно на 0,5 см — и сделать границы заметнее цветом #ccc.
После последующих изменений заказчик вновь сообщил о некорректной работе «Показать ещё / Скрыть» на смартфоне и повторном появлении общего артикула. Эти замечания учитываются отдельно от ранее проверенного оформления.
Дополнительные действия в карточке
- Отдельный вывод покупки в один клик.
- Доработка плагина информации о доставке: самостоятельная кнопка и всплывающее окно с условиями.
- Центрирование кнопки информации о доставке на планшете.
- Настройка сценария «Сообщить о поступлении» для недоступных артикулов. При переносе темы отдельно согласовывалось удаление лишних стандартных уведомлений и пояснений.
- Значок «?» после вариантов с уценкой и пробников-отливантов, открывающий пояснение соответствующего формата.
- Редактирование пояснений через общий блок sku_info_modal и последующее приведение его текста в порядок.
Блок преимуществ
В карточку добавлен согласованный заказчиком блок с иконками и формулировками:
- «100% оригинальная продукция».
- «Бесплатный самовывоз».
- «Прямые поставки парфюмерии».
- «В наличии отливанты и атомайзеры».
Другие ароматы текущего бренда
Для карточки поставлена задача карусели с заголовком «Другие ароматы от brand_name», где вместо brand_name выводится текущий бренд.
- Состав элемента — превью изображения и название товара.
- Прямая относительная ссылка должна находиться только в названии.
- Изображение не должно быть ссылкой.
- Не требуются всплывающий предпросмотр, сравнение, избранное и вывод всех фотографий товара.
- Превью должны минимально влиять на скорость загрузки.
После отметки о выполнении поступили уточнения: изображения оставались ссылками, появились лишние функции, а на отдельных товарах карусель отсутствовала либо содержала только одну позицию. Эти замечания не позволяют считать все детали карусели окончательно принятыми.
Фотографии, загрузка страницы и адаптация под устройства
Оформление проверялось на компьютерах, смартфонах и планшетах, в том числе на MacBook и iPad. В журнале работ зафиксированы следующие исправления:
- Устранение сжатия изображений в Chrome на MacBook с экраном 13 дюймов.
- Исправление слишком маленьких фотографий на iPad.
- Исправление различий между первым открытием страницы на iPad и отображением после перезагрузки.
- Восстановление изображений, которые исчезали после добавления товаров.
- Добавление индикации загрузки перед появлением фотографий.
- Сокращение количества прелоадеров в карточке до одного вместо отдельных индикаторов на основном изображении и миниатюрах.
- Исправление скачков размеров и положения блоков во время загрузки страницы.
- Увеличение логотипа в мобильной и планшетной шапке.
- Удаление лишних обозначений bestceller и lowprice.
На компьютере восстановлено открытие фотографии в полноэкранном режиме с перелистыванием и без лишних кнопок. Изменение требовалось только для компьютерной версии.
Переключение основной фотографии при выборе артикула проверялось отдельно. Поскольку функция работала некорректно, на согласованном этапе её отключили. Это решение не следует описывать как восстановленное автоматическое переключение фотографий.
В последующих записях появились повторные замечания о лишних загрузочных индикаторах. Также в сентябре 2025 года поставлена отдельная задача исправить искажённое отображение загружаемых изображений WebP; отметка о завершении этого пункта отсутствует.
Бренды, алфавитная навигация, фильтры и поиск
Навигация по брендам через Alphacat
- Внедрение и адаптация алфавитного списка брендов.
- Исправление переходов: нажатие на бренд должно открывать его страницу, а не результаты поискового запроса.
- Выделение популярных брендов жирным шрифтом, включая мобильную версию.
- Объединение кириллических брендов в группу «А–Я», а числовых — в «0–9».
- Исправление положения страницы после перехода к группе «0–9» на смартфоне.
- Удаление дополнительного поиска под заголовком списка брендов.
- Отключение слайдера брендов в мобильной версии.
- Доработка ширины алфавитной панели на смартфонах и планшетах, её отступов и расположения.
- Настройка пункта «Бренды» как прямой ссылки на страницу всех брендов.
Появление бренда в алфавитном списке проверялось вместе с доступностью его товаров для заказа. В частности, отсутствие нужной отметки доступности объясняло, почему бренд не появлялся в группе «А–Я».
Отдельно обсуждались отсутствие некоторых брендов в облаке, управление жирным начертанием и порядок обновления списка после изменений. Удаление неактуальных значений связывалось с настройками характеристики «Бренд» с идентификатором brand.
Оформление страниц брендов
- Исправление размеров изображений брендов, лишних ссылок под ними и положения блока на смартфонах и планшетах.
- Согласование уменьшения изображений примерно вдвое, а затем требования удалить ненужное изображение.
- Приведение элементов к единым размерам, чтобы названия не смещались из-за различной высоты картинок; в задании допускалась единая рамка.
- Включение фильтрации и сортировки на страницах всех брендов, доступных через алфавитную навигацию.
- Вывод собственного описания бренда под списком товаров с необходимыми отступами.
Для описаний требовалось редактирование форматированного текста отдельно для каждого бренда. При диагностике установили, что текст из поля «Описание» уже выводился в коде, но скрывался средствами CSS; переопределение описания SEO-плагином не было подтверждено.
На позднем этапе алфавитную плашку убрали из карточки товара на уровне формирования HTML. Простое визуальное скрытие через CSS не соответствовало поставленной задаче.
Состав и порядок фильтров
Для страниц брендов и основных категорий был согласован следующий набор:
- Цена.
- Бренд.
- Пол.
- Страна.
- Формат.
- Год.
- Ноты.
В фильтрации требовалось оставить общий параметр «Ноты» и убрать дублирующие варианты: базовые, верхние, средние и «содержит ноты». Порядок фильтров должен совпадать на страницах брендов и в категориях мужской, женской, детской и унисекс-парфюмерии.
После первоначального выполнения поступили замечания об отсутствии «Нот» в отдельных категориях и неодинаковом составе фильтров. Они требовали дополнительной проверки.
Сортировка по наличию
Заказчик требовал показывать доступные товары первыми, а недоступные — в конце списка. При разборе учитывали различие между стандартной категорией Shop-Script и страницей бренда, которую формирует отдельный плагин.
Для брендов сортировка задавалась индивидуально. Массовое изменение порядка всех брендов через базу данных обсуждалось отдельно и в записи сентября 2022 года было отложено. Это отдельная задача от ранее выполненного включения возможности сортировки и фильтрации.
Поиск по товарам и брендам
Поиск интегрировался с новой темой и проверялся на компьютерах, планшетах и смартфонах. На раннем этапе разбирались отсутствие первых двух брендов в подсказках и неработающий поиск на мобильных устройствах.
В развитие поиска были поставлены требования:
- Сортировка результатов.
- Переключение между плиткой и списком.
- Избранное и сравнение.
- Перелистывание фотографий товаров.
- Заголовок с поисковым запросом и количеством найденных товаров.
- Согласованное выделение брендов красным цветом.
- Правильное мобильное и планшетное отображение.
Для сравнения поведения временно подключался стандартный поиск. Позднее выполнены программные правки поискового плагина, доработка производительности и добавление индикатора загрузки по центру поисковой строки. В проверках использовались в том числе неполные запросы.
При этом отдельные замечания по интерфейсу результатов на iPad оставались в журнале: неверная выдача, отсутствие количества товаров, скрытый заголовок, лишняя метка lowprice и неправильный режим списка или плитки. Общая отметка о правках поиска не подтверждает закрытие каждого из этих уточнений.
Наличие, цены и видимость отдельных вариантов
Для магазина важно различать доступность самого товара и каждого его артикула. Наличие одного варианта не должно делать доступными остальные, а отсутствие всех вариантов должно ясно отображаться покупателю.
Правила отображения
- Если цена артикула отсутствует или равна нулю, вариант должен быть недоступен для заказа.
- Если ни один артикул товара не доступен, выводится «Нет в наличии».
- Диапазон цены формируется по вариантам, доступным для покупки.
- Недоступный товар не должен показывать вместо статуса нулевую, устаревшую или случайную цену.
- После обновления данных из Ginger должны согласованно меняться цена, остаток и возможность заказа.
- Статусы и цены должны правильно отображаться также в просмотренных товарах, сравнении и списках брендов.
В 2022 году исправлялся сценарий, при котором цена уже обновилась из Ginger, но товар оставался недоступным из-за нулевого остатка. На одном из ранних этапов обсуждалось массовое использование бесконечного остатка. Поздние задачи уточнили необходимость принимать фактическое отсутствие товара и нулевые значения при обмене.
Нулевые значения в синхронизации
В задаче августа 2025 года отдельно указано: нулевой остаток и нулевая цена должны обрабатываться так же, как положительные значения. Запись с in_stock = 0, price = 0.00 и priceRUB = 0 нельзя пропускать при обновлении.
Ожидаемое состояние витрины для такой записи — «Нет в наличии». После отметки о выполнении заказчик повторно сообщил, что на недоступных товарах всё ещё выводится цена либо исчезает сама надпись. Поэтому окончательная приёмка этого уточнения не зафиксирована.
Скрытие недоступных артикулов
Для карточек с доступными и недоступными вариантами требовалась возможность скрывать отсутствующие артикулы. Если недоступны все варианты, согласованное поведение карточки нужно сохранить, а не скрывать весь список без объяснения.
В проверках были заданы исключения: для ORO и Cygnus после уточнения изменения не требовались; для Baccarat Rouge 540 нужна возможность убрать недоступные варианты из вида; для Blue Blood, у которого ничего не было в наличии, поведение оставляли без изменений. После первоначальной правки заказчик указал, что задача выполнена неправильно.
Добавление пробников и отливантов
Массово добавлялись варианты «пробник 1 мл (отл)», «пробник 2 мл (отл)», «пробник 3 мл (отл)», «пробник 5 мл (отл)», «пробник 10 мл (отл)», «пробник 15 мл (отл)», «пробник 20 мл (отл)» и «пробник 30 мл (отл)».
- Уже существующее одноимённое значение не должно дублироваться.
- Начальное состояние новых вариантов — недоступны для заказа.
- Начальная цена — 0.
- На этом этапе для новых вариантов был задан бесконечный остаток.
Данная операция отмечена как выполненная и принятая. Отдельно удалены ошибочные артикулы без наименования, у которых часто стояла техническая цена 1000 рублей. Критерием очистки было отсутствие названия.
Обмен данными между Parfumoda.ru и Ginger
Ginger — собственная учётная программа заказчика, по назначению сопоставимая с внутренней системой товарного учёта. В первоначальное требование входил интерфейс обмена, позволяющий добавлять, удалять и изменять товары и цены как со стороны программы, так и со стороны сайта.
Архитектурная задача предусматривала обмен в обоих направлениях и согласование форматов с разработчиком Ginger. На раннем этапе подключение выполнялось напрямую через базу данных и было отмечено как проверенное.
Восстановление и диагностика синхронизации
- Восстановление обмена после переноса на другой сервер, при котором прежняя синхронизация не была перенесена, а старая база удалена.
- Проверка соответствия идентификаторов сайта и Ginger.
- Проверка передачи названия, спецификации артикула, цены и признака наличия.
- Разбор случаев, когда обновляется только часть сопоставленных позиций.
- Проверка нулевых остатков, нулевых цен и недоступных вариантов.
- Восстановление исходящей передачи данных после изменения версии PHP.
- Исправление ответа «No valid records to update», который появлялся одновременно с сообщением об успешной выгрузке.
- Проверка ошибок обмена после обновления платформы.
Один из примеров диагностики — Amouage Crimson Rocks 50 мл: позиция была сопоставлена и доступна в Ginger, но цена и наличие на сайте не менялись. При этом другие товары, например Moresque Perpetual, обновлялись. Это требовало проверки всей цепочки обмена, а не только факта отправки данных.
В материалах также зафиксировано ограничение прав при просмотре привилегий интеграционной таблицы в MySQL. Завершённое исправление этого ограничения отдельно не отмечено.
Автоматизация передачи новых позиций
В сентябре 2025 года выполнена задача автоматизации передачи новых товаров и артикулов с сайта в Ginger через плагин tovarlist. Ранее заказчик переносил данные вручную.
- Передача наименования и Parfumoda_ID новых позиций.
- Запуск операции по кнопке.
- Предоставление интерфейса обмена, API или ссылки для интеграции со стороны разработчика учётной программы.
- Подготовка данных для дальнейшего сопоставления, редактирования цены и наличия в Ginger.
Выгрузка с заданного номера артикула
Реализована выгрузка для работы в Excel в структуре привычного экспорта Webasyst, начиная с заданного номера артикула включительно. Пример из задания — выгрузить позиции с артикула 480714 и выше.
- До 1000 товаров используется обычная выгрузка.
- При объёме свыше 1000 товаров плагин формирует временные списки.
- После скачивания файла созданные списки необходимо удалить.
- Настройки и порядок работы вынесены в интерфейс tovarlist.
Также удалены ненужные ссылки на служебные витрины test и quiq, которые отображались при редактировании карточек товаров.
Массовое заполнение характеристик товаров и артикулов
Для большого каталога требовалось редактировать характеристики каждого артикула. Проверенные заказчиком стандартные плагины массового редактирования изменяли общие характеристики товара и не закрывали эту задачу.
Для автоматизации разработан отдельный функционал массовой обработки, в том числе плагин madarticles. В заданиях разграничивались характеристики товара, характеристики артикула и уникальные значения отдельных вариантов.
Вес и габариты каждого артикула
В задании были указаны следующие значения:
| Параметр | Идентификатор | Значение |
|---|---|---|
| Вес | weight | 200 г |
| Ширина | width | 50 мм |
| Глубина | depth | 80 мм |
| Высота | height | 50 мм |
| Единица веса | weight_unit | g |
| Единица габаритов | dimension_unit | mm |
Позднее выполнена дополнительная доработка для указания веса в граммах под каждым артикулом. Вопрос о фиксированном значении либо извлечении веса из названия, по аналогии с объёмом, требовал отдельного уточнения.
Объём из названия варианта
Для характеристики obem_ml реализовано автоматическое заполнение по числу перед обозначением «мл» в названии артикула.
Если объёмов несколько, берётся первое значение. Например, для названия «набор (п/вода 100 мл + п/вода 6 × 8 мл + п/вода 2 × 30 мл)» значение объёма — 100 мл.
Концентрация парфюмерии
Характеристика tip заполняется на уровне артикула по его наименованию:
| Обозначение в названии | Значение концентрации |
|---|---|
| Парфюмерная вода, парфюмированная вода, п/вода | Парфюмерная вода |
| Туалетная вода, т/вода | Туалетная вода |
| Одеколон | Одеколон |
| Твёрдые духи | Твёрдые духи |
| Духи | Духи |
| Масляные духи | Масляные духи |
Формат: пробник, миниатюра, тестер или отливант
Для характеристики probnik_miniatyura_tester_otlivant были заданы правила:
| Условие | Формат |
|---|---|
| Первое значение объёма не превышает 2,5 мл включительно, а обозначение «отливант» отсутствует | Пробник |
| В названии указано «тестер» | Тестер |
| В названии указан объём от 3 до 25 мл | Миниатюра |
| В названии указано «отливант» | Отливант |
После отметки о выполнении заказчик сообщил, что правило для отливанта не срабатывает. При совпадении нескольких условий требовалось отдельно согласовать приоритет значений.
Определение вида товара
В автоматическую обработку включены следующие значения:
- Набор — если это первое обозначение в наименовании.
- Дезодорант.
- Гель для душа.
- Лосьон.
- Свеча.
- Мыло.
- Крем.
Предусмотрена проверка возможных значений характеристики, включая добавленные заказчиком. В постановке отдельно возникло уточнение, что именно изменяется: тип товара, характеристика товара или характеристика артикула. Эти уровни нельзя считать взаимозаменяемыми.
Дополнительный тип каждого артикула
| Обозначение в названии | Значение типа |
|---|---|
| Отливант | Наливная парфюмерия |
| Туалетная вода, т/вода | Туалетная |
| Парфюмерная вода, п/вода | Парфюмерная |
| Одеколон | Одеколон |
Общие поля товара и уникальные значения вариантов
- В общую характеристику «Объединить на одной карточке» — obedinit_na_odnoy_kartochke — записывается полное название аромата.
- В общую характеристику «Название модели» — nazvanie_modeli — также записывается полное название товара.
- Отдельным плагином реализована генерация уникальных сочетаний букв и цифр для каждого артикула, без совпадения с другими вариантами.
Массовое изменение нулевых цен
В пользовательский плагин добавлена возможность выбрать категорию или список и заменить нулевую цену всех входящих артикулов на указанную заказчиком сумму, например 1000 рублей.
Предварительно проверенный плагин редактирования цен не подошёл под эту логику, поэтому функцию добавили в уже разработанный инструмент.
Для дальнейшего развития поставлена задача отмены последней массовой операции, чтобы возвращать предыдущие значения при ошибке редактирования. Выполнение механизма отката отдельно не подтверждено.
Корзина, оформление заказа и доставка
Работа корзины
- Правки внешнего вида корзины и связанных товарных блоков.
- Исправление обновления интерфейса после очистки: покупателю не требуется перезагружать страницу, чтобы увидеть пустую корзину.
- Проверка добавления товара после выбора артикула.
- Исправление некорректного отображения сравнения товаров.
- Согласование диапазонов цен в сравнении с основной витриной.
Ранний сбой добавления в корзину при повторной проверке уже не воспроизводился. Отдельно разбиралась ситуация, когда оформление заказа для Москвы работало на тестовой витрине, но не работало на основной.
Несколько сохранённых адресов покупателя были проверены отдельно: это стандартная адресная книга Webasyst, которая сохраняет ранее введённые адреса.
Способы доставки и связанные условия оплаты
- Исправлен выбор доставки PickPoint при оформлении заказа.
- Исправлен выбор СДЭК для заказов в Москве.
- Исправлено сочетание «Почта, наложенный платёж» с оплатой наличными.
- Настроен самовывоз.
- Настроено выполнение фонового задания для доставки через cron.
- Информация о доставке вынесена в отдельное окно карточки товара.
Оплата через «Долями»
В декабре 2025 года исправлен сценарий, при котором заказ оформлялся и покупатель попадал только на страницу успешного создания заказа. Требовалось восстановить переход в сервис «Долями» для продолжения оплаты. Эта задача отмечена как выполненная.
Последующая задача перехода к оплате
В записи от 30 марта 2026 года поставлена новая задача: после оформления заказа и нажатия «Оплатить» страница долго загружается и не открывает платёжный сервис. Завершение этой задачи в журнале не зафиксировано. Её статус следует учитывать отдельно от ранее исправленного перехода в «Долями».
Рекламные выгрузки, аналитика и маркетплейсы
Фид для Яндекс.Директа
Подготовлен товарный фид по требованиям, указанным для рекламных выгрузок Яндекса. В задаче были предусмотрены:
- Формирование нового файла при обновлении цен.
- Повторное формирование при изменении валютных курсов.
- Доступность файла по ссылке для загрузки рекламной системой.
- Инструкция для специалистов, работающих с рекламой.
Дополнительно заказчик предложил управление составом фида из административной панели: включение или отключение отдельной позиции и категории, а также выбор исходного режима «всё включено» или «всё выключено». Завершение именно этой надстройки отдельно не отмечено.
Яндекс.Метрика
Установлен код Яндекс.Метрики. Для поиска и редактирования кода определён отдельный блок yandex_metrika.
Перенос плагинов
При подготовке новой витрины перенесён и проверен набор расширений:
- «Лёгкая накладная».
- SEO-оптимизация.
- Яндекс.Маркет.
- googlemc.
- «Выгрузка Avito XML / Avito Автозагрузка».
- feat sort.
- Facebook Pixel.
- Установка зачёркнутых цен для всей категории.
- Поиск дубликатов.
Ozon
Для плагина Ozon настроены семь cron-заданий, необходимых для его работы. Полная интеграция с площадкой запрашивалась отдельным пунктом и требовала подключения аккаунта; настройка фоновых заданий сама по себе не подтверждает завершение всех сценариев обмена с Ozon.
Расширение каталога
В дальнейшие задачи включён парсер карточек из категории парфюмерии Randewoo: позиции с годом выпуска от 2020 года до даты постановки задачи, полные характеристики и названия артикулов.
Сохранение исходных номеров артикулов не являлось обязательным: допускалось использовать существующие либо собственные номера. Отметка о выполнении парсера отсутствует.
Поддержка оптовой витрины opt-parfumoda.ru
Оптовое направление сопровождалось отдельно от розничного магазина. Его задачи охватывали загрузку прайс-листов, авторизацию, аналитику, курс валют и оформление шапки.
Прайс-листы и обновление данных
- Автоматизировано обновление оптовых прайсов с использованием файла, загружаемого по FTP.
- Разбиралась ошибка загрузки прайс-листа через плагин «Импорт прайса».
- Для проверки ошибки использовался конкретный файл заказчика; отдельная отметка о завершении исправления импорта отсутствует.
Авторизация и уведомления
- Подключён вход через Webasyst ID.
- Поставлена задача восстановления уведомлений о регистрации новых пользователей.
- Зафиксирована ошибка страницы персональных настроек оптовой витрины.
Валютный курс
В подвале отключено автоматическое обновление курса валют и настроен ручной ввод. Для изменения значения используется блок currencies.
Аналитика и шапка сайта
Установлен Google Tag Manager: соответствующие фрагменты размещены в head и в начале body.
Отдельно поставлены задачи размещения предоставленного виджета в шапке и добавления подписи «Отличные цены и условия для партнёров!» с оформлением по согласованному образцу. Завершение этих двух дополнений отдельно не отмечено.
Контакты, информационные страницы и самостоятельное редактирование
Контакты и навигация
- Перенесены реальные контакты и информация магазина вместо демонстрационного содержимого темы.
- Подготовлены пункты «О магазине», «Бренды», «Доставка и оплата», «Гарантия качества».
- Добавлены кнопки WhatsApp, Viber и Telegram.
- Для мобильной кнопки телефона реализован выбор из двух номеров с последующим набором.
- Два телефонных номера добавлены и выровнены в компьютерной версии.
- Заказчику определено место изменения телефонов в настройках темы.
- Мобильные блоки «Каталог» и «Информация» в подвале приведены к согласованному виду компьютерной версии.
Добавлен переход «Проложить маршрут». Позднее заказчик уточнил требование открывать приложение Яндекс.Карт вместо веб-версии; завершение этого уточнения отдельно не подтверждено.
Страницы магазина и новости
- Правки страниц «О магазине» и «Оптовикам», включая уменьшение логотипа в содержимом.
- Определение мест редактирования информационных страниц.
- Настройка оформления фотографий новостей по образцу темы.
- Для новостных изображений согласован размер не меньше 1200 × 680 пикселей, чтобы избежать нежелательной обрезки и искажения.
- Для редактирования новостей использовалось приложение «Блог».
- Блок новостей скрыт в мобильной и планшетной версиях.
Сертификаты и гарантия качества
В задание входил перенос сертификатов и связанных материалов со старой витрины. Позднее сведения требовалось упорядочить на странице гарантии качества и убрать дублирующую страницу сертификатов.
После первоначальной отметки о выполнении были зафиксированы повторные замечания: неполное раскрытие сертификатов, проблемы с декларациями на iPad и открытие только со второго раза. Окончательная приёмка этих исправлений отсутствует.
Плашка с режимом обработки заказов
На страницах магазина добавлена плашка «Заказы принимаются круглосуточно, обработка пн-пт».
- На смартфоне — частично прозрачная плашка, перемещающаяся вместе с меню.
- Возможность закрыть сообщение крестиком.
- Отдельное согласованное отображение на компьютере.
- Предусмотрено самостоятельное изменение текста при изменении режима работы.
Управляемые блоки и настройки
| Что изменяется | Где предусмотрено управление |
|---|---|
| Контактная информация и график магазина | Блок contacts и соответствующие настройки темы |
| Ручной валютный курс оптовой витрины | Блок currencies |
| Пояснения к уценке и пробникам-отливантам | Блок sku_info_modal |
| Код Яндекс.Метрики | Блок yandex_metrika |
| Описание отдельного бренда | Поле описания в настройках бренда |
| Неактуальные значения брендов | Настройки характеристики «Бренд» — brand |
| Информационные страницы | Редактор страниц витрины |
| Новости и их изображения | Приложение «Блог» |
Техническое сопровождение, обновления и серверные настройки
Сопровождение включало работу с окружением магазина, обновлениями платформы и плагинов, кэшированием, переносами витрины и совместимостью доработок.
- Перенос между основным доменом и тестовым поддоменом.
- На раннем этапе — переход с PHP 7.0 на PHP 7.2; позднее выполнялись дополнительные изменения версии PHP.
- Настройка серверного окружения FastCGI PHP и nginx.
- Устранение ошибки кэширования на хостинге, из-за которой изменения информации не отображались.
- Настройка cron для доставки и плагина Ozon.
- Исправление ошибки сайта после обновления платформы в августе 2025 года.
- Проверка связанного сбоя обновления данных из учётной системы после исправления сайта.
- Проверка масштаба браузера при изменении воспринимаемого размера интерфейса.
Указанные версии PHP относятся к историческим этапам проекта. Задача проверки первоначальной загрузки домена, для которой заказчик приводил время около двух секунд, также присутствовала в журнале; итоговый замер ускорения не зафиксирован.
Порядок обновления плагинов
Перед обновлениями требовалась резервная копия. На указанном в задании этапе из общего обновления исключался плагин «Артикулы с характеристиками в категориях, списках, поиске и карточке товара».
Отдельно разбирались предупреждения о необходимости покупки лицензий при ранее приобретённых расширениях и исчезновение изображения на главной странице. Эти пункты не имеют самостоятельной отметки о завершении.
Мобильное приложение и личный кабинет
Поставлена задача подключения магазина к приложению Shop-Script на iPhone: пользователь получал ошибку входа. Для диагностики запрашивалось уточнение ошибки; подтверждение успешного подключения отсутствует.
В последующих задачах также зафиксирован сбой страницы профиля розничного магазина. Его исправление отдельно не отмечено.
Последующие уточнения и развитие проекта
Parfumoda.ru развивался несколькими этапами. Принятые изменения дополнялись новыми требованиями, а после обновлений отдельные сценарии возвращались на проверку.
Среди дальнейших задач и повторных замечаний:
- Переход к оплате после оформления заказа — новая задача от 30 марта 2026 года.
- Корректное отображение «Нет в наличии» после обмена нулевыми ценами и остатками.
- Оформление результатов поиска на iPad, количество найденных товаров и отображение заголовка запроса.
- Третья строка мобильного названия товара и единый состав фильтров с параметром «Ноты».
- Карусель текущего бренда без лишних функций, со ссылкой только в названии.
- Работа раскрытия артикулов после последующих изменений и удаление повторно появившихся стандартных элементов.
- Корректный показ WebP и отсутствие лишних индикаторов загрузки.
- Полное раскрытие сертификатов и деклараций на iPad.
- Правило определения отливанта, приоритет совпадающих характеристик и отмена последней массовой операции.
- Подключение мобильного приложения, работа профиля и отдельные задачи оптового личного кабинета.
- Дополнительное управление рекламным фидом, развитие интеграции Ozon и расширение каталога.
В журнале часть этих пунктов имеет первоначальную отметку «Готово», после которой появились новые замечания. Поэтому завершение конкретного этапа и окончательная приёмка всех последующих уточнений учитываются раздельно.
Результаты подтверждённых этапов
Для Parfumoda.ru подготовлена и адаптирована витрина на Webasyst и Shop-Script с выбором отдельных вариантов парфюмерии, алфавитной навигацией по брендам, доработанными товарными списками и сценариями покупки на разных устройствах.
Выполнены отдельные этапы синхронизации с Ginger, экспорт новых позиций и автоматизация характеристик. Настроены доставка, рекламная выгрузка, аналитика и фоновые задания; исправлен переход в «Долями» на соответствующем этапе работ. Оптовая витрина получила обновление прайс-листов, вход через Webasyst ID, ручное управление курсом и Google Tag Manager.
Проект показывает объём сопровождения магазина парфюмерии: от оформления витрины и выбора объёма до согласования данных учёта, массовой обработки артикулов и поддержки заказа после обновлений платформы.
Нужна разработка или доработка магазина на Shop-Script?
Quadro-Design помогает адаптировать Webasyst и Shop-Script под ассортимент и процессы магазина: доработать тему и плагины, настроить обмен с учётной системой, автоматизировать обработку каталога и исправить ошибки оформления заказа.
Программирование для Webasyst и Shop-Script · Другие проекты по доработке интернет-магазинов
