Пишу заметки, преимущественно для себя, но стараюсь описывать все более менее подробно и с примерами. Если что-то не получается или не нашлось заметки под вашу задачу, создайте тему на форуме отвечаю по возможности.
Инструкции и заметки по 1С-Битрикс
Смену вида карточек товаров, в разделе каталога, можно реализовать с помощью сессии, записывая в нее нужный вида шаблона или режима отображения.
Задача: У разделов инфоблока есть множественное поле типа список. Зная ID раздела, нужно получить и вывести всю информацию о выбранных значениях списка UF_ поля этого раздела.
Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузками и обменивается только статусами: "Принят", "Оплачен" и "Выполнен". Но, по закону, после выполнения заказа нужно отправлять на печать второй чек (чек отгрузки). Что бы са...
Задача: Нужно получить информацию о заказах с возможностью указания даты создания "от"" и "до" и выгрузить в Excel файл. Так как заказов может быть очень много, за один шаг это не провернуть (скорее всего, сайт отвалится по таймауту) нужно сделать это пошагово с небо...
Задача: на странице бренда, который выводится компонентом новостей, нужно показать все товары этого бренда из каталога. При этом, товары нужно вывести по разделам каталога с понятным пользователю интерфейcом.
Задача: установить лицензию "Интернет-Магазин + CRM" на один домен. Что бы crm была доступна по адресу crm.domain.ru а магазин по адресу domain.ru. Бонусом, настроить работу почты и в целом работу портала.
Задача: после того как пользователь сделал заказ, нужно сгенерировать одноразовые купоны для скидки (правила корзины) и отправить, эти купоны, на почту указанную при оформлении заказа. Купоны генерируются и отправляются, только после полного завершения заказа, который оплачен и переведен в статус "В...
Задача: если в корзину добавлены товары с определенным свойством, нужно удалить из корзины, все другие товары- предупредив пользователя.
Достаточно часто нужно реализовывать открытие мобильного приложения по ссылке. Например: при отправке ссылки на электороную почту, через мессенджер или просто на сайте. При клике на такую ссылку нужно, что бы открывалось установленное мобильное приложение, созданное на Apache Cordova, при этом проис...
Задача: на сайт каждый день проходит выгрузка из 1С с обновлением картинок. Нужно оптимизмровать эти картинки с помощью утилит jpegoptim и optipng. Сам сайт работает на виртуальном сервере с настроенным окружением.
Пользователь, при оформлении заказа, заполняет три отдельных поля с фамилией, именем и отчеством. Нам нужно сохранить это все одной строкой в отдельное, скрытое свойство заказа и использовать как название профиля покупателя.
В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый параметр: "Скрывать описание раздела".
Ранее я уже делал заметку на эту тему. Тогда, мы меняли значение input-а при добавлении товара в корзину в старых шаблонах детальной карточки. В этой заметке рассмотрю этот же функционал для нового шаблона, при этом поправим и некоторый SEO момент данного функционала.
Шаблон умного фильтра в Битриксе достаточно сложный, с точки зрения верстки и не очень красиво отображается на мобильных устройствах, занимая много места над товарами. Я сделал шаблон выезжающий сбоку при нажатии на кнопку, при этом учел упрощение верстки под конкретный дизайн сайта.
Если вы хотите сделать подгрузку любой страницы сайта в боковой слайдер, для этого в битриксе есть метод BX.SidePanel.Instance.open. Метод открывает в слайдере страницу с указанным адресом в параметре url. Возвращает true, если слайдер успешно открылся, иначе false.
Это заметка обновление к очень старой, уже имеющейся на сайте. Сделаем что-то типа фотогалереи на базе встроеннного в битрикс шаблона новостей.
При создании заказа покупатель заполняет поле "ФИО". Необходимо скопировать эти данные в профиль пользователя (не путать с профилем покупателя) разбив на отдельные поля.
Задача: в мобильном приложении, которое открывает сайт на 1С-Битрикс внутри себя, нужно определить местоположение пользователя и показать близжайшие к нему рестораны и кафе из базы данных сайта
Задача: вывести пользовательские свойства в подробном описании склада. При этом, есть и множественные и одиночные поля.
Задача: нужно создать раздел, в персональном разделе пользователя, с историей всех купленных товаров. Не путать с историей заказов, нужен именно список всех купленных товаров- выведенный с помощью компонента catalog.section. Что бы пользователь мог добавить любой товар в новый заказа.
Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режиму, через логин(e-mail) и пароль. При этом, у всех пользователей запрашивался и номер телефона, который записывался в стандартное поле "Номер телефона", он же PERSONAL_MOBILE.
Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего на 1С-Битрикс, данная заметка будет актуальной для любого типа сайта и на любой системе управления. В целом, Progressive Web Applications (PWA), дает возможность создать приложение для сайта, не отличимое от по...
Задача, кастомизировать административную форму заказа: добавить свойство заказа в шапку формы, в виде картинки. На сайте, при оформлении заказ пользователем, генерируется штрихкод в виде обычной ссылки с путем к картинке. Его нужно добавить в шапку формы, именно картинкой.
Задача: показать, текущему авторизованному, пользователю сумму всех выполненных заказов и процент накопительной скидки- доступной на данный момент.
Итак, задачка: реализовать голосовой поиск в мобильном приложении на Cordova. По сути, нам нужно захватить речь с микрофона устройства и, передать текст в input.
Что бы реализовать рассылку новинок каталога на email-ы пользователей, можно воспользоваться событием OnBeforeIBlockElementAdd и модулем subscribe
Если нужно получить какие-то данные о текущем разделе, которых нет в изначальном массиве, можно воспользоваться методом CIBlockFindTools::GetSectionID - позволяет получить ID текущего раздела.
Мини скриптик, может кому пригодится для каталога товаров или новостей при использовании дополнительных картинок (обычно MORE_PHOTO). Вместо штатного, монструозного магнифера
Например: у нас есть инфоблок с большим количеством разделов. И мы хотим, на сайте разбить разделы по буквам. Самый простой способ, это конечно же добавить буквы в разделы каталога, и перераспределить сами разделы по своим буквам. Но... а если и разделов более 2000-яч и вообще не вариант, так менять...
Что бы вывести минимальную и максимальную стоимость товаров, из каталога 1С-Битрикс, достаточно получить все товары методом CIBlockElement::GetList и загнать цены в массив
Задача: при каждом посещении статьи, на сайте, нужно создавать pdf файл с ее содержимым и записывать в свойство инфоблока.
Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента подключены в файле section.php комплексного шаблона. Соотвественно, оба фильтра отображаются во всех разделах и подразделах каталога, не зависимо, от грубины вроженности. Нужно отобразить верхний фильтр- только н...
Появилась задачка, установить стек MAMP (macOS, Apache, MYSQL, PHP) на рабочий ноутбук с процессором Apple Silicon M1. В принципе, под macOs уже е сть готовое приложение MAMP-PRO, но на текущий момент оно работает через эмулятор Rosetta из-за чего теряет около 20% производительности и в целом подтуп...
В этой заметке постараюсь описать процесс реализации индивидуальных цен, для пользователей. При этом, индивидуальные цены будут синхронизироваться с 1С:Предприятие - в обе стороны.
Задача: после того как заказ, в интернет-магазине, перешел в статус "Выполнен" начислить пользователю 5% от стоимости заказа, на накопительный счет - с которого можно оплатить будущие заказы.
Задача, заполнить остатки товаров, в 1С-Битрикс, из параметра "Доступное количество".
Задача: вывести общее количество товаров в корзине (именно количество единиц товара, а не позиций). При этом данные должны обновляться на лету при увеличении или уменьшении количества конкретных позиций
Задача определить местоположение текущего пользователя и показать его на карте, с меткой. Сделать можно с помощью класса GeoIp - Пространство имён для классов для работы с геолокацией.
Задача: Каталог наполняется из 1С, но 1С не передает коэффициент единицы измерения (особенность конкретной 1С, но вообще она умеет). Вместо этого, коэффициенты забиваются в обычный, дополнительный реквизит и приходят на сайт как свойство. Нужно заполнить коэффициент из этого поля.
Заметку написал скорее для себя, что бы собрать все в одну кучу. Написана на базе нескольких разрозненных, по интернету, статей.
Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все товары каталога. Устанавливать будем для не базовой цены. При каждом обновлении базовой цены (например при обновлении товаров импортом), наша цена будет пересчитываться согласно наценке.
В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне корзины на 1С-Битрикс.
Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данной заметкой. Постарался сделать ее более менее подробной, но при этом не сильно нудной.
Данная статья написана специально под видеоролик (приложен в конце статьи), опубликованный на моем ВКVideo канале: "Ускорение работы сайта на 1С-Битрикс".
Предположим, что у вас есть инфоблок со свойством "Привязка к яндекс картам". В этом инфоблоке некоторое количество элементов, в принципе любое. Пусть, это будут офисы продаж. Задача: вывести все офисы продаж на карту с метками и основными данными о точке- в бубл (или как, там называется эта штука- ...
Если у вас достаточно много свойств, в инфоблоке с товарами, например: больше 1000-чи, после интеграции с 1С или импорта из файлов поставщика. И необходимо добавить все свойства в умный фильтр. Поможет эта заметка.
Если нужно вывести информацию о скидке в карточке товара, можно воспользоваться методом CCatalogDiscount::GetList. Данный метод позволяет получить любую информацию о скидке: купон, название, типа скидки и.т.д. Но, я думаю, наиболее актуально вывести дату окончания скидки или количество дней до окончания....
Данная заметка является дополнением к ранее опубликованной: Если товар в корзине, поменять значение input на "В корзине". Проделаем тоже самое, если используются торговые предложения. Но, можно использовать и в других сценариях.
WebP это современный формат сжатия изображений, который позволяет, при правильных настройках и уровнях сжатий, уменьшить размер файлов изображений. Развивается при поддержке Google. В этой заметке, расскажу как применить данный формат на сайте, под управлением Битрикс.
Документация к мобильному приложению 1С-Битрикс очень куцая. В основном описывает функционал добавляемый BXMobileApp. Хотя, там вскользь и упомянута работа с железном устройства. Явно не хватает примеров реализации данной возможности. Восполняю сей пробел.
Если на одну страницу сайта выводится большое количество картинок, которые могут долго подгружаться- либо нужно попасть в зеленую зону Google Page Speed. Можно воспользоваться директивой Image LazyLoad - ленивая подгрузка картинок. Картинки подгружаются по мере прокрутки страницы, вместо попытки загрузить...
Если требуется настроить автоматический импорт каталогов из csv файлов, от поставщиков. В 1С-Битрикс, уже есть весь необходимый функционал. Требуется лишь настроить и обеспечить выполнение по расписанию.
На одном из проектов, нужно было единоразово заполнить цены товаров из свойства инфоблока. Сделать это можно через API, методами CPrice::Update и CPrice::Add.
Если вам по какой-то причине нужно скопировать цену товара в свойство этого же инфоблока. Например, для вывода старой цены в редакции Битрикс "Малый бизнес" (цена товара за минусом какого-то процента). Можно воспользоваться данной заметкой.
В этой видео-заметке расскажу как установить и оптимизировать панель управления сервером BrainyCp для использования в связке с 1С-Битрикс. Проведем базовые настройки и расскажу о некоторых полезных фишках.
Если в магазине очень много разделов и хочется вывести их с постраничной навигацией: можно воспользоваться методами CDBResult::IsNavPrint(), CDBResult::NavStart и CDBResult::NavPrint
Если Ваш интернет-магазин интегрирован с 1С, скорее всего столкнулись с такой проблемой: 1С не умеет выгружать параметры товара: Вес, Ширина, Высота, Глубина.
Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элементы внутри карточки товара. Данный блок, может называться как угодно и преследовать различные маркетинговые цели. Например, для блоков: Рекомендуем посмотреть, Аналоги, Похожие товары итд.
Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно воспользоваться API: CUser и CIBlockElement
Внутри любого компонента есть заранее заложенные поля для сортировки элементов. Можно сортировать элементы в разных направлениях по этим полям, однако возможна и сортировка по произвольным значениям. Например по свойству типа список, по умолчанию по алфавиту
Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоблока, например в карточке товара каталога- можно воспользоваться API методом CIBlockElement::GetElementGroups
Если нужно получить список городов из модуля "Местоположения" можно воспользоваться API Битрикс. Данные местоположения можно использовать в любом месте сайта или в любом компоненте. Например в профиле пользователя или формах обратной связи.
Заметка коротенькая, но решил оставить ее - так как самому часто нужно нечто подобное. В архиве готовый шаблон для Битрикс, с адапитивным гамбургер меню. Ничего лишнего нет, каждый сможет "подкрутить" его под свой дизайн и режим работы.
Если Вам нужно поменять текст на кнопке, добавляющей товар в корзину, достаточно воспользоваться методом API "CSaleBasket::GetList - который возвращает результат выборки записей из корзины" и немножко js-а
В этой заметке расскажу как красиво вывести множественное свойство типа файл в инфоблоке 1С-Битрикс. С показом оригинального названия файла, его транслитированной версии, размера файла в килобайтах и, само собой, ссылкой на скачивание.
В этой заметке рассакажу как добавлять товары в "Отложенные", для иммитации функционала "Избранное". Для этого будем использовать API 1С-Битрикс. Добавление будет происходить на AJAX- без перезагрузки страницы
Встала задачка, иммититровать систему скидок в интернет магазине на Битрикс. Из 1С-УТ, на сайт, выгружается два типа цен: "РИЦ сайт"" и "Старт розница"
Рассмотрим задачу: необходимо скрыть умный фильтр во всех разделах каталога, которые содержат подразделы, и показывать его только в конечных (листовых) разделах, независимо от глубины вложенности.
Если вы хотите помечать новинки каталога, вашего магазина на Битрикс, лейблом "Новинка". И так, что бы это происходило автоматически. Можно проделать следующее
При штатной установке, интернет-магазина на 1С Битрикс, умный фильтр по товарам, показывает колличество найденных товаров. От пользователя требуется дополнительное действие- нажать на кнопку "Показать"
Иногда при разработке сайта требуется реализовать функционал добавления элементов инфоблока простыми пользователям.Будет достаточно удобно если, после создания новости, модератор будет получать письмо о создании нового элемента. Сделать это можно через событие OnBeforeIBlockElementAdd
В последнее время, все чаще приходиться работать на Windows, хотя и не люблю эту ОС- с точки зрения разработчика сайтов. Но так или иначе, потребовался простой но работоспособный веб сервер, который можно запускать прямо в ОС- без применения виртуальных машин и прочего. Выбрал Denwer - но его нужно ...
Иногда нужно получить данные о заказе текущего пользователя. Не через компонент, а непосредственно через API Битрикс. Вариантов, где это может понадобиться достаточно много. Например: после оформления заказ пользователем, нужно вывести ему всю информацио о заказе.
Глобальный фильтр, нужен чаще всего, для вывода определенных элементов, из общего массива, инфорблока. Спектр применяемости очень широкий. Используется чаще всего с компонентами: Список новостей, Новости, Элементы раздела, Каталог, Топ элементов каталога и Каталог.
Если вы подключили bootstrap к своему сайту, или сверстали весь шаблон, подключив bootstrap из ядра битрикс. Имеет смысл использовать эти 320 килобайт css стилей по полной. Во первых это упростить и стандартизирует создание новых разделов, оформления текста и элементов HTML. Во вторых: не придется р...
Иногда бизнес-логика проекта требует ограничить пользователя покупкой ровно одного товара. Сохранив удобство для пользователя и менеджера по отбработке заказов
В процессе разработки сайта могут понадобиться рецепты приведенные ниже. Использовать можно как угодно и где угодно, я лишь привожу простые примеры. Применимость данных кусочков кода более обширна и зависит от вашей смекалки
Если вы хотите как-то по особенному сверстать состав заказа в почтовом уведомлении 1С-Битрикс "Новый заказ", у вас это не получится, так как переменная ORDER_LIST формируется в модуле sale.order.ajax. Само собой, можно пойти по пути наименьшего сопротивления, изменить компонент заказа. Но есть спосо...
Иногда, нужно отключить поиск по описаниям анонсов и детальному описанию товаров, при разработке сайтов на Битрикс. Сделать это можно, воспользовавшись событием "BeforeIndex" который вызывается перед индексацией элемента методом CSearch::Index.
Достаточно частая задачка для каталога или интернет-магазина: вывести список производителей с подробными описаниями, а так же в подробном описании производителя или бренда вывести все товары, у которых заполнено свойство "Производитель." Расскажу как это сделать
Достаточно часто спрашивают как перенести сайт работающий на 1С Битрикс с одного хостинга на другой, как раз подвернулась такая задачака и решил ее осветить
Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в которых, посетители смогу ставить оценки и комментировать, сделать это достаточно просто. В этом видео расскажу как. За основу возьмем стандартный компонент новостей
Есть несколько способов подключения файлов стилей и скриптов, при верстке шаблонов в системе управления 1С-Битрикс. Если вы получаете готовую верстку в HTML/CSS, то имеет смысл грамотно подключить файлы стилей, js и мета теги при интеграции шаблона в Битрикс
Например вам нужно выводить информацию исключительно для определенного пользователя. Само собой, это можно сделать с помощью физической структуры и прав пользователей. Но, намного проще, для контент менеджера и последующей структуризации- это создавать раздел в заранее созданном инфоблоке.
Редкая но востребованная задачка- это вывести компонент "умный фильтр" на главную страницу магазина на Битрикс. При этом так, что бы он отправлял на результат выдачи на другой странице сайта. Реализуется достаточно просто, но вопрос важный, так как задают его часто
Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей, нужно увидеть xml файл с заказами который сформирует сайт для следующей передачи в 1С. Есть два способа
Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изрядно и не используя js) как угодно переставлять поля ввода. Например сделать заполненеие текста анонса до ввода разделов. Или переставить чекбоксы свойств до ввода названия (хотя это глупо, но вы не сможжете сд...
Если нужно в карточке товара или новости, вывести структуру разделов в котором находится элемент. С одной стороны, это умеет делать компонент "навигационная цепочка", но можно, для большей гибкости, воспользоваться методом API CIBlockSection::GetNavChain
Бывает что нужно открыть FTP доступ к заранее известнойдиректории на сайте под управлением 1С Битрикс, который работает на виртуальной машине от Битрикс. Из коробки, FTP сервера там нет. Расскажу как настроить и ограничить FTP доступ одной папкой, на примере реальной задачи.
По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е товаров вывести все товары всех разделов инфоблока, с постраничной навигацией. Да, и еще навесить умный фильтр над этим делом. Все очень просто- рассказываю
Стоимость разработки на 1С-Битрикс:
Индивидуальная разработка магазина
от 500 000 руб. от 5-ти недельРазработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.
Запуск сайта на готовом решении
от 150 000 руб. от 7-ми днейВариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.
Мобильное приложение
от 550 000 руб. от 5-ти недельРазработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore
Сайт компании
от 300 000 руб. от 2-х недельКорпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.
Инфоресурс
от 300 000 руб. от 4-х недельИнформационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.
3D‑моделирование, визуализация
от 25 000 руб. от 3-х днейПо вашим фото, чертежам или описанию создадим 3D‑модели и отрендерим набор изображений для каталога товаров: общий вид, крупные планы и технические ракурсы или 360°‑обзор товара.