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

updated on 9 April 2020

Discussion

Une discussion

  • 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

Ajouter un commentaire

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