ajout du prix dans la description du produit, ajout du prix dans la description du produit |
Bienvenue invité ( Connexion | Inscription )
ajout du prix dans la description du produit, ajout du prix dans la description du produit |
22 Mar 2017, 14:10
Message
#1
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 27 Inscrit : 3-February 09 Membre no 24419 |
Bonjour
je cherche à ajouter dans la description de l'article de ma boutique le prix en promotion. N'étant pas un pro du php , pour l'instant j'arrive à rien. j'ai essayer d'ajouter simplement : <?php echo $products_price; ?> dans la Description du produit mais le prix ne s'affiche pas . Merci d'avance oscommerce ms2.2 RC1 -------------------- oscommerce 2.2 rc1
|
|
22 Mar 2017, 14:24
Message
#2
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Bonjour,
C'est dans la page product_info.php que l'affichage doit se faire ? Est-ce que dans le fichier catalog/includes/funsctions/general.php il y a la function tep_get_products_special_price ? Si oui, alors pour récupérer le prix recherché, il faut utiliser un truc du genre : Code $new_price = tep_get_products_special_price($product_info['products_id'])
echo $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])); -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
22 Mar 2017, 14:49
Message
#3
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 27 Inscrit : 3-February 09 Membre no 24419 |
bonjour
en fait ce que je veux faire, dans la description des articles (page product_info ) avoir le prix promo s'affichant à l'intérieur de la description de l'article . En gros pour que le prix soit affiché lors de la recherche dans google. Cela ne pose pas de probléme d’ailleurs si c'est manuel dans la description des articles ( ajout d'un bout de code à chaque remplissage de la description d'un article dans l'interface d'admin) Merci cordialement Bonjour,
C'est dans la page product_info.php que l'affichage doit se faire ? Est-ce que dans le fichier catalog/includes/funsctions/general.php il y a la function tep_get_products_special_price ? Si oui, alors pour récupérer le prix recherché, il faut utiliser un truc du genre : Code $new_price = tep_get_products_special_price($product_info['products_id']) echo $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])); Ce message a été modifié par jlb59226 - 22 Mar 2017, 14:54. -------------------- oscommerce 2.2 rc1
|
|
22 Mar 2017, 15:04
Message
#4
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Ok, alors non c'est pas possible, le code n'est pas interprété dans la partie désignation.
-------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
22 Mar 2017, 15:16
Message
#5
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 27 Inscrit : 3-February 09 Membre no 24419 |
ok merci .
j'ajouterais le prix à la main dans le descriptif , dommage Merci pour les réponses -------------------- oscommerce 2.2 rc1
|
|
22 Mar 2017, 17:04
Message
#6
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 100 Inscrit : 6-November 12 Membre no 31715 |
(déplacé plus bas)
Ce message a été modifié par SaphyraK - 22 Mar 2017, 18:14. -------------------- We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...) |
|
22 Mar 2017, 17:53
Message
#7
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
@SaphyraK,
Si j'ai bien compris, c'est pour inclure le prix promotionnel dans le texte du descriptif de l'article, autrement dit l'inclure dans la valeur du champ product_description de la table TABLE_PRODUCTS_DESCRIPTION et que cela s'affiche via echo $product_info['products_description']; En gros, cela donnerait cela : Citation La farine de seigle Notre farine maison, en promotion actuellement au prix de 0.95€ le sac de 1 kg, est une farine dite « panifiable », mais pauvre en gluten mais en moindre proportion que la farine de blé. ... OsCommerce n'accepte pas du Php dans les enregistrements en BDD. -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
22 Mar 2017, 18:15
Message
#8
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 100 Inscrit : 6-November 12 Membre no 31715 |
Citation J'ai mis à jour mon ancien post: (donc j'ai édité l'ancien plus haut histoire de créér un UP, sans faire un UP) Hello, Cela devrait être possible dans l'administration avec une requête SQL custom non? Je veux dire par là.. Créer une fonction personnalisée dans admin/includes/functions/general.php pour gérer ce cas de figure. Code function jlb_recuperer_prix_promotion($product_id) { // ici on effectue la requête SQL pour récupérer la promotion pour le produit (ayant comme ID: $product_id) $requete_sql_promotion_produit = tep_db_query("select specials_new_products_price from " . TABLE_SPECIALS . " where products_id = '" . (int)$product_id . "' and status"); // ici on stocke le résultat dans une variable qui sera un tableau à 1 dimension. $promotion_produit = tep_db_fetch_array($requete_sql_promotion_produit); // et là on retourne le seul index du tableau qui nous intérésse à savoir: 'specials_new_products_price' // 'specials_new_products_price' est le NOM de la colonne SQL dans la table des promotions (toujours dans la base de données SQL).. return ($promotion_produit['specials_new_products_price']); } ET dans le fichier product_info.php Code // on récupère le prix Hors Taxe non formaté. $jlb_prix_promotionnel_ht = jlb_recuperer_prix_promotion($product_info['products_id']); // on l'affiche avec display_price() et on utilise au travers tep_get_tax_rate() pour avoir le taux de taxation du produit. // afin de retourner le prix Toute Taxe Comprise: echo $currencies->display_price($jlb_prix_promotionnel_ht, tep_get_tax_rate($product_info['products_tax_class_id'])); C'est pas compliqué pour l'affichage, le seul travail de recherche sera au niveau de la requête SQL pour trouver l'information. Mais pour aider plus amplement, il faudrait vraiment que tu précises clairement ce que tu souhaites faire, car pour le frontOffice c'est possible sans mon code. Mais si c'est pour le backOffice... c'est avec ma méthode que tu t'en sortiras. Après si tu te sens en forme, tu peux aussi décider de créer un bouton: [Ajouter Prix Promotionnel] à côté du champ de texte du produit dans le backOffice. (un début ci dessous): NOTE: {ID DU CHAMP HTML A MODIFIER} == est à remplacer par l'ID du champ HTML à modifier (si il est dynamique, génère le via PHP, si il est statique, écrit le simplement). Code <input type="button" value="Ajouter Prix Promotionnel" onclick="jlb_ajax_recuper_prix_promotion('<?php echo strval($_GET=['product_id'])); ?>', {ID DU CHAMP HTML A MODIFIER});"> <script type="text/javascript"> function jlb_ajax_recuper_prix_promotion(id_produit,id_html) { // truc habituel pour initialiser un objet AJAX: // lis ça pour plus d'informations sur AJAX: https://openclassrooms.com/courses/ajax-et-l-echange-de-donnees-en-javascript/l-objet-xmlhttprequest-1 var xhr = new XMLHttpRequest(); // on encode la chaîne contenue dans la variable (qui sert d'attribut) pour éviter la perte de caractères non ASCII. var id_produit = encodeURIComponent(id_produit); xhr.open("GET", "jlb_recuperer_promotion_produit.php", true); xhr.send("product_id=id_produit"); // ..etc.. // // la fonction appellée par la page PHP initiée serait alors un clone de ta fonction 'jlb_recuperer_prix_promotion()': // mais cette fois, sans la notion de fonction // // pour récupérer le résultat compilé par ta page PHP: xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { // et on écrit à la suite de ton champ de texte la valeur récupérée! document.getElementById(id_html).value = document.getElementById(id_html).value + '. Actuellement au prix promotionnel à partir de: ' + xhr.responseText; } }; // j'ai un peu théorisé le tout, à toi de trouver comment tout emboîter, mais c'est vraiment facile. // j'aurai eu le temps je t'aurai tout fait, mais voilà.. actuellement je n'en ai pas! (même pas pour moi :/) } Oh.. Et le code de ta page PHP nommée 'jlb_recuperer_promotion_produit.php' ressemblerait à ça: Code <?php // ce fichier PHP est à placer à la racine de ton dossier admin. // si tu décides de renommer ce fichier, renommes le aussi dans la fonction javascript (plus haut) // si tu décides de déplacer le fichier dans un autre dossier, effectues en conséquence les remplacements de localisation des require_once ci-dessous pour adapter à la nouvelle localisation ! // Utilisation d'un header pour spécifier le type de contenu de la page. Ici, il s'agit juste de texte brut (text/plain). // Parfois c'est pas utile quand par exemple tu gères des resources et non du texte, ici on retourne du texte. // Donc l'exemple d'AlsaCréation convient très bien. header("Content-Type: text/plain"); $product_id = (isset($_GET["id_produit"])) ? $_GET["id_produit"] : NULL; // OUBLIES PAS D'INCLURE AVEC require_once() CHACUN DES FICHIERS QUI CONTIENT AU MOINS 1 FOIS LES DEPENDANCES OSCOMMERCE. // SINON LES FONCTIONS COMME: // tep_db_query() // tep_db_fetch_array() // objet comme Currencies // Comme je l'ai donc dit.. // on inclue quelques fichiers et fonctions de osCommerce compte-tenu du fait que comme ce fichier est appellé par AJAX, // c'est donc HORS de la page appellante // que cette page est appellée, ainsi, toute les constantes de langues ou de OSCommerce n'y sont pas chargée // require_once('../includes/configure.php'); require_once('../includes/functions/database.php'); // on testes la connexion ici: tep_db_connect() or die('Impossible de continuer à récupérer le prix promotionnel: Une erreur au niveau MySQL. -> impossible de se connecter à la base de données..'); require_once('../includes/filenames.php'); require_once('../includes/database_tables.php'); require_once('../includes/functions/general.php'); require_once('../includes/classes/currencies.php'); if ($product_id) { // on peut travailler avec l'ID du produit, car il est dans l'attribut reçu ! // ici on effectue la requête SQL pour récupérer la promotion pour le produit (ayant comme ID: $product_id) $requete_sql_promotion_produit = tep_db_query("select specials_new_products_price from " . TABLE_SPECIALS . " where products_id = '" . (int)$product_id . "' and status"); // ici on stocke le résultat dans une variable qui sera un tableau à 1 dimension. $promotion_produit = tep_db_fetch_array($requete_sql_promotion_produit); // et là on retourne le seul index du tableau qui nous intérésse à savoir: 'specials_new_products_price' // 'specials_new_products_price' est le NOM de la colonne SQL dans la table des promotions (toujours dans la base de données SQL).. // on récupère ainsi le prix Hors Taxe non formaté. $jlb_prix_promotionnel_ht = $promotion_produit['specials_new_products_price']; // on l'affiche avec display_price() et on utilise au travers tep_get_tax_rate() pour avoir le taux de taxation du produit. // afin de retourner le prix Toute Taxe Comprise: // on fait déjà un appel à la classe currencies de OSCOMMERCE afin de créér un objet currencies dans la variable $monnaies ! $monnaies = new currencies(); echo $monnaies->display_price($jlb_prix_promotionnel_ht, tep_get_tax_rate($product_info['products_tax_class_id'])); } else { // on ne fait rien car on a pas trouvé l'ID de produit dans l'attribut reçu ! } ?> Voilà, bon courage (et de rien) EDIT: j'ai ajouté quelques petites précisions et corrigé des erreurs de typo ! Ce message a été modifié par SaphyraK - 22 Mar 2017, 18:30. -------------------- We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...) |
|
22 Mar 2017, 18:18
Message
#9
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 100 Inscrit : 6-November 12 Membre no 31715 |
@SaphyraK, Si j'ai bien compris, c'est pour inclure le prix promotionnel dans le texte du descriptif de l'article, autrement dit l'inclure dans la valeur du champ product_description de la table TABLE_PRODUCTS_DESCRIPTION et que cela s'affiche via echo $product_info['products_description']; En gros, cela donnerait cela : Citation La farine de seigle Notre farine maison, en promotion actuellement au prix de 0.95€ le sac de 1 kg, est une farine dite « panifiable », mais pauvre en gluten mais en moindre proportion que la farine de blé. ... OsCommerce n'accepte pas du Php dans les enregistrements en BDD. Donc j'avais bien compris. D'où la solution que j'ai donné, certe.. c'est un poil compliqué si tu connaît pas le PHP @jlb59226 mais tout est possible à qui s'en donne les moyens @oscommerce: coucou Ce message a été modifié par SaphyraK - 22 Mar 2017, 18:31. -------------------- We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...) |
|
Version bas débit | Nous sommes le : 30th March 2024 - 02:39 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |