Последние темы


Отключение страницы товара

  • Здравствуйте форумчане.
    У меня есть интернет-магазин. В него я импорчу из экселя большой список товаров, у которых всего пара полей (название, ед.изм и цена). Это все формируется в прайс-таблицы, которые посетитель может удобно смотреть. Мне по сути не нужны страницы отдельных товаров, потому что их и наполнять то нечем.
    Однако так или иначе не на них можно попасть (хоть и не по прямой ссылке), но через поиск или иными методами.
    Есть ли возможность их отключить? Пересмотрел все настройки, гугл не помог. Знаком кто-нибудь с таким?
    Спасибо.

  • Какой вопрос, такой и ответ - есть возможность.

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

  • Здравствуйте. Товары импортирую из экселя через importX
    Перед импортом все становятся published:0, чтобы исчезнувшие в экселе товары не выводились.
    Вот пример страницы:
    http://бонмастер.рф/br-catalog/stalnye-truby/truba-elektrosvarnaya/
    А вот страница отдельного товара:
    http://бонмастер.рф/br-catalog/rashodnye-materialy/homuty/homuty-neylon-30-h100mm-belye-100sht_.html

    Вывожу примерно так:

    $thisid = $modx->getOption('thisid', $scriptProperties, '');
    $product = $modx->getObject('modResource',$thisid);
    $thisChilds = $modx->getChildIds($thisid,4);
    array_push($thisChilds, $thisid);
    $c = $modx->newQuery('modResource');
    $c->where(array(
      'id:IN' => $thisChilds,
    ));
    $catData = $modx->getCollection('modResource',$c);
    
    $catTree = $modx->getTree($thisid,10000); 
    ?>
    
    <?php
    
    $levelUri = explode("/", $_SERVER["REQUEST_URI"]);
    $levelUri = array_diff($levelUri, array(''));
    $levelUri1 = $levelUri['1'];
    $levelUri2 = $levelUri['2'];
    $levelUri3 = $levelUri['3'];
    
    ?>
    
    <tbody>
    <?
    
    $pids = $modx->getParentIds($thisid, 10, array('context' => 'web'));
    $catTreeFinal = array();
    if (count($pids)==1){
      foreach($catTree as $val){
        $catTreeFinal = $catTreeFinal + $val;
      }
    }else if (count($pids)==2){
      $catTreeFinal = $catTree;
    }else if (count($pids)==3){
      $catTreeFinal[$thisid] = $modx->getTree($thisid,10000);
    }
    
    //print_r($catTreeFinal);
    
    foreach($catTreeFinal as $ckey=>$cval){
    ?>
      <?if (is_array($cval)){?>
      <tr>
        <td colspan="5" class="product-category"><?=$catData[$ckey]->get('pagetitle')?></td>
      </tr>
        <?
        $tdbgcolor=1;
        foreach ($cval as $pcid=>$data){
          if ($catData[$pcid]->get('published')){
          $tdbgcolor=($tdbgcolor==0)?"1":"0";
          ?>
            <!--<tr class="bg<?=$tdbgcolor?>">-->
            <tr class="bgc">
                
                <td class="product-header hidden-xs">
                    <?=$catData[$pcid]->get('pagetitle')?>
                </td>
                <td class="product-price1 hidden-xs">
                <!-- price1 -->
                    <div class="price1"><?=$catData[$pcid]->getTVValue('price1')?></div>
                <!-- price1 -->
                </td>
                <td class="product-price2 hidden-xs hidden-sm hidden-md hidden-lg">
                <!-- price2 -->
                    <div class="price2"><?=$catData[$pcid]->getTVValue('price2')?></div>
                <!-- price2 -->
                </td>
                <td class="product-price3 hidden-xs hidden-sm hidden-md hidden-lg">
                <!-- price3 -->
                    <div class="price3"><?=$catData[$pcid]->getTVValue('price3')?></div>
                <!-- price3 -->
                </td>
                <td class="product-add" onClick="">
                    
                    <div class="visible-xs-block">
                        <b><?=$catData[$pcid]->get('pagetitle')?></b><br />
                        <?php
                        
                            $parent_units = $catData[$ckey]->getTVValue('product_units');
                            $pt;
                            if($parent_units == "mp"){
                                $pt = "м.п.";
                            }elseif($parent_units == "mk"){
                                $pt = "м.кв.";
                            }elseif($parent_units == "p"){
                                $pt = "шт.";
                            }
                        ?>
                        Цена руб. (за 1 ед) - <?=$catData[$pcid]->getTVValue('price1')?><br />
                        <!--Цена руб. (за 1 <?=$pt?>) - <?=$catData[$pcid]->getTVValue('price1')?><br />-->
                        <span class="hidden-xs hidden-sm hidden-md hidden-lg">Цена руб. (за 1 ед.) - <?=$catData[$pcid]->getTVValue('price2')?><br /></span>
                        <span class="hidden-xs hidden-sm hidden-md hidden-lg">Резка - <?=$catData[$pcid]->getTVValue('price3')?><br /></span>
                    </div>
                    
                    <div parent-item-units="<?=$parent_units?>" item-units="<?=$catData[$pcid]->getTVValue('product_units')?>" item-id="<?=$pcid?>" onClick="todoVBR($(this)); $('#orderForm').modal('show');" class="basket order-link">
                        <span class="pointer">Сделать заказ</span>
                    </div>
                    
                </td>
                
            </tr>
          <?}
        }
      }?>
    
    <?}?>
    </tbody>
  • Брр... как страшно выводите. Но, если страницы не опубликованы, то почему они открываются не понятно. Может у вас страница 404 не создана и не настроена? Нужно создать документ "Страница не найдена", сделать чтобы он не показывался в меню (hidemenu) и в настройках сайта назначить его для всех 404.

 

Последние комментарии

  • Что нового в Shopkeeper 4.0.3:

    Исправлено некорректное определение языка по умолчанию В настройках в админке скрываются пароли. Добавлена возможность загружать картинки для категорий. shopkeeper.js - добавлена функция updateProductsPrice() для поддержки текстовых полей для цены. Twig-функции contentList() и includeContent() вынесены в отдельный класс. Добавлено событие "order.before_create". Сортировка всех полей типа контента перетаскиванием. Автоматическое сохранение сортировки полей при сохранении типа контента (не нужно нажимать на отдельную кнопку). В интерфейсе админа добавлено поле поиска для списка Composer-пакетов.

    Скачать можно на главной странице https://modx-shopkeeper.ru/

    Читать далее
  • Вот этот плагин:
    0_1550334109280_screenshot_022.png

    Вроде по умолчанию он выключен. Надо включить. Но плагин работает только на редактирование товаров, при удалении он делалать ничего не будет. Только что проверил кнопку, всё работает корректно, фильтры удаляются и добавляются, когда нужно. Но нужно очищать корзину после удаления товаров (возможно баг).

    Читать далее
  • J

    @Andchir Если нажимаю кнопочку "Обновить значения", то в фильтрах появляются как раз те самые удаленные значения фильтра.. Потом приходится Ручками выбирать эти удаленные значения.
    вот так выглядит Управление фильтрами когда удаляешь ручками: https://yadi.sk/i/_zw64CGkZ_sAYg
    А вот так выглядит когда просто нажимаешь "Обновить значения": https://yadi.sk/i/7WFbXC6xV5sQAw (красным выделено, то что приходится постоянно удалять

    Читать далее
  • J

    Участник @Jokerit написал в TagManager2 отображает в фильтре удаленные значения TV-полей:

    tmRefresh

    Так и не смог найти как включить

    Читать далее