osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [résolu]Limité le nombre de produit, Lors d'un achat
yopyop22
posté 4 Oct 2005, 20:33
Message #1


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 118
Inscrit : 17-May 05
Membre no 5891



Bonjour,

Je cherche une façon de pouvoir limité le nombre de produit que le client peut acheter.

Il arrive que je fasse des vente à perte et je voudrais que les clients ne peuvent pas en acheter plus de un à la fois. donc qu'il ne puisse pas placer les quantités à 2 ou un autre chiffres.

Merci à tous


--------------------
osCommerce MS2 - Contrib FR - Flash discount - MS2-2.2-SiteMap - Margin Reports v2.56a - purchase without account - Admin Access Level Account(Delaballe) -main_categories2.1_1
Go to the top of the page
 
blancheneige
posté 4 Oct 2005, 21:06
Message #2


Ceinture verte OSC
Icône de groupe

Groupe : Membres
Messages : 697
Inscrit : 11-September 04
Membre no 3237



Enlève la zone de saisie quantité sur la page shopping_cart.php !! Et force la valeur à 1 par un input hidden.
Go to the top of the page
 
xaglo
posté 4 Oct 2005, 21:15
Message #3


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



je ne sais pas si la contribution existe mais son développement ne devrait pas être trop compliqué. Sur le principe que je verrais:
- tu ajoutes une colonne dans la table product
- tu ajoutes la saisie dans la fiche produit de l'admin pour renseigner ce champs
- tu mets une condition dans le shopping cart pour empêcher que le nombre de produits ne dépasse la valeur indiquée

c'est beaucoup plus simple que ça n'y parait et c'est une bonne façon de s'approprier le code d'OsC et d'apprendre un peu le php. La preuve, il y en a même qui sont arrivés à faire quelque chose s'approchant de ce principe sans rien connaitre au php (products_on_order)


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
xaglo
posté 4 Oct 2005, 21:21
Message #4


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



grillé par blancheneige biggrin.gif biggrin.gif

peut-être que la solution marche et serait beaucoup plus simple!!! 2/3 choses cependant:
1- cela sera valable pour TOUS les articles (d'où la nécessité d'ajouter un champs à renseigner dans l'admin si tu veux que ce ne soit valable QUE pour certains produits)
2- le champs de l'admin permettrait d'autoriser 2,3... ce qu'on veut comme nombre d'article achetable
3- il faut vérifier le comportement si la personne ajoute une deuxième fois l'article via le bouton "acheter" et donc peut-être fouiller un peu plus dans le shopping_cart


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
yopyop22
posté 4 Oct 2005, 21:40
Message #5


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 118
Inscrit : 17-May 05
Membre no 5891



Bonjour,
effectivement la suggestion de blancheneige est pas bonne pour mon cas car je veux faire sa sur quelque produits seulement.

Donc les suggestions de Xaglo sont les meilleurs je vais attendre avant de me lancer pour voir s'il y a pas personne d'autre qui aurait déjà eu ce genre de chose a gérer

Merci pour vos suggestions


--------------------
osCommerce MS2 - Contrib FR - Flash discount - MS2-2.2-SiteMap - Margin Reports v2.56a - purchase without account - Admin Access Level Account(Delaballe) -main_categories2.1_1
Go to the top of the page
 
blancheneige
posté 4 Oct 2005, 21:57
Message #6


Ceinture verte OSC
Icône de groupe

Groupe : Membres
Messages : 697
Inscrit : 11-September 04
Membre no 3237





Question imprécise, réponse approximative.


Avec les précisions faites ensuite, la préconisation de xaglo est nettement meilleure.
Go to the top of the page
 
alainsoundi
posté 5 Oct 2005, 22:31
Message #7


Ceinture verte OSC
Icône de groupe

Groupe : Membres
Messages : 606
Inscrit : 1-March 05
Lieu : Paris
Membre no 4965



Je voudrais faire la même chose et j'ai presque trouvé la solution en adaptant une contrib.

dans shopping cart

après
CODE

     $products_name .= '    </td>' .
                       '  </tr>' .
                       '</table>';


je rajoute
CODE

if ($products[$i] ['quantity'] > 1 ) {

  $products[$i]['quantity']=1;

  echo '<script language="javascript">alert ("la quantité maximum pour ce produit  est 1.");</script>';



Résultat => ce mets toutes les quantité à 1.

Maintenant il faudrait qeu ça ne le fasse que sur une ref précise avec une isntruction du genre :

Si le panier contient la ref "X" et que si la quantité > 1 alors changer la quantité par 1.

Donc il me manque le début.

J'ai essayé
CODE

if ($model ="XX" $products[$i] ['quantity'] > 1 ) {

  $products[$i]['quantity']=1;

  echo '<script language="javascript">alert ("la quantité maximum pour ce produit  est 1.");</script>';


mais ça ne marche pas.

Qui qui peu m'aider ?


HA, si j'avais pris PHP au BAC... sad.gif


--------------------
MS 2.2 - featured_products_v1.5.4_1_3 - dhtmlcategories111 - CustomerUpdateCartReminder_v20a - newsletter_subscribers_v052 - contre-remb_v1.1 - family_products_update2 - Extra field v2.0a - HeaderTags_V_2.5.4_1_2 - CustomerUpdateCartReminder_v20a - visible_countries_1.1b
Go to the top of the page
 
yopyop22
posté 6 Oct 2005, 21:20
Message #8


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 118
Inscrit : 17-May 05
Membre no 5891



Salut,
j'ai trouvé une solution avec ma boutique pour que sa marche avec tes indiquations. Je voulais limité le nombre de produit uniquement quand je fais une vente flash , j'utilise la contribution flash selling.


Donc dans shopping carte j'ai ajouté

2- Après
CODE
   
$products_name .= '    </td>' .
                      '  </tr>' .
                      '</table>';


J'ai ajouté

CODE


//J'ouvre la table special pour savoir si le produit est une vente flash
$product_specials_product = tep_db_query("select specials_new_products_price, specials_price_flash_selling, status,  status_flash_selling  from " . TABLE_SPECIALS . " where products_id = '" . $products[$i]['id'] . "'  ");

$product_specials_product = tep_db_fetch_array($product_specials_product);

// Je fais la condition si la vente flash =1 tu dois les avertir
if (($product_specials_product['status_flash_selling'] == '1') & ($products[$i] ['quantity'] > 1)) {
 $products[$i]['quantity']=1;

 echo '<script language="javascript">alert ("La quantité maximum pour ce produit est 1.");</script>';
}


Sa fonctionne très bien, même s'il y a 2 produits différentes 1 en vente flash et l'autre non. On peux modifier la quantité de l'autre sans pouvoir changer la quantité de la vente flash

Merci à tous pour votre aide si précieuse


--------------------
osCommerce MS2 - Contrib FR - Flash discount - MS2-2.2-SiteMap - Margin Reports v2.56a - purchase without account - Admin Access Level Account(Delaballe) -main_categories2.1_1
Go to the top of the page
 
alainsoundi
posté 7 Oct 2005, 13:39
Message #9


Ceinture verte OSC
Icône de groupe

Groupe : Membres
Messages : 606
Inscrit : 1-March 05
Lieu : Paris
Membre no 4965



J'ai essayé ça :
CODE

//Ouvrir la table Products
$products = tep_db_query("*  from " . Products . " where products_id = '" . $products[$i]['id'] . "'  ");

$products = tep_db_fetch_array($products);

// Changer la quantité si la quantité >1 pour la ref 152.30
if (($products['products_model'] == '152.30') & ($products[$i] ['quantity'] > 1)) {
$products[$i]['quantity']=1;

echo '<script language="javascript">alert ("La quantité maximum pour ce produit est 1.");</script>';
}


Mais ça ne marche pas.
Il doit y avoir une erreur de synthaxe.
PS. Je n'ai qu'un seul pdt concerné, c'est pour ça que je veux faire la modif "en dur" dans shopping_cart plutôt que de passer par une contrib.

Merci de votre aide


--------------------
MS 2.2 - featured_products_v1.5.4_1_3 - dhtmlcategories111 - CustomerUpdateCartReminder_v20a - newsletter_subscribers_v052 - contre-remb_v1.1 - family_products_update2 - Extra field v2.0a - HeaderTags_V_2.5.4_1_2 - CustomerUpdateCartReminder_v20a - visible_countries_1.1b
Go to the top of the page
 
yopyop22
posté 7 Oct 2005, 14:02
Message #10


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 118
Inscrit : 17-May 05
Membre no 5891



Salut,
effectivement il y a des erreurs, tu as pas placé de select et tu n'as pas donné le bon nom de table

Essais sa à la place

CODE

//Ouvrir la table Products
$products = tep_db_query("select products_model  from " . TABLE_PRODUCTS . " where products_id = '" . $products[$i]['id'] . "'  ");

$products = tep_db_fetch_array($products);

// Changer la quantité si la quantité >1 pour la ref 152.30
if (($products['products_model'] == '152.30') & ($products[$i] ['quantity'] > 1)) {
$products[$i]['quantity']=1;

echo '<script language="javascript">alert ("La quantité maximum pour ce produit est 1.");</script>';
}


C'est un drole de model 152.30 sa ressemble plus a un prix mais c'est toi qui le sais.

En espérant que sa t'aide

Bonne journée


--------------------
osCommerce MS2 - Contrib FR - Flash discount - MS2-2.2-SiteMap - Margin Reports v2.56a - purchase without account - Admin Access Level Account(Delaballe) -main_categories2.1_1
Go to the top of the page
 
alainsoundi
posté 7 Oct 2005, 15:50
Message #11


Ceinture verte OSC
Icône de groupe

Groupe : Membres
Messages : 606
Inscrit : 1-March 05
Lieu : Paris
Membre no 4965



Ca ne marche pas.

Je laisse tomber pour le moment et je reviendrai dessus plus tard.

NB : c'est marrant que mes référence de forme 123.45 intriguent, plusieurs personnes le pensent aussi. Mais y'a pas de risque de confusion puisque le prix est indiqué sous la forme 9.99 Euro TTC.


--------------------
MS 2.2 - featured_products_v1.5.4_1_3 - dhtmlcategories111 - CustomerUpdateCartReminder_v20a - newsletter_subscribers_v052 - contre-remb_v1.1 - family_products_update2 - Extra field v2.0a - HeaderTags_V_2.5.4_1_2 - CustomerUpdateCartReminder_v20a - visible_countries_1.1b
Go to the top of the page
 
yopyop22
posté 14 Oct 2005, 19:03
Message #12


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 118
Inscrit : 17-May 05
Membre no 5891



Bonjour,
je place ce message pour informer les gens qui serais intéressé par sa.

La solution trouvé avant n'est pas bonne car le javascript avertit les gens et montre que le chiffre est 1 mais en réalité la quantité est 2 car elle a été mise a jour avant que le javascript entre en fonction.

J'ai donc changé de méthode , ce que je fais maintenant c'est que je fais disparaitre le champs ou l'on peux changer les quantité quand c'est un produit que je ne veux pas vendre plus d'une copie à la fois. Mais je fais quand même paraître le chiffre 1

Dans shopping_cart.php

à la ligne 169 j'ai ajouté
CODE

$product_specials_product = tep_db_query("select specials_new_products_price, specials_price_flash_selling, status,  status_flash_selling, flash_selling_end_date  from " . TABLE_SPECIALS . " where products_id = '" . $products[$i]['id'] . "'  ");

  $product_specials_product = tep_db_fetch_array($product_specials_product);

if (($product_specials_product['status_flash_selling'] == '1')) {

$nombre_supperieur_accepte = ( $products[$i]['quantity'] . tep_draw_hidden_field('cart_quantity[]', $products[$i]['quantity'], 'size="4"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']));

}    
else {
$nombre_supperieur_accepte = (tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']));

}  



ET j'ai modifé

CODE

     $info_box_contents[$cur_row][] = array('align' => 'center',
                                            'params' => 'class="productListing-data" valign="top"',
                                            'text' => tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4"') . tep_draw_hidden_field('products_id[]', $products[$i]['id'];    



Par

CODE


     $info_box_contents[$cur_row][] = array('align' => 'center',
                                            'params' => 'class="productListing-data" valign="top"',
                                            'text' => $nombre_supperieur_accepte);


Et sa fonctionne très bien. De cette façon le nombre de produit ne peux jamais être modifié et on est quand même capable de l'effacer


Bonne journée à tous


--------------------
osCommerce MS2 - Contrib FR - Flash discount - MS2-2.2-SiteMap - Margin Reports v2.56a - purchase without account - Admin Access Level Account(Delaballe) -main_categories2.1_1
Go to the top of the page
 
alainsoundi
posté 14 Oct 2005, 21:51
Message #13


Ceinture verte OSC
Icône de groupe

Groupe : Membres
Messages : 606
Inscrit : 1-March 05
Lieu : Paris
Membre no 4965



Effectivemet j'ai remarqué le pb (voir mon autre poste).
La qté se met bien sur 1 mais il faut cliquer sur le bouton recalculer.
Ma piste à moi c'est de lancer le recalcul automatique après avoir forcé la qté. Mais je n'ai pas encore trouvé.
Je trouve que c'est quand même plus propre car on indique au client qu'il ne peut pas en commander plus d'un.


--------------------
MS 2.2 - featured_products_v1.5.4_1_3 - dhtmlcategories111 - CustomerUpdateCartReminder_v20a - newsletter_subscribers_v052 - contre-remb_v1.1 - family_products_update2 - Extra field v2.0a - HeaderTags_V_2.5.4_1_2 - CustomerUpdateCartReminder_v20a - visible_countries_1.1b
Go to the top of the page
 
yopyop22
posté 17 Oct 2005, 19:29
Message #14


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 118
Inscrit : 17-May 05
Membre no 5891



Tu as effectivement raison, il faut prévenir le client.

Je le fais dans la fiche descriptive mais je viens d'ajouter un ** apr;es chiffre 1 avec une description en bas disant pourquoi on ne peux pas changer la quantité

Merci

Bonne journée


--------------------
osCommerce MS2 - Contrib FR - Flash discount - MS2-2.2-SiteMap - Margin Reports v2.56a - purchase without account - Admin Access Level Account(Delaballe) -main_categories2.1_1
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 19th June 2013 - 02:41
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)