В этой заметке я опишу небольшой прием с Virtuemart 1.1.6, в котором необходимо сделать автоматическое добавление значения в поле Артикул при добавлении товара.
Для реализации этой идеи необходимо сделать кое-какие изменения в файле
administratorcomponentscom_virtuemartclassesps_product.php
Следующий код:
if (empty( $d["product_sku"])) { $vmLogger->err( $VM_LANG->_('VM_PRODUCT_MISSING_SKU',false) ); $valid = false; }
необходимо заменить на:
if (empty( $d["product_sku"])) { $q = "SELECT MAX(product_id) AS product_id FROM #__{vm}_product"; $db->query( $q ); $db->next_record(); $list_sku = intval($db->f("product_id"))+rand(intval($db->f("product_id")), 999999999); $d['product_sku'] = $d['manufacturer_id'].'-'.$list_sku; $valid = true; }
В итоге, получим Артикул вида 8-870268421 без заполнения соответствующего поля при добавлении товара.