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] Ajouter la marque dans le panier
figaro
posté 28 Nov 2010, 23:51
Message #1


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 11-January 08
Membre no 20351



Bonjour,

Comment faire pour ajouter la marque dans le panier ?
Il me semble qu'il faut intervenir sur la page checkout_confirmation.php, mais quelle est la modif a faire ?

Merci.
Figaro

Ce message a été modifié par figaro - 10 Dec 2010, 16:35.
Go to the top of the page
 
chti_poupon
posté 30 Nov 2010, 17:00
Message #2


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2757
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



smile.gif Bonjour !
3 modifications :
Dans catalog/includes/classes/shopping_cart.php
ligne 319, obtenir l'id du fabricant:
Code
        $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$products_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");

ligne 331, l'intégrer au panier :
Code
          $products_array[] = array('id' => $products_id,
                                    'name' => $products['products_name'],
                                    'model' => $products['products_model'],
                                    'manufacturers_id' => $products['manufacturers_id'],
                                    'image' => $products['products_image'],
                                    'price' => $products_price,
                                    'quantity' => $this->contents[$products_id]['qty'],
                                    'weight' => $products['products_weight'],
                                    'final_price' => ($products_price + $this->attributes_price($products_id)),
                                    'tax_class_id' => $products['products_tax_class_id'],
                                    'attributes' => (isset($this->contents[$products_id]['attributes']) ? $this->contents[$products_id]['attributes'] : ''));

Dans catalog/includes/classes/order.php
Ligne 219 le passer du panier à la commande :
Code
      for ($i=0, $n=sizeof($products); $i<$n; $i++) {
        $this->products[$index] = array('qty' => $products[$i]['quantity'],
                                        'name' => $products[$i]['name'],
                                        'model' => $products[$i]['model'],
                                        'manufacturers_id' => $products[$i]['manufacturers_id'],
                                        'tax' => tep_get_tax_rate($products[$i]['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']),
                                        'tax_description' => tep_get_tax_description($products[$i]['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']),
                                        'price' => $products[$i]['price'],
                                        'final_price' => $products[$i]['price'] + $cart->attributes_price($products[$i]['id']),
                                        'weight' => $products[$i]['weight'],
                                        'id' => $products[$i]['id']);

dans catalog/checkout_confirmation.php
vers la ligne185, l'afficher :
Code
    echo '          <tr>' . "\n" .
         '            <td class="main" align="right" valign="top" width="30">' . $order->products[$i]['qty'] . '&nbsp;x</td>' . "\n" .
         '            <td class="main" valign="top">' . $order->products[$i]['name'].' Fabricant n°  '.  $order->products[$i]['manufacturers_id'];


Procédant ainsi, il t'est loisible de l'intégrer aussi - en procédant par similitude - dans le courriel de confirmation (catalog/checkout_process.php), (+ les paiements externes genre cmcic.php) les impressions etc...
Pour le sauvegarder dans la table orders, (est-ce utile ?) il faut lui ajouter un champ, ou (mieux?) le concaténer au nom du produit..
Cette technique ajoute un seul champ à lire en accès base par produit.

Si tu souhaites le nom du fabricant, et non pas son id, il faut rajouter - dès que dans classes/shopping_cart.php - manufacturers_id est connu, un accès à la table manufacturers pour en extraire manufacturers_name - à traiter ensuite en remplacement de manufacturers_id dans les codes ci-dessus.
Ce que j'ai donné est testé.
Bonne intégration !

Chti Poupon
Go to the top of the page
 
chti_poupon
posté 30 Nov 2010, 22:42
Message #3


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2757
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Plus facile à implanter, mais plus lourd d'exécution, la requête en Base de donnée à appeler en tant que de besoin:
Code
$manu_nom_sql = "select m.manufacturers_name from '".TABLE_MANUFACTURERS."' m join '". TABLE_PRODUCTS ."' p where p.manufacturers_id = m.manufacturers_id and p.products_id='".(int)$products_id."'";
$nom_manu=tep_db_query($manu_nom_sql);
$fabricant=tep_db_fetch_array($nom_manu);
echo $fabricant;

et en adaptant le nom de la variable $products_id au contexte local et en la répêtant partout.
A toi de voir !
Requête testée avant mise en osCien.
php non testé.
Chti Poupon

Ce message a été modifié par chti_poupon - 30 Nov 2010, 23:00.
Go to the top of the page
 
figaro
posté 10 Dec 2010, 16:34
Message #4


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 11-January 08
Membre no 20351



Merci Chti Poupon

Ca fonctionne !

Figaro
Go to the top of the page
 
antoinebb
posté 6 Jan 2011, 15:02
Message #5


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 16
Inscrit : 6-November 07
Membre no 19662



Bonjour,

pour ma part, je souhaite que le nom ou l'identifiant du fabricant apparaisse dans le tableau récapitulatif de la commande dans l'admin (admin/orders.php/?page=1&oID=221&action=edit).
Un affichage juste avant la taxe par exemple, ça serait parfait…

Merci d'avance si vous pouvez m'aider !

Antoine
Go to the top of the page
 
diaph
posté 2 Jan 2012, 11:52
Message #6


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 153
Inscrit : 22-October 07
Membre no 19482



Bonjour, smile.gif
Chti_poupon à écrit
Citation
un accès à la table manufacturers pour en extraire manufacturers_name

Comment faire appel à cette table dans le code ci-dessous: dans catalog/includes/classes/shopping_cart.php:
Code
$products_query = tep_db_query("select p.products_id, pd.products_name, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$products_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");


Merci


--------------------
J'utilise OScommerce MS2.2 (modifié pour php5) - Ebergeur LWS - Download Controller - Contrib PayPal IPN
Machine Mac Pro - Lion 10.7. 5 - Mamp
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 March 2024 - 05:56
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)