Une astuce pour automatiser la création du numéro de référence des produits dans Virtuemart, lorsque cette référence ne doit pas avoir de signification particulière, tout en évitant le risque de doublon.

Elle est dérivée de la discussion lancée par "zekiller" sur le forum Joomla! http://forum.joomla.fr/showthread.php?t=90074 et de la solution qu'il a lui-même proposée.

Tout d'abord, la ligne 220 du fichier "administrator/components/com_virtuemart/html/product.product_form.php" (en version 1.1.3 de VM)

<input class="inputbox" name="product_sku" size="32" maxlength="64" type="text" />

va être remplacée par

<input class="inputbox" name="product_sku" size="32" maxlength="64" type="text" />

Il faut maintenant définir la variable "$product_sku" utilisée.

Ceci se passe un peu plus haut vers la ligne 196, juste avant

?>
<table class="adminform">

Pour créer la référence, j'utilise un horodatage sous forme "20090403-154351" qui est la conversion de l'instant d'ouverture de la fenêtre de création de produit, l'année étant sur quatre chiffres, l'heure définie sur 24h et non 12.
Le code à insérer est celui-ci :

/* 030409 attribution d'un numéro automatique sous la forme 20090403-154532 */
$product_sku = $db->sf("product_sku") ;
if ($product_sku =="") {
$product_sku = date('Ymd-His');
}

Cela peut être modifié, notamment avec l'ajout de caractères alphabétiques, mais si l'on veut réduitre les risques de doublons, il faut au minimum utiliser un code incluant la date et l'heure, sans nécessairement utiliser les secondes.