Développement de scripts

Localisation

Les scripts en ligne de commande de Dolibarr doivent etre situés dans le répertoire scripts de Dolibarr. Les scripts sont ensuite répartis dans des sous-répertoire en fonction de leur vocation. Un certain nombre de scripts est donc fourni en standard.

Développer un nouveau script

Les scripts étant souvent réalisés pour un besoin spécifiques, il y a de forte chance que vous ne trouviez pas celui qui vous intéresse. Dans ce cas, nous allons vous expliquer comment développer votre propre script.

Etape 1 - Création du squelette du script

La première étape est de reprendre le squelette de script disponible en dev/skeletons/skeleton_scripts.php et de recopier en le renommant, ce script dans le répertoire scripts/monrep/monscript.php

Une fois le script renommé, donnez lui les droits en exécution par la commande:

cd scripts/monrep;
chmod a+rx monscript.php

Ensuite, lancez le pour voir si vous pouvez exécuter un script en mode ligne de commande. Pour cela, taper:

php-cli ./monscript.php
ou
php ./monscript.php

Vous devriez obtenir le resultat suivant:

Usage: monscript.php param1 param2 ...

Etape 2 - Edition du code du script

Modifier le contenu du script pour réaliser les opérations qui vous intéressent. Tout le code qui se trouve entre les balises

// ---------- START OF YOUR CODE HERE

et

// ---------- END OY YOUR CODE

est fourni à titre d'exemple. Vous pouvez le supprimer et y mettre le code qui vous intéresse. Notez que dans cette portion, vous pouvez utiliser la variable $db qui est la ressource d'accès à la base Dolibarr et qui est déjà initialisée. L'objet $conf qui contient la configuration Dolibarr est également disponible.

Exemple insertion d'un produit

Par exemple pour insérer un produit dans la base dolibarr, vous pouvez y placer le code suivant:

// Inclusion classe métier product
require_once(DOL_DOCUMENT_ROOT."/product.class.php");

// Création d'une instance de product
$myproduct=new Product($db);

// Définition des propriétés de l'instance product
$product->ref                = '1234'
$product->libelle            = 'libelle';
$product->price              = '10';
$product->price_base_type    = 'HT';
$product->tva_tx             = '19.6';
$product->type               = 0;
$product->status             = 1;
$product->description        = 'Description';
$product->note               = 'Note';

// Création du produit en base
$idproduct = $product->create('');

// Gestion erreur
if ($idproduct < 0) dolibarr_print_error($db,$product->error);
else print "Produit $idproduct cree.\n";