первые шаги для начинающих Б24 облако,
рабочий проект,
несколько примеров...
(здесь просто как чекпоинт) полностью автономное решение, пути править не нужно, код собирался через Composer и так вручную кусками, не важно - разобраться можно)) по качеству моего кода не смотрим (не специалист), по организации структуры тоже - работает и ладно...
как настроить (получить токен) вебхук или приложение в б24 писать не буду - все просто
в проекте использованы обертки
- @bitrix/crest - php от bitrix 24 https://github.com/
- Bitrix24 API PHP Wrapper bitrix-tools/crest - php от Andrey https://github.com/andrey-tech/bitrix24-api-php
- Bitrix24 JS-lib Wrapper - js от Andrey https://github.com/andrey-tech/bx24-wrapper-js
в качестве фреймворка для вебморд
- Uikit3 https://getuikit.com/ - просто он подходит для новичков ))
все приложения как одностраничные сайты header+body+footer (для iframe B24) в стиле CMS Битрикс (все три блока собираются в файле index.php) просто так удобнее мне
поехали!
- берем всю структуру проекта бросаем на свой хост (https)...
- в Б24 настраиваем один (или несколько) входящий вебхук с полными правами на все про все (все сущности) с целью получить токен - через него будем записывать в Б24
- прописываем токен в с доменом вот сюда /b24/bitrix24/settings.php
- создаем несколько приложений с полными правами и указваем в них обработчики php ... здесь например для пары приложений
- большие проблемы с кешированием в браузерах особенно для js
1 отладку делаем в режиме инкогнито, в дебагере отключаем кеш
2 в декстоп приложении чистим кеш https://helpdesk.bitrix24.ru/open/12389366/ просто стираем все каталоги cef*cache вот отсюда explorer.exe "%appdata%\Bitrix\Desktop\3.0" (у меня например 2 штуки)
иначе замучаетесь ошибки искать
приложение для просмотра текущей структуры БД Б24 (JS)
- построено на обертке Bitrix24 JS-lib Wrapper
- путь /b24/bitrix24/apps/getInfo/index.php
просто набор запросов из https://dev.1c-bitrix.ru/rest_help/ (в принципе можно использовать родное приложение Б24 Документация по REST API с отладчиком - но в примерах мало конкретики, мало текста, есть неточности в примерах и т.д... - проще было пощупать своими руками)
- практически все запросы идут без параметров, но есть несколько фильтров или поиск по id если хотите
- некоторые запросы возвращают ошибки особенно по инфоблокам т.к. требуют настройки параметров и возвращают не просто массивы данных в чистом виде а массивы внутри именованных объектов... (здесь не обрабатываю просто показываю ошибку) писать что то универсальное небыло смысла - поэтому это чисто информационное приложение чтобы понять - что же там внутри этого Б24
- выбор типа запроса до 50 значений (one) или более (list) к тому или иному типу запросов - по документации
- выбор результата промис (одним массивом) или генератор
ну и т.д.
форматирование ответа (что показываем на экране) лежит здесь /b24/bitrix24/apps/other_function.js
вебхук обновления курсов валют Б24 по ЦБ РФ (PHP)
- построено на обертке @bitrix/crest
- путь /b24/bitrix24/webhooks/currency/updateB24currency.php
вешаем на крон - дергаем раз в сутки ночью (можно запускать самостоятельно).
Результат - обновленные курсы в Б24 + автоматически пересчитанные валютные цены товаров (средствами Б24)
(текущие курсы сохраняет в промежуточном файле здесь /b24/bitrix24/webhooks/currency/daily.xml обновляя его по необходимости)
приложение обновления каталога товаров Б24 (JS+PHP)
- построено на обертке Bitrix24 API PHP Wrapper bitrix-tools/crest и Bitrix24 JS-lib Wrapper для веб морды
- путь /b24/bitrix24/apps/catalog1C/index.php
работает с ИНФОБЛОКАМИ т.е. товары отдельно - цены отдельно т.к. модуль CRM (производная от инфоблоков имеет view каталог ПРОСТЫХ товаров с ценами и ничего не знает о торговых предложениях/вариациях)
работает в двух режимах как фронт и как бэк используя общий файл
/b24/bitrix24/apps/catalog1C/updateB24catalog.php
который тоже вешаем на крон после обновления валют
общий смысл бэка (поскольку у Б24 нет события окончания выгрузки каталога из 1С поэтому такой изврат, так бы на событин повесил)
- прочитать все товары и торговые предложения из целевых каталоГОВ (catalog.product.list, catalog.product.offer.list)
- прочитать все цены (у меня 6 видов расширенных цен) из расширенных цен выбрать самую свежую и записать ее в базовую (если цена в валюте - использовать конвертированное значение)(catalog.price.list)
- очистить все грязные наименования товаров пришедшие из 1С (их бэкофис3 все еше
кривойв разработке..., поэтому выгружаю все как характеристики которые приходят в Б24 как простые товары без вариаций имея в своем наименовании в одной строке и название родителя и название товара) - записать изменения батчем обратно в Б24
общий смысл фронта - посмотреть отдельно на то с чем работаем и также пакетно вызвать бэк передавая туда по 500 товаров через fetch (все вызовы бэка идут последовательно в асинхронном режиме, перекрытий нет Б24 не блокируется)
вебхук обработки YandexForm для Б24 (PHP)
- построено на обертке @bitrix/crest
- путь /b24/bitrix24/webhooks/yandexForm/index.php
тут все просто настраиваете Yandex форму с параметрами указываете в блоке интеграции обработчик и именные параметры для POST которые разбираете и пишите в Б24 создавая сущность ЛИД
PS интеграторы Б24 - я вас очень прошу - не наглейте с ценами своими за всю эту ерунду, даже 1С ведут себя скромнее!!! бесплатно - работайте - БЕСПЛАТНО а не за 3тр в час! - в жизни и без вас много проблем))