Сортировка товаров по наименованию свойства
У товара есть свойство BRAND, присваивается из ИБ. Хочу сделать сортировку по названию брендов. Товары выводятся через bitrix:catalog.section
Делал вот так:
"ELEMENT_SORT_FIELD" => 'property_BRAND',
но сортирует товары не по названию бренда, а по его id
Если сделать var_dump тоовара, то связаное с брендом только это
["BRAND"]=>
array(34) {
["ID"]=>
string(2) "47"
["IBLOCK_ID"]=>
string(2) "14"
["NAME"]=>
string(10) "Бренд"
["ACTIVE"]=>
string(1) "Y"
["SORT"]=>
string(3) "500"
["CODE"]=>
string(5) "BRAND"
["DEFAULT_VALUE"]=>
string(0) ""
["PROPERTY_TYPE"]=>
string(1) "E"
["ROW_COUNT"]=>
string(1) "1"
["COL_COUNT"]=>
string(2) "30"
["LIST_TYPE"]=>
string(1) "L"
["MULTIPLE"]=>
string(1) "N"
["XML_ID"]=>
string(4) "1143"
["FILE_TYPE"]=>
string(0) ""
["MULTIPLE_CNT"]=>
string(1) "5"
["LINK_IBLOCK_ID"]=>
string(1) "9"
["WITH_DESCRIPTION"]=>
string(1) "N"
["SEARCHABLE"]=>
string(1) "N"
["FILTRABLE"]=>
string(1) "Y"
["IS_REQUIRED"]=>
string(1) "N"
["VERSION"]=>
string(1) "1"
["USER_TYPE"]=>
NULL
["USER_TYPE_SETTINGS"]=>
bool(false)
["HINT"]=>
string(0) ""
["~NAME"]=>
string(10) "Бренд"
["~DEFAULT_VALUE"]=>
string(0) ""
["VALUE_ENUM"]=>
NULL
["VALUE_XML_ID"]=>
NULL
["VALUE_SORT"]=>
NULL
["VALUE"]=>
string(4) "1687"
["PROPERTY_VALUE_ID"]=>
string(5) "11942"
["DESCRIPTION"]=>
string(0) ""
["~VALUE"]=>
string(4) "1687"
["~DESCRIPTION"]=>
string(0) ""
}
и вот
["DISPLAY_PROPERTIES"]=>
array(1) {
["BRAND"]=>
array(36) {
["ID"]=>
string(2) "47"
["IBLOCK_ID"]=>
string(2) "14"
["NAME"]=>
string(10) "Бренд"
["ACTIVE"]=>
string(1) "Y"
["SORT"]=>
string(3) "500"
["CODE"]=>
string(5) "BRAND"
["DEFAULT_VALUE"]=>
string(0) ""
["PROPERTY_TYPE"]=>
string(1) "E"
["ROW_COUNT"]=>
string(1) "1"
["COL_COUNT"]=>
string(2) "30"
["LIST_TYPE"]=>
string(1) "L"
["MULTIPLE"]=>
string(1) "N"
["XML_ID"]=>
string(4) "1143"
["FILE_TYPE"]=>
string(0) ""
["MULTIPLE_CNT"]=>
string(1) "5"
["LINK_IBLOCK_ID"]=>
string(1) "9"
["WITH_DESCRIPTION"]=>
string(1) "N"
["SEARCHABLE"]=>
string(1) "N"
["FILTRABLE"]=>
string(1) "Y"
["IS_REQUIRED"]=>
string(1) "N"
["VERSION"]=>
string(1) "1"
["USER_TYPE"]=>
NULL
["USER_TYPE_SETTINGS"]=>
bool(false)
["HINT"]=>
string(0) ""
["~NAME"]=>
string(10) "Бренд"
["~DEFAULT_VALUE"]=>
string(0) ""
["VALUE_ENUM"]=>
NULL
["VALUE_XML_ID"]=>
NULL
["VALUE_SORT"]=>
NULL
["VALUE"]=>
string(4) "1687"
["PROPERTY_VALUE_ID"]=>
string(5) "11942"
["DESCRIPTION"]=>
string(0) ""
["~VALUE"]=>
string(4) "1687"
["~DESCRIPTION"]=>
string(0) ""
["DISPLAY_VALUE"]=>
string(36) "<a href="/brands/neomid/">Neomid</a>"
["LINK_ELEMENT_VALUE"]=>
array(1) {
[1687]=>
array(30) {
["ID"]=>
string(4) "1687"
["~ID"]=>
string(4) "1687"
["IBLOCK_ID"]=>
string(1) "9"
["~IBLOCK_ID"]=>
string(1) "9"
["NAME"]=>
string(6) "Neomid"
["~NAME"]=>
string(6) "Neomid"
["DETAIL_PAGE_URL"]=>
string(15) "/brands/neomid/"
["~DETAIL_PAGE_URL"]=>
string(15) "/brands/neomid/"
["PREVIEW_PICTURE"]=>
string(4) "1280"
["~PREVIEW_PICTURE"]=>
string(4) "1280"
["DETAIL_PICTURE"]=>
string(4) "1281"
["~DETAIL_PICTURE"]=>
string(4) "1281"
["SORT"]=>
string(3) "500"
["~SORT"]=>
string(3) "500"
["LANG_DIR"]=>
string(1) "/"
["~LANG_DIR"]=>
string(1) "/"
["CODE"]=>
string(6) "neomid"
["~CODE"]=>
string(6) "neomid"
["EXTERNAL_ID"]=>
string(4) "1687"
["~EXTERNAL_ID"]=>
string(4) "1687"
["IBLOCK_SECTION_ID"]=>
NULL
["~IBLOCK_SECTION_ID"]=>
NULL
["IBLOCK_TYPE_ID"]=>
string(21) "aspro_optimus_content"
["~IBLOCK_TYPE_ID"]=>
string(21) "aspro_optimus_content"
["IBLOCK_CODE"]=>
string(20) "aspro_optimus_brands"
["~IBLOCK_CODE"]=>
string(20) "aspro_optimus_brands"
["IBLOCK_EXTERNAL_ID"]=>
string(23) "aspro_optimus_brands_s1"
["~IBLOCK_EXTERNAL_ID"]=>
string(23) "aspro_optimus_brands_s1"
["LID"]=>
string(2) "s1"
["~LID"]=>
string(2) "s1"
}
}
}
}`
Neomid - как раз название бренда
я уже в сортировке вот так пробовал, теперь вообще выводит все товары рандомно
$arAvailableSort = array(
"BRAND" => Array('PROPERTY_BRAND.NAME', "asc"),
);
Ответы (2 шт):
Попробуйте вывести через echo или print_r состав товара и проверить содержимое property_BRAND - там у вас действительно передается имя бренда, а не его id для дальнейшего связывания со справочником брендов? Возможно на выходе имеется еще свойство а-ля BRAND_NAME. Чтобы сказать точнее нужно видеть структуру темплейта и инфоблока