var cartid = //тут получаем айди товара в корзине, не айди товара!
<a class="product-del" href="?basket-del='+cartid+'"></a>
Нюанс в том, что cartid- это НЕ ID ТОВАРА, а ID этого товара в корзине
По ссылке товар из корзины удаляется и далее стандартная перезагрузка страницы, так как нажали на тег a))) Можно было бы и аджакс применить, чтоб страница не перезагружалась, но в моем случае компонент sale.order.ajax- тут аджаксом пересобирать корзину выше моих сил, тем более разработчики обещали сделать и удаление и плюс-минус, зачем зря напрягаться, подождемс)))
Дополнительно, можем проверять наличие текущего товара в корзине:
Код
if(isset($arResult['BASKET'][ $arResult['ID'] ])){
echo "У вас в корзине {$arResult['BASKET'][ $arResult['ID'] ]['QUANTITY']} единиц этого товара";
}
Тут один недостаток есть правда, с включенным кэшированием это работать не будет, т.к. корзина не учитывается в ключе кэша. Как варианты решения: 1) Собирать данные корзины перед вызовом компонента и передавать их в $arParams (например в файле element.php для комплексного компонента). Плюсы: легко и быстро Минусы: кэш раздуется 2) Мудохаться c переносом шаблона в component_epilog (https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2995&LESSON_PATH=3913.4565.4790.478...) Плюсы: более правильно с тчк зрен архтктр бтркс Минусы: кэш раздуется, но меньше. и нуднее делать. 3) Отключить нахрен кэш. Комментировать не буду, не одобряю, но как вариант.
Сергей Вольвич написал: Кто придет с гугла в 2017, вот решение))): в header:
Код
if (IntVal( $_GET [ 'basket-del' ])> 0 )
{
if (CModule::IncludeModule( "sale" ))
CSaleBasket::Delete(IntVal( $_GET [ 'basket-del' ]));
}
в шаблон товара:
Код
var cartid = //тут получаем айди товара в корзине, не айди товара!
<a class = "product-del" href= "?basket-del='+cartid+'" > </ a >
Нюанс в том, что cartid- это НЕ ID ТОВАРА, а ID этого товара в корзине
По ссылке товар из корзины удаляется и далее стандартная перезагрузка страницы, так как нажали на тег a))) Можно было бы и аджакс применить, чтоб страница не перезагружалась, но в моем случае компонент sale.order.ajax- тут аджаксом пересобирать корзину выше моих сил, тем более разработчики обещали сделать и удаление и плюс-минус, зачем зря напрягаться, подождемс)))
Огромное спасибо. Помогло решить задачу удаления товара из корзины!!!
Ещё бы неплохо увидеть обоснование необходимости такой манипуляции при отсутствии нормального описания в документации по модулю sale... Вдруг это как-нибудь не по битриксовски...