Перейти к содержанию
Форум поддержки пользователей VamShop

Автоматический артикул


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

Очень хочется такое решение для вамшоп2 :(

 

Изначально поиск не приспособлен искать товары по артикулу.
Пара легких изменений в коде поможет решить эту проблему.

Шаг 1

в файле admin/includes/classes/categories.php после
 

if (!$products_id || $products_id == '') {
$new_pid_query = vam_db_query("SHOW TABLE STATUS LIKE '".TABLE_PRODUCTS."'");
$new_pid_query_values = vam_db_fetch_array($new_pid_query);
$products_id = $new_pid_query_values['Auto_increment'];
}

добавить строку
 

$sql_data_array['products_model'] = $products_id;

Перед

//duplicate image if there is one
if ($product['products_image'] != '') { .....

добавить
 

$new_artikul = $dup_products_id;
vam_db_query("UPDATE ".TABLE_PRODUCTS." SET products_model = '".$new_artikul."' WHERE products_id = '".$dup_products_id."'");

Шаг 2.

Выполняем запрос к БД
 

update products set products_model = products_id

 

Шаг 3 (необязательно).

Чтобы артикул лучше смотрелся, вставляем пробел между знаками.
Например, вместо 101024 будет 101 024.

В файле includes/modules/product_info.php строку
 

$info->assign('PRODUCTS_MODEL', $product->data['products_model']);

заменить на
 

$info->assign('PRODUCTS_MODEL', number_format($product->data['products_model'], 0, '', ' '));

Что мы имеем в итоге: product_model у нас становится равной по значению product_id, т.е. если порядковый номер вашего товара 241, то и артикул (product_model) тоже будет равен 241. Нумерация уникальна и всегда идет по возрастанию, поэтому можно не опасаться дубликатов номеров.


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

Шаг 4.

Выводим артикул в карточке товара рядом с названием.

В файле шаблона /templates/ваш_шаблон/module/product_info/product_info_v1.html найти метку
 

{$PRODUCTS_NAME}


и рядом (или строкой ниже) добавить
 

if $PRODUCTS_MODEL!=''}({#model#} {$PRODUCTS_MODEL}){/if}

Шаг 5.

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

В файле шаблона /templates/ваш_шаблон/module/product_listing/product_listing_columns.html найти метку
 

{$module_data.PRODUCTS_NAME}


и я рядом (или строкой ниже) добавить:
 

{if $module_data.PRODUCTS_MODEL!=''}(#{$module_data.PRODUCTS_MODEL}){/if}

 

И последнее место, где можно добавить вывод кода - templates/шаблон/module/new_products_default.html, там тоже нужно найти метку
 

{$module_data.PRODUCTS_NAME}


и я рядом (или строкой ниже) добавить:
 

{if $module_data.PRODUCTS_MODEL!=''}(#{$module_data.PRODUCTS_MODEL}){/if}

 

Более вручную вам не придется заполнять поле "код товара" при добавлении нового товара в магазин, оно всегда будет заполнено автоматом. 

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

Есть поле псевдоним, которое автоматически заполняется, можно попробовать его использовать и под артикул.

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

Просто число с автоувеличением на единицу, которое потом можно вывести на карточку товара или использовать в поиске по сайту, зачастую клиенту удобнее назвать трехзначный номер, чем запоминать название товара.

Если я один такой, кому это нужно, то может быть и не стоит заморачиваться, но как мне кажется фишка удобная для движка.

 

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

Метка для артикула и так есть - {product_model}

А вот заполнения артикула пока нет.

Ведь он вообще необязательный, если нет у Вас артикула, не проще его вообще не испольльзовать?!

А если есть, тогда зачем автоматический артикул в виде числа?!

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

Добрый день. Скажите почему код {product_model} не срабатывает в шаблоне my-product-listing который Вы рекомендовали?

Спасибо. 

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

Здравствуйте!

Эта отдельная метка, она обычно используется для конкретного товара, т.е. в шаблоне карточки товара.

Внутри категории нужно выводить так: {$node.model}

По аналогии с другими данными в этом шаблоне.

Изменено пользователем VaM
Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...