Добавляем в init.php Обработчик
|
1 |
AddEventHandler('main', 'OnUserTypeBuildList', array('CUserTypeSectionsHtmlField', 'GetUserTypeDescription'), 5000); |
Сайт использует технические и персональные данные пользователей для получения маркетинговой и статистической информации. Условия обработки персональных данных посетителей можно ознакомиться по ссылке.
В случае Вашего не согласия с этими условиями - просим Вас покинуть данный сайт. Если Вы продолжаете находиться и использовать сайт - Вы автоматически выражаете свое согласие с условиями обработки персональных данных пользователей сайта
Создание сайтов и интернет магазинов на битриксе
Добавляем в init.php Обработчик
|
1 |
AddEventHandler('main', 'OnUserTypeBuildList', array('CUserTypeSectionsHtmlField', 'GetUserTypeDescription'), 5000); |
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=3496
Подробнее
статьи
Подробнее
создание
|
1 2 |
symlink("/путь к первому сайту/bitrix", "/путь ко второму сайту/bitrix"); symlink("/путь к первому сайту/upload", "/путь ко второму сайту/upload"); |
удаление unlink() — правильный подход
фрагмент кода из моего проекта, чтобы удалить его, только если это символическая ссылка
|
1 2 3 4 5 6 7 |
if(file_exists($linkfile)) { if(is_link($linkfile)) { unlink($linkfile); } else { exit("$linkfile exists but not symbolic link\n"); } } |
readlink(), возвращает цель ссылки, вы можете запустить unlink на этом. Но убьете например всю папку битрикс
|
1 2 3 4 |
if(is_link($linkfile)) { $target = readlink($linkfile) unlink($target) } |
1. это логируем событие OnSuccessCatalogImport1C, что бы понять, на сколько много файликов к нам прилетело
|
1 2 3 4 5 6 |
AddEventHandler('catalog', 'OnSuccessCatalogImport1C', 'customCatalogImportStep'); function customCatalogImportStep($arParams, $arFields) { file_put_contents($_SERVER["DOCUMENT_ROOT"]."/1c_log.log", date("d-m-Y")."; SESSION=".print_r($_SESSION,1)."; request ".print_r($_REQUEST,1)." pararm".print_r($arParams,1)." arFields ".print_r($arFields,1).";\n", FILE_APPEND); } |
2. Добавлем в bitrix/php_interface/dbconn.php — константу, что бы файлики, которые из выгрузки пришли, сохранились в папке Upload. После тестовой выгрузки отключаем сразу . т.к нам не нужно захламлять сервер лишними xml.
|
1 |
//define("BX_CATALOG_IMPORT_1C_PRESERVE", true); |
3. Создаем тестовый файлик и в нем запускаем обработчик выгрузки. В него подсовываем путь к файлу на сервере.
Используемые свойства у меня ANALOGI_TEMP , ANALOGI, ANALOGI_FLAG
ANALOGI_FLAG- Это флаг, что товар пришел с 1с и его надо потом обновить в событии успеха выгрузки.
|
1 |
Provider::loadXml1c('путь к файлу с товаром/import___5edefae3-b2ec-4f6e-a524-b03fb56f9166 (1).xml'); |
Этим вы сможете обойтись без постоянного гоняния 1с. т.к обрабатываемый файлик лежит на сервере.
4. Пишем внутрянку для OnCompleteCatalogImport1C. Т.к у нас бывают в взаимосвязи между товарами- то мы обрабатываем их в последнюю очередь.
5. Тестируем в 1 с на полной выгрузке.
Ниже приведен полный код взаимодействия. С получением данных из xml.
Этот код вылавливает вот такую структуру их xml от 1с.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<Аналоги> <Аналог> <Ид>d5cae0f9-c568-11e0-aab1-90fba63445ee</Ид> <НомерВерсии>AAAAAAA6Kdg=50539</НомерВерсии> </Аналог> <Аналог> <Ид>1d9e4c8d-ebbe-11df-b3fd-90fba63445ee</Ид> <НомерВерсии>AAAAAABWOrY=50539</НомерВерсии> </Аналог> <Аналог> <Ид>177a58e2-40c1-11e1-9cef-90fba63445ee</Ид> <НомерВерсии>AAAAAAA5/UI=50539</НомерВерсии> </Аналог> </Аналоги> |
https://github.com/studiofact/wiki-bitrix/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81-%D0%BE%D0%B1%D0%BC%D0%B5%D0%BD%D0%B0-%E2%80%94-%D0%BE%D0%B1%D1%89%D0%B5%D0%B5-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5
Подробнее
Данный код устраняет проблему, что например символ Y и y для значени сброса кеша влияет на работу битрикса. Поэтому основной урл мы приводим к нижнему регистру. А все что после знака вопроса, мы оставляем как есть.
Вставить в init.php где нибудь вверху
https://www.sng-it.ru/blog/instruktsiya-po-nastroyke-kompozita.html
Подробнее
Если у элемента каталога есть несколько категорий, иногда надо найти все родительские. Можно воспользоваться этим скриптом. В нем проверяется свойства всех категорий . Текущей товара и всех которые стоят выше по уровню.+ если товар находится сразу в нескольких категориях.
Подробнее
Цены
1500 р/чБолее подробно тут: https://ftask.ru/цены