Loading

В этой заметке я опишу небольшой прием с Virtuemart 1.1.6, в котором необходимо сделать автоматическое добавление значения в поле Артикул при добавлении товара.

Для реализации этой идеи необходимо сделать кое-какие изменения в файле

administrator\components\com_virtuemart\classes\ps_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 без заполнения соответствующего поля при добавлении товара.