Ou mettre un patch pour récupérer tous les produits dans un entrepot donné

Bonjour,

Je me demande ou mettre un patch pour récupérer via l’api rest l’ensemble des produits dans une entrepôt avec leur stock désiré et stock minimum.
Je vois que ces informations sont dans la table llx_product_warehouse_properties.
Évidemment il y a plusieurs choix, ou par la requête product? ou par celle du warehouse?id=.
Si quelqu’un a une idée du lieu d’implantation de ce petit patch je suis preneur, car il est impossible avec l’Api actuelle d’avoir ces informations dont on a absolument besoin pour un développement en interne.
Je suis preneur de toute info
Merci d’avance

Bonsoir,

Doublons de message ?

Cordialement,
Gaëtan.

Bonjour,

J’ai essayé cette méthode mais en réalité elle marche avec 1 et non pas le numéro de l’entrepôt. De plus elle ne renvoie pas la limité désirée pas plus que la limite d’alerte. Or c’est justement de cela dont j’ai besoin pour notre association.
Ce qui manque vraiment ce serait une méthode capable de remonter les éléments de la table llx_product_warehouse_properties, je cherche donc si quelqu’un a déjà fait un patch ou une méthode à ajouter dans product/stock/class/entrepot.class.php et qu’il est simple de réutiliser.
Merci d’avance

Bonjour,

Finalement comme je ne trouvais pas d’autres solutions j’ai fait un petit ajout car j’en avais réellement besoin pour un outil particulier en API REST. (je sais c’est pas bien mais bon, dès fois il le faut bien !)
Pour récupérer les différents produits dans un entrepôt ‹ id › avec leur seuil d’alerte et désiré lors qu’une requete [get]/warehouses/{id}, il faut aller dans le fichier product/stock/class/entrepot.class.php
Dans la fonction « fetch » à la ligne 476 il faut insérer ceci :

    /**
    * @@@@@@@@@@@ le rajout pour la liste des productions lorsqu'on demande un entrepot particulier
    */
	$sql_listP  = "SELECT fk_product, seuil_stock_alerte, desiredstock";
	$sql_listP .= " FROM ".MAIN_DB_PREFIX."product_warehouse_properties";
	$sql_listP .= " WHERE fk_entrepot = '".$id."'";
	$result = $this->db->query($sql_listP);
	if ($result)
	{
		$num = $this->db->num_rows($result);
        $i = 0;
        if ($num > 0) {
            while ($i < $num)
            {
                $ligne = $this->db->fetch_row($result);
                $this->listProductWarehouse[$ligne[0]] = array('alerte'=>$ligne[1],'attendu'=>$ligne[2]);
                $i++;
            }
        $this->db->free($result);
	    }
	}
    /**
    * @@@@@@@@@@@ fin du rajout
    */

Il faut penser à déclarer cette nouvelle propriété à cet objet, donc ligne 112 (ou avant) il faut ajouter
/**
* La liste des produits de l’entrepot en question
*/
public $listProductWarehouse = [];

normalement cela ajoute une liste de tous les produits contenus dans cet entrepôt
Voilà, si ça peut servir à quelqu’un …

1 « J'aime »

Hello,
Merci pour ce bout de code. Malheureusement il ne fonctionne pas chez moi. En quel version êtes vous ?
Brice.

Bonjour,
cela marche bien en V14 . JE vais passer bientôt en V15, je ferai un patch si besoin.
Cordialement
Michael CIvet