4.5.2

Новая функциональность и улучшения

[+] Модули: Searchanise: Теперь у модуля есть собственная иконка, которая будет отображаться в списке модулей.

[+] Оформления заказа: Способы оплаты: Обсудить по телефону: Добавлено автозаполнение номера телефона. Номер берётся из раздела “Контактная информация”. Если там нет номера телефона, то он берётся из адреса доставки или адреса плательщика (в зависимости от того, что идёт первым при оформлении заказа).

[+] Хуки: Добавлены новые TPL-хуки в templates/views/orders/order_downloads.tpl и design/backend/templates/views/products/update.tpl.

[+] Хуки: Добавлены новые PHP-хуки в функциях fn_get_user_edp() и fn_generate_ekeys_for_edp() functions.

[+] Языки: Переводы: Добавлены переводы на греческий язык для некоторых блоков, регионов, промо-акций, пунктов меню, вкладок товаров, статусов доставки и заказов, а также налогов.

Изменения в существующей функциональности

[*] Модули: Email-маркетинг, Рассылки: Защита от CSRF теперь включена в контроллерах “em_subscribers.update” и “newsletters.add_subscriber”; это сделано, чтобы защитить форму подписки от ботов.

[*] Модули: Яндекс.Доставка: Добавлена возможность отключить запись HTTP-запросов в журнал, так как из-за этого могло медленно работать оформление заказа.

Исправления ошибок

[!] Модули: Google reCAPTCHA: Защита от ботов не работала при оформлении заказа как гость. Исправлено.

[!] Модули: Searchanise: Хиты продаж и товары со скидкой: Модуль Searchanise не работал с сортировкой по покупаемости и по размеру скидки. Исправлено.

[!] Модули: Вход через соцсети: HybridAuth: Не работал вход в учётную запись в магазине через Facebook, так как использовалась устаревшая версия Facebook API. Исправлено.

[!] Модули: Платежи через PayPal: PayPal Pro: Не обрабатывались IPN-сообщения для некоторых платежей. Исправлено.

[!] Модули: SEO: Производительность: При открытии страницы категории делалось большое количество запросов к базе данных. Исправлено.

[!] Модули: SEO: PHP 7.1: Модули “Хиты продаж и товары со скидкой” и “Отзывы и комментарии” неправильно расширяли схему “canonical_urls” модуля SEO; это приводило к критической ошибке на PHP 7.1. Исправлено.

[!] Модули: SEO: В ссылках на страницу бренда не использовалось SEO-имя этого бренда. Исправлено.

[!] Модули: CommerceML: Если у характеристики был тип “строка”, то значение характеристики “0” не импортировалось в CS-Cart. Исправлено.

[!] Модули: CommerceML: При использовании нескольких витрин неправильно импортировались цены для некоторых из них.

[!] Модули: YML экспорт: Даже если магазин работал по HTTPS, то адрес магазина в поле “url” выгружаемого YML-файла всё равно был с HTTP. Исправлено.

[!] Модули: YML экспорт: Если у товара была загружена только иконка, но не детальное изображение, то вместо ссылки на детальное изображение могла выгружаться ссылка на главную страницу магазина. Исправлено.

[!] Модули: Определение местоположения: После выбора города при первом посещении магазина этот город не был выбран автоматически на странице оформления заказа. Исправлено.

[!] Модули: Российские способы оплаты: Если базовой валютой был не рубль, то в счёте из способа оплаты “Выставить счёт” отображалась неправильная сумма. Исправлено.

[!] Модули: СДЭК: В СДЭК не передавались данные о стоимости товаров и наложенном платеже. Исправлено.

[!] Модули: СДЭК: Если единицей измерения веса в магазине был грамм, а у товаров не был указан вес, то не оформлялась отгрузка в СДЭК. Исправлено.

[!] Модули: Яндекс.Метрика: Модуль не работал, так как использовал старую версию API Яндекса. Исправлено.

[!] Ядро: Модули: Версия Service Pack считались более старой, чем версия, для которой Service Pack был выпущен. Например, третьесторонние модули, для которых была задана совместимость с CS-Cart 4.5.1 и более новыми версиями, не запускались на CS-Cart 4.5.1.SP1. Исправлено.

[!] Ядро: Модули: При удалении модуля могло выполняться большое количество дублирующих SQL-запросов на удаление языковых переменных. Исправлено.

[!] Ядро: База данных: Плейсхолдер ”?e” неправильно работал с массивами, у которых одним из ключей был 0. Исправлено.

[!] Ядро: PHP 7.1: База данных: При передаче строк в плейсхолдер “?i” в PHP 7.1 могли возникнуть ошибки и предупреждения. Исправлено.

[!] Ядро: PHP 7.1: Обращения к функциям “mcrypt_*” приводили к ошибкам и предупреждениям в PHP 7.1. Исправлено.

[!] Ядро: PHP 7.1: Механизм загрузки схем мог вызвать критическую ошибку в PHP 7.1. Исправлено.

[!] Дизайн: Оформление заказа: PayPal: Иконки способов оплаты PayPal были неправильно размещены на странице оформления заказа. Исправлено.

[!] Дизайн: Оформление заказа: Если оплата не требовалась, то поле для комментария на шаге оплаты отображалось неправильно. Исправлено.

[!] Дизайн: Длительное нажатие на ссылки не работало в браузере Safari на портативных устройствах. Исправлено.

[!] Дизайн: Родительские и дочерние темы: Перейти к витрине в режиме дизайна: Если редактировать шаблон, которого не было в дочерней теме, то изменения сохранялись в родительской теме. Исправлено.

[!] Дизайн: Товары: Шаблон “Большая картинка”: Нажатие на картинку бренда в шаблоне “Большая картинка” не открывало страницу бренда. Исправлено.

[!] Дизайн: Товары: Страница товара: Параметр ”maximum-scale=1.0” у мета-тега “viewport” был лишним, так как другие параметры уже задавали необходимый масштаб. Поэтому лишний параметр был удалён.

[!] Дизайн: Темы: При установке темы не устанавливались её логотипы. Исправлено.

[!] Дизайн: Центр обновлений: В описании обновления добавлялись лишние теги <br> между абзацами и элементами списка. Исправлено.

[!] Редактор документов: Опции товаров: Когда у товара была опция с типом “Файл”, в документах отсутствовала информация о файле. Исправлено.

[!] Редактор документов: Отгрузки: Переменная “o.tracking_number” всегда отображала только один номер отслеживания, даже если у товара было несколько отгрузок. Исправлено.

[!] Экспорт/Импорт: Заказы: Поля “Shipping: phone” и “Billing: phone” не отображались в списке полей, которые можно экспортировать. Исправлено.

[!] JS: Оформление заказа: Если при оформлении заказа использовать карту MasterCard, у которой номер начинается с 2, то валидатор номера карты не отображал логотип MasterCard. Исправлено; обновлена библиотека jquery.creditCardValidator.

[!] JS: Редакторы WYSIWYG: Способы доставки: При использовании редактора TinyMCE невозможно было протестировать расчёт тарифа в режиме реального времени. Исправлено.

[!] Заказы: Производительность: Если в магазине было много заказов с “user_id=0” (например, гостевых заказов), то SQL-запрос был некорректным. Исправлено.

[!] Заказы: Отчёты о продажах: Если в графе “Итого” был 0, отображалась ошибка PHP. Исправлено.

[!] Способы оплаты: AuthorizeNet.Aim: EvoSnap отклонял платежи, поскольку передавался двухзначный код страны вместо трёхзначного. Исправлено.

[!] Способы оплаты: QB Merchant Service: Данные о кредитных картах попадали в журнал. Исправлено.

[!] Товары: Поиск: Когда в поисковом запросе отсутствовал параметр “pname”, возникала ошибка SQL. Исправлено.

[!] Опции товаров: Иконки вариантов: При открытии страницы товара с определённой выбранной комбинацией опций по прямой ссылке (например, через поиск) иконки вариантов не отображались, пока покупатель не выбирал другую комбинацию опций. Исправлено.

[!] Сессия: Поддомен “www” всегда удалялся из домена в сессионной cookie; это могло привести к проблемам со входом в учетную запись при использовании безопасного соединения. Исправлено.

[!] Сессия: Redis: Содержимое корзины гостей хранилось недостаточно долго. Исправлено.

[!] {#6583} Дизайн: Макеты: Если одновременно редактировать одну страницу макета для разных макетов в разных вкладках браузера, то страница макета могла сохраниться не в том макете. Исправлено.

[!] {#6589} {#6654} Email-уведомления: Старый режим редактирования: В уведомлении о малом количестве товаров на складе отображалось неверное количество оставшихся товаров. Исправлено.

[!] {#6608} Способы оплаты: ESTpay: Процессор ESTpay не работал и был удалён.

[!] {#6638} Модули: Поставщики: Отгрузки: Поставщикам не должны были отправляться уведомления об изменении статуса отгрузки, но галочка “Уведомить поставщика” была доступна. Исправлено.

[!] {#6677} Ядро: Сессии: Сессии, в которых не совершалось никаких действий дольше, чем указано в константе SESSION_ONLINE, всё равно возвращались методом getOnline. Исправлено.

Сервис-паки

4.5.2.SP1

[!] JS: Оформление заказа: Не работал переход назад с шага “Выбор способа оплаты” на шаг “Выбор способа доставки”. Исправлено.

[!] JS: Управление заказами: Если для заказа был выбран способ оплаты “Кредитная карта”, то при попытке изменить способ оплаты у заказа в панели администратора не пропадал индикатор загрузки, пока пользователь не обновлял страницу вручную. Исправлено.

4.5.2.SP2

[!] Сессия: Авторизация: Если в домене магазина был “www”, то после обновления до версии 4.5.2 администраторы и пользователи не могли войти в учётные записи, пока не удаляли файлы cookie браузера или не использовали другой браузер. Исправлено.