Добрий. Знайшов помилку в коді. ocFilter 4.8.2
Після імпорту товарів запускаю скрипт, згенерований безпосередньо модулем:
// OCFilter copy start
$this->load->controller('extension/module/ocfilter/copy', [
'copy_attribute' => 1, // Копировать атрибуты
'copy_group_as_attribute' => 0, // Группы атрибутов как фильтры
'copy_attribute_id_exclude' => 0, // Данные для копирования
'copy_attribute_group_id_exclude' => 1, // Данные для копирования
'copy_attribute_category_id_exclude' => 1, // Данные для копирования
'copy_filter' => 0, // Копировать стандартные фильтры
'copy_option' => 0, // Копировать опции товаров
'copy_option_in_stock' => 1, // Только в наличии
'copy_type' => 'checkbox', // Тип скопированных фильтров
'copy_dropdown' => 0, // Поместить в выпадающий список
'copy_status' => 1, // Статус скопированных фильтров
'copy_truncate' => 0, // Очистить существующие фильтры OCFilter
'copy_category' => 1, // Привязать фильтры к категориям
'copy_cron_wget' => 0, // Команда для вызова по cron (планировщик)
'copy_value_separator' => ['|'], //
'copy_attribute_id' => ['127', '15', '70', '52', '73', '125', '12', '49', '121', '39', '13', '54', '23', '18', '154', '45', '68', '107', '47', '37', '42', '1', '19', '38', '71', '40', '17', '155', '44', '53', '78', '109', '112'], //
'copy_attribute_group_id' => [], //
'copy_attribute_category_id' => [], //
]);
// OCFilter copy end
Но в ocfilter.log наступний текст:
2024-03-29 6:00:30 - [Attribute condition] WHERE attribute_id IN(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)
якщо ж копіювати фільтри безпосередньо в модулі, то все корректно:
2024-03-29 5:32:56 - [Attribute condition] WHERE attribute_id IN(127,15,70,52,73,125,12,49,121,39,13,54,23,18,154,45,68,107,47,37,42,1,19,38,71,40,17,155,44,53,78,109,112)
Помилка була в admin/model/extension/module/ocfilter/filter.php
Замість:
$attributes_id = array_filter(array_unique(array_keys($data['copy_attribute_id'])), 'intval');
прописав:
$attributes_id = array_filter(array_unique($data['copy_attribute_id']), 'intval');