Stocks

Documentation en chantier du plugin Stocks

Gestion de quantités en stock sur les produits.

Dépot :
https://zone.spip.org/trac/spip-zone/browser/_plugins_/stocks/trunk

Le plugin étant en développement vous pouvez trouver des informations dans le readme du projet

Les stocks de produit sont gérables depuis une page gestion des stocks
accessible depuis le menu edition.
?exec=gerer_stocks

Chaque ligne du tableau affiche :
-  le titre du produit et son logo au survol
-  le statut du produit
-  le parent /rubrique
-  la reférence
-  livrable / immatériel (et mode de livraison si le plugin livraison est installé)
-  le stock : formulaire permettant d’initialiser un stock avec une valeur, ou de le mettre à jour. Les stocks non initialisés sont signalés.

BOUCLES

Parmètres :
id_stock
objet
id_objet
quantite

Afficher une liste déroulante dans une page panier, si le stock est supérieur a 1, sinon on affiche juste 1.

<td class="prix_unitaire">[(#GET{prix_unitaire}|prix_formater)]</td>
<td class="quantite">
#SET{quantite_choisi,''}
<BOUCLE_enStock(STOCKS){objet}{id_objet}>
#SET{stock, #QUANTITE}
</BOUCLE_enStock>
<B_dispoStock>
	<select name="quantites[#OBJET][#ID_OBJET]">
<BOUCLE_dispoStock(DATA){enum 1,#GET{stock}}{0,50}{si #GET{stock}|>{1}}>
	#SET{quantite_choisi, #ENV{quantites}|table_valeur{#OBJET}|table_valeur{#ID_OBJET}|sinon{#QUANTITE}}
	<option value="#VALEUR"[(#GET{quantite_choisi}|=={#VALEUR}|oui) selected]>#VALEUR</option>
</BOUCLE_dispoStock>
	</select>
</B_dispoStock>
	[(#SET{quantite_choisi,1})]
	#GET{quantite_choisi}
<//B_dispoStock>
</td>
<td class="montant">[(#GET{prix_unitaire}|mult{#GET{quantite_choisi}}|prix_formater)]</td>

BALISES

[(#EN_STOCK)] affiche la quantité dans un contexte sans utiliser de boucle. A noter que sur une page panier EN_STOCK ne fonctionnera pas comme attendu car l’objet en cours du contexte est panier_lien, la balise retourne alors la quantité

Exemple : Page produit pour conditionner l’ajout au panier

<BOUCLE_test_produit_enstock(CONDITION){si #EN_STOCK|>{0}}>
[<div class="ajouter_panier">(#BOUTON_ACTION{<i class="icon-plus icon-white" aria-hidden="true"></i><:paniers:action_ajouter:>,
						#URL_ACTION_AUTEUR{
							remplir_panier,
							produit-#ID_PRODUIT-1,
							#SELF|ancre_url{popup_panier}
						},
						pull-right
					})</div>]
</BOUCLE_test_produit_enstock>
  <button class="btn btn-disable pull-right"><:stocks:stock_epuise:></button>
<//B_test_produit_enstock>

Évolutions

v0.2.5

Supprimer un stock

-  Ajout d’une action pour supprimer un stock
-  Ajout au formulaire gerer stock (utilisé la page d’édition d’un produit et la page des stocks) d’un bouton action de suppression du stock.
-  Rechargement du bloc conteneur quand on agit sur le formulaire pour mettre a jour les infos et passer de créer à éditer/supprimer
-  ajout d’un pagination sur la liste des stocks, on trie par date inverse.

En test
-  Ajout aux utilise le plugin livraison
-  Ajout d’une colonne dans le listing des stocks “Livraison” qui affiche si le produit est immatériel ou livrable
-  dans le cas d’un produit livrable, et si le plugin livraison est installé, on affiche le/s modes de livraison “forcés” si il en a d’associés au produit, sinon on signale que les rêgles de livraison classique s’applique.

0.2.4
-  Ajoute un statut epuisé aux produits
-  Config : Dépublier un produit en le passant en statut épuisé quand son stock est <= 0
-  Au passage d’une commande a payé le stock est mis a jour
-  Repasser l’article en statut publié quand on re-crédite le stock

Discussion

2 discussions

  • 6

    Hello,

    Dans le fichier paquet.xml de ce plugin il y a des “[” au lieu de “]”
    comme par exemple ici :
    <utilise nom="livraison" compatibilite="[2.6.0;["/>

    Je m’en suis aperçue car cela génère une erreur sur la page exec=gerer_stocks (le plugin livraison n’est pas installé sur mon site).

    • Hello,

      Merci du retour, je ne m’en était pas rendu compte effectivement, mon squelette de base installe toute ces dependances ...
      Le plugin est sur qit.spip je crois maintenant, tu peut commiter la modif ? ou je m’en charge ?

      Je crois que livraison a bougé aussi récemment, faut que je vérifie que ça casse pas, et je fais plus beaucoup de spip depuis un an ... donc peut de temps

    • Bonsoir,
      J’ai essayé mais je ne peux pas modifier le code ni ajouter de ticket (je ne suis pas administrateur sur spip git,)

    • Bon j’ai regardé brièvement mais en fait c’est pas du paquet.xml que le problème doit venir car la declaration de bornes de compatibilitée est coorect raport a
      https://plugins.spip.net/redaction-du-paquet-xml.html#compatibilite

      en gros on autorise toutes les version a partir de ... et supérieures

      Je pense que ça doit plutot venir de la boucle condition, sur la page gérer stocks, qui doit toujours retourner vrai , et donc doit t’afficher un truc dans le genre la table livraison n’existe pas ...

      tu peut surcharger cette page en attendant depuis ton squelette (si ce n’est déjà fait ^^), ... je test et commit une version rapide...

    • Bon a priori ça devrait être corrigé en version v0.2.11 par https://git.spip.net/spip-contrib-extensions/stocks/commit/4767e7880f53563340d8eb5ac18b52ddfed3bc22

      Dis moi si ça résout ton erreur.
      Bonne journée

    • Merci bien,
      Pour l’instant je ne vois que les versions suivantes sur la page ?exec=charger_plugin (toutes versions disponibles)
      Stocks 0.0.5 - dev - déjà installé [bizarre... je n’ai pas cette version sur le serveur]
      Stocks 0.2.10 - dev - déjà installé

      et pas la 0.2.11.
      Il faut sans doute attendre la mise à jour du dépôt.

    • Autant pour moi avec git.spip il faut créer un tag pour que le paquet soit mis a jour, c’est fait
      tu devrais avoir la bonne version dispo ... prochainement

    Reply to this message

  • 2

    Bonjour,

    J’utilise Stocks 0.2.10 - dev sur un SPIP 3.2 et j’ai l’impression que quelque chose a changé :
    lorsqu’un produit n’a pas de stock défini, c’est à dire que la quantité disponible n’est pas limitée, l’ajout d’une quantité dans le panier ne se fait pas. Le produit est bien ajouté mais avec la quantité zéro.
    Dans la table stocks la quantité est à zéro même lorsque aucun stock n’a été défini pour le produit.

    Dans mon squelette produit j’avais :
    <BOUCLE_test_produit_enstock(CONDITION) {si #EN_STOCK|!=={0}}>
    à la place de
    <BOUCLE_test_produit_enstock(CONDITION){si #EN_STOCK|>{0}}>

    mais cela ne fonctionne plus.

    si je réinstalle Stocks 0.1.7 - dev ça refonctionne !

    Merci

    • Bonjour,

      Désolé du temps de réponse et merci du signalement, je vais regarder ce qui a pus introduire cet effet de bord. Malheureusement je suis en mission en ce moment, et pas sur le CMS spip donc ça risques de prendre un peut de temps …

    • Bonjour,

      D’accord merci.
      En attendant je remet la dernière version du plugin et je contourne en faisant un test sur le mot-clé du produit pour afficher le #STOCK seulement si le mot clé = 1 et je mets le stock des produits avec mot clé 2 à 1000 (voyons grand!).

      <BOUCLE_enStock0(STOCKS) {objet}{id_objet}>
      #SET{stock, #QUANTITE}
      </BOUCLE_enStock0>
      
      <BOUCLE_test_produit_stock(STOCKS) {id_produit} {quantite>=1}>
      <BOUCLE_test_produit_nostock(PRODUITS) {id_produit} {id_mot=2}>
      </BOUCLE_test_produit_nostock>
      [Il reste <strong>#EN_STOCK</strong>&nbsp;(#EN_STOCK|singulier_ou_pluriel{place,places})]
      <//B_test_produit_nostock>
      </BOUCLE_test_produit_stock>

      dd

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom