Перейти к содержимому


Фотография
- - - - -

Как не терять трафик из товарных карточек, если товара нет в наличии?

search search url

Лучший Ответ mr.varhola , 22 February 2024 - 17:11

У меня недавно появилась подобная задача, решил её в шаблоне тизера, ну и в нужных шаблонах модуля item по аналогии:

<?//  Проверяем доступное количество товара, скрываем варианты которых нет в наличии или удаляем карточку товара целиком если нет в доступности ни одного варианта

$CB_price = 'b446414f-849a-4684-8015-252eda980a98';   //  Прописываем ID своего элемента
$CB_SKU = $this->_item->getElement($CB_price)->data()->variations;

$noUseVariant = array_shift($CB_SKU);  //  Удаляем первый элемент массива, я так сделал у себя так как у товаров есть вариации и стоимость с остатками заполняются только у них.

$cvvInStock = 0;
foreach($CB_SKU as $currVariant){
    if($currVariant['_balance']['value'] == '0'){
        $cvv = $currVariant['ab454a37-1fb1-4774-b017-2211be448553']['value'];?>
        <script>
            jQuery(".teaserId-<?=$item->id;?> input[value='<?=$cvv;?>']").next().addClass('dspn');  //  Скрываем вариации товара которых нет в наличии
        </script>
    <?} else if($currVariant['_balance']['value'] != '0'){
        if($cvvInStock == 0){
            $cvv = $currVariant['ab454a37-1fb1-4774-b017-2211be448553']['value']; ?>
            <script>
                setTimeout(function (){
                    jQuery(".teaserId-<?=$item->id;?> input[value='<?=$cvv;?>']").next().click();  //  Кликаем на вариацию которая есть в наличии
                },3000);
            </script>
        <?}
        $cvvInStock = 1;
    }
}
if($cvvInStock == 0){?>
    <script>
        jQuery(".teaserId-<?=$item->id;?>").remove();  //  Удаляем карточку тизера в случае если нет в наличии ни одной вариации товара
    </script>
<?}?>

Таким образом убрал вывод вариаций товара которых нет в наличии, и если у товара нет ни одной вариации - скрыл тизер целиком. Проблему с пагинацией решил автоподгрузкой товаров при пролистывании до конца списка. 
В моем случае это решение подошло так как по каждой вариации товаров остатки подгружаются автоматически два раза в сутки и вручную клиент этого не сделает никак.


Карточка товара, при этом, остается на месте  (fingers)


.teaserId-<?=$item->id;?> - это класс родительского блока карточки товара

 

Перейти к сообщению


Сообщений в теме: 8

#1 Александр Иванов VL.

Александр Иванов VL.

Отправлено 03 February 2017 - 13:49

Как не терять трафик из товарных карточек, если товара нет в наличии?
Здравствуйте!
Тема из этой статьи https://siteclinic.r...net-v-nalichii/
 
Вопрос: Как сделать чтобы товары «Нет в наличии» не выводились (скрыть) в карточке товара и в поиске по сайту тоже?
Но при этом при поиске через "поисковики яндекса, гугла и т.д." - страничка отображалась (выводилась) без перенаправления.
Возможно такое?
Еще интересует чтобы работал и в "Полнотекстовый поиск с разбиением по категориям и релевантной сортировкой" http://forum.jbzoo.c...em-po-kategori/

  • 0

#2 SmetDenis

SmetDenis

Отправлено 04 February 2017 - 23:51

Таких функций у нас не предусмотрено.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Александр Иванов VL.

Александр Иванов VL.

Отправлено 05 February 2017 - 10:07

Жаль что его пока нет(((, нужно будет как то его сделать.


  • 0

#4 CB9TOIIIA

CB9TOIIIA

Отправлено 06 February 2017 - 13:50

"Как сделать чтобы товары «Нет в наличии» не выводились (скрыть) в карточке товара и в поиске по сайту тоже?" Но при этом при поиске через "поисковики яндекса, гугла и т.д." - страничка отображалась (выводилась) без перенаправления.

 

 

Хм... так у Связного и МТС вроде.

 

Пока на ум приходит - смотреть referrer и менять state - но вот как его обратно убрать потом. Хотя... если if условие на referer сделать если только.


  • 0

#5 Александр Иванов VL.

Александр Иванов VL.

Отправлено 14 February 2017 - 17:59

Такое точно есть у http://www.nix.ru 

Например:

1. В поиске яндекса

https://yandex.ru/se... характеристики

2. Переход из поиска яндекса
3. Поиск на сайте http://www.nix.ru 

Сообщение отредактировал Александр Иванов VL.: 14 February 2017 - 18:03

  • 0

#6 CB9TOIIIA

CB9TOIIIA

Отправлено 17 March 2017 - 10:52

Реализовал: Механизм скрытия товара из категорий при остатке 0, при этом сама страница товара остается доступной по прямому URL, для того чтоб не терять индекс ПС  (fingers)


Сообщение отредактировал CB9TOIIIA: 17 March 2017 - 12:45

  • 0

#7 mr.varhola

mr.varhola

Отправлено 31 January 2024 - 21:17

А где сам механизм то?))

как реализовал?


  • 1

#8 CB9TOIIIA

CB9TOIIIA

Отправлено 20 February 2024 - 08:11

А где сам механизм то?))

как реализовал?

 

7 лет назад назад что-то делал xD на самом деле на странице категории такой ID скрывался (версткой или программно) - т.е. пользователь не видел его. Т.е. правки были на category макете, тем самым по прямому URL он как бы оставался, но ни через поиск - ни через категорию не находился.


  • 0

#9 mr.varhola

mr.varhola

Отправлено 22 February 2024 - 17:11   Лучший Ответ

У меня недавно появилась подобная задача, решил её в шаблоне тизера, ну и в нужных шаблонах модуля item по аналогии:

<?//  Проверяем доступное количество товара, скрываем варианты которых нет в наличии или удаляем карточку товара целиком если нет в доступности ни одного варианта

$CB_price = 'b446414f-849a-4684-8015-252eda980a98';   //  Прописываем ID своего элемента
$CB_SKU = $this->_item->getElement($CB_price)->data()->variations;

$noUseVariant = array_shift($CB_SKU);  //  Удаляем первый элемент массива, я так сделал у себя так как у товаров есть вариации и стоимость с остатками заполняются только у них.

$cvvInStock = 0;
foreach($CB_SKU as $currVariant){
    if($currVariant['_balance']['value'] == '0'){
        $cvv = $currVariant['ab454a37-1fb1-4774-b017-2211be448553']['value'];?>
        <script>
            jQuery(".teaserId-<?=$item->id;?> input[value='<?=$cvv;?>']").next().addClass('dspn');  //  Скрываем вариации товара которых нет в наличии
        </script>
    <?} else if($currVariant['_balance']['value'] != '0'){
        if($cvvInStock == 0){
            $cvv = $currVariant['ab454a37-1fb1-4774-b017-2211be448553']['value']; ?>
            <script>
                setTimeout(function (){
                    jQuery(".teaserId-<?=$item->id;?> input[value='<?=$cvv;?>']").next().click();  //  Кликаем на вариацию которая есть в наличии
                },3000);
            </script>
        <?}
        $cvvInStock = 1;
    }
}
if($cvvInStock == 0){?>
    <script>
        jQuery(".teaserId-<?=$item->id;?>").remove();  //  Удаляем карточку тизера в случае если нет в наличии ни одной вариации товара
    </script>
<?}?>

Таким образом убрал вывод вариаций товара которых нет в наличии, и если у товара нет ни одной вариации - скрыл тизер целиком. Проблему с пагинацией решил автоподгрузкой товаров при пролистывании до конца списка. 
В моем случае это решение подошло так как по каждой вариации товаров остатки подгружаются автоматически два раза в сутки и вручную клиент этого не сделает никак.


Карточка товара, при этом, остается на месте  (fingers)


.teaserId-<?=$item->id;?> - это класс родительского блока карточки товара

 

Прикрепленные изображения

  • 22-02-2024 19-11-10.jpg

Сообщение отредактировал mr.varhola: 22 February 2024 - 17:12

  • 1





Темы с аналогичным тегами search, search url

Click to return to top of page in style!