Пример скрипта импорта данных из csv файла в инфоблок Битрикс.

Довольно простая заготовка скрипта импорта данных из csv файла. Представим, что у нас есть некий csv файл c комментариями к товарам: к примеру, такой:

nAy993zH1KkeAZ

Нужно все эти данные загрузить в инфоблок. Соответствия свойств в файле и инфоблоке следующие:

  • id_com — идентификатор записи. будем их записывать в поле «внешний код» (XML_ID)
  • id_pr — id товара, к которому этот комментарий относится (не станем его импортировать для простоты кода)
  • name_com — ф.и.о. автора комментария (будем его записывать в пользовательское свойство инфоблока типа «строка» с кодом «FIO»)
  • email_com — email автора комментария (будем его записывать в пользовательское свойство инфоблока типа «строка» с кодом «MAIL»)
  • status_com — статус комментария (будем его записывать в пользовательское свойство инфоблока типа «список» с кодом «IS_SHOW»)
  • date_com — дата написания комментария (будем его записывать в пользовательское свойство инфоблока типа «дата/время» с кодом «DATE»)

Читать далее

Кастомизация письма о новом заказе на сайте в Битрикс

Довольно типичная задача, но у многих программистов вызывает недоумение: как в письмо, которое отправляется владельцу сайта, когда создаётся новый заказ, добавить дополнительные данные из свойств этого заказа?

Оказывается всё просто! Достаточно использовать этот обработчик:

OnOrderNewSendEmail

Пример реализации:

Читать далее

Как получить минимальную цену среди торговых предложений товара в Битрикс

Небольшая, но весьма полезная функция получения минимальной цены среди торговых предложений товара в Битрикс:

/*
 * функция получения минимальной цены среди торговых предложений товара с id = $item_id
 */
function get_offer_min_price($item_id){
    $ret = 0;
    
    CModule::IncludeModule("iblock");
    CModule::IncludeModule("catalog");
    // ID инфоблока товаров
    $IBLOCK_ID = 7; 
    $ID = $item_id; 
    $arInfo = CCatalogSKU::GetInfoByProductIBlock($IBLOCK_ID);
    
    if (is_array($arInfo)) {
        $res = CIBlockElement::GetList(Array("PRICE"=>"asc"), 
                                       array('IBLOCK_ID'=>$arInfo['IBLOCK_ID'], 'ACTIVE'=>'Y', 'PROPERTY_'.$arInfo['SKU_PROPERTY_ID'] => $ID), 
                                       false, 
                                       false, 
                                       array('ID', 'NAME'))->GetNext();
        if ($res){
            $ret = GetCatalogProductPrice($res["ID"], 1);
            if ($ret['PRICE']){
                $ret = $ret['PRICE'];
            }
        }
    }
    return $ret;
}

Второй параметр у функции:

GetCatalogProductPrice($res["ID"], 1);

это ID типа цены.

Если же мы хотим, чтобы цена была с отступами тысячей и округлённая (выглядит так симпатичнее):

price2

то можно воспользоваться округлением:

$ret = round($ret);

и реализацией отступов:

$ret = number_format($ret, 0, '', ' ' );

Отображение Яндекс карт в Битрикс

Довольно часто на сайтах клиентов требуется реализовать отображение Яндекс карт:

yamap1

При этом необходимо, чтобы контент-менеджер не заморачивался с настройкой отображения. В Битриксе реализация оказалась довольно простой.

Читать далее

Стилизуем NetBeans в тёмные тона

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

Читать далее