[Résolu] Ajouter la marque dans le panier |
Bienvenue invité ( Connexion | Inscription )
[Résolu] Ajouter la marque dans le panier |
28 Nov 2010, 23:51
Message
#1
|
|
Ceinture jaune OSC 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. |
|
30 Nov 2010, 17:00
Message
#2
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
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'] . ' 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 |
|
30 Nov 2010, 22:42
Message
#3
|
|
Ceinture noire OSC 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. |
|
10 Dec 2010, 16:34
Message
#4
|
|
Ceinture jaune OSC Groupe : Membres Messages : 52 Inscrit : 11-January 08 Membre no 20351 |
Merci Chti Poupon
Ca fonctionne ! Figaro |
|
6 Jan 2011, 15:02
Message
#5
|
|
Ceinture blanche OSC 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 |
|
2 Jan 2012, 11:52
Message
#6
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 153 Inscrit : 22-October 07 Membre no 19482 |
Bonjour,
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 |
|
Version bas débit | Nous sommes le : 29th March 2024 - 10:54 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |