Расчет стоимости корзины с учетом купона на d7

При классическом использовании функционала работы с купонами в Битриксе, размер скидки и обновление цен в корзине происходит в момент сохранения заказа. До этого момента объект Basket содержит «исходную» цену товара, а DiscountCouponsManager знает о примененных купонах.

Разбираемся, как показывать цену товаров в корзине до момента оформления заказа с учетом примененных скидок.

Читать дальше…

Чеклист: готовим Битрикс к Kubernetes

Все новые проекты, включая разработанные на 1c-bitrix, мы в компании разворачиваем в Kubernetes. Изначально это кажется довольно сложным процессом, но, при должном подходе все проблемы в итоге решаемы и можно с уверенностью сказать — проекты на битриксе корректно разворачиваются и работают в инфраструктуре k8s.

В статье я расскажу о проблемах, с которыми пришлось столкнуться, возможными решениями и в целом о процессе подготовки к переезду.

Читать дальше…

Исправляем падение ядра Bitrix при добавлении параметра USER_FIELD_MANAGER

Главный модуль ядра 1с-Битрикс версии 22.100 подвержен ошибке — при добавлении get-параметра ?USER_FIELD_MANAGER=1 в любую ссылку сайт падает в exception вида

[Error] 
Call to a member function getEntityList() on string (0)
/var/www/public/bitrix/modules/main/lib/orm/entity.php:324
#0: Bitrix\Main\ORM\Entity->postInitialize()
	/var/www/public/bitrix/modules/main/lib/orm/entity.php:129
#1: Bitrix\Main\ORM\Entity::getInstanceDirect(string)
	/var/www/public/bitrix/modules/main/lib/orm/entity.php:107
...
----------
Читать дальше…

ORM в D7 1c-bitrix. Первый подход к снаряду

Реализация ORM в ядре D7 — очередная интересная, перспективная, но как обычно плохо документированная разработка от 1с-Битрикс :) Призвана она абстрагировать разработчика от механики работы с таблицами на уровне запросов к БД, введя понятие сущности и поля сущности. На зимней партнерской конференции Алексей Кирсанов провел мастер-класс по созданию модуля с применением ORM для выборки данных из своей таблицы. После чего я решил провести небольшое исследование на предмет возможности построения более сложных, чем в примере, запросов. Читать дальше…

Письма, файлы и картинки

В модуле «Подписка, рассылки» есть очень замечательная возможность — прикладывать к письму произвольные файлы и автоматически заменять ссылки на изображения, собственно, самими картинками. И этого очень не хватает в стандартной почтовой системе битрикса. Читать дальше…

Обновление свойств инфоблока

В процессе разработки довольно часто приходится программно обновлять значения свойств элементов инфоблока. Под катом небольшая шпаргалка по api-функциям для решения этой задачи и форматам передаваемых в них данных. Читать дальше…

Тестируем технологию CDN от 1с-Битрикс

Одной из «киллер-фич» 12й версии Битрикса была объявлена возможность отдавать статические файлы из CDN, тем самым увеличивая скорость работы сайта. Попробуем оценить практический выигрыш от использования этого модуля, произведя серию замеров времени загрузки одной из страниц конкретного сайта. Читать дальше…

Что должен знать битрикс-программист?

Некоторое время назад мне довелось пройти больше десятка собеседований на позицию php-программиста (битрикс). К удивлению, требования в различных организациях отличаются совсем незначительно и есть возможность сформировать некий единый список необходимых знаний для успешного трудоустройства. Так что же должен уметь битрикс-программист с точки зрения работодателя? Читать дальше…

Как я кастомизировал портал

Представим узкую, но возможную на реальном проекте задачу — в стандартном шаблоне копроративного портала 1с-Битрикс изменить страницу, которая отвечает за вывод универсального списка в группе. По опыту работы с БУС и общим принципам устройства шаблонов компонентов сразу видится план:
— скопировать шаблон комплексного компонента;
— удалить из него все кроме нужной страницы, чтобы не терять обновления (почему так читаем тут);
— отредактировать нужную страницу.
Читать дальше…

Исправляем ошибку MySQL «Row size too large» в 1с-Битрикс

Если Вы используете в своих проектах инфоблоки 2.0 и таблицы InnoDB, то есть шанс в один прекрасный момент столкнуться с ошибкой MySQL «SQL Error (1118): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs» (или «Got error 139 from storage engine»). Ниже рассмотрены причины и условия ее возникновения, а также различные методы устранения, с вмешательством в настройки сервера или без него. Читать дальше…