Сортировка по SKU артикулам

Тема в разделе "Общие вопросы", создана пользователем Diesel-Casio, 13 сен 2015.

  1. Diesel-Casio

    Diesel-Casio Новичок

    Сообщения:
    7
    Симпатии:
    4
    Как сделать чтобы раздел с товарами по умолчанию была сортировка по артикулам от а до я. http://imchasov.ru/diesel
     
  2. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    221
    В файле /catalog/controller/product/category.php

    Найти
    PHP:
    if (isset($this->request->get['sort'])) {
                
    $sort $this->request->get['sort'];
            } else {
                
    $sort 'p.sort_order';
            }
    Заменить на:
    PHP:
    if (isset($this->request->get['sort'])) {
                
    $sort $this->request->get['sort'];
            } else {
                
    $sort 'p.sku';
            }
    Найти:
    PHP:
    $data['sorts'][] = array(
             
    'text'  => $this->language->get('text_model_desc'),
             
    'value' => 'p.model-DESC',
             
    'href'  => $this->url->link('product/category''path=' $this->request->get['path'] . '&sort=p.model&order=DESC' $url)
           );
    Добавить ниже:
    PHP:
    $data['sorts'][] = array(
      
    'text'  => $this->language->get('text_sku_asc'),
      
    'value' => 'p.sku-ASC',
      
    'href'  => $this->url->link('product/category''path=' $this->request->get['path'] . '&sort=p.sku&order=ASC' $url)
      );

      
    $data['sorts'][] = array(
      
    'text'  => $this->language->get('text_sku_desc'),
      
    'value' => 'p.sku-DESC',
      
    'href'  => $this->url->link('product/category''path=' $this->request->get['path'] . '&sort=p.sku&order=DESC' $url)
      );

    В файле /catalog/model/catalog/product.php

    Найти и перед:
    PHP:
    'p.date_added'
    Добавить :
    PHP:
    'p.sku',

    В файле /catalog/language/russian/product/category.php

    Найти:
    PHP:
    $_['text_model_desc']   = 'Модель (Я - А)';
    Ниже добавить:
    PHP:
    $_['text_sku_asc']    = 'Артикул (А- Я)';
    $_['text_sku_desc']   = 'Артикул (Я - А)';
     
    Reactive Snail, Romans, Ant0IIIkA и ещё 1-му нравится это.
  3. Ant0IIIkA

    Ant0IIIkA Новичок

    Сообщения:
    1
    Симпатии:
    1
    На некоторых версиях движка не прокатит)
    Нужно изменить:
    Код:
    $data['sorts'][] = array(
    на:
    Код:
    $this->data['sorts'][] = array(
    Тогда пойдет!
    К примеру, у меня на 1.5.6.4 пришлось менять сей строчку, но RoS огромное спасибо за исходник)
     
    Romans нравится это.
  4. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.447
    Симпатии:
    786
    В основном все решения для 2х. Темы для 1.5 помечены маркером "1.5"
    Но иногда как вы и написали, достаточно простой замены на $this->data
     
  5. Fortoons

    Fortoons Новичок

    Сообщения:
    12
    Симпатии:
    0
    Этого мало, нужно в это условие:
    PHP:
    if (isset($data['sort']) && in_array($data['sort'], $sort_data))
    Добавить:

    PHP:
    elseif ($data['sort'] == 'p.sku') {
             
    $sql .= " ORDER BY CAST(" $data['sort'] . " as unsigned)";
                    }