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


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

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

search search url

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

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

  1. <?// Проверяем доступное количество товара, скрываем варианты которых нет в наличии или удаляем карточку товара целиком если нет в доступности ни одного варианта
  2.  
  3. $CB_price = 'b446414f-849a-4684-8015-252eda980a98'; // Прописываем ID своего элемента
  4. $CB_SKU = $this->_item->getElement($CB_price)->data()->variations;
  5.  
  6. $noUseVariant = array_shift($CB_SKU); // Удаляем первый элемент массива, я так сделал у себя так как у товаров есть вариации и стоимость с остатками заполняются только у них.
  7.  
  8. $cvvInStock = 0;
  9. foreach($CB_SKU as $currVariant){
  10. if($currVariant['_balance']['value'] == '0'){
  11. $cvv = $currVariant['ab454a37-1fb1-4774-b017-2211be448553']['value'];?>
  12. <script>
  13. jQuery(".teaserId-<?=$item->id;?> input[value='<?=$cvv;?>']").next().addClass('dspn'); // Скрываем вариации товара которых нет в наличии
  14. </script>
  15. <?} else if($currVariant['_balance']['value'] != '0'){
  16. if($cvvInStock == 0){
  17. $cvv = $currVariant['ab454a37-1fb1-4774-b017-2211be448553']['value']; ?>
  18. <script>
  19. setTimeout(function (){
  20. jQuery(".teaserId-<?=$item->id;?> input[value='<?=$cvv;?>']").next().click(); // Кликаем на вариацию которая есть в наличии
  21. },3000);
  22. </script>
  23. <?}
  24. $cvvInStock = 1;
  25. }
  26. }
  27. if($cvvInStock == 0){?>
  28. <script>
  29. jQuery(".teaserId-<?=$item->id;?>").remove(); // Удаляем карточку тизера в случае если нет в наличии ни одной вариации товара
  30. </script>
  31. <?}?>

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


Карточка товара, при этом, остается на месте  (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

mr.varhola сказал(а) 31 Янв 2024 - 20:17:

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

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

 

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


  • 0

#9 mr.varhola

mr.varhola

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

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

  1. <?// Проверяем доступное количество товара, скрываем варианты которых нет в наличии или удаляем карточку товара целиком если нет в доступности ни одного варианта
  2.  
  3. $CB_price = 'b446414f-849a-4684-8015-252eda980a98'; // Прописываем ID своего элемента
  4. $CB_SKU = $this->_item->getElement($CB_price)->data()->variations;
  5.  
  6. $noUseVariant = array_shift($CB_SKU); // Удаляем первый элемент массива, я так сделал у себя так как у товаров есть вариации и стоимость с остатками заполняются только у них.
  7.  
  8. $cvvInStock = 0;
  9. foreach($CB_SKU as $currVariant){
  10. if($currVariant['_balance']['value'] == '0'){
  11. $cvv = $currVariant['ab454a37-1fb1-4774-b017-2211be448553']['value'];?>
  12. <script>
  13. jQuery(".teaserId-<?=$item->id;?> input[value='<?=$cvv;?>']").next().addClass('dspn'); // Скрываем вариации товара которых нет в наличии
  14. </script>
  15. <?} else if($currVariant['_balance']['value'] != '0'){
  16. if($cvvInStock == 0){
  17. $cvv = $currVariant['ab454a37-1fb1-4774-b017-2211be448553']['value']; ?>
  18. <script>
  19. setTimeout(function (){
  20. jQuery(".teaserId-<?=$item->id;?> input[value='<?=$cvv;?>']").next().click(); // Кликаем на вариацию которая есть в наличии
  21. },3000);
  22. </script>
  23. <?}
  24. $cvvInStock = 1;
  25. }
  26. }
  27. if($cvvInStock == 0){?>
  28. <script>
  29. jQuery(".teaserId-<?=$item->id;?>").remove(); // Удаляем карточку тизера в случае если нет в наличии ни одной вариации товара
  30. </script>
  31. <?}?>

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


Карточка товара, при этом, остается на месте  (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!