Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Opencart 1.5.1 (catalog): показ SKU в списке товаров (product/category)

Просмотров: 15673 RSS 22
Howto » OpenCart

Для 1.5.1.3. Отличается ли для 1.5.1.2 - не смотрел. Не должно, но номера строк придется искать самостоятельно.

Внизу есть ссылка на скачивание модидифицированных файлов на свежеустановленном Опенкарте.

commit 1e06f21174b1fb07414cbe0cf2eeee0627b75e2f
Author: Ruslan Brest <rb@labtodo.com>
Date:   Mon Oct 17 13:24:33 2011 +0300
    [+] catalog: Добавлен показ SKU в списке товаров (product/category)
diff --git a/upload/catalog/controller/product/category.php b/upload/catalog/controller/product/category.php
index 500e6bb..1be14db 100644
--- a/upload/catalog/controller/product/category.php
+++ b/upload/catalog/controller/product/category.php
@@ -188,6 +188,7 @@ class ControllerProductCategory extends Controller {
 					'product_id'  => $result['product_id'],
 					'thumb'       => $image,
 					'name'        => $result['name'],
+					'sku'         => (empty($result['sku'])) ? '' : $this->language->get('text_sku') .' '. $result['sku'],
 					'description' => mb_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100, 'UTF-8') . '&hellip;',
 					'price'       => $price,
 					'special'     => $special,
diff --git a/upload/catalog/language/english/product/category.php b/upload/catalog/language/english/product/category.php
index def6f88..f3ddd08 100644
--- a/upload/catalog/language/english/product/category.php
+++ b/upload/catalog/language/english/product/category.php
@@ -7,6 +7,7 @@ $_['text_empty']        = 'There are no products to list in this category.';
 $_['text_quantity']     = 'Qty:';
 $_['text_manufacturer'] = 'Brand:';
 $_['text_model']        = 'Product Code:'; 
+$_['text_sku']          = 'SKU:';
 $_['text_points']       = 'Reward Points:'; 
 $_['text_price']        = 'Price:'; 
 $_['text_tax']          = 'Ex Tax:'; 
diff --git a/upload/catalog/language/russian/product/category.php b/upload/catalog/language/russian/product/category.php
index 762c91e..cfea2b9 100644
--- a/upload/catalog/language/russian/product/category.php
+++ b/upload/catalog/language/russian/product/category.php
@@ -7,6 +7,7 @@ $_['text_empty']        = 'В этой категории нет товаров.
 $_['text_quantity']     = 'Кол-во:';
 $_['text_manufacturer'] = 'Производитель:';
 $_['text_model']        = 'Модель:';
+$_['text_sku']          = 'SKU (Артикул):';
 $_['text_points']       = 'Бонусные баллы:';
 $_['text_price']        = 'Цена:';
 $_['text_tax']          = 'Без НДС:'; 
diff --git a/upload/catalog/view/theme/default/template/product/category.tpl b/upload/catalog/view/theme/default/template/product/category.tpl
index 37ff9c0..909edc4 100644
--- a/upload/catalog/view/theme/default/template/product/category.tpl
+++ b/upload/catalog/view/theme/default/template/product/category.tpl
@@ -72,7 +72,7 @@
       <?php if ($product['thumb']) { ?>
       <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
       <?php } ?>
-      <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
+      <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a><?php echo $product['sku']; ?></div>
       <div class="description"><?php echo $product['description']; ?></div>
       <?php if ($product['price']) { ?>
       <div class="price">

Модифицированные файлы:

(Opencart 1.5.1.3) catalog: Добавлен показ SKU в списке товаров (product/category) 17

Применять с осторожностью: вы рискуете затереть свои изменения, внесенные ранее.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Комментариев: 22
  1. На OpenCart v1.5.1 все проделал...но изменений нет(

  2. 2011-12-04 в 01:08:22 | Ruslan Brest

    Не может быть.

    А как у вас выглядит строка #75 в catalog/view/theme/default/template/product/category.tpl ? У меня в листинге она перенеслась и не подкрасилась. (нумерация строк из моего листинга - может отличается в 1.5.1)

  3. До 75 -

    После 75 -

    76 -

  4. Я заливал файлы с архива...

  5. 2011-12-04 в 01:57:31 | Ruslan Brest

    http://dl.dropbox.com/u/11071820/tmp/oc1513-catalog-sku.png

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

    У меня сегодня через край работы, так что я помочь не смогу.

  6. А как такое же сделать для пока SKU в карточке товара? И еще вопрос, как убрать "Бонусные баллы:" из странички товара?

  7. 2011-12-07 в 07:04:26 | Ruslan Brest

    Deus, принцип тот же самый, только не для product/category, а для product/product.

    Бонусные баллы - в product.tpl найти и закомментировать. Ну или удалить из шаблона. Найти можно по слову "reward", если не ошибаюсь.

  8. да, спасибо, уже сделал.

  9. а как добавить SKU в корзине?

    ---

    p.s купил "Quickcheckout", как добавить SKU туда тоже?

  10. 2011-12-25 в 04:20:42 | Ruslan Brest

    @bobjr, лучше бы на картинках, потому что далеко не сразу понятно, где именно, на каких страницах, что убрать и что добавить, и куда именно. В Quickcheckout - насколько понял, надо колонку в списке товаров добавить? Или вместо модели SKU выводить? В корзине, вероятно, тоже в табличке со списком покупок.

    Ну в принципе всё аналогично: в контроллере вытягиваем и добавляем переменную для передачи во View (возможно, изменив для этого запрос к базе в файлах модели). А во View - выводим эту переменную туда, куда нам надо.

  11. @Ruslan Brest, чет не получилось.

    прописал в controller>cart.php

    'sku' => (empty($result['sku'])) ? '' : $this->language->get('text_sku') .' '. $result['sku'],

    и в category>cart.tpl

  12. и в category>cart.tpl

  13. код режет блог)

  14. Здравствуйте, можете поподробней объяснить что именно в product/product нужно поменять, чтобы в карточке товара отображался ску? Заранее большое спасибо

  15. 2012-02-13 в 05:01:26 | Ruslan Brest

    Открыть catalog/view/theme/default/template/product/product.tpl

    Найти место, где надо вывести артикул.

    И написать там PHP код:

    {?php echo $product_info['sku']; ?}

    Только фигурные скобки в начале и конце строки на обычные замените.

  16. Ошибка в коде статьи. Там нужно добавить в category.tpl не:

    + <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>

    а вот так :

    <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
    <?php echo $product['sku']; ?></div>

    в файле у Вас так и сделано, а в статье не так:)

    ----

    RB: В статье это есть, просто из-за лишнего перевода строки эта часть не подкрасилась и перенеслась на след. строку как обычный текст. Поправил, спасибо.

  17. Спасибо большое. Коротко и ясно.

  18. Здравствуйте. Очень помогла ваша статья. Но у меня еще проблема в том чтобы сделать все так же и в акциях. Добавлял аналогичный код в:

    catalog/controller/product/special.php

    catalog/language/russian/product/special.php

    catalog/view/theme/default/template/product/special.tpl

    Ничего не выводиться. Даже ошибка не выводится. Помогите если знаете.

  19. Все решил. Не те данные выводил.

  20. 2013-12-02 в 00:29:29 | Евгений

    Как задать SKU отдельным блоком CSS. Спасибо.

  21. 2013-12-02 в 06:03:40 | Ruslan Brest

    Да как всегда - с вёрсткой разбираться. Я в этом не силён, обратитесь к верстальщикам.

  22. Подскажите, а как можно в списке товаров (product/category) вывести список заголовков опций,

    У меня опцией заведены размеры. Доступные значения же надо вывести в каталоге.

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

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

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)