Пропись вручную бренда по xml-id при загрузке брендов товара из 1С, Штатная выгрузка зачастую сбоит с загрузкой брендов, следующий код находит бренды по xml_id и загружает 100% бренды в товары
Выгрузка контрагентов и менеджеров и адресов доставки из 1С Предприятие в Битрикс, Выгрузка Контрагентов и Менеджеров контрагента на сайт Битрикс БУС,
Наверняка вы хотели бы держать всех своих клиентов в единой системе 1С Предприятие, и работать с ними исключительно от туда
Выгрузка Контрагентов и Менеджеров контрагента на сайт - предоставляет вам такую возможность
Действует два режима выгрузки, полная автоматическая по расписанию и ручная частичная выборочно (например для срочной выгрузки нового контрагента или установки нового пароля)
Выгрузка юр.лиц происходит в так называемые "компании" на сайте b2b, которые являются как "профилями покупателя" (Выбираются при отгрузке).
При этом действует условие 1 e-mail -1 вход (контрагент) = Точек доставки, по числу ТочекДоставки из карточки контрагента в 1С.
По факту используется 1 вход = 1 компания т.к реквизиты получателя не меняются в зависимости от выбранной “компании”. т.е если у контрагента 4 магазина то будет создано 4 "компании" с разными адресами но одним и тем же юридическим лицом.
У каждого юр. лица должен быть свой адрес электронной почты.
Для заполнения данных контрагента во внешнюю обработку 1с добавлена функция РаботаСДаннымиКонтрагента, которая выгружает следующие данные:
E-mail и пароль контрагента для входа
Наименование контрагента
Юридический адрес контрагента
ИНН / КПП
Контактное лицо, тел. факс при наличии
А также персонального менеджера контрагента, который указывается на вкладке "Как покупатель - Менеджеры" в 1с на карточке контрагента.
Если какой-либо из менеджеров назначен основным, то он и будет выгружен, иначе будет выгружен первый выбранный в запросе менеджер.
Менеджеры в карточке контрагента - это справочник "Пользователи" в 1С Предприятие 10.3
К менеджерам в 1с привязан справочник "Физические лица", и телефоны указаны именно у физ. лиц.
Если физ.лица менеджера не указан телефон, то и в карточке на сайте b2b телефон будет отсутствовать.
телефоны и прочая контактная информация хранится в регистрах, и выбирается именно оттуда
по виду ("Телефон физ. лица служебный") и типу ("Телефон") контактной информации
Подробней описание возможностей модулей выгрузки:
Далее, для того, чтобы прикрепленный персональный менеджер отображался в личном кабинете пользователя на сайте, у пользователя на сайте должно быть создано специальное поле, в котором будет хранится ссылка на запись в инфоблоке "Служебные - Менеджеры".
Ответная часть на сайте создает (или обновляет) соответствующую запись в этом инфоблоке, и привязку к этой записи в карточке пользователя на сайте.
Выгрузка из 1С адресов доставки на сайт Битрикс
Также выгружаются на сайт и адреса доставки из карточки контрагента со вкладки "Точки доставки" (строка адреса, справочник ТочкиДоставки).
Ответная часть на сайте Битрикс принимает выгруженные данные и раскладывает их по соответствующим полям профиля покупателя ("Компании").
Здесь надо отметить, что для реализации этого функционала разбирается полностью штатный механизм оформления заказ на сайте, в частности создания/выбора/обновления профиля и его данных, не затрагивая ядро системы.
Выгрузка юр.лиц происходит в так называемое "компании" на сайте b2b, которые являются ни чем иным, как "профилями покупателя".
При этом действует условие 1 вход (контрагент) = несколько компаний, по числу ТочекДоставки из карточки контрагента в 1с.
т.е если у контрагента 4 магазина то будет создано 4 "компании".
Для заполнения данных контрагента во внешнюю обработку 1с добавлена функция РаботаСДаннымиКонтрагента, которая выгружает следующие данные:
E-mail и пароль контрагента для входа
Наименование контрагента
Юридический адрес контрагента
ИНН / КПП
Контактное лицо, тел. факс при наличии
А также персонального менеджера контрагента, который указывается на вкладке "Как покупатель - Менеджеры" в 1с на карточке контрагента.
Если какой-либо из менеджеров назначен основным, то он и будет выгружен, иначе будет выгружен первый выбранный в запросе менеджер.
Менеджеры в карточке контрагента - это справочник "Пользователи" в 1С Предприятие 10.3
К менеджерам в 1с привязан справочник "Физические лица", и телефоны указаны именно у физ. лиц.
Если физ.лица менеджера не указан телефон, то и в карточке на сайте b2b телефон будет отсутствовать.
телефоны и прочая контактная информация хранится в регистрах, и выбирается именно оттуда
по виду ("Телефон физ. лица служебный") и типу ("Телефон") контактной информации
Далее, для того, чтобы прикрепленный персональный менеджер отображался в личном кабинете пользователя на сайте b2b, у пользователя на сайте должно быть создано поле с кодом UF_PERSONAL_MANAGER (и только так), в котором будет хранится ссылка на запись в инфоблоке "Служебные - Менеджеры".
Ответная часть на сайте создает(или обновляет) соответствующую запись в этом инфоблоке, и привязку к этой записи в карточке пользователя на сайте.
После этого, также выгружаются адреса доставки из карточки контрагента со вкладки "Точки доставки" (строка адреса, справочник новаТочкиДоставки).
Ответная часть на сайте Битрикс принимает выгруженные данные и раскладывает их по соответствующим полям профиля покупателя ("Компании").
Здесь надо отметить, что для реализации этого функционала был разобран механизм оформления заказ на сайте, в частности создания/выбора/обновления профиля и его данных.
Частичная выгрузка для б2б - портала на Битрикс, На основе полной выгрузки мы сформировалы выгрузку частичную, когда вам требуется обновить только несколько конрагентов вашей базы
На форме из 1С Предприятие заполняется таблица из всех разрешенных к выгрузке контрагентов, нужные отмечаются галочкой.
Соответсвенно выгрузка формирует данные только по выбранным контрагентам:
Поиск правил корзины на сайте для выбранных контрагентов осуществляется по следующему алгоритму:
Если правило не существует, оно просто добавляется, и ему присваивается "Внешний Код" (XML_ID), состоящий из
УникальныйИндентификатор() (XML_ID) контрагента в 1С, ид пользователя на сайте, и отметки о том, к какому типу относится эта скидка:
товары, бренды или группы применения.
Таким образом полностью исключаются разночтения в выгрузках в сторону b2b портала как при полной выгрузке так и при частичной.
При последующих выгрузках этот XML_ID используется для однозначной идентификации правила.
Если правило существует, то осуществляется поиск по его XML_ID, и правило заменяется на выгруженное.
К примеру, для пользователя с ид 405 (ххх@yyyy.com) XML_ID правила будет выглядеть следующим образом:
e44a60cb-57c1-11ea-840f-e41f13bc544a-user405-nom - для товаров, e44a60cb-57c1-11ea-840f-e41f13bc544a-user405-brd - для брендов, e44a60cb-57c1-11ea-840f-e41f13bc544a-user405-grp - для групп применения
Таким образом, все остальные правила корзины, которые не попали в текущую выгрузку из 1С Предприятие, на сайте останутся нетронутыми.
b2b-портал Экспорт и Импорт товара по свойству код А так же поиск по коду в корзине, Экспорт и Импорт товара по свойству код А так же поиск по коду в корзине b2b-портала
1)Для того что бы делать экспорт в файл и импорт из файла необходимо в параметрах компонента корзины в поле "Код свойства для импорта и экспорта" поставить код свойства по которому необходимо делать экспорт и импорт в нашем случае это свойство Код ATT_KOD. см. скрин 1. Так же необходимо в языковых файлах компонента bitrix:sale.basket.basket поменять все наименования связанные со свойством на наименования необходимого нашего свойства
2)На странице с корзиной /personal/cart/index.php у компонентов b2bportal.catalog.search.article и b2bportal.basket.imports во входящих параметрах поменять значения входных параметров свойств на необходимое нам значение как показано на скриншоте 2. В языковых файлах данных компонентов так же изменить наименование свойств на необходимые нам
Очистка кэша на b2b - портале 1С Битрикс, При выгрузке и работе с б2б порталом зачастую возникает необходимость очистки кэш-а, данное решение очишает его через агентов сайта
По адресу /bitrix/php_interface/include/functions/ создать файл delCache.php и поместить в него следующий код:
Код
<?
function clean_expire_cache($path = "") {
if (!class_exists("CFileCacheCleaner")) {
require_once ($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/cache_files_cleaner.php");
}
$curentTime = mktime();
if (defined("BX_CRONTAB") && BX_CRONTAB === true) $endTime = time() + 5; //Если на кроне, то работаем 5 секунд
else $endTime = time() + 1; //Если на хитах, то не более секунды
//Работаем со всем кешем
$obCacheCleaner = new CFileCacheCleaner("all");
if (!$obCacheCleaner->InitPath($path)) {
//Произошла ошибка
return "clean_expire_cache();";
}
$obCacheCleaner->Start();
while ($file = $obCacheCleaner->GetNextFile()) {
if (is_string($file)) {
$date_expire = $obCacheCleaner->GetFileExpiration($file);
if ($date_expire) {
if ($date_expire < $curentTime) {
unlink($file);
}
}
if (time() >= $endTime) break;
}
}
if (is_string($file)) {
return "clean_expire_cache(\"" . $file . "\");";
}
else {
return "clean_expire_cache();";
}
}
далее подключить данный скрипт в init.php
if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/functions/delCache.php")) require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/functions/delCache.php");