Отправка результатов заполненных форм (из модуля "Веб-формы") в iiko в виде заказа. Для модуля Интеграция с iiko.
Теги: Модули grain, Интеграция с iiko
Для решения различных проблем, связанных с сессией, можно воспользоваться скриптом для вывода и сохранения параметров сессии.
Теги: Отладка, Решение проблем
Если товары, которые вы положили в корзину (без авторизации), внезапно пропадают оттуда когда заканчивается сессия, возможно, вам поможет данное решение.
Теги: Магазин, Решение проблем
Подсчет количества элементов в разделе у учетом нахождения элемента в нескольких разделах при помощи "\Bitrix\Iblock\SectionElementTable".
Работа с настройками свойств для вывода в списке, на детальной странице товара. Класс "\Bitrix\Iblock\Model\PropertyFeature".
Теги: Инфоблоки, Перенос данных
Агент создания фасетного индекса, если он не активен, требует, чтобы агенты выполнялись на кроне.
Запись и получение данных из/в управляемый кеш с помощью объекта, получаемого из \Bitrix\Main\Application::getInstance()->getManagedCache().
Теги: Основное, Кеш, Хранение данных
Работа с настройками свойств элементов инфоблока для разделов, используются, например, для добавления свойств элементов в умный фильтр для конкретных разделов. Класс "\Bitrix\Iblock\SectionPropertyTable".
Теги: Инфоблоки, ORM, Перенос данных
Для модуля Интеграция с iiko от 4.1. Пример использования события "OnWebhookDeliveryOrderUpdate".
Теги: События, Модули grain, Интеграция с iiko
Отправка пометки "Не перезванивать" в комментарий iiko, для модуля Интеграция с iiko. Используется событие модуля "OnBuildIikoOrderBody".
Теги: События, Модули grain, Интеграция с iiko
Удаление ингредиентов, для модуля Интеграция с iiko от 4.1. Пример использования событий "OnEncodeBasketHash", "OnEncodeBasketHashForProduct", "OnDecodeBasketHash", а также добавление комментария к позиции заказа при помощи "OnBuildIikoOrderBody".
Теги: События, Модули grain, Интеграция с iiko
Для модуля Заведение ПРО сайт ресторана. Различные готовые решения для доработки навигационного меню.
Получение списка заказов, объекта заказа и т.д. с помощью класса "\Bitrix\Sale\Order" и др.
Регистрация "autoload" классов (классы модулей из папки lib подключаются автоматически при условии соответствия названия класса имени файла).
Теги: Основное, Файлы, Как это сделать?
Для модуля Интеграция с iiko. Установка типа заказа при отправке заказа в iiko.
Теги: События, Интеграция с iiko
Для модуля Интеграция с iiko. Установка корневой группы для выгрузки, в данном примере - "Меню Сайт" (их может быть несколько).
Теги: События, Интеграция с iiko
Для модуля Заведение ПРО сайт ресторана. Получение баланса всех бонусных счетов пользователя по его номеру телефона.
Для модуля Интеграция с iiko. Получение баланса всех бонусных счетов пользователя по его номеру телефона.
Теги: Интеграция с iiko
Для модуля Интеграция с iiko. Принудительная деактивация разделов. При использовании данного кода при деактивации определенных разделов их активность не будет восстанавливаться после синхронизации блюд.
Теги: События, Интеграция с iiko
Определение, разбор и форматирование номеров телефонов с помощью классов "\Bitrix\Main\PhoneNumber\Parser" и "\Bitrix\Main\PhoneNumber\Formatter".
Генерация случайных строк и чисел при помощи класса "\Bitrix\Main\Security\Random".
Добавление скидки с помощью классов "\Bitrix\Sale\Internals\DiscountTable", "\Bitrix\Sale\Internals\DiscountGroupTable".
Теги: Магазин
Обычные события ORM для классов "\Bitrix\Catalog\Model\Price" и "\Bitrix\Catalog\PriceTable" почему-то не работают. Вместо этого используются события "PriceOnBeforeAdd", "PriceOnBeforeUpdate" и подобные.
Изменение и удаление столбцов в таблицах ORM на языке SQL.
Теги: ORM
В данном примере килограммы конвертируются в граммы при загрузке товаров на сайт, и обратно в килограммы - при отправке заказа в iiko. Для модуля Интеграция с iiko. Используются события "OnBeforeDishesSync", "OnAfterSyncElementAsProductPropertyUpdate", "OnBuildOrderParamsArray".
Теги: События, Модули grain, Интеграция с iiko
Снятие флага активности для отсутствующих товаров. Для модуля Интеграция с iiko. Используется событие "OnAfterSyncElementAsProductPropertyUpdate".
Теги: События, Модули grain, Интеграция с iiko
Установка определенной терминальной группы выгрузки в iiko. Для модуля Интеграция с iiko. Используется событе "OnBuildOrderParamsArray".
Теги: События, Модули grain, Интеграция с iiko
Убрать определенный тип плательщика из формы заказа используя событие "OnSaleComponentOrderOneStepPersonType" стандартного компонента "sale.order.ajax".
Теги: Магазин, Как это сделать?, Интеграция с iiko
Формирование уникального идентификатора заказа для выгрузки в iiko. Для модуля Интеграция с iiko. Используется событие "OnGenerateOrderUuid".
Теги: События, Модули grain, Интеграция с iiko
Выгрузка количества персон в заказ iiko. Для модуля Интеграция с iiko. Используется событие "OnBuildIikoOrderBody".
Теги: События, Модули grain, Интеграция с iiko
Перехват стандартного добавления в корзину и замена нестандартным в компонентах каталога битрикс. Для модуля Интеграция с iiko.
Теги: События, Модули grain, Интеграция с iiko
Работа с привязками каталогов товаров к каталогам предложений с помощью класса "\Bitrix\Catalog\CatalogIblockTable".
Теги: Магазин
AJAX добавление в корзину на чистом JavaScript и с использованием готовых ajax скриптов магазина.
Теги: Магазин, JavaScript
Полезные примеры, если вы не хотите использовать JS библиотеки и просто удобные готовые решения простых задач.
Теги: JavaScript
Добавление названия службы доставки и оплаты в комментарий заказа iiko. Для модуля Интеграция с iiko. Используется событие "OnBuildIikoOrderBody".
Теги: События, Модули grain, Интеграция с iiko
Отправить SMS, используя стандартные функции битрикс.
Теги: Основное
Отправка смс при смене статуса заказа модуля интернет-магазина.
Теги: Магазин
Использование вычисляемых полей для выборки только необходимых данных, использование функций SQL в ORM запросах.
Теги: ORM, Хранение данных
Работа с местоположениями магазина при помощи класса "\Bitrix\Sale\Location\LocationTable" и др.
Теги: Магазин
Обработчики событий на изменение полей сущности магазина: "OnBefore<Entity>SetField", "On<Entity>SetField".
Теги: Магазин
При возникновении ошибок, например, некорректно установленных обновлений и пр., иногда может помочь перезагрузка файлов ядра.
Теги: Решение проблем
Получение данных о текущем авторизованном пользователе ("Bitrix\Main\Engine\CurrentUser").
Теги: Пользователи, Основное
Если вам нужно установить на сайт бесплатный модуль из Marketplace, но срок техподдержки и обновлений закончился, можно поступить следующим образом:
Теги: Как это сделать?, Решение проблем
Подключение библиотеки bootstrap (css + js) из ядра системы битрикс.
Теги: Основное
Отображение скидки в списке товаров каталога (компонент "bitrix:catalog.section") и на детальной странице товара (компонент "bitrix:catalog.element") при создании правила работы с корзиной.
Теги: Магазин, Как это сделать?
Как обновить битрикс со старой версии (17 и меньше) и избежать ошибок на сайте.
Теги: Как это сделать?, Решение проблем
Создание индексов mysql для ускорения работы ORM, хайлоадблоков и др.
Теги: Хайлоадблоки, ORM, Ускорение
Открытие диалога с пользователем через стандартный модуль модуль im.messenger.
Теги: Как это сделать?
Выборка инфоблоков, привязок инфоблоков к сайтам классы "\Bitrix\Iblock\IblockTable", "\Bitrix\Iblock\IblockSiteTable".
Назначить условия предоставления подарков можно в административной части на странице Маркетинг > Товарный маркетинг > Правила работы с корзиной.
Теги: Магазин
Работа с элементами инфоблоков средствами ORM.
Выполнение кода при полной или частичной оплате заказа.
Добавление собственного поля в информационные письма о заказах.
Теги: Магазин
События почтовой системы Битрикс при отправке писем и создании почтового события.
Теги: Основное
Если данные в хайлоадблоке влияют на отображение данных из инфоблока, например, компонентами.
Теги: Инфоблоки, Хайлоадблоки, Кеш
Определение, находимся ли мы на административной странице или нет.
Теги: Как это сделать?
Определение, является ли устройство пользователя мобильным штатными средствами битрикса.
Теги: Основное
Отправка уведомлений магазина: сообщений о новом заказе, оплате и других.
Теги: Магазин
Обработчики событий при создании и сохранении заказа: "OnSaleOrderSaved", "OnSaleOrderBeforeSaved", "OnSaleOrderEntitySaved".
Теги: Магазин
Работа с валютам - получение списка, валюты заказа, корзины, конвертация и пр.
Теги: Магазин
Повышение производительности битрикс путем отключения ненужных библиотек.
Теги: JS библиотека, Ускорение
Повышение производительности компонента "catalog.section" путем исключения из выборки ненужных полей, например, детального описания (DETAIL_TEXT).
Создание объектов DOM при помощи JS библиотеки битрикс.
Теги: JS библиотека
Как определить средствами php где определена функция?
Теги: Отладка, Как это сделать?
Логирование результатов и времени выполнения агентов в файл.
Теги: Отладка
Иногда необходимо отключить кеширование битрикс в целях отладки и замера производительности, но без авторизации под админом, т.к. это увеличит время выполнения страницы из-за административных скриптов.
Теги: Кеш, Отладка, Как это сделать?, Ускорение
Работа со службами доставки при помощи класса "\Bitrix\Sale\Delivery\Services\Table".
Теги: Магазин
Обработка исключений, "вброшенных" стандартным классом битрикс "\Bitrix\Main\SystemException".
Работа с историей заказов при помощи класса "\Bitrix\Sale\Internals\OrderChangeTable".
Теги: Магазин
Отправка писем средствами системы 1С-Битрикс. при помощи класса "\Bitrix\Main\Mail\Event".
Теги: Основное
Если почта не уходит с сайта на битрикс, можно выполнить следующие рекомендации.
Теги: Решение проблем
Показ 404 страницы средствами системы.
Теги: Основное, Как это сделать?
Отмена заказа при переводе заказа в определенные статусы.
Теги: События, Магазин, Как это сделать?
Решение проблемы переполнения кеша меню.
Теги: Кеш, Решение проблем, Ускорение
Отображение применяемых скидок или наценок (правила работы с корзиной) в процедуре заказа (компонент "bitrix:sale.order.ajax").
Теги: Магазин, Как это сделать?
Кастомизация компонента "bitrix:sale.order.ajax" - наследование функций, изменение логики.
Теги: Магазин
Создание заказа через api d7. Заказ корзины либо конкретных товаров минуя корзину.
Теги: Магазин, Как это сделать?
Работа с корзиной при помощи классов "\Bitrix\Sale\Basket", "\Bitrix\Catalog\Product\Basket" и других.
Теги: Магазин
Использование сложных сортировок в ORM (случайная сортировка, сортировка с пустыми значениями в конце и т.д.).
Теги: Хайлоадблоки, ORM, Хранение данных, Как это сделать?
Работа с товарами каталога с помощью класса "\Bitrix\Catalog\ProductTable".
Теги: ORM, Хранение данных, Магазин
Работа со свойствами главного модуля (пользовательскими полями) при помощи класса "\Bitrix\Main\UserFieldTable".
Теги: Хайлоадблоки, ORM, Хранение данных
Добавление в корзину с заданным типом цены (а не с минимальной ценой как по умолчанию).
Теги: Магазин, Как это сделать?
Работа с типами цен модуля "Торговый каталог" при помощи классов "\Bitrix\Catalog\GroupTable", "\Bitrix\Catalog\GroupLangTable", "\Bitrix\Catalog\GroupAccessTable", "\Bitrix\Catalog\PriceTable".
Использование событий при работе с хайлоадблоками или ORM.
Теги: Хайлоадблоки, ORM, Хранение данных, События
Работа с прямым подключением к базам данных (основной или дополнительным).
Теги: Основное, Хранение данных
Обычно полнотекстовый поиск становится необходим, когда количество элементов в таблице базы данных переваливает за сотни тысяч. Тогда использование обычных фильтров может стать невозможным ввиду длительности исполнения запроса.
Теги: Хайлоадблоки, ORM, Как это сделать?
Добавление собственных функций для использования на вкладке "SEO" интерфейса инфоблоков (наследуемые свойства).
Теги: Инфоблоки, Как это сделать?
Работа с GeoIP (определением местоположения пользователя) штатными средствами битрикс (класс "\Bitrix\Main\Service\GeoIp").
Теги: Основное
Иногда необходимо установить конкретное местоположение по умолчанию в процедуре заказа (компонент "sale.order.ajax"), например, если город уже выбран пользователем при первом заходе на сайт.
Теги: Магазин, Как это сделать?
Определение местоположения (в терминах модуля "Интернет-магазин") пользователя по его IP адресу возможно с помощью класса "\Bitrix\Sale\Location\GeoIp".
Теги: Магазин, Как это сделать?
Как скрыть свойство заказа в процедуре оформления заказа (компонент "sale.order.ajax") программным путем с использованием сложной логики, например, чтобы свойство отображалось только неавторизованным пользователям?
Теги: Магазин, Как это сделать?
Работа с региональными настройками с помощью класса "\Bitrix\Main\Context\Culture".
Теги: Основное
Работа с параметрами текущего запроса ("\Bitrix\Main\Context").
Теги: Основное
Работа с датой и временем средствами классов "\Bitrix\Main\Type\Date" и "\Bitrix\Main\Type\DateTime".
Теги: Основное
Подключение JS скриптов, файлов стилей CSS, программного кода для области <head> или помещаемого в конец страницы.
Работа с шаблонами SEO-свойств инфоблоков при помощи классов "\Bitrix\Iblock\InheritedProperty".
Теги: Инфоблоки
Работа с SEO-свойствами инфоблоков при помощи классов "\Bitrix\Iblock\InheritedProperty".
Теги: Инфоблоки
Работа со складами и количеством товара средствами классов "\Bitrix\Catalog\StoreTable" и "\Bitrix\Catalog\StoreProductTable".
Работа с отгрузками заказа средствами классов "\Bitrix\Sale\Internals\ShipmentTable", "\Bitrix\Sale\Internals\ShipmentExtraServiceTable" и др.
Иногда нужно добавить свой фильтр по заказам в админке (например, для того, чтобы сделать раздельный доступ к заказам для разных пользователей в зависимости от каких-то условий).
Теги: Магазин, Как это сделать?
Конечно, по современным стандартам отправка пароля пользователю почтой не считается безопасной, но личные данные не на всех сайтах настолько ценны, чтобы беспокоится об этом, а клиент может попросить вас сделать, чтобы пароль все же отправлялся.
Теги: Пользователи, Как это сделать?
Работа с платежными системами средствами классов "\Bitrix\Sale\PaySystem\Manager", "\Bitrix\Sale\Internals\PaySystemActionTable" и других.
Теги: Магазин
Работа со статусами интернет-магазина средствами классов "\Bitrix\Sale\Internals\StatusTable" и "\Bitrix\Sale\Internals\StatusLangTable".
Теги: Магазин
Добавление пользователя в группу средствами класса "\Bitrix\Main\UserGroupTable".
Теги: Пользователи, ORM
Работа с файлами средствами класса \Bitrix\Main\IO\File с использованием статических методов.
Теги: Файлы
Работа с файлами средствами класса \Bitrix\Main\IO\File с использованием объекта файла.
Теги: Файлы
Работа с папками (директориями) средствами класса \Bitrix\Main\IO\Directory. Отличается от работы с помощью стандартных функций mkdir и rmdir тем, что эти функции работают рекурсивно.
Теги: Файлы
Вывод в консоль JavaScript времени выполнения скриптов на странице (как инлайновых, так и подключаемых).
Выборка свойств инфоблока средствами класса "\Bitrix\Iblock\PropertyTable".
Выборка разделов инфоблока средствами класса "\Bitrix\Iblock\SectionTable".
Работа с вариантами значений свойств типа "Список" средствами класса "\Bitrix\Iblock\PropertyEnumerationTable".
Вывод отладочной информации средствами класса "\Bitrix\Main\Diag\Debug".
Теги: Отладка
Отладка производительности с помощью класса "\Bitrix\Main\Diag\Debug".
Использование класса "\Bitrix\Main\Web\Json" вместо вместо функций json_encode и json_decode оправдано прежде всего по причине его совместимости с кодировкой windows-1251.
Работа с модулями битрикс - классы "\Bitrix\Main\Loader", "\Bitrix\Main\ModuleManager".
Теги: Основное
Работа с языковыми сообщениями, методами класса "\Bitrix\Main\Localization\Loc".
Класс \Bitrix\Main\HttpRequest (наследник Request) позволяет работать с данными, отправляемыми на сервер, настройками сервера и др.
Теги: Основное
\Bitrix\Main\SiteTable - класс для работы с сайтами в системе битрикс.
Примеры обработки и вызова простых событий в ядре d7.
Теги: События, Модули grain
Работа с адресами страниц средствами Битрикс d7 при помощи класса \Bitrix\Main\Web\Uri.
Добавление хайлоадблока и создание полей.
Теги: Хайлоадблоки, ORM, Хранение данных
Работа с хайлоадблоками в битрикс - получение объекта, выборка данных, добавление, обновление, удаление.
Теги: Хайлоадблоки, ORM, Хранение данных
Получение массива идентификаторов активных групп текущего пользователя
Теги: Пользователи
Выборка количества активных пользователей на сайте:
Теги: Пользователи
Выборка трех последних авторизовавшихся пользователей на сайте
Теги: Пользователи, ORM
Класс \Bitrix\Main\UserGroupTable можно использовать как для выборки всех групп пользователя, так и для выборки всех пользователей группы. Т.к. ORM позволяет выбрать любые поля как пользователя, так и группы, то дополнительных запросов не потребуется.
Теги: Пользователи, ORM
Выборка групп пользователей по фильтру с сортировкой.
Теги: Пользователи, ORM
Изменение кодировки из исходной в кодировку сайта (в т.ч. рекурсивно для массив и ключей):
Теги: Строки