302 редирект при обращении к странице оформления заказа checkout

Добрый день

Обнаружил интересный момент на каждой странице сайта присутствует ссылка на оформление заказа вида site/checkout однако код ответа по этой ссылке не 200 а 302 и стоит редирект на корзину site/cart

Кто то сталкивался с подобной проблемой? Можно ли как то отключить этот редирект? И зачем он нужен?

Для чистоты эксперимента проверял на демо магазине https://demo.cs-cart.ru/stores/36869a0451439452/checkout/

Проверял через сервис demo.cs-cart.ru - Проверка HTTP заголовков сайта, просмотр HTML кода интернет страниц

Если в корзине нет товаров, про при переходе на чекаут происходит редирект в корзину с сообщением "Вы не можете оформить заказ, так как ваша корзина пуста"

Вы можете проверить это перейдя по ссылке из вашего примера

А как-то можно отключить этот редирект? Получается что поисковые роботы все время видят ссылку с 302 редиректом

отключите эту ссылку для роботов вообще. не нужно им даже пробовать зайти по этой ссылке.

3 лайка

На кнопке уже висит nofollow, т.е. роботы не должны переходить по ссылке. А страницы чекаута и корзины вовсе не идексируются т.к. на них добавлен noindex

Кстати не подскажите, а где это изменить, чтобы поставить follow noindex ?

Проще закрыть через robots.txt, любая модификация от сторонних разработчиков могла ее открыть.

Зачем нужно позволять роботу переходить по этой ссылке?

Кнопку в блоке корзины можно изменить в файле design/themes/[тема]/templates/blocks/cart_content.tpl

Подскажите а можно как то сделать, чтобы если в корзине нету товаров то ссылка сразу была на корзину без редиректа, а если есть товары то на чекаут ?

В том же файле замените

<a href="{"checkout.checkout"|fn_url}" rel="nofollow" class="ty-btn ty-btn__primary">{__("checkout")}</a>

на

<a href="{if $smarty.session.cart.amount}{"checkout.checkout"|fn_url}{else}{"checkout.cart"|fn_url}{/if}" rel="nofollow" class="ty-btn ty-btn__primary">{__("checkout")}</a>

Спасибо огромное!!! Вопрос решен!

Рад был помочь! :slight_smile:

Добрый день.
Тоже решил навести порядок, убрать 302 временный редирект, но в файле design/themes/[тема]/templates/blocks/cart_content.tpl немного другой код

<a href="{"checkout.cart"|fn_url}" rel="nofollow" class="ty-btn ty-btn__secondary">{__("view_cart")}</a>

Заменил на
<a href=“{if $smarty.session.cart.amount}{“checkout.checkout”|fn_url}{else}{“checkout.cart”|fn_url}{/if}” rel=“nofollow” class=“ty-btn ty-btn__primary”>{__(“checkout”)}

Не помогло, все равно с /checkout/ на /cart/ 302 редирект.
Подскажите, пожалуйста, что я делаю не так?

1 лайк

Может Настройки → Оформление заказа → Разрешить оформление заказа только из корзины включено?

image

Галка не стоит