Universal CDN

Универсальный CDN модуль

Универсальный CDN модуль

Модуль переводит загрузку статики магазина — изображений, CSS- и JS-файлов — на отдельный CDN-домен. Страницы витрины по-прежнему собирает ваш сервер, а картинки, стили и скрипты покупатель получает с ближайшего к нему узла сети доставки контента.

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

Как работает модуль. Он не загружает файлы никуда: модуль переписывает в готовой HTML-странице витрины адреса статики с домена магазина на домен CDN. Сеть доставки контента, в свою очередь, при первом обращении забирает файл с вашего сервера и дальше отдаёт его из своего кеша. Поэтому модуль работает с любым CDN-сервисом, который умеет проксировать исходный сервер: Cloudflare, Yandex Cloud CDN, NGENIX, CDNvideo, Selectel, BunnyCDN, KeyCDN и другими.

Настроек пять: адрес CDN-сервера и три независимых переключателя — изображения, CSS, JS, а на Multi-Vendor ещё и загрузка статики панели продавца через CDN. Они задаются на странице Модули → Модули CS-Commerce → Универсальный CDN модуль. На CS-Cart Ultimate и Multi-Vendor Ultimate настройки ведутся отдельно для каждой витрины.

Панель администратора модуль не трогает: адреса в ней остаются прежними. Даже если CDN-домен настроен неверно и витрина осталась без стилей, панель открывается как обычно — достаточно зайти в неё и исправить адрес или отключить модуль.
Совместимость

Модуль совместим со всей веткой CS-Cart 4.x и поддерживает редакции CS-Cart, CS-Cart Ultimate, Multi-Vendor, Multi-Vendor Plus и Multi-Vendor Ultimate. На CS-Cart Ultimate и Multi-Vendor Ultimate настройки ведутся отдельно по витринам; на панель продавца в Multi-Vendor модуль распространяется отдельной настройкой.

Модуль подменяет корневой шаблон index.tpl темы Responsive и тем, построенных на её основе, и обрабатывает уже собранную страницу целиком. Поэтому он не зависит от того, какими блоками и хуками пользуется тема: любой абсолютный адрес статики на странице витрины будет переписан. Если ваша тема не наследует Responsive, обратитесь в наш центр поддержки.

Модуль работает с любым CDN-сервисом, который умеет забирать файлы с исходного сервера по запросу (режим origin pull, обратный прокси). Сервисы, требующие предварительной загрузки файлов в своё хранилище, модулем не поддерживаются — он ничего не загружает.

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

Установка модуля

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

  1. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями" или по ссылке, отправленной по e-mail.
  2. Пройдите в раздел Модули → Управление модулями и в меню шестерёнки выберите Ручная установка.
  3. Выберите ранее скачанный файл и завершите установку модуля.

На этом установка модуля завершена. Для перехода на страницу настроек модуля выберите установленный модуль в разделе Модули → Модули CS-Commerce

Управление модулем

Все настройки модуля собраны на одной странице: Модули → Модули CS-Commerce → Универсальный CDN модуль, вкладка Настройки CDN. Та же страница открывается по кнопке настроек модуля в списке Модули → Управление модулями.

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

Порядок подключения такой:

  1. Настроить CDN-сервис так, чтобы CDN-домен проксировал ваш магазин, — см. раздел Подготовка CDN-сервиса.
  2. Убедиться, что по CDN-домену открываются файлы магазина: например, картинка товара по адресу вида https://cdn.example.com/images/detailed/0/….
  3. Вписать CDN-домен в настройки модуля, включить нужные переключатели и нажать Сохранить.
  4. Открыть витрину и проверить в исходном коде страницы, что адреса статики ведут на CDN-домен.
Если ввести неверный адрес CDN или адрес ещё не готов, витрина перестанет показывать изображения, стили и скрипты. В этом случае войдите в панель администратора, отключите модуль, затем введите правильный адрес или дождитесь готовности CDN и включите модуль снова.

Панель администратора при этом остаётся рабочей: модуль не переписывает адреса в ней (см. раздел Что и где переписывает модуль).

Основные настройки модуля

URL CDN-сервера

Домен, с которого CDN отдаёт файлы вашего магазина, например cdn.example.com. Протокол указывать не нужно: модуль отбрасывает http:// и https://, если они введены, и подставляет протокол текущего запроса — на витрине, открытой по HTTPS, адреса статики тоже будут вести на https://. Поэтому у CDN-домена должен быть действующий сертификат, если магазин работает по HTTPS.

Пока поле пустое, модуль ничего не переписывает, даже если он включён.

Загружать изображения через CDN

Переводит на CDN-домен всё, что лежит в каталоге images/ магазина: изображения товаров, категорий, баннеров, логотипы, иконки платёжных систем и другие загруженные через панель администратора файлы. Учитываются и картинки, которые витрина подгружает по AJAX — например, при переключении вариаций товара или в результатах живого поиска.

Загружать CSS-файлы через CDN

Переводит на CDN-домен собранные стили темы из var/cache/misc/assets/design/ и весь каталог design/ — вместе со стилями через CDN уходят файлы темы, на которые они ссылаются: шрифты, фоновые изображения, иконки. См. замечание о шрифтах в разделе Подготовка CDN-сервиса.

Загружать JS-файлы через CDN

Переводит на CDN-домен собранные скрипты из var/cache/misc/assets/js/. Встроенные в страницу скрипты и скрипты со сторонних доменов (счётчики, виджеты) модуль не затрагивает.

Загружать статику через CDN на панели поставщика

Только на Multi-Vendor. По умолчанию выключено. Когда включено, адреса статики переписываются и в панели продавца — по тем же правилам и с теми же переключателями, что на витрине. Панель администратора магазина (аккаунт администратора, а не продавца) модуль не затрагивает ни при каком значении настройки.

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

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

Что и где переписывает модуль

Модуль вмешивается на последнем шаге сборки страницы: когда шаблон витрины уже отрисован, он проходит по готовому HTML и заменяет адреса статики. Заменяется строго начало адреса — текущий адрес магазина плюс путь к каталогу статики — на CDN-домен с тем же путём:

  • https://shop.example.com/images/https://cdn.example.com/images/ — при включённых изображениях;
  • https://shop.example.com/var/cache/misc/assets/design/ и https://shop.example.com/design/ → те же пути на CDN-домене — при включённых CSS;
  • https://shop.example.com/var/cache/misc/assets/js/ → тот же путь на CDN-домене — при включённых JS.

Из этого следует несколько практических правил.

Переписываются только абсолютные адреса магазина

Адрес должен начинаться с текущего адреса магазина — того, по которому открыта витрина. Относительные ссылки (/images/… без домена), ссылки на другие домены и ссылки на статику, лежащую вне перечисленных каталогов, остаются как есть. Абсолютные ссылки на images/ внутри описаний товаров и страниц, вставленных через редактор, переписываются наравне с остальными.

Где действует

  • витрина магазина — всегда, когда модуль включён и адрес CDN заполнен;
  • панель продавца на Multi-Vendor — только при включённой настройке Загружать статику через CDN на панели поставщика;
  • панель администратора магазина — никогда.

AJAX-ответы

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

Протокол

CDN-домен получает протокол текущего запроса: на HTTPS-витрине — https://, на HTTP — http://. Смешанного контента модуль не создаёт.

Кеширование

Модуль не управляет кешем CDN и не сбрасывает его. Если после замены файла на сервере CDN продолжает отдавать старую версию, очистите кеш соответствующего пути в панели CDN-сервиса. Собранные CS-Cart файлы стилей и скриптов при очистке кеша CS-Cart пересоздаются, и витрина начинает ссылаться на новые файлы, поэтому для них такая проблема обычно не возникает.

Подготовка CDN-сервиса

Модуль рассчитан на CDN в режиме проксирования исходного сервера (origin pull, reverse proxy): вы указываете сервису адрес магазина как источник, получаете CDN-домен, и при первом запросе любого файла сеть забирает его с вашего сервера по тому же пути. Ничего заранее загружать не нужно — каталоги images/, design/ и var/cache/misc/assets/ сервис прочитает сам.

Что должно быть готово до включения модуля

  • Источник. В CDN-сервисе создан ресурс с источником https://shop.example.com (адрес магазина, по которому открывается витрина). Файлы должны отдаваться с тем же путём, что и на сервере: https://cdn.example.com/images/logos/1/logo.png должен вернуть то же, что https://shop.example.com/images/logos/1/logo.png.
  • Домен и сертификат. CDN-домен (свой поддомен через CNAME или домен, выданный сервисом) отвечает по HTTPS с действующим сертификатом, если магазин работает по HTTPS. Модуль подставит протокол витрины автоматически, и браузер заблокирует файлы с недействительным сертификатом.
  • Шрифты. Веб-шрифты, загружаемые с другого домена, браузер принимает только с заголовком Access-Control-Allow-Origin. При включённой настройке Загружать CSS-файлы через CDN шрифты темы из каталога design/ уходят на CDN-домен, поэтому в настройках сервиса нужно включить CORS для шрифтов (или для всех файлов) — иначе иконки и шрифты темы не загрузятся.
  • Защита исходного сервера. Если перед магазином стоит защита от ботов или ограничение по IP, адреса CDN-сервиса должны быть разрешены — иначе сеть не сможет забрать файлы.

Проверка перед включением

Откройте в браузере любую картинку товара, заменив домен магазина на CDN-домен. Если картинка открылась — источник настроен верно, и можно вписывать адрес в модуль. Если сервис отвечает ошибкой, разберитесь с ним до включения модуля: после включения витрина останется без файлов, которые CDN не может отдать.

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

Настройки по витринам

Модуль хранит настройки в собственной таблице, отдельно от общих настроек модулей, и умеет вести их по витринам.

CS-Cart Ultimate и Multi-Vendor Ultimate

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

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

Раздельные настройки по витринам для Multi-Vendor Ultimate появились в версии 5.1.0. После обновления с более ранней версии проверьте настройки модуля для каждой витрины.

CS-Cart, Multi-Vendor и Multi-Vendor Plus

Набор настроек один на магазин, переключателя витрин на странице нет.

Панель продавца на Multi-Vendor

Продавцы настроек модуля не видят и изменить их не могут: страница настроек доступна только администратору магазина. Влияние модуля на панель продавца регулируется одной настройкой администратора — Загружать статику через CDN на панели поставщика.

Обновление модуля

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

Модуль поддерживает поставку обновлений через Центр обновлений CS-Cart. О выходе новых версий модуля вас оповестит встроенный Центр уведомлений Cart (колокольчик). Обновление модуля с помощью Центра обновлений позволит без потерь настроек данных модуля произвести переход на более новую версию модуля.

Непосредственно перед обновлением, крайне рекомендуется делать полный бэкап сайта (базы данных и файлов) вашего магазина средствами сервера или хостинга.

Обновление модуля через Центр обновлений:

  1. В верхнем меню пройдите в раздел Администрирование → Центр обновлений;
  2. В меню шестеренки нажмите "Проверить доступные обновления"
  3. Cреди списка доступных обновлений найдите нужное и нажмите кнопку Обновить;
  4. Следуйте всем инструкциям, которые будут показаны при процедуре обновления;
  5. Рекомендуется произвести очистку кэша CS-Cart после завершения устанвоки обновлений удалением папки var/cache на вашем сервере или добавлением в адресную строку параметра ctpl (прмиер: https://domain.com/admin.php?ctpl).

Переустановка модуля удалением:

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

Для полной переустановки модуля без сохранения данных выполните следующие шаги:

  1. Пройдите в раздел Модули → Управление модулями и найдите старый установленный модуль.
  2. Нажмите в меню шестеренки модуля кнопку удалить.
  3. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями".
  4. Пройдите в раздел Модули → Управление модулями и в меню шестеренки выберите Ручная установка.
  5. Выберите ранее скачанный файл и завершите установку модуля.

Техническая поддержка

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

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

  1. На нашем сайте центра поддержки https://helpdesk.cs-commerce.com/ авторизуйтесь под своей учетной записью;
  2. Нажмите на кнопку "Новая заявка";
  3. Заполните все необходимые поля и создайте заявку (Вы получите на e-mail письмо с подтверждением);
  4. Ожидайте ответ специалиста (на ваш e-mail придет уведомление об ответе на вашу заявку) в соответствии с регламентами работы службы техподдержки.

Если Вы не получили ответ в течении сроков, обозначенных в регламентах, напишите нам на e-mail [email protected] сообщение с темой заявки и мы постараемся решить вас вопрос в ближайшее время.

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

Ограничения и предупреждения

Рекомендуем ознакомиться с общими ограничениями:

  1. Фрагменты кода  или некоторые файлы модуля могут иметь закрытую (закодированную) часть. Закодированная часть не создает проблемы в доработке модуля;
  2. Модуль будет работать только на тех доменах, которые указаны в лицензии пользователя. При попытке использования решения на установках CS-Cart, домены которых не включены в лицензию, модуль будет автоматически выключен;
  3. Установка локально не допускается системой лицензирования. Чтобы модуль работал на дополнительном домене (псевдониме) укажите этот псевдоним на странице управления лицензиями. На один домен допускается указать до трех псевдонимов для нужд тестирования и разработки.
  4. Главный домен лицензии вы можете менять самостоятельно на странице управления лицензиями. 
Для доступа к изменению/добавлению доменов и псевдонимов лицензии, подписка на обновления должна быть активной. Для изменения домена лицензии с истекшим периодом подписки, сначала необходимо продлить подписку на обновления. 

 

История версий

Версия 5.2.0 от 10 марта 2026 года

  • Добавлена совместимость с PHP 8.3.
  • Добавлены переводы на русский язык.
  • Базовые обновления безопасности модуля.

Версия 5.1.1 от 12 сентября 2024 года

  • Базовые обновления безопасности модуля.

Версия 5.1.0 от 27 сентября 2023 года

  • Добавлены раздельные настройки по витринам для магазинов на Multi-Vendor Ultimate. После установки обновления проверьте настройки модуля по витринам.

Версия 5.0.0 от 25 июля 2023 года

  • Добавлена возможность отдавать статику через CDN в панели продавца в редакции Multi-Vendor.
  • Базовые обновления безопасности модуля.

Версия 4.3.1 от 3 октября 2022 года

  • Добавлена совместимость с PHP 8.0.

Версия 4.3 от 18 июля 2022 года

  • Базовые обновления безопасности.

Версия 4.2 от 13 мая 2022 года

  • Базовое обновление для лучшей совместимости с последними версиями CS-Cart.

Версия 4.1 от 12 января 2022 года

  • Улучшено отображение модуля для последних версий CS-Cart.
  • Внесены улучшения в функции проверки лицензии модуля и поставки обновлений.

Версия 4.0 от 11 сентября 2020 года

  • Новое поколение модуля со встроенным центром обновлений.
  • Исправлено: при подгрузке страницы по AJAX изображения выводились без адреса CDN-сервера.

Версия 3.1.1 от 20 марта 2019 года

  • Модуль переработан полностью: через CDN теперь загружаются все ссылки на изображения, а не только те, что проходили через загрузчик изображений CS-Cart.

Версия 2.1 от 7 августа 2018 года

  • Добавлена совместимость с несколькими витринами.

Версия 2.0 от 22 июля 2016 года

  • Необязательное обновление.

Версия 1.0 от 13 мая 2016 года

  • Первый релиз модуля.