PHPShop
  • 🟠PHPShoр: прибыльные магазины для малого бизнеса
  • С чего начать?
    • Быстрый старт
    • ✨Помощь AI
    • SEO возможности
    • Ведение склада
    • Pro модули
    • Виды скидок
    • Конфигурации
    • Цифровые товары
  • Установка, обновление
    • Установка на хостинг
    • Установка на компьютер
    • После покупки Лицензии
    • Техническая поддержка
    • Обновление PHPShop
    • 📦Коробочная версия
    • 🖥️Аренда на своем хостинге
    • ☁️Аренда в облаке
  • ⤵️Наполнение базы
    • Переезд и миграция
    • Импорт / Экспорт:
      • Excel
      • YML
      • RSS
      • CommerceML
      • Сторонние XML
      • Сторонние парсеры
        • Пример загрузки товаров с сайта Sima-land.ru
      • Парсер PriceLoader
    • Импорт по расписанию
    • Интерактивный .xls прайс с корзиной
    • Пакетная загрузка фото
    • Пакетное редактирование базы
    • Бекап и очистка базы
  • 🌟Синхронизация Pro
    • 🟠1С
      • Версии и конфигурации 1С
      • Встроенный типовой обмен CommerceML (для новых версий 1С)
      • Тестирование связи с 1С на демо-версии
      • Установка и активация внешнего обработчика 1С (для старых версий 1С)
      • Инструкции по внешнему обработчику 1С (для старых версий 1С)
      • Видео-уроки по внешнему обработчику 1С (для старых версий 1С)
      • Дополнительные обработчики (для старых версий 1С)
        • Редактор описаний в 1С
        • Импорт прайс-листов в 1С
        • Загрузка изображений в 1С
    • 🔵МойСклад
    • 🔵OZON
    • 🟣Wildberries
    • 🟢Мегамаркет
    • ⚫Яндекс.Маркет
    • 🟢Avito
    • 🔵Вконтакте
  • ⤴️Выгрузка товаров
    • Яндекс и Google
  • 📦Товары
    • Ручное добавление каталогов, товаров
    • Работа с изображениями
    • Характеристики, фильтры
    • Подтипы
    • Мультисклад
    • Витрины
    • Поиск
  • 📈Заказы
    • Работа с заказами
    • Способы оплаты
      • Наличная оплата
      • Счет в банк
      • Платежные системы
      • Скидки от вида оплаты
    • Настройка доставок
    • Telegram, VK, SMS, PUSH
    • Ценообразование
  • 🌟Бесплатные модули
    • 100+ бесплатных модулей:
    • ⭐Pro модули
    • Дизайн
      • Stiker - стикер
      • Кнопки
      • Count Cat
      • Filemanager
      • Пакетная обработка фото на сервере (Генератор превью картинок)
      • Mobile
      • Панорама 360°
      • Snow
    • SEO
      • SeoUrl
      • Seo Meta Новости
      • Карта сайта SiteMap
      • Карта сайта SiteMap Pro
    • Доставки
      • Почта России
      • Saferoute Widget
      • Boxberry Widget
      • Яндекс Доставка
      • CDEK Widget
      • Калькулятор доставки
      • Нова пошта
      • Бланки Почты России
      • Виджет доставок
    • Чаты и звонки
      • Cleversite
      • Мультиязычность Google Translate
      • Envybox
      • JivoSite
      • Pozvonim
      • Обратный звонок
      • Verbox
    • CRM
      • МойСклад
      • 📊Bitrix24
      • 📈retailCRM
      • 🔊Рекламные кампании
      • Unisender
    • Маркетплейсы
      • 🟣WB Partners
      • 🔵OZON Seller
      • ⚫Яндекс.Маркет
      • 🟢Мегамаркет
      • 🟢Авито
      • 🔵VK
      • Модуль Маркетплейсы: Яндекс.Маркет, СберМегаМаркет AliExpress, Google Merchant
    • Платежные системы
      • Банки
        • Альфа-банк
        • ВТБ
        • Банк Авангард
        • МодульБанк
        • Т-Банк
      • Кассы
        • Онлайн касса Атол
        • Печка54
        • CloudKassir
        • Robokassa
        • Модулькасса
      • Платежные системы агрегаторы
        • ЮKassa
        • ЮMoney
        • IntellectMoney
        • Mandarin
        • 2can&ibox
        • NovaPay
        • AcquiroPay
        • Idram
        • Assist
        • CloudPayments
        • Easypay
        • PayKeeper
        • Fondy
        • LiqPay
        • PayOnline
        • PayPal
        • Uniteller
      • Платежные шлюзы
        • PayAnyWay (Монета) платежный шлюз
        • PayMaster
        • Interkassa
        • Platron
        • Webmoney
        • Счет в банк
    • Кредитование
      • Купи в рассрочку Долями
      • Покупка в кредит от Alfabank Credit
      • Купить в кредит Почта Банк
      • Купи в кредит Т-Банк
    • Яндекс
      • Яндекс.Маркет
      • Яндекс.Карта
    • Продажи
      • Подарок - товар с 0₽ в корзине
      • Оптовые акции - скидки от количества товара в заказе
      • Хиты продаж
      • Свойства товаров
      • Комплектующие
      • Заказ в 1 клик
      • Sort Selection - сквозной фильтр на главной
      • Товар дня
      • Группы товаров - продажа комплектов
      • Промокоды
      • Услуги сборки, монтажа в карточке товара
      • Product Similar похожие товары по характеристикам
      • Product List похожие товары из каталога
      • Product Last View - просмотренные товары
      • Sort Brand - подборки по характеристикам
      • Sort Product - товары по характеристикам
      • Visual Cart - брошенные корзины
      • Партнерская программа
    • Разработчикам
      • Умный поиск
      • Adm Log
      • WebHooks
      • Form Generator
      • История заказов
      • GeoIP
      • Замок
      • Product Option
      • Debug
      • Задачи
      • Защитник файлов Guard
  • 👫Пользователи
    • Покупатели
    • Статусы и скидки
    • Бонусы
    • Авторизация и регистрация
  • 👤Администраторы
    • Администраторы
    • Восстановление пароля
    • Журнал авторизации
  • 🎯Маркетинг
    • Канбан доска
    • Промоакции
    • Почтовые рассылки
    • Баннеры и pop-up
  • 💻Веб-сайт
    • Страницы
    • Отзывы
    • Новости
    • Пиксель, счетчики
  • ⚒️Настройки
    • Основные настройки
    • Реквизиты
    • Обмен данными
    • SEO настройки
    • Валюты
    • Изображения
    • Витрины
    • Склады
    • Диалоги и чаты
    • Интеграция с сервисами
    • Быстродействие (кеширование)
    • Интеграция с Yandex Cloud
    • Локализация
    • Обслуживание
  • 🎨Дизайн
    • Настройка шаблона
    • HTML Верстальщику
    • 🔦Шпаргалка по шаблонам
  • 👨‍💻API
    • PHP API
    • JSON API
    • Создание модулей - правка API через файлы модулей
    • Создание хуков - правка API через функции
    • Создание дизайн-хуков - правка API через файлы дизайна
    • База дизайн-хуков
      • Характеристики и новости
      • Заказы и личный кабинет
      • Каталоги и прайс-лист
      • Поиск и товары
      • Корзина и элементы
    • Создание 1С-хуков
      • API синхронизации интернет-магазина с 1С
      • Изменение API синхронизации с 1С
  • EasyControl
    • Установка
    • PriceLoader
    • Monitor
    • Updater
Powered by GitBook
On this page
  • Добавления произвольного поля в 1С-выгрузку
  • Файл-приемщик 1С хука
  • Позиционировании активации в функции
  • Пример файла для выгрузки старой цены
  • Функции хука
  • Предустановленные хуки
  • База 1С-хуков
  • Выгрузка штрихкода из УТ 11
  • Выгрузка файлов товара

Was this helpful?

  1. API
  2. Создание 1С-хуков

Изменение API синхронизации с 1С

Last updated 2 years ago

Was this helpful?

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

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

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

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

  1. Наименование - произвольное представление значения;

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

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

1С Хуки доступны только для 1С версий 8.2 и 8.3.

Файл-приемщик 1С хука

На стороне сайта нужно создать файл-приемщик 1С хука, в котором закладывается PHP часть учета нового поля.

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

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

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

  • hook.php; - включен

Пример файла для выгрузки старой цены

<?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] . "', ";
    }
    
}

// Персонализация в конце выполнения
function mod_end_load($ReadCsv, $class_name, $func_name) {
    $_SESSION['result'] = true;
}

Функции хука

Список функций

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

  2. mod_update() - функция, выполняющаяся для каждого товара (строки CSV) при обновлении его данных, это происходит когда товар найдет в БД магазина по артикулу.

  3. mod_insert() - функция, выполняющаяся для каждого товара (строки CSV) при создании нового товара.

  4. mod_end_load() - функция, выполняющаяся в конце обработки всего файла.

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

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

  2. $class_name - имя перехваченного класса

  3. $func_name - имя перехваченного метода

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

Функции должны возвращать часть SQL запроса на добавление/редактирование элемента. В нашем случаи, это строка return "price_n='". $CsvToArray[17] . "', ";, добавляющая учет параметра price_n, отвечающего за старую цену товара.

Предустановленные хуки

В папке 1cManager/hook/ содержатся следующие хуки:

  1. addfiles.php - выгрузка прикрепленных к товарам файлов

  2. addoldprice.php - выгрузка старой цены

  3. json.php - выгрузка дополнительных полей товаров в формате JSON

  4. barcode.php - выгрузка штрихкода для модулей Ozon.Seller и Яндекс.Маркет

База 1С-хуков

Выгрузка штрихкода из УТ 11

Активируем модули Ozon.Seller и Яндекс.Маркет.

Выражение отбора для 1С

В настройках 1С УТ 11.3 обработчика в дополнительные параметрах добавляем поле с именем Штрихкод и следующем содержанием:

НоменклатураИХарактеристики=Новый ТаблицаЗначений;
НоменклатураИХарактеристики.Колонки.Добавить("Номенклатура", Метаданные.ОпределяемыеТипы.НоменклатураРаботаСНоменклатурой.Тип);
НоменклатураИХарактеристики.Колонки.Добавить("Характеристика", Метаданные.ОпределяемыеТипы.ХарактеристикаРаботаСНоменклатурой.Тип);
НоваяСтрока = НоменклатураИХарактеристики.Добавить();
НоваяСтрока.Номенклатура = Номенклатура;
НоваяСтрока.Характеристика = ХарактеристикаНоменклатуры;
ДанныеПоШтрихкодам = Новый ТаблицаЗначений;
РаботаСНоменклатуройПереопределяемый.ПолучитьШтрихкоды(НоменклатураИХарактеристики, ДанныеПоШтрихкодам);
Если ДанныеПоШтрихкодам.Количество()>0 Тогда
РезультатВыражения="";
Иначе
РезультатВыражения=ДанныеПоШтрихкодам[0].Штрихкод;
КонецЕсли;

В настройках 1С УТ 11.4 обработчика в дополнительные параметрах добавляем поле с именем Штрихкод и следующем содержанием:

НоменклатураИХарактеристики=Новый ТаблицаЗначений;
НоменклатураИХарактеристики.Колонки.Добавить("Номенклатура", Метаданные.ОпределяемыеТипы.НоменклатураРаботаСНоменклатурой.Тип);
НоменклатураИХарактеристики.Колонки.Добавить("Характеристика", Метаданные.ОпределяемыеТипы.ХарактеристикаРаботаСНоменклатурой.Тип);
НоваяСтрока = НоменклатураИХарактеристики.Добавить();
НоваяСтрока.Номенклатура = Номенклатура;
НоваяСтрока.Характеристика = ХарактеристикаНоменклатуры;
ДанныеПоШтрихкодам = Новый ТаблицаЗначений;
РаботаСНоменклатуройПереопределяемый.ПолучитьШтрихкоды(НоменклатураИХарактеристики, ДанныеПоШтрихкодам);
РезультатВыражения="";
Если ДанныеПоШтрихкодам.Количество()>0 Тогда
РезультатВыражения=ДанныеПоШтрихкодам[0].Штрихкод;
КонецЕсли;

Файл-приемщик на сайте

В папке 1cManager/hook/ следует переименовать файл #barcode.php в barcode.php

Выгрузка файлов товара

Если в 1С в товаре прикреплены дополнительные файлы (инструкции, сертификаты и т.д.), то можно их выгрузить на сайт и так же прикрепить к товару.

Настройка в 1С

Файл-приемщик на сайте

В папке 1cManager/hook/ следует переименовать файл #addfiles.php в addfiles.php

option.php - выгрузка дополнительных полей товаров для модуля

В настройках 1С обработчика в ставим галочку выгружать прочие присоединенные файлы.

👨‍💻
Product Option
основных настройках выгрузки товара