всегда можно дополучить данные в result_modifier.php и добавить нужные ключи в результирующий массив
- группировка элементов по разделу вполне реализуемая, посмотрите в экзамене №2 были такого плана задачи.
// подключаем пространство имен класса HighloadBlockTable и даём ему псевдоним HLBT для удобной работы
use Bitrix\Highloadblock\HighloadBlockTable as HLBT;
// id highload-инфоблока
const MY_HL_BLOCK_ID = 1;
//подключаем модуль highloadblock
CModule::IncludeModule('highloadblock');
//Напишем функцию получения экземпляра класса:
function GetEntityDataClass($HlBlockId)
{
if (empty($HlBlockId) || $HlBlockId < 1)
{
return false;
}
$hlblock = HLBT::getById($HlBlockId)->fetch();
$entity = HLBT::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();
return $entity_data_class;
}
?>
[rows] => Array
(
[0] => Array
(
[ID] => 2
[UF_NAME] => Фэшн рай
[UF_INMAIN] => да
[UF_FILE] => <img src="/upload/uf/e84/e846614ed8f14dff0d3bcf58b66c64b8.png" border="0" alt="" width="120" height="50">
[UF_LINK] => #
[UF_DESCRIPTION] =>
[UF_FULL_DESCRIPTION] =>
[UF_SORT] => 200
[UF_EXTERNAL_CODE] =>
[UF_XML_ID] => company2
)
$("#submit").click(function(){
if(a1!='0'){jQuery.post("/shop/add/",{"product_id":"380","quantity":a1});}
if(a2!='0'){jQuery.post("/shop/add/",{"product_id":"381","quantity":a2});}
if(a3!='0'){jQuery.post("/shop/add/",{"product_id":"382","quantity":a3});}
});
Я стараюсь использовать как можно меньше библиотек чтобы не грузить сайт.