Адаптация существующих модулей и тем под CS-Cart 4.19.1¶
Изменения в ядре¶
- Добавлена новая тема “Nova”. Она включена по умолчанию в новых установках и сейчас является дочерней темой от “Responsive”.
- Пакеты
fzaninotto/faker
иtwig/extensions
больше не используются. - Минимальная требуемая версия PHP обновлена до 7.4.
- Smarty обновлён с версии v4.3.0.2 до v5.4.1
- Чтобы адаптировать свои модули и темы, используйте руководство по миграции с v4 на v5 https://github.com/smarty-php/smarty/blob/v5.4.1/docs/upgrading.md
- Плагины ядра Smarty: блоки и функции были перемещены из
app/functions/smarty_plugins/
в\Tygh\SmartyEngine\Extensions\TyghExtension
. - Чтобы использовать собственные плагины Smarty, напишите собственное расширение Smarty и добавьте его с помощью метода
\Tygh\SmartyEngine\Core::addExtension(ExtensionInterface $extension)
. Пример в модулеcall_requests
. - Чтобы использовать собственные элементы блока “component”, добавьте к ним путь с помощью метода
\Tygh\SmartyEngine\Core::addComponentDir(string $dir)
.
- Пакет
symfony/lock
обновлён до версии 5.4.21.- Так как в основной библиотеке изменилась структура интерфейсов для хранилищ (Stores), то интерфейс
StoreInterface
тоже изменился. В нём теперь отсутствует методwaitAndSave()
. Если ваше хранилище (Store) использовало этот метод, реализуйте дополнительно в хранилище (Store) интерфейсBlockingStoreInterface
. - Если ваш магазин использовал метод
waitAndSave()
, для продолжения его работы в новой версии заменитеclass YourStore implements StoreInterface
наclass YourStore implements StoreInterface, BlockingStoreInterface
.
- Так как в основной библиотеке изменилась структура интерфейсов для хранилищ (Stores), то интерфейс
Удалённые функции¶
\Tygh\SmartyEngine\Core::__($var, $params = array())
Устаревшие функции¶
\Tygh\SmartyEngine\Core::loadPlugin()
\Tygh\SmartyEngine\Core::setPluginsDir()
\Tygh\SmartyEngine\Core::registerFilter()
Изменённые функции¶
// Было:
function fn_attach_image_pairs($name, $object_type, $object_id = 0, $lang_code = CART_LANGUAGE, array $object_ids = [])
// Стало:
function fn_attach_image_pairs($name, $object_type, $object_id = 0, $lang_code = CART_LANGUAGE, array $object_ids = [], $allowed_file_size_bytes = null)
Новые функции¶
\Tygh\SmartyEngine\Core::addComponentDir(string $dir)
\Tygh\SmartyEngine\Core::getComponentDirs()
Новые хуки¶
Выполняется после проверки прав на изменение категории. Позволяет изменять параметры проверки:
fn_set_hook('is_category_update_allowed_pre', $category_data, $category_id, $lang_code, $auth, $result);
Выполняется после проверки прав на изменение категории. Позволяет изменять результаты проверки:
fn_set_hook('is_category_update_allowed_post', $category_data, $category_id, $lang_code, $auth, $result);
Выполняется после получения данных выбранного способа оплаты. Позволяет ограничить размещение заказа:
fn_set_hook('allow_place_order_check_payment', $cart, $auth, $parent_order_id, $payment_method_data, $total, $result);
Выполняется после загрузки данных для платёжных кнопок. Позволяет изменить данные в запросе:
fn_set_hook('stripe_data_loader_load_payment_request_data_post', $payment_buttons, $product_id, $product_options, $user_data, $shipping_id, $cart, $product, $shippings);
Выполняется перед правилами, ограничивающими доступ к обновлению магазина или ПВЗ. Позволяет изменить текущий результат или параметры перед применением правил:
fn_set_hook('check_store_location_update_allowed_pre', $store_location_id, $result);
Выполняется после правил, ограничивающих доступ к обновлению магазина или ПВЗ. Позволяет изменить результат:
fn_set_hook('check_store_location_update_allowed_post', $store_location_id, $result);
Выполняется перед правилами, ограничивающими доступ к обновлению отгрузки. Позволяет изменить текущий результат или параметры перед применением правил:
fn_set_hook('check_shipment_update_allowed_pre', $shipment_id, $result);
Выполняется после правил, ограничивающих доступ к обновлению отгрузки. Позволяет изменить результат:
fn_set_hook('check_shipment_update_allowed_post', $shipment_id, $result);
Выполняется перед правилами, ограничивающими доступ к обновлению комплекта товаров. Позволяет изменить текущий результат или параметры перед применением правил:
fn_set_hook('check_product_bundle_update_allowed_pre', $bundle_id, $result);
Выполняется после правил, ограничивающих доступ к обновлению комплекта товаров. Позволяет изменить результат:
fn_set_hook('check_product_bundle_update_allowed_post', $bundle_id, $result);
Изменения в модулях¶
Платежи через Stripe Connect¶
Настройка Комиссия включает удалена. Раньше она позволяла включить в комиссию с заказа долги продавцов. Это поведение было непрозрачным, могло приводить к проблемам и отличалось от поведения других способов оплаты со сплитованием. Поэтому теперь модуль “Платежи через Stripe Connect” берёт с заказа продавца только сумму комиссии за этот заказ. Для работы с долгами мы рекомендуем использовать модуль “Оплата от продавцов администратору”.
Удалённые функции:
\Tygh\Addons\StripeConnect\PayoutsManager::acceptPayouts()
\Tygh\Addons\StripeConnect\PayoutsManager::getPendingPayouts()
\Tygh\Addons\StripeConnect\PayoutsManager::getPendingPayoutsFee()