Отдельный URL у торговых предложений

27
Алексей,

Опишу вариант создания отдельного урла для торговых предложений битрикс (почти стандартный). На примере: /catalog/code-section-1/code-section-2/code-element/12345/

Опишу вариант создания отдельного урла для торговых предложений битрикс (почти стандартный). На примере: /catalog/code-section-1/code-section-2/code-element/12345/

Первым делом идём в настройки инфоблока торговых предложений и заполняем "URL страницы детального просмотра" значением, например, #PRODUCT_URL#/#ID#/. Вместо #ID# можно попробовать использовать символьный код: #ELEMENT_CODE#, но тогда длина URL будет неадекватной :)

Пример заполненного URL в инфоблоке торговых предложений

Всё, с этого момента, ссылки на предложения будут формироваться как отдельные. Но работать не будут, т.к. компонент каталога не умеет с ними работать. Научим.

Закидываем компонент catalog в папку /local/components/bitrix/ и редактируем .parameters.php Находим раздел PARAMETERS => SEF_MODE и добавляем в него массив:

"offer" => array(
	"NAME" => 'Торговое предложение',
	"DEFAULT" => "#SECTION_CODE_PATH#/#ELEMENT_CODE#/#OFFER_ID#/",
	"VARIABLES" => array(
		"ELEMENT_ID",
		"ELEMENT_CODE",
		"SECTION_ID",
		"SECTION_CODE",
		"SECTION_CODE_PATH",
		"OFFER_ID"
	),
),

Далее в component.php добавляем 2 строки после $componentPage = "section";:

if ($componentPage === "smart_filter")
	$componentPage = "section";

if ($componentPage === "offer")
	$componentPage = "element";

В настройках компонента появится новый параметр "Торговое предложение", которое будет заполнено дефолтным значением #SECTION_CODE_PATH#/#ELEMENT_CODE#/#OFFER_ID#/. Сохраняем.

Пример заполненного URL в инфоблоке торговых предложений

Теперь страница СКУ перестанет отдавать 404 и будет открываться детальная страница товара. А в файле шаблона element.php станет доступна переменная $arResult["VARIABLES"]["OFFER_ID"], используя которую можно вывести необходимые данные в карточке товара.

Есть воспросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 20 сентября 2022
торговые предложения, разработчику, костыли, чпу
Поделиться
Комментарии
Авторизуйтесь чтобы получать уведомления об ответе
Опишу вариант создания отдельного урла для торговых предложений битрикс (почти стандартный). На примере: /catalog/code-section-1/code-section-2/code-element/12345/