[Résolu] Liste de choix quantités suivant stock restant

Archive

Messagepar Gil1256 » Lun 22 Mar 2010, 11:59

Bonjour les gens.
Ma question sera brève, n'ayant que peu de temps pour la rédiger...
Est-il possible d'adapter une liste de choix fermée composée de quantités propres à un produit en stock, et que de surcroit les quantités proposées sont fonction du nombre d'exemplaires restants ?
S'il me reste 3 exemplaires, ma liste de choix ne sera composée que de 1, 2 et 3.
Désolé, je suis dans le bus d'où le côté bref et expéditif de ce post.
Voili voilou.
Merci.
Dernière édition par Gil1256 le Ven 02 Avr 2010, 17:37, édité 1 fois.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar oscim » Lun 22 Mar 2010, 14:07

Salut

La question n'est en fait pas tres clair ?
En fait, il s'agit des fonctionnalités de QTpro, me semble t'il.

Cad un grille sous le produits proposant un choix parmis les éléments en stock.

La question concerne les options d'un produits, c'est ca ?
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar cynic- » Lun 22 Mar 2010, 21:29

Je pense que ça concerne le stock pas forcément les options. Si je ne me trompe, oscss ne prévient qu'un article est hors-stock, que lorsqu'on se trouve dans le panier. Je crois que Gil voudrait que la quantité proposée sur la fiche-produit soit en temps réel adaptée au stock restant c'est ça ?
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar Gil1256 » Lun 22 Mar 2010, 23:23

cynic- a écrit:Je crois que Gil voudrait que la quantité proposée sur la fiche-produit soit en temps réel adaptée au stock restant c'est ça ?

Tout à fait Cynic ! Qu'en définitive, à la place de la zone de saisie libre, il y ait une liste de choix proposant les quantités restantes d'un produit. Si je dispose de 3 exemplaires d'un produit, les choix (sous forme d'une liste) seraient 1, 2 ou 3. Et que l'actualisation se fasse dès lors que le stock diminue...

Désolé Oscim si mes explications aient été confuses d'entrée de jeu.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar oscim » Lun 22 Mar 2010, 23:48

Dans ce cas, Qtpro repond en partis , puisque 'il propose dans ces option un affichage sous forme de tableau repartissant les options et leur stock respectif.

Et comme tu parle de(s) quantite(s) restante d'un produit, il s'agit d'un produit avec option non ?

Dans ce cas, cet contrib te propose un fichier placé dans /module nommé qt_pro_stock_table.

Et si ca ne corresspond, pas, ca doit s'adatpter facilement
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar cynic- » Mar 23 Mar 2010, 14:13

Ou alors peut-être bien que cette contribution oscommerce "add a product quantity box on the product info page" peut t'aider ?
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar Gil1256 » Mer 24 Mar 2010, 17:06

Merci les gens. Je vais m'y coller et essayer d'adapter tout ça car effectivement aucune contribution "clef en main" en vue... et les quelques posts qui demandaient de l'aide de ce côté sont restés sans réponse.
Vous tiens au courant et posterai le résultat de mes bidouillages.
+
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Sam 27 Mar 2010, 13:09

Salut.

Cela fonctionne avec la contribution suivante (une fois modifiée) : Product Quantity Dropdown on product_info page. Je dispose bien d'une liste de choix fermé suivant stock disponible.
Mais un problème se pose à moi : je me rends sur une fiche produit disposant de 5 exemplaires. Je sélectionne via la liste de choix le nombre 3 que j'ajoute au panier. Je reviens sur cette même fiche produit un peu plus tard, et (pour un raison encore indéterminée) je sélectionne encore 3 que j'ajoute au panier, soit au final 6 exemplaires d'un même produit alors que celui-ci n'en dispose que de 5...
Il faudrait en définitive synchroniser le stock + le panier... je creuse...

++
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar oscim » Sam 27 Mar 2010, 17:38

Logiquement, dans ce cas, c'est le panier qui doit alerter sur le fait que la quantité de produits n'est pas dispo .

Sinon, dans ce cas, effectivement, il faut ajouter au clalcul du stock les element de session pour prendre en charge le panier...
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar Gil1256 » Mar 30 Mar 2010, 22:09

Bon, en définitive, au niveau de product_info.php, cela donne :
Code: Tout sélectionner
<p>
       <?php
        echo tep_draw_hidden_field('products_id', $product_info['products_id']);
    $quant = $cart->get_quantity($product_info['products_id']);
   echo TEXT_PREFIX_QTY;
   echo "<select name="products_quantity">";
   for ($i=1; $i <= $product_info['products_quantity'] - $quant; $i++) {
   echo "<option>".$i."</option>";
   }
   echo "</select>";
      ?>
      <input title="<?php echo IMAGE_BUTTON_IN_CART; ?>" type="submit" value="<?php echo IMAGE_BUTTON_IN_CART; ?>"  />
    </p>

$quant étant la quantité du produit en question ajoutée au panier. Dès lors qu'un exemplaire du produit est ajouté, cet exemplaire est automatiquement déduit de la quantité en stock proposée dans la liste de choix.

Je m'attelle au shopping_cart pour retrouver la même chose.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar oscim » Mer 31 Mar 2010, 11:19

Pas mal :)

Je vais garder ton post sous le coude. peut etre a mettre dans le core ?
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar Gil1256 » Mer 31 Mar 2010, 23:09

Le souci étant que je n'arrive pas intégrer la même chose dans le shopping_cart.php. Il me faudrait en définitive une liste de choix avec les quantités du produit en stock, où lorsque j'arrive sur le panier, la quantité de produits sélectionnés apparaît en premier... je ne sais pas si je me fais comprendre... Admettons qu'un produit dispose de 5 exemplaires. A partir de la fiche produit, j'en ajoute 2. Lorsque je vais sur le panier, je voudrais avoir 2 comme quantité sélectionné dans la liste de choix, comprenant elle-même les choix 1, 2, 3, 4 et 5.
Je bloque mais je poursuis.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Ven 02 Avr 2010, 15:26

Bon... en déclarant au préalable dans "includes/classes/shopping_cart.php", au niveau de la "function get_products()" ceci :
Code: Tout sélectionner
'stock' => $products['products_quantity']

j'en arrive à ceci :
Code: Tout sélectionner
<?php
        echo tep_draw_hidden_field('products_id[]', $products[$i]['id']);
  echo MY_CART_QUANTITY . ' ';
  echo "<select name="cart_quantity[]" id="cartQty.$i">";
 for ($j=$products[$i]['quantity']; $j <= $products[$i]['stock']; $j++) {
  echo "<option>".$j."</option>";
 }
 echo "</select>";
?>

Je me retrouve bien avec le nombre de produits sélectionnés, mais la liste de choix ne m'indique que les quantités supérieures au nombre sélectionné. Je m'explique : je choisis 5 exemplaires d'un produit en en comportant 10, je vais sur le panier, je vois bien le "5" sélectionné dans la liste de choix, mais en activant cette liste de choix, seules les quantités 6, 7, 8, 9 et 10 me sont proposées... mais moi je voudrais avoir également 1, 2, 3 et 4 !

Quelle est l'équation selon vous ?

PS : Pour info, ai été obligé de changé la variable $i par $j : il y avait confusion avec $i de $products.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Ven 02 Avr 2010, 17:37

C'est bon ça marche ! A ceux qui veulent essayer...
Je dispose bien d'une liste de choix avec les quantités en stock correspondantes au produit.
J'ai mis une condition selon laquelle si $j est égal à la quantité choisie, l'attribut selected de l'option a la valeur "selected", sinon pas d'attribut.

Voici le code :

Code: Tout sélectionner
<?php
   echo tep_draw_hidden_field('products_id[]', $products[$i]['id']);
   echo MY_CART_QUANTITY . ' ';
   echo "<select name="cart_quantity[]" id="cartQty.$i">";
   for ($j = 1; $j <= $products[$i]['stock']; $j++)
   {
   if($j == $products[$i]['quantity'])
   $sel = " selected="selected"";
   else $sel = "";
   echo "<option" .$sel.">".$j."</option>";
   }
   echo "</select>";
?>

Je clos ma discussion et vous remercie. A+
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16


Retourner vers osCSS 1.2.1

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron