Статус партнерства с 1С-Битрикс: Бизнес партнер
  • Маркетплейс
  • Документация
  • Блог
  • Новости
  • Софт
  • Профиль
  • Создание прямой ссылки на SKU

    14.06.2017

    На многих проектах построенных на Битрикс CMS применяются торговые предложения и возникает задача создать прямую ссылку на конкретное предложение. Я поступил следующим образом

    Ссылку формировал следующего формата /catalog/p/element_code/sku_code/ где /catalog/ - путь к каталогу товаров; element_code - код отдельного товара имеющего торговые предложения; sku_code - состоит из ИД товара и ИД торгового предложения разделенные символом '-'. В прочем, формат идентификатора торгового предложения зависит от конкретной задачи - при желании его можно изменить либо на ИД SKU, либо на строковый код предложения, либо на любой другой параметр, который позволит вам однозначно опознать отдельное предложение.

    В первую очередь на странице подключения комплексного компонента каталога я разбираю текущий URL и результаты передаю в параметры компонента

    $curDir = trim($APPLICATION->GetCurDir(),'/');
    $arCur = explode('/',$curDir);
    $last = end($arCur);
    // strpos($curDir,'/f/') - исключает применение умного фильтра
    $tpl = (strpos($last,'-')===false || strpos($curDir,'/f/')) ? "p/#ELEMENT_CODE#/" : "p/#ELEMENT_CODE#/#PID#/";
    IncludeComponent(
    	"bitrix:catalog", 
    	"catalog", 
    	array(
    		//...
    		"SEF_URL_TEMPLATES" => array(
    			"sections" => "",
    			"section" => "#SECTION_CODE#/",
    			"element" => $tpl,
    			"compare" => "compare/",
    			"smart_filter" => "#SECTION_CODE#/f/#SMART_FILTER_PATH#/",
    		)
    		//...
    	)
    );
    

    Далее в компоненте bitrix:catalog (в файле element.php) обрабатываю полученные данные:

    IncludeComponent(
    	"bitrix:catalog.element",
    	"",
    	array(
    		'SELECTED_SKU_ID' => (isset($arResult['VARIABLES']['PID']) ? $arResult['VARIABLES']['PID'] : ''),
    		//...
    	)
    );
    
    Далее в шаблоне компонента остается обработать параметр $arParams['SELECTED_SKU_ID'] в соответствии с поставленной задачей

    Все записи

    © 2001-2024 Воробьев Александр