B sale fuser очистка
B sale fuser очистка
Не менее интересный случай является продолжением ситуации изложенной в статье «Проблема очищения корзины неавторизированных пользователей»
При разработке интернет-магазина по продаже нематериальных товаров и услуг возникла проблема очищения корзины тех пользователей, которые уже зарегистрировались на сайте. Единственная настройка связанная с корзиной: Настройка «Сохранять корзину (дней):» применяется только для корзины незарегистрированных пользователей. На простой вопрос «как сделать, чтобы в корзине заказы авторизированных пользователей не сохранялись?», как оказалось нет ответа. С точки зрения Битрикс настроить не сохранение товаров в корзинах зарегистрированных пользователей в продукте — нельзя. Меня естественно это не устроило.
За основу взял решение в блоге sns-it.ru/blog/bitrix/bolshaya-tablitsa-b-sale-fuser-/ где рассматривалась проблема разбухания таблицы b_sale_fuser. В этой корзине хранятся корзины как авторизированных так и неавторизированных пользователей. После выполнения очистки по методу указанному в статье по ссылке в начале текста вид таблицы b_sale_fuser состоянием на 25 февраля (при сроке хранения 1 день) выглядел так:
Как видим для неавторизированных реально сбросились корзины, кроме тех у кого сохранилась сессия.
После применения метода на агентах вид таблицы был уже такой:
Как видим все корзины старше 24 часов удалилось уже и у зарегистрированных пользователей. Но решить проблему полной очистки/не хранения корзины пока у меня не получилось, да еще так чтобы не удалить корзину у пользователя, который будет в этот момент оформлять покупку.
Суть метода:
Создаем агента. Идем в Настройки — Настройки продукта -Агенты
На данном этапе пользователь вводит информацию о себе. Есть выбор физического и юридического лица и соответственно разный набор полей для ввода.
В зависимости от выбранного способа доставки, количество полей может меняться, например: если пользователь выбрал способ доставки “самовывоз” в анкете не будет спрашиваться адрес и т.д.
Также пользователю предоставляется возможность ввода комментария и есть предзаданные комментарии, которые автоматически попадают в коно ввода.
Чтобы кастомизировать постраничную навигацию, надо скопировать один из шаблонов системного компонента system.pagenavigation . Все содержимое папки modern копируем в папку pager :
- bitrix/components/bitrix/system.pagenavigation/templates/modern
- local/templates/.default/components/bitrix/system.pagenavigation/pager
Удаляем файл стилей style.min.css и создаем файл .description.php :
И теперь нам надо отредактировать файл template.php . Распечатаем массив $arResult с помощью функции print_r() :
В нашем случае показывается список из 11 статей, по две статьи на страницу. Всего получается 6 страниц, но на последней странице только одна статья.
- NavShowAlways — всегда показывать постраничную навигацию
- NavTitle — название списка элементов, например «Статьи» или «Новости»
- NavRecordCount — общее количество статей (записей)
- NavPageCount — общее количество страниц
- NavPageNomer — номер текущей страницы
- NavPageSize — количество статей на одну страницу
- bShowAll — разрешено или нет показывать ссылку «Все статьи»
- NavShowAll — равен true , если показываются все статьи, без постраничной навигации
- NavNum — номер постраничной навигации ( PAGEN_1 , PAGEN_2 , …)
- bDescPageNumbering — использовать или нет обратную постраничную навигацию
- nPageWindow — количество страниц, которые отображаются в постраничной навигации
- bSavePage — равна true если в главном модуле отмечена опция «Запоминать последнюю открытую страницу»
- sUrlPath — путь к странице относительно корня
- NavQueryString — строка GET-параметров
- nStartPage — номер первой страницы слева для текущей страницы
- nEndPage — номер первой страница справа для текущей страницы
- NavFirstRecordShow — порядковый номер первой статьи на текущей странице
- NavLastRecordShow — порядковый номер последней статьи на текущей странице
По поводу переменной bSavePage :
По поводу переменных nStartPage и nEndPage . Если текущая страница — третья ( NavPageNomer=3 ), а показывается пять ссылок ( nPageWindow=5 ), тогда nStartPage=1 , а nEndPage=5 :
Если текущая страница — четвертая ( NavPageNomer=4 ), а показывается пять ссылок ( nPageWindow=5 ), тогда nStartPage=2 , а nEndPage=6 :
Мини-кейс по доработке интеграции 1С-Битрикс и RetailCrm из реального проекта
В случае нашего клиента, товары на сайте могут дополняться опциями, которые транслируются в заказ как свойства товаров.
В crm же товары уходили без свойств, что вызывало сложности с отгрузкой, в том числе случаи, когда товар уходил покупателю не в той комплектации.
В retailCrm было решено использовать свойства товара в заказе.
Эти свойства хранятся только в заказе и не добавляются в объект самого товара Crm (номенклатура товара остается не измененной).
Отправка заказа на сайте, в установленной версии модуля, осуществляется на событие OnSaleOrderEntitySaved, но в этот момент еще нет свойств товаров в корзине. Именно поэтому не удалось использовать наиболее подходящий на первый взгляд, способ кастомизации с помощью Вызываемых функций .
Следующим вариантом решения, стало подключиться к событию сохранения заказа OnSaleOrderSaved:
В кастомном классе, сформированы функции для:
- получения данных по заказу из crm;
- получения данных заказа в магазине;
- формирования новой корзины и отправки ее в crm.
При создании объекта класса, происходит авторизация в crm, для получения данных:
Данные заказа из retailCrm:
Таким образом мы получили данные из заказа и сформировали новую корзину для crm.
Затем обновили уже созданный к этому времени заказ в crm, c помощью методов модуля:
Кроме этого, на сайте был обработчик для заказа в 1-клик, его также дополнили, для отправки выбранной комплектации в retailCrm.
ServiceCar — Автосервис и магазин на старте
Комплексное решение: корпоративный сайт + интернет-магазин. При этом его цена практически не отличается от остальных участников подборки, значит, вы получаете вдвое больше возможностей при тех же затратах.
Здесь уже есть встроенный модуль оплаты Яндекс.Деньги — главное, не забудьте поменять номер кошелька при настройке, иначе все деньги пойдут авторам шаблона
- адаптивный дизайн
- широкие возможности каталога: погрузка документов; стикеры, стимулирующие продажи
- кастомизация сайта
- встроенная SEO-оптимизация
- встроенный калькулятор, который позволит клиентам самостоятельно рассчитать стоимость товаров и услуг
1. Настраиваем форму
Пусть в нашем случае это будет название товара. Хотя можно передавать сразу несколько параметров. Например, наименование, артикул, ссылку на товар и т.д.
Назовем его item_name.
Берем готовую CRM форму и заходим в редактирование. Нас интересует пункт «Значение полей по умолчанию». Ставим галочку «заполнять поля CRM автоматически при отправке формы», из выпадающего списка выбираем поле, куда хотим передавать наше значение, например, комментарий, и жмем на «добавить поле».
В появившейся строке вписываем нашу переменную таким образом: %item_name%.
Дальше копируем код вставки CRM формы, для нас подходит вариант с кнопкой.
Как связать элементы между собой
Любой интернет-магазин занимается маркетингом, продвижением товаров, нацеленным на его продажу. Одним из способов оптимально подойти к вопросу о реализации большой партии товаров является предложение дополнительного варианта к основному элементу из каталога.
Обратите внимание! К примеру, если для продажи выставлено «Голубое платье», то администратором сайта может быть предложено в дополнение приобрести «Голубую сумочку», «Голубые туфли». То есть в карточке (cards) основного товара будет отображаться дополнительное предложение.
Чтобы осуществить обозначенный вид мотивирования человека на покупку, следует сделать «Привязку к элементам в виде списка». Данный параметр может быть выполнен, например, контент-менеджером вручную. Алгоритм действий не очень сложный, но позволит таким образом повысить рейтинг продаж. Для этого нужно:
- открыть настройки соответствующего инфоблока;
- заполнить в нем имеющиеся строки (item row по каждому товару (items);
- кликнуть на пункт «Рекомендуемые товары»;
- выбрать из отобразившегося списка «Привязка к элементам в виде списка»;
- перейти в раздел «Свойства» для обозначения лимита вывода позиций (limit);
- нажать на тот тип инфоблока, из которого будут доступны элементы для связывания;
- после нужно перейти в публичную часть сайта и двойным кликом в режиме правки перенести нужный компонент каталога в настройки;
- далее следует перейти в опцию «Настройки детального просмотра (for detail)»;
- затем потребуется выделить созданный раздел (in display).
Для подтверждения совершенных действий необходимо нажать кнопку «Сохранить». Дальше отредактировать шаблон выбранного компонента из каталога в опции «Детальный просмотр элемента», вставив код.
Затем необходимо произвести привязку товара к ранее выбранному. Это можно сделать в разделе «Рекомендуемые товары». Кликнув на него, отобразится дополнительный список, где может быть выбрана та модель (models), которая будет привязана к основному продукту.
Чтобы дополнительно указать данные о названии элемента из каталога и его цену (price), требуется выполнить те же действия, как при осуществлении привязки самого товара, но вставить уже другой код.
Важно! Обязательно нужно, чтобы каждый представленный товар в каталоге имел уникальные характеристики. Это позволит исключить вероятность несоответствия отображения товаров.
Подводя итог, нужно сказать, что «Битрикс» компонент каталог, в котором отображается полная информация о представленных товарах, можно не только настраивать, но и редактировать при необходимости. Поскольку сайт считается коммерческим, открытым для проведения покупок, следует учитывать много нюансов, чтобы быть в тренде. Это обеспечит высокий уровень продаж.