Git Product home page Git Product logo

alexandrezaytsev / bitrix24_app_webhook_catalog_currency_etc Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 507 KB

B24 first steps for beginners Несколько примеров приложений и вебхуков для первого шага в Bitrix24. Просмотр структуры данных. Обновление курсов валют. Обработка каталога. Обработка ЯндексФорм и т.д.

License: MIT License

JavaScript 30.39% PHP 6.33% Hack 4.19% CSS 59.09%
js php7 b24 html-css-javascript rest-api application currency-rates webhook b24-catalog-sku yandex-form async bitrix24 fetch

bitrix24_app_webhook_catalog_currency_etc's Introduction

Bitrix24_app_webhook_catalog_currency_etc

первые шаги для начинающих Б24 облако,
рабочий проект,
несколько примеров...

(здесь просто как чекпоинт) полностью автономное решение, пути править не нужно, код собирался через Composer и так вручную кусками, не важно - разобраться можно)) по качеству моего кода не смотрим (не специалист), по организации структуры тоже - работает и ладно...

как настроить (получить токен) вебхук или приложение в б24 писать не буду - все просто

в проекте использованы обертки

в качестве фреймворка для вебморд

все приложения как одностраничные сайты header+body+footer (для iframe B24) в стиле CMS Битрикс (все три блока собираются в файле index.php) просто так удобнее мне

поехали!

  1. берем всю структуру проекта бросаем на свой хост (https)...
  2. в Б24 настраиваем один (или несколько) входящий вебхук с полными правами на все про все (все сущности) с целью получить токен - через него будем записывать в Б24
  3. прописываем токен в с доменом вот сюда /b24/bitrix24/settings.php
  4. создаем несколько приложений с полными правами и указваем в них обработчики php ... здесь например для пары приложений 1

  • большие проблемы с кешированием в браузерах особенно для 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 с отладчиком - но в примерах мало конкретики, мало текста, есть неточности в примерах и т.д... - проще было пощупать своими руками) request

  • практически все запросы идут без параметров, но есть несколько фильтров или поиск по id если хотите
  • некоторые запросы возвращают ошибки особенно по инфоблокам т.к. требуют настройки параметров и возвращают не просто массивы данных в чистом виде а массивы внутри именованных объектов... (здесь не обрабатываю просто показываю ошибку) писать что то универсальное небыло смысла - поэтому это чисто информационное приложение чтобы понять - что же там внутри этого Б24
  • выбор типа запроса до 50 значений (one) или более (list) к тому или иному типу запросов - по документации
  • выбор результата промис (одним массивом) или генератор ну и т.д. getInfo форматирование ответа (что показываем на экране) лежит здесь /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 не блокируется) catalog


вебхук обработки YandexForm для Б24 (PHP)

  • построено на обертке @bitrix/crest
  • путь /b24/bitrix24/webhooks/yandexForm/index.php

тут все просто настраиваете Yandex форму с параметрами указываете в блоке интеграции обработчик и именные параметры для POST которые разбираете и пишите в Б24 создавая сущность ЛИД yForm


PS интеграторы Б24 - я вас очень прошу - не наглейте с ценами своими за всю эту ерунду, даже 1С ведут себя скромнее!!! бесплатно - работайте - БЕСПЛАТНО а не за 3тр в час! - в жизни и без вас много проблем))

bitrix24_app_webhook_catalog_currency_etc's People

Contributors

alexandrezaytsev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.