Количество элементов в разделе и подразделах с остатком больше 0 в Битрикс

Похоже, что лучше ничего нет, чем

$arSelect = Array("ID");
$sect = CIBlockElement::GetList(
Array("ID" => "DESC"),
Array("IBLOCK_ID" => $arSection["IBLOCK_ID"],
"ACTIVE" => "Y",
"SECTION_ID" => Array($arSection['ID']),
"INCLUDE_SUBSECTIONS" => 'Y',
">CATALOG_QUANTITY" => "0"
),
false,
Array("nTopCount" => 3),
$arSelect);

while ($el = $sect->GetNextElement()) {
$res_count++;
break;
};

 

Документ (счет) в PDF Bitrix

За основу взяли готовый вариант счета из платежного модуля оплаты счета один к одному, скажем так, но не взлетело! Ведь там есть настройки платежной системы перед формированием счета, а у нас и оплаты с такой системой в заказе может и не быть.

Тогда для оживления счета были внесены некоторые изменения в код: Читать далее Документ (счет) в PDF Bitrix

Главное меню с ограничением по активному разделу

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

В этом же варианте меню на главной странице состоит из разделов каталога первого уровня, но при выборе раздела все, кроме выбранной ветки скрывается. Читать далее Главное меню с ограничением по активному разделу

Мега-долгий запрос в компоненте catalog.section

Или это прикол, или так надо, но никому не надо, но битрикс при выводе элементов раздела зачем-то загружает все свойства каждого элемента, что в некоторых случаях приводит к оооооооочень долгой загрузке страницы сайта. Доходило до 60-70 секунд, если дожидаться до конца.

Тормозит все дело этот запрос:

$query = $connection->query(«
SELECT
P.ID
,P.CODE
,P.TEMPLATE
,P.ENTITY_TYPE
,P.ENTITY_ID
,IP.VALUE
,IP.ELEMENT_ID
FROM
b_iblock_element_iprop IP
INNER JOIN b_iblock_iproperty P ON P.ID = IP.IPROP_ID
WHERE
IP.IBLOCK_ID = «.$this->iblockId.»
AND IP.ELEMENT_ID in («.implode(«, «, $ids).»)
«);

Еще бы написали просто select *, да и зачем мне свойства элементов, если я их не заказывал?!

Итого было принято решение тупо закоментить код функции

public function queryValues()
{ }

Ибо она в моем проекте не нужна. Профит! 0.7-1.5 секунды!

ах, да, лежит все это в /home/bitrix/www/bitrix/modules/iblock/lib/inheritedproperty/elementvalues.php

Добавление в корзину через CSaleBasket::Add()

Как бы все кладется в корзину, но после оформления заказа в админке товар в заказе был без связи с самим товаров.
После долгих переборов было выявлено, что нужно передавать следующий набор данных:

$arFields = array(
"PRODUCT_ID" => $row["ID"],
'CATALOG_XML_ID' => $row['IBLOCK_EXTERNAL_ID'],
'PRODUCT_XML_ID' => $row['EXTERNAL_ID'],
"PRODUCT_PRICE_ID" => 0,
"PRICE" => $_SESSION["BYORDERPRICE"][$row["ID"]],
"CURRENCY" => "RUB",
"QUANTITY" => 1,
"LID" => SITE_ID,
"DELAY" => "N",
"CAN_BUY" => "Y",
"NAME" => $row["~NAME"],
"WEIGHT" => $row["WEIGHT"],
"MODULE" => "catalog",
"NOTES" => "LONGORDER",
"DETAIL_PAGE_URL" => $row["DETAIL_PAGE_URL"],
"CALLBACK_FUNC" => "CatalogBasketCustomCallback",
"ORDER_CALLBACK_FUNC" => "CatalogBasketOrderCustomCallback",
"CANCEL_CALLBACK_FUNC" => "CatalogBasketCancelCallback",
"PAY_CALLBACK_FUNC" => "CatalogPayOrderCallback"
);

Где $row заполняется свойствами элемента CIBlockElement::getList().

Тогда товар попадает в корзину, потом в заказ, и из админки виден со ссылкой на карточку товара.

Нужно все это было для интеграции с RetailCRM, т.к. после второго обмена товары, что были добавлены вручную скриптом в корзину, дублировались.

Но теперь все ок )


Обработчик Яндекс Касса yandex (yandex_3) не активен

Не знаю что за чудо, но пропал, хотя и был раньше, обработчик из списка в Битриксе.

Теперь там только эти:

а нужен был такой: Читать далее Обработчик Яндекс Касса yandex (yandex_3) не активен

Если вес не выгружается на сайт

Странно, но факт, с модулем расширения Битрикс не выгружается вес номенклатуры, в частности, из 1С УНФ.

Решение простое, в окошке настройки выгрузки на вкладке «Товары» в поле «Вес» указать наименование поля в 1С Читать далее Если вес не выгружается на сайт

Многоценность битрикса или как я ушибся еще раз

Было принято решение ввести новую систему поощрения постоянных покупателей в виде клубных карт и клубной цены.
Для реализации перехода нам нужна редакция Бизнес и несколько видов цен в 1С.
В полном ожидании, хочется, чтобы на сайте все покупатели могли видеть обычную цену и цену для клубней, но покупать по клубной могли бы только клубни.
Это очень ясно и понятно реализовано через группы покупателей. Т.е., когда клубень зарегистрирует свою карту клиента, то он попадет группу клубней….

Все просто! как два байта переслать. Если бы это был не Битрикс. Читать далее Многоценность битрикса или как я ушибся еще раз