Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
20 Jun 2011, 15:08
Message
#1
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 176 Inscrit : 9-December 04 Lieu : Nantes Membre no 4029 |
Bonjour tout le monde,
Je suis en train de développer un module Ajax qui permet de modifier le prix du produit suivant un slider en jquery que l'on déplace vers la droite ou la gauche. En déplaçant ce slider, un supplément est calculé. Ce même supplément est ensuite ajouter au prix initial du produit qui donne donc le prix final. Pour le moment tout fonctionne correctement. Le problème se passe au niveau de la transmission de mon nouveau prix lors de l'ajout dans le panier. Par exemple : Prix initial : 5 euros Supplement : 5 euros Prix total : 10 euros Lors de l'ajout dans le panier(shopping_cart.php), je n'obtiens que le prix initial du produit soit 5 euros au lieu de 10 euros. Comment envoyer le prix total dans le panier ? J'ai un autre souci que je réglerai plus et ma contrib sera OK pour publication. Merci de vos réponses Ce message a été modifié par c0v3r - 5 Jul 2011, 08:26. -------------------- Oscommerce : MS2.2 avec Pack Sécurité, modules ajoutés : accept_CGV, AdminMS2fr_V2.3, BoxImageThemaMS2fr_V2.7, colissimo_1.5.2, Courte_description_produit_admin, CustomComputerCreator9.3, Down for Maintenance v1.1 MS 2.2, Enhanced_new_products, estimation livraison, fckeditor-oscommerce_v2.2.1, Impression reçu, main_categories2.1_1, new_product css, New_Products_Icon_1.3, Nom_Produit_dans_Navigation, optimisation_also_purchased, Plan site, Retrait en magasin, Stock_Images, Suppression_Auto_produit_Panier, Ticket_SAV, ultra_pics_v1.0, xsell_v2.2
|
|
|
21 Jun 2011, 17:51
Message
#2
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 176 Inscrit : 9-December 04 Lieu : Nantes Membre no 4029 |
Bon cela n'a pas l'air de vous inspirer plus que ça !!!
Si quelqu'un pouvait me dire comment transférer mes données php vers ma BD. Je pense notament à implode et explode mais je ne m'en suis jamais servi. -------------------- Oscommerce : MS2.2 avec Pack Sécurité, modules ajoutés : accept_CGV, AdminMS2fr_V2.3, BoxImageThemaMS2fr_V2.7, colissimo_1.5.2, Courte_description_produit_admin, CustomComputerCreator9.3, Down for Maintenance v1.1 MS 2.2, Enhanced_new_products, estimation livraison, fckeditor-oscommerce_v2.2.1, Impression reçu, main_categories2.1_1, new_product css, New_Products_Icon_1.3, Nom_Produit_dans_Navigation, optimisation_also_purchased, Plan site, Retrait en magasin, Stock_Images, Suppression_Auto_produit_Panier, Ticket_SAV, ultra_pics_v1.0, xsell_v2.2
|
|
|
22 Jun 2011, 14:00
Message
#3
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 176 Inscrit : 9-December 04 Lieu : Nantes Membre no 4029 |
Alors, j'ai créer une nouvelle valeur dans la bd nommée : supplement_values_price appartenent à la table PRODUCTS_ATTRIBUTES
J'essaye en vain d'enregistrer ma valeur supplément dans la bd mais cela me retourne toujours 0.00 Le code ci-dessous correspond à mon fichier de traitement ajax. le code en rouge correspond à l'insertion des données supplement dans la bd qui ne fonctionne pas Code <?php require('includes/application_top.php'); $product_id = $_GET['product_id']; $supplement = $_GET['supplement']; $uiLa = $_GET['largeur']; $uiHa = $_GET['hauteur']; $modified_price = $_GET['price']; $new_price = $_GET['special_price']; $qte = $_GET['quantite']; //$modified_price = 0; [color="#FF0000"][b] $sql_data_array = array('supplement_values_price' => $supplement); tep_db_perform(TABLE_PRODUCTS_ATTRIBUTES, $sql_data_array); tep_db_query("update " . TABLE_PRODUCTS_ATTRIBUTES . " set supplement_values_price = '" . $_POST['supplement'] . "' where products_id = '" . (int)$product_id . "'");[/b][/color] $product_new_price_query = tep_db_query("select * from " .TABLE_PRODUCTS_ATTRIBUTES. " where products_id = '" . (int)$product_id . "'"); $product_new_price = tep_db_fetch_array($product_new_price_query); $modified_price = $qte * (($modified_price * 1.196) + $supplement); //echo $modified_price; $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, p.products_image_med, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$product_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_info_ajx = tep_db_fetch_array($product_info_query); if ($new_price = tep_get_products_special_price($product_info_ajx['products_id'])) { $new_price = $qte * (($new_price * 1.196) + $supplement); $products_price = '<s>' . $modified_price . ' €</s><br><span class="prixPromo">PROMO = ' . $new_price . ' €</span>'; } else { $products_price = $modified_price . ' €'; } echo $products_price; ?> Une petite idée serait la bienvenue, je suis un peu perdu là. Merci -------------------- Oscommerce : MS2.2 avec Pack Sécurité, modules ajoutés : accept_CGV, AdminMS2fr_V2.3, BoxImageThemaMS2fr_V2.7, colissimo_1.5.2, Courte_description_produit_admin, CustomComputerCreator9.3, Down for Maintenance v1.1 MS 2.2, Enhanced_new_products, estimation livraison, fckeditor-oscommerce_v2.2.1, Impression reçu, main_categories2.1_1, new_product css, New_Products_Icon_1.3, Nom_Produit_dans_Navigation, optimisation_also_purchased, Plan site, Retrait en magasin, Stock_Images, Suppression_Auto_produit_Panier, Ticket_SAV, ultra_pics_v1.0, xsell_v2.2
|
|
|
22 Jun 2011, 14:25
Message
#4
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 176 Inscrit : 9-December 04 Lieu : Nantes Membre no 4029 |
J'avance à petit, en faite il y avait au départ un problème avec $supplement qu'il fallait remplacer par $product_new_price['supplement_values_price'].
Donc j'ai bien ma transmission de ma valeur dans ma bd. Maintenant, il faut que j'envoye cette valeur dans mon shopping cart -------------------- Oscommerce : MS2.2 avec Pack Sécurité, modules ajoutés : accept_CGV, AdminMS2fr_V2.3, BoxImageThemaMS2fr_V2.7, colissimo_1.5.2, Courte_description_produit_admin, CustomComputerCreator9.3, Down for Maintenance v1.1 MS 2.2, Enhanced_new_products, estimation livraison, fckeditor-oscommerce_v2.2.1, Impression reçu, main_categories2.1_1, new_product css, New_Products_Icon_1.3, Nom_Produit_dans_Navigation, optimisation_also_purchased, Plan site, Retrait en magasin, Stock_Images, Suppression_Auto_produit_Panier, Ticket_SAV, ultra_pics_v1.0, xsell_v2.2
|
|
|
22 Jun 2011, 22:39
Message
#5
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1333 Inscrit : 12-July 08 Lieu : La Graciosa, Canarias Membre no 22434 |
salut
je pense que ça se passe dans includes/classes/shopping_cart.php vers ligne 280 , tu ajoutes supplement_values_price au select sur la TABLE_PRODUCTS_ATTRIBUTES ensuite tu ajoutes $attribute_price[supplement_values_price'] dans les functions de calcul de prix avec les attributs et tu devrais avoir vers ligne 337 : 'final_price' => ($products_price + $this->attributes_price($products_id)), qui va bien.... par contre je n'ai pas approffondi le code mais je ne suis pas sur que tu puisses faire toutes les requetes necessaires sur shopping_cart.php, il sera peut-etre preferable de déclarer et insert en bdd $supplement dans product_info.php, à voir .... je ne sais pas non plus à quoi tu destines ce supplément mais sache que avec ton code ce nouvel attribut va ensuite s'appliquer à tous tes visiteurs , autant dire que si tu paramétrais dans l'admin cet attribut à tous les produits concernés, cela reviendrait au même ! bien sur tu peux aussi construire une condition pour que ce supplement soit updater à "0" si ... bon code -------------------- entre chats : chat affamé cherche chat pelure pour faire sauter chat perché dans poil de chat (allergiques s'abstenir)
ah oui ... osCommerce v2.2 RC1 french by Delaballe "merci à lui" - PHP version 4.4.8 - mysql5-41 - OVH 240Plan - contribs : (entre autre) AJAX-AttributeManager-V2.8.2 - Limit_Countries - Multi-Product Update v1.00 - Quick Updates 2.7 - Individual Product Shipping Prices - v1_0 - Attribute Qty Product Info - user_tracking_1 - Visitor Web Stats 3.2.1 - Sort Order - image_subdirectories - master password v1.4 - virementbancaire1.4 - Welcome_Email_password ... "et grand merci à tous les contributionneurs" |
|
|
27 Jun 2011, 21:12
Message
#6
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 176 Inscrit : 9-December 04 Lieu : Nantes Membre no 4029 |
Me revoilà,
Désolé pour l'attente. Alors tu avais tout bon sykaflex. Après quelques modifs mon supplément est bien dans le panier + le prix original. Reste néanmoins deux problèmes qui subsistent. Effectivement, je n'avais pas pensé que le nouvel attribut nommé supplément allait s'appliquer à tout les visiteurs en même temps !!! Enfin en même temps, c'est à dire que si ils sont sur la même page produit et qu'ils choisissent deux tailles différentes avec donc deux suppléments différents, un des deux clients aura le supplément de l'autre !!! Le problème est comment faire pour que ce supplément fonctionne à la manière du option_value_price ? Serait-il envisageable de substituer option_value_price pour mon supplément ? Le calcul du supplément se fait par rapport à un slider qui lorsqu'on le déplace,affiche une longueur donnée ainsi qu'une hauteur qui est calculé proportionnellement à une image. Je sais pas si je suis clair là ? Donc mon supplément est en gros calculé comme ceci : supplément = (longueur * hauteur)*coef (le coef est une plus-value suivant la longueur) Tu comprendras qu'il m'est impossible d'inclure le supplément en tant qu'attribut propre au produit sinon il faudrait que je rentre chaque supplément pour chaque longueur, sachant que mes longueurs peuvent variées de 10 cm à 500 cm (avec des pas de 0.1 cm) !!! Le deuxième problème concerne l'upload de mon image dans mon fichier javascript. J'ai bien fait une requête ajax sur le nom products_image mais mon javascript ne me retourne rien. Voici le bout de code pour le traitement : Code $prdImg = $_GET['prdImg']; $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, p.products_image_med, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$product_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_info_ajx = tep_db_fetch_array($product_info_query); $prdImg = $product_info_ajx['products_image_med']; echo $prdImg; //vérifie que le nom de l'image s'affiche Et le bout de code javascript (j'ai enlevé volontairement le superflu !) Code function getImageSize(imgSrc,imgSize) { var img = document.createElement('img'); img.onload = function() { imgSize({ w:this.width, h:this.height }); } img.src = imgSrc; } function getPrice(price,special_price,product_id,supplement) { var prdImg = $('#prdImg').val(); xmlHttpObj = getxmlHttpObj(); xmlHttpObj.onreadystatechange=function() { if (xmlHttpObj.readyState==4) { getImageSize('http://www.sticker-art-deco.com/images/honda.png', function(size) { alert(size.w+'x'+size.h); J'ai aussi essayé en PHP comme ceci : Code list($w, $h) = getimagesize($url . $product_info_ajx['products_image_med']); $w = $_GET['w']; $h = $_GET['h']; echo $w." x ".$h; J'ai bien un retour de mes dimensions depuis mon echo mais impossible de transmettre les variables au javascript. aucune réponse dans mon alert. Le fichier javascript est presque similiare à celui ci-dessus mise par les variables w et h en plus: Code var w = $('#w').val(); var h = $('#h').val(); alert(w+' * '+h); Voilà ou j'en suis pour le moment. 1-Réglé le problème du supplément 2-Réglé le problème de l'importation de l'image Merci de vos réponses Ce message a été modifié par c0v3r - 28 Jun 2011, 09:24. -------------------- Oscommerce : MS2.2 avec Pack Sécurité, modules ajoutés : accept_CGV, AdminMS2fr_V2.3, BoxImageThemaMS2fr_V2.7, colissimo_1.5.2, Courte_description_produit_admin, CustomComputerCreator9.3, Down for Maintenance v1.1 MS 2.2, Enhanced_new_products, estimation livraison, fckeditor-oscommerce_v2.2.1, Impression reçu, main_categories2.1_1, new_product css, New_Products_Icon_1.3, Nom_Produit_dans_Navigation, optimisation_also_purchased, Plan site, Retrait en magasin, Stock_Images, Suppression_Auto_produit_Panier, Ticket_SAV, ultra_pics_v1.0, xsell_v2.2
|
|
|
1 Jul 2011, 00:46
Message
#7
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1333 Inscrit : 12-July 08 Lieu : La Graciosa, Canarias Membre no 22434 |
salut
Citation Le calcul du supplément se fait par rapport à un slider qui lorsqu'on le déplace,affiche une longueur donnée ainsi qu'une hauteur qui est calculé proportionnellement à une image. ben tu créés une fonction récupérant les 3 variables, faisant le calcul et renvoyant la valeur du supplément, non ?Je sais pas si je suis clair là ? Donc mon supplément est en gros calculé comme ceci : supplément = (longueur * hauteur)*coef (le coef est une plus-value suivant la longueur) pour la 2eme question -------------------- entre chats : chat affamé cherche chat pelure pour faire sauter chat perché dans poil de chat (allergiques s'abstenir)
ah oui ... osCommerce v2.2 RC1 french by Delaballe "merci à lui" - PHP version 4.4.8 - mysql5-41 - OVH 240Plan - contribs : (entre autre) AJAX-AttributeManager-V2.8.2 - Limit_Countries - Multi-Product Update v1.00 - Quick Updates 2.7 - Individual Product Shipping Prices - v1_0 - Attribute Qty Product Info - user_tracking_1 - Visitor Web Stats 3.2.1 - Sort Order - image_subdirectories - master password v1.4 - virementbancaire1.4 - Welcome_Email_password ... "et grand merci à tous les contributionneurs" |
|
|
4 Jul 2011, 15:45
Message
#8
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 176 Inscrit : 9-December 04 Lieu : Nantes Membre no 4029 |
Bonjour tout le monde,
J'ai repris tout mon code et je réctualise ma requête ! Tout fonctionne parfaitement, mais il me reste un problème de taille. Lors de l'ajout de mon produit dans le panier, mon supplément n'est pas pris en compte. Si je fait ceci : Code $sql_data_array = array('supplement_values_price' => $supplement); tep_db_perform(TABLE_PRODUCTS_ATTRIBUTES, $sql_data_array); tep_db_query("update " . TABLE_PRODUCTS_ATTRIBUTES . " set supplement_values_price = '" . $_GET['supplement'] . "' where products_id = '" . (int)$product_id . "'"); Et en modifiant la classe shopping_cart, mon supplément + le prix produit est bien ajouté dans le panier. Le problème est que ce supplément sera valable pour chaque client. Comment faire pour que ce supplément soit différent pour chaque client ? Et là je bloque complétement. Comme l'a dit plus haut sykaflex, utiliser une condition pour updater le supplément à 0. Mais comment faire ? Merci de vos réponses -------------------- Oscommerce : MS2.2 avec Pack Sécurité, modules ajoutés : accept_CGV, AdminMS2fr_V2.3, BoxImageThemaMS2fr_V2.7, colissimo_1.5.2, Courte_description_produit_admin, CustomComputerCreator9.3, Down for Maintenance v1.1 MS 2.2, Enhanced_new_products, estimation livraison, fckeditor-oscommerce_v2.2.1, Impression reçu, main_categories2.1_1, new_product css, New_Products_Icon_1.3, Nom_Produit_dans_Navigation, optimisation_also_purchased, Plan site, Retrait en magasin, Stock_Images, Suppression_Auto_produit_Panier, Ticket_SAV, ultra_pics_v1.0, xsell_v2.2
|
|
|
4 Jul 2011, 21:40
Message
#9
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1333 Inscrit : 12-July 08 Lieu : La Graciosa, Canarias Membre no 22434 |
Comment faire pour que ce supplément soit différent pour chaque client ? supposant que le client ne soit pas logué et qu'il ne soit pas possible de lier customers_id à ce supplément ... il ne reste qu'une solution : lier l'id de session à ce supplément en créant un champ 'sessions' dans la table "products_attribut", updater le champ avec la session en cours, et pour les visiteurs suivants, updater le champ à "0" ou une autre valeur si cession différenteEt là je bloque complétement. Comme l'a dit plus haut sykaflex, utiliser une condition pour updater le supplément à 0. Mais comment faire ? Merci de vos réponses si quelqu'un a 'autres idées ... bon code -------------------- entre chats : chat affamé cherche chat pelure pour faire sauter chat perché dans poil de chat (allergiques s'abstenir)
ah oui ... osCommerce v2.2 RC1 french by Delaballe "merci à lui" - PHP version 4.4.8 - mysql5-41 - OVH 240Plan - contribs : (entre autre) AJAX-AttributeManager-V2.8.2 - Limit_Countries - Multi-Product Update v1.00 - Quick Updates 2.7 - Individual Product Shipping Prices - v1_0 - Attribute Qty Product Info - user_tracking_1 - Visitor Web Stats 3.2.1 - Sort Order - image_subdirectories - master password v1.4 - virementbancaire1.4 - Welcome_Email_password ... "et grand merci à tous les contributionneurs" |
|
|
11 Jul 2011, 09:46
Message
#10
|
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1449 Inscrit : 3-June 09 Membre no 25501 |
deux choses :
1. en aucun cas des ordres SQL d'update sur la table PRODUCTS_ATTRIBUTES ne doivent apparaître dans les fichiers du front office. c'est une erreur grave de conception. 2. Citation sachant que mes longueurs peuvent variées de 10 cm à 500 cm (avec des pas de 0.1 cm) !!! utiliser un slider avec de telles échelles est totalement inadapté, une simple entrée 'input text' me semble largement plus judicieuse. -------------------- |
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 18th May 2013 - 11:00 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |