Ajout d'article dans panier avec limite de stock
FerméCeantolika Messages postés 10 Date d'inscription vendredi 2 septembre 2022 Statut Membre Dernière intervention 3 septembre 2022 - 3 sept. 2022 à 11:44
- Ajout d'article dans panier avec limite de stock
- L'url suivante, censée aboutir à un article, donne lieu à une redirection indiquant que la page n'a pas été trouvée. retrouvez la page recherchée. reportez le titre de l’article et son auteur. - Forum Microsoft Edge / Internet Explorer
- Zalando impossible de mettre dans le panier ✓ - Forum Réseaux sociaux
- Family link problème limite quotidienne - Forum Contrôle parental
- Cdiscount mon compte mon panier ✓ - Forum Consommation & Internet
- Limite annonce marketplace - Forum Facebook
9 réponses
2 sept. 2022 à 11:41
bonjour, as-tu envisagé de comparer la quantité commandée à la quantité en stock?
2 sept. 2022 à 11:55
Oui c'est exactement ce dont j'ai besoin je n'ai aucune idée de comme m'y prendre,
En gros, la, dans ma tete je me dit que $v ne doit pas aller au dessus de la valeur du champ dans la BDD stock ici :
foreach($_SESSION["cart_item"] as $k => $v)
Je n'ai aucune idée de comment faire.
Concrètement il faut que l'ajout dans le panier ne sois pas ou plus possible si $v d'un article donnée est déjà présent a auteur de la valeur max renseigner dans le champ stock.
2 sept. 2022 à 12:12
la première chose à faire, n'est-ce pas récupérer la quantité en stock?
2 sept. 2022 à 15:42
Surement d'où ma question :-)
2 sept. 2022 à 16:45
Peut-être
$productByCode["stock"]
2 sept. 2022 à 16:38
Je pense que tu peux supprimer cette horrible boucle
foreach($_SESSION["cart_item"] as $k => $v)
Sais-tu que tu peux écrire
$_SESSION["cart_item"][$productByCode["code"]]["quantity"]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question2 sept. 2022 à 16:49
Je suis étonné par ta boucle while en ligne 5: peux-tu avoir plusieurs lignes en réponse à la requête?
Modifié le 2 sept. 2022 à 18:17
Normalement non si j'interprète bien ce qui est écrit je n'ai qu'une ligne d'un article précis a chaque fois.
J'ai mis ta ligne a la place du foreach, le site ne fonctionne plus lol
2 sept. 2022 à 18:27
N'est-ce pas ton code?
Le comprends-tu?
Sinon, ne le modifie surtout pas!
2 sept. 2022 à 18:34
Non ce n'est pas mon code,
Je comprend les grande lignes et j'ai des notions très légères,
Si je ne modifie pas ce code je n'ai pas exactement ce que je veux sur mon site.
Du coup je n'y touche pas et je ne fait pas de site.
Question peut être idiote, mais ce forum ne sert a pas a donner des réponses a quelqu'un qui pose des questions ??
Modifié le 2 sept. 2022 à 18:39
Je t'ai donné de nombreuses indications, et je ne pense pas que tu progresseras si je fais le travail à ta place.
Commence peut-être avec des exercices plus simples, cela t'aidera à comprendre.
2 sept. 2022 à 18:49
Je viens de lire ton lien en travers, en fait je suis sur un forum d'aide aux élèves ??? Si tel est le cas je suis désolé je me suis planter, aurait tu un forum spe dev "classique" a m'envoyé en message privé par exemple ???
2 sept. 2022 à 19:02
Je ne connais pas de forum qui offre des services de dev. Il existe sans doute des dev pro qui peuvent t'assister.
2 sept. 2022 à 19:05
Ok pas de souci, merci quant même
2 sept. 2022 à 19:31
Au départ, tu demandais des idées, cela m'a induit en erreur. C'est plus clair si tu expliques que tu ne comprends pas "ton" code, et que tu cherches quelqu'un qui peut l'adapter.
La charte: "Le cadre de l'entraide n'est pas de faire faire les choses par les autres mais d'aider en cas de difficultés."
2 sept. 2022 à 18:46
Non mais sérieusement ^^
Je ne veux pas apprendre ou progresser, je ne suis pas élève et tu n'est pas professeur, je suis a deux doigt de pouvoir mettre mon site en ligne et j'aimerais ne pas passer un temp énorme pour trouver seul la réponse.
Sinon je ne serais pas admin reseau mais dev.
Ca me parait simple, je suis venu sur le forum pour trouver une réponse a ma question pas pour la résoudre tout seul ou pour faire un jeux de piste ^^
Mais bon merci quant même.
Du coup si quelqu'un a le bout de code qui me permet de vérifier cette condition ca serais super sinon tans pis.
2 sept. 2022 à 18:59
En effet, le but du forum n'est pas de fournir des solutions toutes faites, mais de guider et d'assister.
Le code que tu souhaites modifier me semble très mal écrit, je pense qu'il faudrait commencer par le réécrire avant d'y ajouter des fonctions.
3 sept. 2022 à 11:44
C'est bon j'ai trouvé, c'est surement pas très beau ^^ mais si ca peu aider quelq'un :
Je ne suis pas aller du coter de l'action, mais du coter du panier :
<!-- Cart ----> <div id="shopping-cart"> <a id="btnEmpty" href="panier.php?action=empty">Tout supprimer</a> <?php if(isset($_SESSION["cart_item"])){ $total_quantity = 0; $total_price = 0; ?> <table class="tbl-cart" cellpadding="10" cellspacing="1"> <tbody> <tr> <th style="text-align:left;font-size:small;font-weight:700"></th> <th style="text-align:left;font-size:small;font-weight:700">Type</th> <th style="text-align:left;font-size:small;font-weight:700">Nom</th> <th style="text-align:left;font-size:small;font-weight:700">Code</th> <th style="text-align:right;font-size:small;font-weight:700">Quantitée</th> <th style="text-align:right;font-size:small;font-weight:700">Prix unitaire</th> <th style="text-align:right;font-size:small;font-weight:700">Prix</th> <th style="text-align:center;font-size:small;font-weight:700">Retirer</th> </tr> <?php foreach ($_SESSION["cart_item"] as $item){ $item_price = $item["quantity"]*$item["prix"]; if($item["quantity"] > $item["stock"]){ $item["quantity"] = $item["stock"]; $item_price = $item["quantity"]*$item["prix"]; } ?> <tr> <td><img src=""image"]; ?>" class="cart-item-image" /></td> <td><?php echo $item["categorie"]; ?></td> <td><?php echo $item["nom"]; ?></td> <td><?php echo $item["code"]; ?></td> <td style="text-align:right;"><?php echo $item["quantity"]; ?></td> <td style="text-align:right;"><?php echo "€ ".$item["prix"]; ?></td> <td style="text-align:right;"><?php echo "€ ". number_format($item_price,2); ?></td> <td style="text-align:center;"><a href="panier.php?action=remove&code=<?php echo $item["code"]; ?>" class="btnRemoveAction"><p align="center"><img src="" alt="Remove Item" /></p></a></td> </tr> <?php $total_quantity += $item["quantity"]; $total_price += ($item["prix"]*$item["quantity"]); } ?> <tr> <td colspan="4" align="right">Total:</td> <td align="right"><?php echo $total_quantity; ?></td> <td align="right" colspan="2"><strong><?php echo "€ ".number_format($total_price, 2); ?></strong></td> <td></td> </tr> </tbody> </table> <?php } else { ?> <p> </p> <p> </p> <div class="no-records" style="font-size:large;font-weight:800">Votre panier est vide</div> <p> </p> <p> </p> <?php } ?>
J'ai rajouté ces trois lignes après le foreach :
?php foreach ($_SESSION["cart_item"] as $item){ $item_price = $item["quantity"]*$item["prix"]; if($item["quantity"] > $item["stock"]){ $item["quantity"] = $item["stock"]; $item_price = $item["quantity"]*$item["prix"]; } ?>
Elle force le panier en permanence a ne pas pouvoir dépasser la quantité stock et recalcule aussi le prix total par article. Du coup un client dans sa session ne peux pas forcer par un rafraichissement le max d'article dispo.