Un peu d'aide PHP siouplé

3 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

J'essaye de faire en sorte que lorsque le client commande une quantité supérieure au stock, il ait une petite fenêtre d'avertissement et que la quantité saisie se corrige avec la valeur du stock (le maxi qu'il peut acheter).

Dans le cas où le produit n'a ni taille ni couleur, c'est déjà géré, donc pas de soucis.

J'essaye donc de réaliser cette petite modif pour les produits avec une taille.

J'ai modifié la fonction print_critere_stock() comme ceci :

#echo QUANTITY." :<input type=\"text\" class=\"formulaire1\" size=\"3\" name=\"qte\" value=\"1\" /><br />";

$sqlStock = "SELECT stock FROM peel_stocks_temp WHERE produit_id = '".$prodId."' AND couleur_id = '".vn($cId)."' AND taille_id = '".vn($sId)."'"; /* Ici on ne recherche que les produits dont le stock est > 0 */

$resStock = mysql_query($sqlStock);

/* Si la table des stocks temporaires est vide alors on teste la table réelle */

if (mysql_num_rows($resStock) == 0) {

$sqlStock = "SELECT stock FROM peel_stocks WHERE produit_id = '".$prodId."' AND stock > 0 AND couleur_id = '".$cId."' AND taille_id = '".$sId."'"; /* Ici on ne recherche que les produits dont le stock est > 0 */

$resStock = mysql_query($sqlStock);

}

$Stock = mysql_fetch_array($resStock);
echo QUANTITY." :<input type=\"text\" class=\"formulaire1\" size=\"3\" name=\"qte\" value=\"1\" onChange=\"if (this.value > ".$Stock['stock'].") {this.value='".$Stock['stock']."'; alert('La quantité demandée est supérieure au stock disponible.');}\" maxlength=\"3\" /><br />";
[/codebox]

J'ai donc voulu faire une requête qui en fonction de la taille sélectionnée, va lire la quantité en stock puis la compare à la quantité saisie.

Si la quantité saisie est inférieur au stock, elle est remplacée par la valeur du stock.

J'ai un soucis, car dans mon développement, la valeur du stock ne correspond pas à celle de la taille qui est sélectionnée. Elle reste toujorus égale à la dernière valeur lue dans la table.

Donc ma lecture de stock boucle sur toutes les tailles disponibles et mémorise donc la dernière lue, au lieu de ne lire que le stock pour la taille que le client a choisie dans lemenu déroulant...

Quelqu'un voit-il où je me suis trompé ?

Merci d'avance.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Je vois ce que vous voulez obtenir.

Vous désirez que la valeur renseignée par la client dans le champs quantité ne puissent excéder la valeur du stock en fonction de l'option choisie. Cela demande un développement qui soit passe par un traitement PHP APRES validation (ce qui est déjà le cas mais il n'y pas de message qui apparait sauf si l'on se trouve sur la page d'affichage du panier et que l'on modifie les quantités depuis cette page) soit si vous désirez afficher le message au moment de la validation, il faudra passer par une solution AJAX pour récuperer la valeur saisie et la comparer au stock disponible.

Bonjour Eric, et merci pour la réponse.

En fait, mon problème est bien qu'un client ne puisse pas commander une quantité supérieure au stock même pour un produit avec des critères de taille / couleur.

Donc la solution idéale, est celle qui est déjà en place pour les produits sans critère de taille, qu'il faudrait reproduire pour les produit avec critère de taille :

- Le client sélectionne la taille dans le menu déroulant

- Il saisit sa quantité dans la box

- Il clique sur " Ajouter au caddie"

- Si elle la quantité commandée est supérieure au stock temporaire ou au stock permanent, une petite fenêtre d'avertissement s'affiche et la quantité commandée est remplacée par la quantité en stock.

Au pire, une solution dégradée serait que le contrôle se fasse à l'entrée dans le caddie et que la quantité se rectifie directement dans le caddie. Mais dans ce cas, d'une part le client ne voit pas forcément que sa quantité a été modifiée, et d'autre part, il y a un bug car le prix ne se recalcule pas. S'il commande 100 et qu'il n'y a que 5 en stock, il a 5 dans sa commande et il paye pour 100 !!

Je précise par ailleurs que je suis en version 4 et que la quantité n'est donc pas modifiable directement dans le caddie. La modification doit donc bien se faire sur la pahe produit, au moment du clic sur "Ajouter au caddie".

Bref, il faudrait que je mette en place la première solution qui me parait la plus propre et la plus logique.

Le développement que j'ai fait ne fonctionne pas car on ne relit pas la table stock en fonction de la taille sélectionnée, et c'est ça que je n'arrive pas à faire.

Si je comprends bien votre réponse, il faudrait pour cela un développement AJAX, mais là au secours. J'ai déjà bien du mal en PHP... alors AJAX, je suis au niveau 4ème sous-sol :)

...

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