OpenCart 3.0.2.0 - как отображать артикул на страницах категорий и продуктов

В OpenCart 3.0.2.0 я пытаюсь заставить страницы категорий и продуктов отображать переменную «SKU» для каждого продукта. Переменная находится в базе данных вместе с другими данными о продукте, но по какой-то нечестивой причине OpenCart не имеет возможности отображать ее. Вы можете отображать название продукта, цену, наличие на складе и т. Д., Но не артикул.

Кто-нибудь знает, как это сделать конкретно в OC 3? Они перешли с PHP на Twig для шаблонов, и я не уверен, что делаю не так, но метод, который я использовал в OC 2.0, НЕ работает в 3.0.

{{ product.href }} displays the product URL
{{ product.description }} displays the description
{{ product.price }} displays the price
...but {{ product.sku }} or {{ sku }} or {{ product['sku'] }} does NOTHING.

person TomJones999    schedule 25.09.2017    source источник


Ответы (2)


Попробуйте что-то вроде кода OpenCart по умолчанию. Это нормально работает в последней версии opencart 3.0.2.0

Для страницы категории:

Шаг 1. Откройте файл catalog/controller/product/category.php

Найти:

'rating'      => $result['rating'],

Добавить после:

'sku'         => $result['sku'],


Шаг 2. Откройте файл: catalog\language\en-gb(your language)\product\category.php

Найти:

$_['text_price']        = 'Price:';

Добавить после:

$_['text_sku']        = 'SKU:';


Шаг 3. Откройте файл: catalog/view/theme/default(your theme)/template/product/category.twig

Найти:

<p>{{ product.description }}</p>

Добавить после:

{% if product.sku %}
 <p>{{ text_sku }} {{ product.sku }}</p>
{% endif %}



Для страницы продукта:

Шаг 1. Откройте файл catalog/controller/product/product.php

Найти:

$data['heading_title'] = $product_info['name'];

Добавить после:

$data['sku'] = $product_info['sku'];


Шаг 2. Откройте файл: catalog\language\en-gb(your language)\product\product.php

Найти:

$_['text_model']               = 'Product Code:';

Добавить после:

$_['text_sku']               = 'SKU:';


Шаг 3. Откройте файл: catalog/view/theme/default(your theme)/template/product/product.twig

Найти:

<li>{{ text_model }} {{ model }}</li>

Добавить после:

{% if sku %}
<li>{{ text_sku }} {{ sku }}</li>
{% endif %}
person HDP    schedule 27.09.2017
comment
Спасибо, сработало отлично! (Также работал для отображения количества запасов на странице категории, используя тот же метод). - person TomJones999; 03.10.2017

Вы можете создать свою модификацию и установить ее в opencart, чтобы она отображала единицы SKU на странице товаров.

Лучше вывести интерфейс модификации в виде заполнителя, чтобы он отображал именно то, что вы хотите в своей теме.

Например, эта модификация объединяет код отображения SKU страницы продукта и выводит его в файл темы /.../ products.twig, но ищет:

<!-- product_sku -->

Так что вам не нужно гадать и возиться с разными вещами, просто поместите этот тег в свой файл темы и запустите модификацию.

ссылка для модификации: https://github.com/nabtron/opencart-ocmod-sku-product

Поддержка и разъяснения по адресу: https://nabtron.com/opencart-ocmod-product-sku/

(не забудьте заархивировать сам xml файл (а не папку)).

person Nabeel Khan    schedule 30.03.2019
comment
Привет, ребята, у меня не сработало, sku не появляется -? знаете, почему это не работает для версии 3.0.3.1? Спасибо за помощь! - person Naveen DINUSHKA; 05.06.2019
comment
Это также может отличаться в зависимости от вашего шаблона дизайна. Что именно вы пробовали? - person Nabeel Khan; 14.06.2019