Адаптация существующих модулей и тем под CS-Cart 4.14.2

Изменения в ядре

Новые классы

  1. \Tygh\Enum\CategoryLinkTypes — содержит все типы ссылок категорий.

Изменённые функции

  1. // Было:
    fn_exim_set_company($object_type, $object_key, $object_id, $company_name, &$processed_data = array())
    // Стало:
    fn_exim_set_company($object_type, $object_key, $object_id, $company_name, array &$processed_data = [], $check_runtime_company_id = true)
    
  2. // Было:
    fn_import_product_price($product_id, $price, $is_create, $store = '')
    // Стало:
    fn_import_product_price($product_id, $price, array $object, $is_create, $store = '')
    
  3. // Было:
    fn_exim_set_product_company($product_id, $company_name, &$processed_data)
    // Стало:
    fn_exim_set_product_company(array $object, $product_id, $company_name, array &$processed_data)
    
  4. // Было:
    fn_import_product_descr(array $data, $product_id, $field)
    // Стало:
    fn_import_product_descr(array $data, $product_id, $field, $is_new = false, array $object = [])
    
  5. // Было:
    fn_exim_set_product_categories($product_id, $link_type, array $categories_data, $category_delimiter, $store_name = '', array &$processed_data = [], $is_new = false)
    // Стало:
    fn_exim_set_product_categories($product_id, $link_type, array $categories_data, $category_delimiter, $store_name = '', array &$processed_data = [], $is_new = false, array $object = [])
    

Новые функции

  1. Проверяет, выполнятся ли значение true:

    \Tygh\Enum\YesNo::isTrue($val)
    
  2. Проверяет, выполнятся ли значение false:

    \Tygh\Enum\YesNo::isFalse($val)
    
  3. Подготавливает данные для импорта товаров, размещеннных на текущей витрине:

    fn_ult_import_prepare_products_shared_for_current_storefront(array &$import_data)
    
  4. Отфильтровывает поля импорта, запрещенные для общих товаров:

    fn_ult_import_filter_fields_for_shared_products(array &$object, array $pattern)
    
  5. Получает варианты опций товара:

    fn_get_product_option_variants(array $params, $items_per_page = 0, $lang_code = CART_LANGUAGE)
    
  6. Получает статусы тех продавцов, которые должны отображаться в магазине:

    fn_get_available_company_statuses()
    
  7. Проверяет, установлены ли цена и название товара. Если нет, устанавливает их равными 0 и пустому значению:

    fn_ult_import_check_product_data(array $primary_object_id, array &$object)
    

Изменения в хуках

Новые хуки

  1. Выполняется перед фильтрацией данных импорта, позволяет расширить массив разрешенных полей для общих товаров:

    fn_set_hook('ult_import_filter_fields_for_shared_products', $object, $pattern, $allowed_fields_for_shared_products);
    
  2. Выполняется до установки параметров, меняет параметры для получения вариантов опций товара:

    fn_set_hook('get_product_option_variants_pre', $params, $items_per_page, $lang_code);
    
  3. Выполняется перед SQL-запросом, меняет SQL-параметры для получения вариантов опций товара:

    fn_set_hook('smarty_component_configurable_page_field_before_output', $entity, $tab, $section, $field, $field_config, $params, $content, $template);
    
  4. Выполняется после получения статусов тех продавцов, которые должны отображаться в магазине Позволяет добавить другие статусы продавцов:

    fn_set_hook('smarty_component_configurable_page_section_before_output', $entity, $tab, $section, $section_config, $params, $content, $template);
    

Удалённые хуки

  1. Используйте хук get_product_option_variants_pre вместо хука:

    fn_set_hook('get_product_options_get_variants', $v_fields, $v_condition, $v_join, $v_sorting, $option_ids, $lang_code).