Produits Uniques

Messagepar cynic- » Mer 12 Mar 2008, 18:42

Bonjour

Je tente d'adapter cette contrib :
http://www.oscommerce.com/community/contributions,3856

L'idée est de vendre des produits disponibles en un seul exemplaire.
Il faut donc :
1. que le panier n'affiche aucune quantité
( modifier catalog/includes/classes/shopping_cart.php
et catalog/includes/content/shopping_cart.php ?)
1. que l'affichage des quantités ne se fasse pas dans la liste de produits
(modifier catalog/includes/modules/product_listing.php ?)
2. que l'affichage des quantités ne se fasse pas dans la fiche produit
(modifier catalog/includes/content/product_info.php ?)


Mais apparemment ça ne fonctionne pas comme on le voudrait ^^

Voici les modif que j'ai effectué pour l'instant :

1) Dans catalog/includes/classes/shopping_cart.php
Commenter :
Code: Tout sélectionner
if ($this->in_cart($products_id_string)) {
           $this->update_quantity($products_id_string, $qty, $attributes);

Comme ceci :
Code: Tout sélectionner
if ($this->in_cart($products_id_string)) {
          //$this->update_quantity($products_id_string, $qty, $attributes);

Et modifier :
Code: Tout sélectionner
function update_quantity($products_id, $quantity = '', $attributes = '') {

En :
Code: Tout sélectionner
function update_quantity($products_id, $quantity = '1', $attributes = '') {

2) Dans catalog/includes/content/shopping_cart.php :
Remplacer :
Code: Tout sélectionner
if(AJAX_CART_MODE == 'true') {
   echo MY_CART_QTY .' '. tep_draw_input_field('cart_quantity[]','cartQty'.$i, $products[$i]['quantity'], 'onkeyup="changecartqty('.$i.')"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']) ;
   } else {
    echo MY_CART_QTY .' '. tep_draw_input_field('cart_quantity[]','cartQty', $products[$i]['quantity']) . tep_draw_hidden_field('products_id[]', $products[$i]['id']) ;
   }

Par :
Code: Tout sélectionner
if(AJAX_CART_MODE == 'true') {
    echo tep_draw_input_field('cart_quantity[]','cartQty'.$i, $products[$i]['quantity'], 'onkeyup="changecartqty('.$i.')"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']) ;
   } else {
    echo tep_draw_input_field('cart_quantity[]','cartQty', $products[$i]['quantity']) . tep_draw_hidden_field('products_id[]', $products[$i]['id']) ;
   }

pour supprimer le texte "Quantité" ou "Qté" (mais le champ quantité reste apparent... 1er souci)

3) Dans catalog/includes/modules/product_listing.php :
Remplacer :
Code: Tout sélectionner
echo TEXT_PREFIX_QTY.tep_draw_input_field('products_quantity', 'products_quantity', '1', 'size="2"');

Par :
Code: Tout sélectionner
echo tep_draw_hidden_field('products_quantity', 'products_quantity', '1', 'size="2"');

4) Dans catalog/includes/content/product_info.php :
Commenter :
Code: Tout sélectionner
echo TEXT_PREFIX_QTY.tep_draw_input_field('products_quantity', 'products_quantity'.$listing['products_id'], '1', 'size="2"');

Comme ceci :
Code: Tout sélectionner
//echo TEXT_PREFIX_QTY.tep_draw_input_field('products_quantity', 'products_quantity'.$listing['products_id'], '1', 'size="2"');

Mon problème vient des tep_draw_input_field : si je les remplace par des tep_draw_hidden_field les champs de quantité disparaissent bien, mais la mise à jour du panier ne fonctionne plus (voire, le panier reste vide malgré "l'ajout au panier")
Et je ne sais pas comment prendre en compte les quantités sans masquer les champs correspondant (tout en gardant une quantité de 1 exemplaire)

C'est donc tout naturellement que je sollicite votre aide ;)
Dernière édition par cynic- le Lun 17 Mar 2008, 14:41, édité 1 fois.
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar j4k » Mer 12 Mar 2008, 19:09

et pourquoi ne pas les masquer tout simplement par la feuille de style ?

de sorte à garder le fonctionnement normal mais sns l'affichage?

(je dis peut-etre une connerie, j'ai lu le post en diagonale ;)
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar cynic- » Mer 12 Mar 2008, 20:27

Merci
J'y ai pensé ;) Ce serait une bonne solution intermédiaire
Mais la quantité restera modifiable si on désactive la feuille de style, ou si le client utilise une feuille de style perso...
Et puis, même en masquant la quantité par css, il est possible de rajouter des exemplaires en recliquant sur "Ajouter au panier"

Donc ça ne peut pas convenir
Dernière édition par cynic- le Mer 12 Mar 2008, 20:29, édité 1 fois.
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar j4k » Mer 12 Mar 2008, 21:58

ok bien vu
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar cynic- » Ven 14 Mar 2008, 16:55

HELP, je n'ai toujours pas trouvé de solution :(
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar j4k » Ven 14 Mar 2008, 17:44

pour le hidden field que tu a modifié il apparait bien dans la fiche en question?
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar cynic- » Ven 14 Mar 2008, 20:48

Oui... plus exactement, je remplace input par hidden dans product_info.php ce qui supprime la quantité sur le site, dans la fiche produit. Mais cela annule aussi l'effet du bouton "Ajouter au panier" - ce qui ne me semble pas logique d'ailleurs
Dernière édition par cynic- le Ven 14 Mar 2008, 20:49, édité 1 fois.
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar j4k » Ven 14 Mar 2008, 20:59

si tu compare le form avant et parès modif (je parle du code html généré) tu vois exactement le même input (même nom, même id, etc) sauf qu'il est en type="hidden" ?
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar cynic- » Lun 17 Mar 2008, 14:47

Bonne question :)

Avant modif :
Code: Tout sélectionner
<form id="cart_quantity" action="http://127.0.0.1/monsite/catalogue/product_info.php?products_id=2&amp;action=add_product" method="post">

<p class="formBt">
<input name="products_id" value="2" type="hidden">Qté<input name="products_quantity" id="products_quantity" value="1" size="2" type="text">      <input class="submitBt" value="Ajouter au panier" type="submit">
</p>
</form>

Après modif :
Code: Tout sélectionner
<form id="cart_quantity" action="http://127.0.0.1/monsite/catalogue/product_info.php?products_id=2&amp;action=add_product" method="post">

<p class="formBt">
<input name="products_id" value="2" type="hidden">Qté<input name="products_quantity" value="products_quantity" 1="" type="hidden">      <input class="submitBt" value="Ajouter au panier" type="submit">
</p>
</form>

Je viens de remarquer un truc bizarre après modif : le 1=""
Dernière édition par cynic- le Lun 17 Mar 2008, 14:47, édité 1 fois.
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar cynic- » Mer 19 Mar 2008, 13:56

Aucune solution ne semble convenir (pas avec mes maigres compétences en php)
Fait peu rassurant, j'ai trouvé d'autres boutiques oscss où le souci n'était pas résolu non plus :(
J'ai donc rétabli la config par défaut pour la gestion des quantités...

Si solution il y a, je suis preneur (et si je trouve, je posterai) :)
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04


Retourner vers Plugin

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron