1C Hook

Материал из PHPShop

Перейти к: навигация, поиск

1C Хук (1C Hook) - это PHP функция, которая перехватывает на себя выполнение заводских функций PHPShop API 1C синхронизации, дающая возможность "на лету" перехватывать данные и видоизменять их вывод, добавлять новые возможности, управлять настройками API.

Дизайн Хуки применимы только к функции 1С-Синронизации и к папке /1cManager/.

Содержание

Добавления произвольного поля в 1С-выгрузку

Для выгрузки дополнительной информации в интернет-магазин необходимо в режиме выгрузки товаров в запущенном 1С-обработчике перейти на вкладку "Дополнительные параметры" и добавить в таблицу определение выгружаемого значения, где:

  • "Наименование" - произвольное представление значения;
  • "Выражение" - произвольное выражение на языке 1С, по которому может быть вычислено значение.

Например, для заполнения на сайте значения "Старая цена" и при наличии в 1С типа цен "Маркетинговая" достаточно указать выражение как на скриншоте.

1C-hook.png

Позиционировании активации в функции

Хуки 1С синхронизации располагаются в папке 1cManager/hook/ Для быстрого включения/выключения хука нужно поставить знак решетки # перед в его имени, пример

  • #addfiles.php"; - выключен
  • addfiles.php; - включен

Пример 1С-хука

 
<?php
 
// Персонализация настроек
function mod_option($option) {
    $GLOBALS['option']['sort'] = 18;
}
 
 
// Персонализация обновления
function mod_update($CsvToArray, $class_name, $func_name) {
    if (!empty($CsvToArray[17])) {
        return "price_n='". $CsvToArray[17] . "', ";
    }
}
 
// Персонализация вставки
function mod_insert($CsvToArray, $class_name, $func_name) {
    if (!empty($CsvToArray[17])) {
        return "price_n='". $CsvToArray[17] . "', ";
    }
}
 
?>

Функции

  • mod_option() - функция, задающая общие параметры файла загрузчика номенклатуры. Строкой $GLOBALS['option']['sort'] = 18; мы переносим идентификатор колонки характеристики на одну вправо, используя 17 колонку под свои нужды. Структура транспортного CSV файла обмена четко упорядоченная и каждому столбцу относится тот или иной параметр в базе 1С (наименование, цена и т.д.). Начиная с 17 столбца идет динамическое указание характеристик без четких границ по длине. Этим и пользуется система 1С-хуков, сдвигая колонки характеристик вправо, освобождая колонки для учета дополнительных колонок в выгрузке.
  • mod_update() - функция, выполняющаяся для каждого товара (строки CSV) при обновлении его данных, это происходит когда товар найдет в БД магазина по артикулу.
  • mod_insert() - функция, выполняющаяся для каждого товара (строки CSV) при создании нового товара.

Аргументы функций

  • $CsvToArray - массив данных строки(товара), образованный при разборе строки на составляющие, разделенные ; По ключу массива можно получить доступ к любым данным. В нашем случаи $CsvToArray[17] будет иметь значение новой цены.
  • $class_name - имя перехваченного класса
  • $func_name - имя перехваченного метода

Возврат значений

Функции должны возвращать кусок SQL запроса на добавление/редактированние элемента. В нашем случаи, это строка

return "price_n='". $CsvToArray[17] . "', ";

добавляющая учет параметра price_n, отвечающего за старую цену в БД.

Реализации

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