Voila ma gestion de stock

79 messages dans ce sujet

Posté(e) · Signaler ce message

Merci à Willy, Jcdhl, Atila-diffusion et Vidubz001 pour leur précieuse collaboration.

LIbre à vous de l'utiliser. Le principe de cette gestion est de gérer sur la même page tous les articles, ou de gérer sur la fiche produit.

Avant de commancer faites des sauvegardes de vos fichiers.

--Créez un champ "stock" dans la table "peel_produits" (type int(5), attributs UNSIGNED,Null Non.

Dans le fichier administrer/modeles/haut.php, rajouter la ligne

<a href="<?php echo $wwwroot?>/administrer/stock.php">Gérer les stocks</a>
Dans le répertoire administrer mettez le fichier "stock.php"ci-dessous
<?php

include("../configuration.inc.php");


necessite_identification();


necessite_priv("admin");


$DOC_TITLE = "Gérer les stocks";


include("modeles/haut.php");

?>

<?php

if ($_POST["submit_ajouter"])

{

	$id=$_POST["temoin"];

	$qty=$_POST["ajouter_".$id];

	mysql_query("UPDATE peel_produits SET stock=stock+$qty WHERE id='$id'");

}

if ($_POST["submit_supprimer"])

{

	$id=$_POST["temoin"];

	$qty=$_POST["supprimer_".$id];

	mysql_query("UPDATE peel_produits SET stock=stock-$qty WHERE id='$id'");

}

if (!isset($tab_error))

{

	$tab_error=array();

}


?>

<div align="center"><font style="font-size:13px"><b>Gestion des Stocks </b></font>

<br><br>

<?php

$result_peel_produits=mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM peel_produits"));

if ($result_peel_produits[0]==0)

{

	?>

	<div align="center">Aucun produit pour le moment, gestion des stocks fermée !</div>

	<?php

}

else


{

?>

<form style="margin:Opx" method="post" action="#" name="form_stock">

<table align="center" cellpadding="4" cellspacing="1" border="0">

	<tr bgcolor="#666666">

		<td align="left" style="color:#FFFFFF">Apercu</td>

		<td align="left" style="color:#FFFFFF">Produit</td>

		<td align="left" style="color:#FFFFFF">Stock</td>

	</tr>

	<?php

	$cpt=0;

	$query_stock = mysql_query("SELECT * FROM peel_produits");

	while ($result_peel_produits = mysql_fetch_assoc($query_stock))

	{

		if ($cpt%2==0)

		{

			$bgcolor="CCCCCC";

		}

		else

		{

			$bgcolor="DEDEDE";

		}

	?>

	<tr bgcolor="<?=$bgcolor;?>">

		<td>

	<img src="<?php echo $repertoire_images?>/<?php echo $result_peel_produits['image1'] ?>" valign="top" width="150" alt="" /></td>


		<td style="color:000000; font-size:14px" align="left" width="250" nowrap><b><?php echo $result_peel_produits["nom"];?></b>

		</td>

		<td align="left">

		<font style="font-size:13px"><b>En stock:</b> <? if ($result_peel_produits["stock"]==0) { ?><font color="#FF0000"><? } ?><?php echo $result_peel_produits["stock"];?><? if ($result_peel_produits["stock"]==0) { ?></font><? } ?></font><br><br>

		Ajouter:    

		<input type="text" value="1" name="ajouter_<?php echo $result_peel_produits["id"];?>">		  

		<input type="submit" value="ok" name="submit_ajouter" onClick="document.getElementById('temoin').value='<?php echo $result_peel_produits["id"];?>'"><br>

		Supprimer: <input type="text" value="1" name="supprimer_<?php echo $result_peel_produits["id"];?>">  

		<input type="submit" value="ok" name="submit_supprimer" onClick="if (this.value><?php echo $result_peel_produits["stock"];?>)

		{ alert('Vous ne pouvez pas supprimer plus que vous n\'avez en stock !'); return false;

		} else {

		 document.getElementById('temoin').value='<?php echo $result_peel_produits["id"];?>'; }">

		</td>

	</tr>

	<?php

	$cpt++;

	}

	?>

</table>

<input type="hidden" name="temoin" value="0">

</form>

<?

}

?>

<br>
A ce stade vous avez dans le backoffice un lien "Gérer les stocks"que vous pouvez utiliser pour obtenir ceci stock.jpg Bon c'est tout pour ce soir, je vais préparer la suite. Finalement je continu la suite Dans index.php vers lignes 36 environ, rajouter dans le select: stock vers lignes 92 modifiez le formulaire comme ceci pour afficher le stock dans la liste déroulante
					<form method="post" action="<?php echo $wwwroot?>/achat/caddie_ajout.php" name="ajout<?php echo $prod['id'] ?>">


<input type="hidden" name="stock" value="<? echo $prod['stock']; ?>">

<span class="impression" >

<? if ($prod['stock']>0){

?>

Quantité : 

<select name="qte" class="formulaire1">

						<?php 

// Affiche la quantité en stock

							 $i=1;

						while ($i<=$prod['stock'])

			   {

						echo "<option value=\"$i\">$i</option>";

							 $i++;

			   }

			   }

?>

</select>
Dans achat/modeles/produit_details.php vers lignes 130 faire la même modif Dans achat/index.php vers lignes 130 même modif et vers lignes 74 rajouter dans le select p.stock Dans achat/produit_details.php versligne 48 dans le select rajouter p.stock J'espére n'avoir rien oublié Un petit probléme à résoudre.L'on peut commander plus que le stock. Donc pour corriger ce probméme faites ceci: Dans le fichier lib/class/caddie.php ligne 23 remplacez la fonction ajout par celleci
	function ajout(&$produitid, $quantite,$stock) {

	/* Ajoute un article au caddie et met à jour le montant total */

		if (isset($produitid)) {


			if (! isset($this->articles[$produitid])) {


				$this->articles[$produitid] = 'O';


			}


			$this->articles[$produitid] += $quantite;

			if ($this->articles[$produitid]>$stock)

			{

			$this->articles[$produitid]=$stock;

			}


		}

	}
Dans fichier achat/caddie_ajout.php on ajoute $_REQUEST['stock']
<?php 


include("../configuration.inc.php");


$_SESSION['caddie']->ajout($_REQUEST['id'], $_REQUEST['qte'], $_REQUEST['stock']);

$_SESSION['caddie']->nettoie();

$_SESSION['caddie']->recalc_total();


$HTTP_REFERER = $_SERVER['HTTP_REFERER'];


if (! empty($HTTP_REFERER)) {

	header("Location: $HTTP_REFERER");

} else {

	header("Location: $wwwroot/index.php");

}

?>
Je peux donc tester lors de l'ajout si la quantité voulue n'est pas supérieure à la quantité disponible. Dans fichier achat/modeles/caddie.php, il faut chercher la ligne : <input type="text" size="3" name="quantite[]" value="<?php echo $quantite?>" /> Et la remplacer par :
<select name="quantite[]" class="formulaire1">

<?php // Affiche la quantité en stock

$i=1;

while ($i<=$prod['stock'])

{

echo "<option value=\"$i\"";

if ($i==$quantite) {echo" selected";}

echo " >$i</option>";

$i++;

}

?>

</select>
De cette façon, on a une liste déroulante avec la quantité en stock. La condition sert à sélectionner la quantité qu'on a ajouté. Il ne faut pas oublier de modifier la fonction "recupere_articles_caddie" dans le fichier lib/fonctions/fonctions.php vers ligne 414 pour avoir le stock disponible. rajoutez "stock" dans le select
$requete = "SELECT id, reference, nom, promotion, prix, tva, stock FROM peel_produits WHERE id IN ($in_clause)";
ahhhhhhhhh j'oubliais le plus important: mettre à jour les stocks au moment de la commande et si stock = 0, alerte émail et le produit n'est plus en ligne. Dans lib/fonctions/fonctions.php dans function cree_commande à la fin juste entre mysql_query($requete); et return $commandeid; insérez le code suivant
											$st = mysql_fetch_array(mysql_query("SELECT stock FROM  peel_produits WHERE id = '".$article['id']."'"));



				$stock = $st['stock'] - $_SESSION['caddie']->articles[$article['id']];


				if ($stock >= 0) { $stock_à_update = $stock; } else {	$stock_à_update = 0;	}

				if ($stock <= 0) 

				{


				// Mail à l'adresse de l'admin pour recharger le stock


				$Stock_a_zero = "Attention: Le produit '".addslashes($article['nom'])."' n'as plus de stock"; 

				mail($support,

				"Alerte Stock",

				$Stock_a_zero,

				"FROM:$support");

				// on fera ensuite une propriété en ligne ou non quand pas en stock

				$requete_non_online =	 "UPDATE peel_produits SET etat = 0 WHERE id = '".$article['id']."'";

				mysql_query($requete_non_online);	

				}


				$requete_stock =	 "UPDATE peel_produits SET stock = $stock_à_update WHERE id = '".$article['id']."'";

				mysql_query($requete_stock);	

				}

		}

	}
A ce stade on gére le stock sur une page à part. On peut rajouter une gestion sur la fiche produit. Ci-joint les modifications dans administrer/produits.php pour le stock à partir des fiches produits Ajouter ce qui suit vers ligne 348
<tr>

<td class="normal">Quantité en stock:</td>

<td class="normal">

<input type="texte" name="stock" value="<?php echo vb($frm['stock']) ?>" style="width: 60%" class="formulaire1" />

</td>

</tr>
Puis Modifier la fonction insere_produit par
valide($frm['on_special']);

valide($frm['etat']);

$nom = addSlashes($frm['nom']);

$description = addSlashes($frm['description']);

$descriptif = addSlashes($frm['descriptif']);

/*ajoute le produit dans la table produits */

$qid = mysql_query("

INSERT INTO peel_produits (

reference

, nom

, description

, prix

, descriptif

, image1

, image2

, image3

, image4

, pdf

, lang

, promotion

, stock

, tva

, etat

, date_insere

, date_maj

, on_special)

VALUES (

'$frm[reference]'

, '$nom'

, '$description'

, '$frm[prix]'

, '$descriptif' 

, '$img1'

, '$img2'

, '$img3'

, '$img4'

, '$pdf'

, 'fr'

, '$frm[promotion]'

, '$frm[stock]'

, '$frm[tva]'

, '$frm[etat]'

, now()

, now()

, '$frm[on_special]')

");
Et modifier la fonction maj_produit par
valide($frm['on_special']);

$nom = addSlashes($frm['nom']);

$description = addSlashes($frm['description']);

$descriptif = addSlashes($frm['descriptif']);

/* Met à jour la table produits */

$qid = mysql_query("

UPDATE peel_produits SET

reference = '$frm[reference]'

,nom = '$nom'

,description = '$description'

,prix = '$frm[prix]'

,descriptif = '$descriptif' 

,image1 = '$img1'

,image2 = '$img2'

,image3 = '$img3'

,image4 = '$img4'

,pdf = '$pdf'

,lang = 'fr'

,promotion = '$frm[promotion]'

,stock = '$frm[stock]'

,tva = '$frm[tva]'

,etat = '$frm[etat]'

,date_maj = now()

,on_special = '$frm[on_special]'

WHERE id = $id

");
A partir de là on peut gérer la quantité en stock dans les deux pages (produits et stock) Notre ami Castalibre, nous donne un script pour mettre à jour le stock si la commande est annulée Dans le fichier administrer/commandes.php, on peut remplacer la fonction efface commande par celle ci :
function efface_commande($id) {

/* Efface la commande dont le n° est $id */


	global $wwwroot;

	$articles_commande=mysql_query("select * from peel_commandes_articles where commande_id='$id'");

	$nombre_articles=mysql_num_rows($articles_commande);

	for($i=1;$i<=$nombre_articles;$i++) {

		$fiche=mysql_fetch_object($articles_commande);

		$produit=$fiche->produit_id;

		$quantite=$fiche->quantite;

		$article_maj=mysql_query("update peel_produits set stock=stock+$quantite where id='$produit'");

	}



	$efface_commandes = mysql_query("DELETE FROM peel_commandes WHERE id = '$id'");

	$efface_commandes_articles = mysql_query("DELETE FROM peel_commandes_articles WHERE commande_id = '$id'");

	include("modeles/commande_efface.php");

}
Si le script au moment de la commande met l'article "hors ligne" si stock=0, il faut remettre cet article en ligne puisque stock positif
	// on remet le produit en ligne  quand  stock positif

				$requete_online = "UPDATE peel_produits SET etat =1 WHERE id = '".$produit."'";

				mysql_query($requete_online);

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bravo pour cette gestion de stock. :blink:

Joli travail. ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

merci pour cette gestion de stock. J'ai un petit souci pour la modification du formulaire au niveau de la ligne 180 j'ai toujour un message d'érreur. povez vous m'en dire un peut plus à se niveau?

merci.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

merci pour cette gestion de stock. J'ai un petit souci pour la modification du formulaire au niveau de la ligne 180 j'ai toujour un message d'érreur. povez vous m'en dire un peut plus à se niveau?

merci.

je suppose que c'est pour index.php ton probléme.

t'as bien copier/coller le code. C'est quoi le message d'erreur?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

a l'ouverture de la page "index.php j'ai ça:

Parse error: parse error, unexpected ':' in d:\www\fantaisie-net.fr\htdocs\index.php on line 180

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

a l'ouverture de la page "index.php j'ai ça:

Parse error: parse error, unexpected ':' in d:\www\fantaisie-net.fr\htdocs\index.php on line 180

T'as pas mis le nom de ton serveur hôte t'as "localhost". Il faut exécuter installer.php et changer la premiére ligne :blink: :blink: ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Mon serveur est localhost, tout fonctionnait trés bien avant que je modifie le fichier index.php ligne 180.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Mon serveur est localhost, tout fonctionnait trés bien avant que je modifie le fichier index.php ligne 180.

sur ton url en ligne j'ai exécuter installer.php et j'ai vu que le serveur hôte était localhost

As tu bien fait des copier coller pour mettre mes codes

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

on peut voir la ligne 180 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

j'ai résolu mon problème ligne 180 maintenant j'ai un autre souci

lorsque je sélectionne un produit et je met "Ajouter au caddie" rien ne se passe mon cadie reste vide.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Je suis en train d'essayer votre gestion de stock, tout fonctionne bien mais j'ai deux points qui posent

problème :

Un message d'erreur dans la partie administration

Notice: Undefined index: submit_ajouter in c:\program files\easyphp1-8\www\administrer\stock.php on line 13

Notice: Undefined index: submit_supprimer in c:\program files\easyphp1-8\www\administrer\stock.php on line 19

Et dans la partie site utilisateur :

On peut ajouter un article à volonté tant que l'on n'a pas validé la commande et donc commander plus que ce qu'il y a en stock

Avez-vous une idée de correction ?

Je vous remercie encore pour le travail effectué ! :D

Cdlt

Fabrice

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Je suis en train d'essayer votre gestion de stock, tout fonctionne bien mais j'ai deux points qui posent

problème :

Un message d'erreur dans la partie administration

Notice: Undefined index: submit_ajouter in c:\program files\easyphp1-8\www\administrer\stock.php on line 13

Notice: Undefined index: submit_supprimer in c:\program files\easyphp1-8\www\administrer\stock.php on line 19

Et dans la partie site utilisateur :

On peut ajouter un article à volonté tant que l'on n'a pas validé la commande et donc commander plus que ce qu'il y a en stock

Avez-vous une idée de correction ?

Je vous remercie encore pour le travail effectué ! :D

Cdlt

Fabrice

Si le script fonctionne, je pense qu'il faut enlever l'affichage des notices; dans le php.ini .

comment est la ligne ? => error_reporting = E_ALL & ~E_NOTICE

Pour ce qui est de commander plus que le stock, je cherche une solution, mais je suis limité en php. :wub: :D

regarde ici le manuel php

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

J'ai une idée:

- en premier il faut créer une variabel de type tableau à 2 colonnes

- dans le 1er champ on met le code de l'article commandé

- dans le 2nd champ la quantité disponible

- A l'insertion dans la commande on va chercher le stock disponible auquel on enleve la quantité commandée et on stock le tout dans le tableau.

- a chaque nouvelle insertion, on va regarder dans ce tableau s'il reste assez d'article...

Sinon plus simple :D

- bloquer les commandes qui ont une quantité > stock.

Pour cela, pour chaque article de la commande, controler la qté commandée et le stock disponible par une requete SQL, à la validation dans caddie_affichage.php. ET en cas de soucis on réffiche la page avec un message disant qu'il n'y a que x produits en stock et en affectant ce x à la quantité commandée.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Je suis nouveau sur le forum mais j'ai mis en place une boutique en ligne basé sur PEEL SHOPPING.

J'ai mis pas mal les mais dans le cambouis et j'ai intégré une gestion de stock qui n'est pas encore finalisé.

Cependant, j'ai fait en sorte que lorsqu'on affiche le caddie, au lieu d'une zone de saisie pour la quantité, j'ai mis une liste déroulante avec la quantité en stock. De cette façon il n'est pas possible de commander plus que ce qu'il y a en stock. Le stock quant à lui est diminué lors de la validation de la commande.

Il me reste a faire l'interface de gestion du stock dans la partie Admin et aussi lors de l'annulation d'une commande remettre la quantité annulée dans le stock.

Si je peux vous aider faites moi signe.

jcdhl.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Et si on clique plusieurs fois sur le bouton ajouter au panier a partir de la fiche produit que se passe t'il ?

Car là aussi il doit y avoir un contrôle.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Et si on clique plusieurs fois sur le bouton ajouter au panier a partir de la fiche produit que se passe t'il ?

Car là aussi il doit y avoir un contrôle.

Willy

A chaque fois, je vérifie la quantité en stock et donc on ne peut pas ajouter plus que la quantité disponible.

Je vérifie quand on clique sur ajouter à partir de la fiche produit, je vérifie quand on clique sur mettre à jour dans le caddie et je vérifie encore lors de la validation de la commande.

Il me parait donc très difficile de commander plus que le stock.

jcdhl

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Voila ce que je propose pour bloquer l'ajout d'un produit au-delà d'une quantité x (fichier caddie.php)

function ajout(&$produitid, $quantite) {

/* Ajoute un article au caddie et met à jour le montant total */

if (isset($produitid)) {

if (! isset($this->articles[$produitid])) {

$this->articles[$produitid] = 'O';

}

$this->articles[$produitid] += $quantite;

}

foreach ($this->articles as $produitid => $quantite) {

if ($quantite > 1) {

$this->articles[$produitid] = "1";

}

}

}

Cdlt

Fabrice

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Voila ce que je propose pour bloquer l'ajout d'un produit au-delà d'une quantité x (fichier caddie.php)

function ajout(&$produitid, $quantite) {

/* Ajoute un article au caddie et met à jour le montant total */

if (isset($produitid)) {

if (! isset($this->articles[$produitid])) {

$this->articles[$produitid] = 'O';

}

$this->articles[$produitid] += $quantite;

}

foreach ($this->articles as $produitid => $quantite) {

if ($quantite > 1) {

$this->articles[$produitid] = "1";

}

}

}

Cdlt

Fabrice

As tu testé le code que tu proposes ?

Je l'ai testé et l'on ne peut commander qu'une unité malgrés plusieurs en stock !! :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pour moi il faut remplacer ça:

foreach ($this->articles as $produitid => $quantite) {

if ($quantite > 1) {

$this->articles[$produitid] = "1";

}

}

Par une recherche du stock dispo et remplacer la quantité si > stock dispo.

Dans ce cas là, remettre la page caddie_affichage avec un message.

Ce script (en haut) limite la quantité commandée a un par article.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

A chaque fois, je vérifie la quantité en stock et donc on ne peut pas ajouter plus que la quantité disponible.

Je vérifie quand on clique sur ajouter à partir de la fiche produit, je vérifie quand on clique sur mettre à jour dans le caddie et je vérifie encore lors de la validation de la commande.

Il me parait donc très difficile de commander plus que le stock.

jcdhl

C'est interessant, peux tu montrer les bouts de codes ? :D (histoire de partager) :wub:

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pour moi il faut remplacer ça:

foreach ($this->articles as $produitid => $quantite) {

if ($quantite > 1) {

$this->articles[$produitid] = "1";

}

}

Par une recherche du stock dispo et remplacer la quantité si > stock dispo.

Dans ce cas là, remettre la page caddie_affichage avec un message.

Ce script (en haut) limite la quantité commandée a un par article.

Willy

Voila ma fonction ajout modifiée :

function ajout(&$produitid, $quantite, $stock) {

/* Ajoute un article au caddie et met à jour le montant total */

if (isset($produitid)) {

if (! isset($this->articles[$produitid])) {

$this->articles[$produitid] = 'O';

}

$this->articles[$produitid] += $quantite;

if ($this->articles[$produitid]>$stock)

{

$this->articles[$produitid]=$stock;

}

}

}

J'ai ajouté la variable stock qui contient la quantité en stock

jcdhl

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Je l'ai testé et ce code remplit sa fonction pour une vente unique d'objet

Par contre je travaille sur une autre solution pour la gestion de stock complète

Cdlt

Fabrice

As tu testé le code que tu proposes ?

Je l'ai testé et l'on ne peut commander qu'une unité malgrés plusieurs en stock !! :D

Tip Top ta solution, elle marche impecc, reste à coder la partie décrémentation du stock et

gestion des annulations ! :wub:

Voila ma fonction ajout modifiée :

function ajout(&$produitid, $quantite, $stock) {

/* Ajoute un article au caddie et met à jour le montant total */

if (isset($produitid)) {

if (! isset($this->articles[$produitid])) {

$this->articles[$produitid] = 'O';

}

$this->articles[$produitid] += $quantite;

if ($this->articles[$produitid]>$stock)

{

$this->articles[$produitid]=$stock;

}

}

}

J'ai ajouté la variable stock qui contient la quantité en stock

jcdhl

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Voila ma fonction ajout modifiée :

function ajout(&$produitid, $quantite, $stock) {

/* Ajoute un article au caddie et met à jour le montant total */

if (isset($produitid)) {

if (! isset($this->articles[$produitid])) {

$this->articles[$produitid] = 'O';

}

$this->articles[$produitid] += $quantite;

if ($this->articles[$produitid]>$stock)

{

$this->articles[$produitid]=$stock;

}

}

}

J'ai ajouté la variable stock qui contient la quantité en stock

jcdhl

on peut voir ou tu déclare ta variable $stock

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

La variable stock est à récupérer de la page des produits.

Au lieu d'appeler la fonction ajouter(id produit, quantité) vous appelerez ajouter(id produit, quantité, stock).

Le stock vous l'affichez, donc vous le conaissez.

Sinon il faut aller chercher le stock du produit dans la fonction ajouter avec le code du produit donné en parametre.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

on peut voir ou tu déclare ta variable $stock

J'ai crée le champ stock dans la table peel_produit

Sur la page achat/index.php je crée un champ de type 'hidden' pour mettre le stock et j'affiche le stock disponible sous forme de liste déroulante :

J'utilise cette même liste déroulante pour le caddie et pour la fiche détail du produit.

<input type="hidden" name="stock" value="<? echo $prod['stock']; ?>">

<span class="impression" >

<? if ($prod['stock']>0){

?>

Quantité :

<select name="qte" class="formulaire1">

<?php // Affiche la quantité en stock

$i=1;

while ($i<=$prod['stock'])

{

echo "<option value=\"$i\">$i</option>";

$i++;

}

?>

</select>

Et ensuite, j'ai modifié la page caddie_ajout.php comme ceci :

$_SESSION['caddie']->ajout($_REQUEST['id'], $_REQUEST['qte'], $_REQUEST['stock']);

$_SESSION['caddie']->nettoie();

$_SESSION['caddie']->recalc_total();

$HTTP_REFERER = $_SERVER['HTTP_REFERER'];

if (! empty($HTTP_REFERER)) {

header("Location: $HTTP_REFERER");

} else {

header("Location: $wwwroot/index.php");

}

Je peux donc tester lors de l'ajout si la quantité voulue n'est pas supérieure à la quantité disponible.

Cordialement

jcdhl

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping