Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Не работает кнопка добавить в корзину?

+11 голос
1
В общем то задача следующая... в комплексном компоненте bitrix.catalog, вывести товары по брендам.
в urlrewrite.php прописываю следующее
array(
    "CONDITION" => "#^/beta/katalog/brand_(.*)/.*#",
    "RULE" => "BRAND_NAME=\$1",
    "ID" => "bitrix:catalog",
    "PATH" => "/beta/katalog/index.php",
  ),
 
благодаря чему получаю в section.php $_REQUEST[‘BRAND_NAME’] => (тут например Sony);
дальше перед вызовом компонента “bitrix:catalog.section”, вставляю следующее 
if(isset($_REQUEST['BRAND_NAME']) && !empty($_REQUEST['BRAND_NAME'])){
                global $arrFilter;
                $arrFilter = array("PROPERTY_MANUFACTURER_VALUE"=>$_REQUEST['BRAND_NAME']);
        $APPLICATION->AddChainItem($_REQUEST['BRAND_NAME'], "".SITE_DIR."katalog/");
        $APPLICATION->SetTitle($_REQUEST['BRAND_NAME'], "".SITE_DIR."katalog/");
                unset($_REQUEST['BRAND_NAME']);
            }
 
ну и само собой дописываю параметр в компонент "SHOW_ALL_WO_SECTION" => “Y”, после чего всё выводится, но не работает кнопка добавить в корзину.... в дебагере видно ошибку 
GET http://******/beta/katalog/brand_****/?BRAND_NAME=*****&action=ADD2BASKET&id=14187&ajax_basket=Y&quantity=1&prop[0]=0 404 (Not Found)
a.ajax @ core_ajax.js:1534
a.ajax.loadJSON @ core_ajax.js:1534
window.JCCatalogSection.SendToBasket @ page_c4b059f83db2c3de36a38c1ca5fc6e81.js143686117163184:2374
window.JCCatalogSection.Basket @ page_c4b059f83db2c3de36a38c1ca5fc6e81.js143686117163184:2419
window.JCCatalogSection.Add2Basket @ page_c4b059f83db2c3de36a38c1ca5fc6e81.js?143686117163184:2357
BX.delegate @ core.js:3875
спросил 28 Июль, 15 от аноним

1 Ответ

00 голосов

Попробуйте 

if(!isset($_REQUEST['ajax_basket']) && isset($_REQUEST['BRAND_NAME']) && !empty($_REQUEST['BRAND_NAME'])){
...

Ну и для отладки - перед этим if - попробуйте вывести $_REQUEST именно при ajax запросе, а потом die(); -- в веб инспекторе можно будет посмотреть, правильно ли попадает код в случае с ajax запросом, и не перезаписываются ли какие-то параметры запроса.
ответил 28 Июль, 15 от root (25,590 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 20 Июнь, 13 от KeiDen (400 баллов)
0 голосов
1 ответ
0 голосов
3 ответов
спросил 15 Фев, 14 от asagava (680 баллов)
0 голосов
6 ответов