Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

События в Joomla

Сергей Стодольский Мастер (1194), закрыт 1 месяц назад
Есть магазин работающий на JoomlaShopping. Необходимо при создании/обновлении товара в магазине делать такие же манипуляции в Битрикс24. С битриксом проблем нет, а вот как поймать событие создания товара не пойму. Подскажите в каком направлении копать?
Лучший ответ
Татьяна Просветленный (32678) 1 месяц назад
Создание системного плагина для JoomlaShopping
Создайте структуру файлов плагина:
 /plugins/system/joomshoppingevents/ 
├── joomshoppingevents.php
├── joomshoppingevents.xml
└── helper.php
Файл joomshoppingevents.xml:
  

plg_system_joomshoppingevents
Your Name
2024-05-16
Your Company
GNU General Public License
1.0.0
Plugin to catch JoomShopping product events and send to Bitrix24

joomshoppingevents.php
helper.php


Файл joomshoppingevents.php:
 defined('_JEXEC') or die; 

class PlgSystemJoomShoppingEvents extends JPlugin
{
public function onAfterInitialise()
{
// Подключаем библиотеку JoomShopping
require_once(JPATH_SITE . '/components/com_jshopping/lib/factory.php');

// Подписываемся на события создания и обновления товаров
JLoader::register('plgSystemJoomShoppingEventsHelper', __DIR__ . '/helper.php');

// Отслеживаем события
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->register('onAfterSaveProduct', array('plgSystemJoomShoppingEventsHelper', 'onAfterSaveProduct'));
}
}
Файл helper.php:
 defined('_JEXEC') or die; 

class plgSystemJoomShoppingEventsHelper
{
public static function onAfterSaveProduct($product, $isNew)
{
// $product - объект товара
// $isNew - флаг, указывающий, является ли это создание нового товара или обновление существующего

// Пример данных для отправки в Bitrix24
$data = [
'id' => $product->product_id,
'name' => $product->name,
'price' => $product->product_price,
'isNew' => $isNew
];

// URL вебхука для Bitrix24
$webhookUrl = 'https://your_bitrix24_domain/rest/1/your_webhook_token/crm.product.add';

// Отправка данных в Bitrix24
self::sendDataToBitrix24($webhookUrl, $data);
}

private static function sendDataToBitrix24($url, $data)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
curl_close($ch);

// Логирование ответа (по желанию)
// error_log($response);
}
}

Установка плагина\
Упакуйте файлы плагина в ZIP-архив.

В админке Joomla перейдите в Расширения -> Менеджер расширений -> Установка и загрузите ZIP-архив с плагином.

После установки перейдите в Расширения -> Плагины, найдите плагин System - JoomShoppingEvents и включите его.
Сергей СтодольскийМастер (1194) 1 месяц назад
Вот спасибос!!!! )))
Остальные ответы
Егор Боков Знаток (273) 1 месяц назад
Главное не под себя
Сергей СтодольскийМастер (1194) 1 месяц назад
Иди делай под себя, а не здесь. Нехрен себе очки зарабатывать тупыми ответами!
Celtic Hammer Мудрец (13760) 1 месяц назад
Джумла это зло... Вон даже В. М. Гуровиц ее гневно перечеркнул на доске. Мол, низя... Бяка!
Сергей СтодольскийМастер (1194) 1 месяц назад
К сожалению нет выбора, приходится копаться и в таком гэ... Попросили сделать интеграцию, но я с джумлой в последний раз сталкивался лет 10 назад...
Похожие вопросы