Garyk01
Постоялец
- Регистрация
- 5 Окт 2012
- Сообщения
- 82
- Реакции
- 30
- Автор темы
- #1
При создании нового товара данное решение автоматически присваивает артикул товару (product_sku) - J2.5.11 + VM2.0.20b
1) В БД ничего не меняем.
2) Открываем файл "ваш_сайт/administrator/components/com_virtuemart/views/product/tmpl/product_edit_information.php"
3. Строку 54:
меняем на:
Арктикул получается - случайное уникальное число - например 827611
Арктикул получается в таком виде - например 3-195756, где первая цифра - id производителя, вторая часть - случайное уникальное число
Арктикул получается в таком виде - например 1-3-236190, где первая цифра - id производителя, вторая - id категории, третья часть - случайное уникальное число
Внимание!
Если используется второй или третий вариант, то при создании нового товара арктикул будет в виде 0-869720 или 0-0-869720 так как еще нет ни производителя , ни категории.
Поэтому после привязки производителя и категории к новому товару - нужно удалить арктикул и нажать кнопку "Сохранить" - присвоится новый арктикул с учетом производителя и категори. Аналогично можно проделать и со старыми артикулами - чтобы привести все к одной структуре.
P.S. Сохраняйте копию файла "ваш_сайт/administrator/components/com_virtuemart/views/product/tmpl/product_edit_information.php" перед обновлением версии VM - после обновления нужно будет восстановить изменения в этом файле
Приведу еще один вариант - на любителя:
Арктикул получается в таком виде - например 01-03-0023, где первая цифра - id производителя, вторая - id категории, третья - id товара + 1
1) В БД ничего не меняем.
2) Открываем файл "ваш_сайт/administrator/components/com_virtuemart/views/product/tmpl/product_edit_information.php"
3. Строку 54:
PHP:
<input type="text" class="inputbox" name="product_sku" id="product_sku" value="<?php echo $this->product->product_sku; ?>" size="32" maxlength="64" />
PHP:
<?php //AUTO product_sku
echo '<input type="text" class="inputbox" name="product_sku" id="product_sku" value="';
if ($this->product->product_sku) $val_sku= $this->product->product_sku;
else {
$db_sku = JFactory::getDBO();
$q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT 1';
$db_sku->setQuery($q_sku);
$db_sku->next_record();
$val_sku = intval($this->product->virtuemart_product_id)+rand(intval($this->product->product_id), 999999);
}
echo $val_sku.'" size="32" maxlength="64" />';
?>
PHP:
<?php //AUTO product_sku
echo '<input type="text" class="inputbox" name="product_sku" id="product_sku" value="';
if ($this->product->product_sku) $val_sku= $this->product->product_sku;
else {
$db_sku = JFactory::getDBO();
$q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT 1';
$db_sku->setQuery($q_sku);
$db_sku->next_record();
$list_sku = intval($this->product->virtuemart_product_id)+rand(intval($this->product->product_id), 999999);
$list_manufacturer = intval($this->product->virtuemart_manufacturer_id); // id производителя
$val_sku = $list_manufacturer.'-'.$list_sku; // арктикул
}
echo $val_sku.'" size="32" maxlength="64" />';
?>
PHP:
<?php //AUTO product_sku
echo '<input type="text" class="inputbox" name="product_sku" id="product_sku" value="';
if ($this->product->product_sku) $val_sku= $this->product->product_sku;
else {
$db_sku = JFactory::getDBO();
$q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT 1';
$db_sku->setQuery($q_sku);
$db_sku->next_record();
$list_sku = intval($this->product->virtuemart_product_id)+rand(intval($this->product->product_id), 999999);
$list_manufacturer = intval($this->product->virtuemart_manufacturer_id); // id производителя
$list_category = intval($this->product->virtuemart_category_id); // id категории
$val_sku = $list_manufacturer.'-'.$list_category.'-'.$list_sku; // арктикул
}
echo $val_sku.'" size="32" maxlength="64" />';
?>
Внимание!
Если используется второй или третий вариант, то при создании нового товара арктикул будет в виде 0-869720 или 0-0-869720 так как еще нет ни производителя , ни категории.
Поэтому после привязки производителя и категории к новому товару - нужно удалить арктикул и нажать кнопку "Сохранить" - присвоится новый арктикул с учетом производителя и категори. Аналогично можно проделать и со старыми артикулами - чтобы привести все к одной структуре.
P.S. Сохраняйте копию файла "ваш_сайт/administrator/components/com_virtuemart/views/product/tmpl/product_edit_information.php" перед обновлением версии VM - после обновления нужно будет восстановить изменения в этом файле
Приведу еще один вариант - на любителя:
PHP:
<?php //AUTO product_sku
echo '<input type="text" class="inputbox" name="product_sku" id="product_sku" value="';
if ($this->product->product_sku) $val_sku= $this->product->product_sku;
else {
$db_sku = JFactory::getDBO();
$q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT 1';
$db_sku->setQuery($q_sku);
$db_sku->next_record();
$list_sku = intval($this->product->virtuemart_product_id) + 1; // id товара + 1
$list_manufacturer = intval($this->product->virtuemart_manufacturer_id);// id производителя
$list_category = intval($this->product->virtuemart_category_id); // id категории
$val_sku = '0'.$list_manufacturer.'-0'.$list_category.'-00'.$list_sku; // арктикул
}
echo $val_sku.'" size="32" maxlength="64" />';
?>