nikkione

Ошибка сортировки по названию+дублирование товара на страницах пагинации категорий.

Рекомендуемые сообщения

nikkione    0

Приветствую! Столкнулся с определенными проблемами. Много гуглил( и продолжаю)), нашел аналогичные вопросы,но не решения, поэтому решил обратиться за помощью на форум.

Собственно по теме:

Стоит OcStore v1.5.5.1.1. Своя тема. С целью упрощения сайта, убрал возможность выбора сортировки у пользователя. Соответсвенно осталась только сортировка по умолчанию. Насколько понял и пробовал менять,задается она вот тут catalog\controller\product\category.php 

       if (isset($this->request->get['sort'])) {
            $sort = $this->request->get['sort'];
        } else {
            $sort = 'p.sort_order';
        }

        if (isset($this->request->get['order'])) {
            $order = $this->request->get['order'];
        } else {
            $order = 'ASC';
        }

Планировал поставить сортировку по имени товара(по алфавиту) по  умолчанию. Соответсвенно поменял p.sort_order на pd.name

Вроде все нормально. Сработало. Но оказалось что некоторые товары отображаются не в том порядке.(например. КРЕМ-МАСЛО ДЛЯ ТЕЛА «ВИНОГРАДНОЕ ОМОЛАЖИВАЮЩЕЕ» Отображается раньше чем КРЕМ-МАСЛО ДЛЯ ТЕЛА «АНТИЦЕЛЛЮЛИТНОЕ ЦИТРУСОВОЕ» ). п Проверил сортировку по цене,все работает корректно.

Полез в БД, при выполнении сортировки там, теже проблемы(.КРЕМ-МАСЛО ДЛЯ ТЕЛА «ВИНОГРАДНОЕ ОМОЛАЖИВАЮЩЕЕ» Отображается раньше чем КРЕМ-МАСЛО ДЛЯ ТЕЛА «АНТИЦЕЛЛЮЛИТНОЕ ЦИТРУСОВОЕ) тоже самое в админке.

В чем может быть проблема?куда копать?проблемы с кодировкой базы?

 

Вторая часть.

На странице категории,когда товары превышают лимит на странице и появляется пагинация. При переходе на вторую страницу,там могут отображаться теже товары что и на первой,при этом другие товары которые должны там быть,как бы пропадают.Если убрать лимит отображения товаров,чтобы все помещались на одной странице то все в порядке.

Эта ошибка возникает также при сортировке с pd.name. 

 

Хух. вроде подробно описал. надеюсь на помощь! Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
nikkione    0

Прошу помочь...все ещё актуально

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
nikkione    0

Ни у кого не появилось идей почему может быть так?

взываю к помощи..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
nikkione    0

Собственно первый вопрос решен.

Как оказалось проблема в настройках хостинга. Хостер сообщил что на сервере стоит ограничение  пол количеству символов, которые сортируются. При кодировке UTF-8 = первых 15 символов. Собственно так оно и сортирует. Не знаю как на остальных хостингах. Но на моем (hoster.by) сообщили что эта настройка для сервера не меняется. Вот так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ах вот оно что, такая же ерунда. Как на этот хостинг перелез, то заметил, что что-то не так с отображением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От shoputils

      Скачать/Купить дополнение


      Яндекс.Касса + Деньги
      Данный модуль из ocStore 2.3 для оригинального OpenCart 2.3 и его сборок (Opencart.Pro и других сборок). Только для 2.3.x.
      В ocStore данный модуль уже интегрирован, на ocStore его "ставить" НЕ НАДО!
       
      Установка крайне простая:
      1. Скопировать содержимое директории upload в корневую директорию сайта.
      2. Если требуется функционал отсроченной оплаты и/или отображать иконки "Оплатить заказ" в ЛК покупателя, если оплата заказа прервана, то для корректной работы данного функционала установите в установщике дополнений ocmod (Extension Installer) из директории ocmod дистрибутива модификатор ocstore_yk_laterpay.ocmod.xml. Не забудьте обновить кеш ocmod в менеджере дополнений (Modifications). На нестандартные темы, возможно, придется корректировать ocmod-файл.
      3. Чтобы "служебные" методы оплаты не мозолили глаза - рекомендую установить из директории ocmod дистрибутива модификатор ocstore_hide_permission.ocmod.xml (не забывайте про кеш ocmod после установки модификатора). Затем перейдите в "Система -> Пользователи -> Группы пользователей" (Settings -> Users -> Users Groups) и для нужной группы пользователя в 3-м блоке "Скрыть дополнения" установите галки на следующие модули:
      extension/payment/ocstore_yk_company_AB extension/payment/ocstore_yk_company_AC extension/payment/ocstore_yk_company_EP extension/payment/ocstore_yk_company_GP extension/payment/ocstore_yk_company_MA extension/payment/ocstore_yk_company_MC extension/payment/ocstore_yk_company_MP extension/payment/ocstore_yk_company_PB extension/payment/ocstore_yk_company_PC extension/payment/ocstore_yk_company_QW extension/payment/ocstore_yk_company_SB extension/payment/ocstore_yk_company_WM extension/payment/ocstore_yk_physical_AC extension/payment/ocstore_yk_physical_PC 4. Если используется стандартное оформление заказа - для того чтобы на предпоследнем шаге оформления заказа при выборе методов оплаты отображались платежные иконки, потребуется корректировка файла catalog/view/theme/{Ваша_Тема}/template/checkout/payment_method.tpl
      После строк
      <?php echo $payment_method['title']; ?> <?php if ($payment_method['terms']) { ?> (<?php echo $payment_method['terms']; ?>) <?php } ?> добавьте следующие строки:
      <?php if (isset($payment_method['description'])) { ?> <br /><small><?php echo $payment_method['description']; ?></small> <?php } ?> Если используется модуль "Регистрация и быстрый заказ Simple" (simplecheckout) - данную правку делать не надо.
       
      Настройка модуля:
      Перейдите в настройки модуля, предварительно его инсталлировав, если вы этого еще не сделали.
      Пробегитесь по вкладкам. Все должно быть интуитивно понятно. Обращу внимание, что методы оплаты данного модуля включаются во вкладке "Настройка платежей".
      Вкладка "Информация" содержит инфо о том, какие действия нужно выполнить на стороне платежной системы.
      Рекомендую включить журнал модуля (вкладка "Журнал") для логирования взаимодействия с платежной системой на время тестирования и обкатки.
      Добавил shoputils Добавлено 06.07.2017 Категория Платежные системы Системные требования Сайт разработчика https://opencart.market Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore Несовместим OpenCart.Pro, ocShop Opencart.pro 2.3  
    • От Mirosha
      Задача для опытного разработчика на OpenCart и ocStore и хорошо знакомого с модулем SEOpro уверенно знающего как реализовать данную задачу в кратчайшие сроки!

      Тестовый сайт http://test.abello.ru
      Разделы/подразделы нужно оставить все как есть сейчас например: http://test.abello.ru/katalog/torty/detskie-torty/malchikam/

      Нужно, чтобы у товара http://test.abello.ru/katalog/torty/detskie-torty/detskiy-tort-vypusknoy-jurnal.html был только один URL и был он расположен только здесь: http://test.abello.ru/produkt/detskiy-tort-vypusknoy-jurnal.html

      При нахождении пользователя в карточке товара в хлебных крошках должен быть пусть который пользователь фактически проделал на пути к этой карточке товара, т.е.
      Главная > Торты > Детские > Мальчикам > Детский торт "Выпускной журнал".
        Файлы модуля SEOpro вложены к заданию.   Готов рассмотреть Ваши предложения реализации данной задачи с указанием в ответном сообщении сроков и стоимости реализации данной задачи.

      Есть и другие задачи.
      seopro.zip
    • От VladimirV
       
      Доброго времени суток. Хочу вывести минимальную цену в категорию, что то делаю не так, прошу вашей помощи.
      ocStore 2.3.0.2.2
      в catalog>model>catalog>product добавил:
      public function getMinPriceFromCategory($category_id) { $query = $this->db->query("SELECT LEAST(p.price,IFNULL(ps.price, p.price)) min_price FROM `" . DB_PREFIX . "category` c RIGHT JOIN `" . DB_PREFIX . "product_to_category` p2c ON p2c.category_id = c.category_id RIGHT JOIN `" . DB_PREFIX . "product` p ON p2c.product_id = p.product_id LEFT JOIN `" . DB_PREFIX . "product_special` ps ON p.product_id = ps.product_id AND ps.date_end >= NOW() AND ps.date_start <= NOW() WHERE c.category_id = " . (int)$category_id . " AND p.status = 1 AND c.status = 1 ORDER BY min_price LIMIT 0,1 "); if ($query->num_rows) { return $query->row['min_price']; } else { return 0; } } в cotroller>product>category, после  $data['categories'][] = array(   добавил:
      'min_price' => $this->model_catalog_product->getMinPriceFromCategory($result['category_id']), в шаблоне category.tpl:
      <?php echo $min_price; ?> Итог: "Undefined variable: min_price". Понимаю что делаю не правильно, но знаний не хватает, понять где и что делаю не так. Прошу указать что нет так делаю, заранее спасибо.
    • От MrNix21
      Добрый день, форумчане! Делаю мультимагазин на ocStore 2.3.0.2.3 на региональных поддоменах и возник такой вопрос - Как создать разные статьи одной тематики но с одинаковыми УРЛ? Допустим, надо сделать страницу "Контакты". Делаю несколько страниц для каждого региона, включаю статьи только в необходимых магазинах, и хочу чтобы у них был одинаковый адрес, не считая поддомена. Т.е. хочу чтобы было - https://msk.site.ru/kontakty, https://spb.site.ru/kontakty и т.д. ЧПУ делаю через SEO Менеджер, ставлю полные пути с поддоменами и протоколом https://, но не работает, выходит "Страница не найдена". Если ставлю обычный протокол http:// то работает. Как быть? Кто с этим уже сталкивался?
    • От alexandr12345
      Добрый день! 
      Необходимо в определенную категорию вывести товары, которые состоят в другой категории.
      Данный шаблон лучше реализовать на ID категории.
       
      То есть, для каждой категории на сайте я могу установить персонализированный шаблон и вот для одной категории мне нужно прописать, чтобы в этой категории выводились все товары из категории №5 например.
       
      Знаю, что можно просто добавить все нужные товары в эту категорию и ничего не мудрить с шаблонами, но нужно именно так, чтобы в эту категорию брались товары из другой.
       
      Вот существующий шаблон.
      Айди нужно категории 238.
      <?php $config = $this->registry->get('config'); ?> <?php $id_slider = '111'; ?> <?php echo $header; ?> <ul class="breadcrumb"> <?php foreach ($breadcrumbs as $i=> $breadcrumb) { ?> <li><?php if($i+1<count($breadcrumbs)) { ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } else { ?><?php echo $breadcrumb['text']; ?><?php } ?></li> <?php } ?> </ul> <?php echo $content_top; ?> <div class="container category-page parket"> <div class="row"><?php echo $column_left; ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"> <div class="cattitle"> <h1><?php echo $heading_title; ?></h1> <div class="blocks hidden-xs"> <?php } ?> </div> <?php } ?> </div> </div> <?php if ($products_sub) { ?> <div class="product-grid"> <div class="row flex-container"> <?php foreach ($products_sub as $product_sub) { ?> <div class="col-xs-12 col-sm-25 product-container"> <div class="product-block"> <?php if ($product_sub['thumb']) { ?> <div class="image"> <a href="<?php echo $product_sub['href']; ?>" style="background:transparent; box-shadow:none;"> <img src="<?php echo $product_sub['thumb']; ?>" title="<?php echo $product_sub['name']; ?>" alt="<?php echo $product_sub['name']; ?>" /> <div class="more">Посмотреть все цвета и варианты</div> </a> </div> <?php } ?> <span class="product-name hidden"><?php echo $product_sub['name']; ?></span> <div class="prod-model"> <a href="<?php echo $product_sub['href']; ?>" style="background:transparent; box-shadow:none;"><span class="model"><?php echo $product_sub['model']; ?></span></a> </div> <?php if ($product_sub['price']) { ?> <div class="price"> <span class="button typecatalog modal-raschet">Рассчитать</span> </div> <?php } ?> </div> </div> <?php } ?> </div> </div> <div class="row"> <div class="text-center"><?php echo $pagination; ?></div> </div> <?php } ?> <?php if (!$categories && !$products_sub) { ?> <p><?php echo $text_empty; ?></p> <div class="buttons"> <div class="pull-right"><a href="<?php echo $continue; ?>" class="btn btn-primary"><?php echo $button_continue; ?></a></div> </div> <?php } ?> </div> <div class="clearfix"></div> <?php if ($description) { ?> <div class="description" <?php if ($designer || (isset($inzh_systems_sub) && ($inzh_systems_sub))) echo 'style="text-align: justify; padding: 0 2em 0 1em;"'; ?>> <p><?php echo $description; ?></p> </div> <?php } ?> <?php echo $column_right; ?></div> </div> <?php echo $footer; ?> Я буду очень признателен за помощь!!!
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу