Блог о 1C-Битрикс, MODX и OpenCart

1C-Битрикс. Кастомизация нового шаблона компонента sale.order.ajax

С выходом нового шаблона компонента sale.order.ajax на форумах битрикса разгораются возмущения и недомения. Мол, теперь код всего шаблона на JavaScript и как его кастомизировать непонятно. На самом деле да, код js-скрипта составляет почти семь тысяч строк. Сходу в таком количестве кода, даже хорошо написанного (к сожалению, битрикс этим не балует), соблюдая паттерны программирования, будет непросто.

В этой заметке я покажу способ, как можно кастомизировать основной скрипт логики шаблона оформления заказа (order_ajax.js), не прибегая к его правке. Что нам это даёт? Когда прилетят очередные обновления шаблона, мы просто заменим его и всё. Все наши кастомизации будут работать (в теории).

Итак, поехали!

Узнать больше

1С-Битрикс. Получаем список местоположений, привязанных к доставке (в сконвертированном магазине) с помощью ORM D7

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

За кодом прошу под кат.

Узнать больше

Простой деплой сайтов на 1С-Битрикс

Написал простой скрипт для деплоя сайтов на bitrix.

Что делает:

  • cтягивает актуальный код с удалённого репозитория
  • запускает применение миграций базы данных
  • ставит новый тег (патч) и пушит его
  • чистит кеш всего сайта

Ну а теперь поподробнее.

Узнать больше

1С-Битрикс. Добавление нового варианта свойства-списка инфоблока по строке

Предлагаю вашему вниманию функцию хелпера, в которую, если передать: значение, ID инфоблока и код свойства, то она вернёт ID этого значения (при этом создаст его, если такого значения нет).

Узнать больше

Определение шаблона сайта по своей логике в 1С-Битрикс

Порой и такое надо.

Код обработчика

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'main',
    'OnGetCurrentSiteTemplate',
    function (\Bitrix\Main\Event $e) {
        $template = $e->getParameter('template');
 
        $newTemplateName = 'main';
 
        if (
            $_SERVER['HTTP_HOST'] === '1c.site.ru'
            && $template === '.default'
        ) {
            return new \Bitrix\Main\EventResult(
                \Bitrix\Main\EventResult::SUCCESS,
                $newTemplateName
            );
        }
    }
);
Узнать больше

Электронная коммерция Яндекс.Метрики в 1С-Битрикс с поддержкой Google Tag Maganer (GTM)

В продолжении темы «Добавление кода Google Analytics для отслеживания заказов». Но тут мы будем учитывать заказы в метрике Яндекса. Замечу: этот вариант автоматом заработает, если вы уже настроили отправку данных в Google Analytics Enhanced Ecommerce и включили Ecommerce в Яндекс.Метрике.

Узнать больше