
genius_
Members-
Posts
16 -
Joined
-
Last visited
Profile Information
-
Location
France
-
Activity
Developer
genius_'s Achievements
Newbie (1/14)
0
Reputation
-
Quel hook lors de l'ajout au panier ?
genius_ replied to genius_'s topic in PrestaShop pour les développeurs
Merci pour la rapidité à laquelle tu as répondu ! Je ne vois vraiment pas comment faire via du Jquery, la seule chose que j'ai fais pour l'instant : PHP/Javascript -
Bonjour Je poursuis la réalisation de mon module de location d'article. Mais évidemment j'ai codé comme un porc, et je suis donc perdu. L'utilisateur choisi la durée de location (en jours, et le prix varie en fonction de cette durée). 1. Cependant, lorsqu'il ajoute au panier, le panier garde le tarif à la journée (soir 119,60€ et non pas les 358,80€). CF pièce jointe. Je suppose donc qu'il est nécessaire d'ajouter un attribut ou une variable dans le controleur ? Ou alors d'overrider le hook d'ajout au panier pour qu'il effectue ma simple multiplication (nb_jour * prix) Si vous pouvez m'aider, je vous en serait reconnaissant ! Merci
-
Modifier prix à partir d'une liste déroulante
genius_ replied to genius_'s topic in PrestaShop pour les développeurs
Up -
Calcul du prix TTC en back office
genius_ replied to genius_'s topic in PrestaShop pour les développeurs
Merci, je vais m'y intéresser de plus près -
Bonjour Je voulais savoir s'il existait une méthode pour calculer le prix TTC (si une variable globale contenant le taux de la taxe existe par exemple ça serait fort pratique). S'il vous plait, merci à vous.
-
Bonjour J'ai un soucis sur lequel j'ai passé la journée (comme toujours ... moi et Prestashop ça fait 2). Je m'explique : j'ai une liste déroulante sur ma fiche produit qui permet de choisir le nombre de jour pendant lequel le client veut louer l'article. A savoir qu'un tarif journalier est fixé (par exemple 10 €/jour) S'il choisi 2 jours : le prix doit s'incrémenter automatiquement de 10€. Or, impossible de trouver comment faire ... Aussi, je ne passe pas par les déclinaisons produits, donc difficile d'utiliser les "attributes" dans le product.tpl (ou product.js). J'ai voulu essayer avec du javascript qui récupère la valeur choisie dans la liste déroulante et échec ! Pas capale de récupérer la valeur choisie, et je m'énerve Je suis perdu, si vous voulez bien m'aider ce serait remarquable
-
[Résolu] Récupérer le prix produit dans la BDD
genius_ replied to genius_'s topic in PrestaShop pour les développeurs
Je viens de découvrir qu'en fait il s'agit de la colonne price de la table ps_product_shop qui est utilisée (que ce soit pour l'affichage ou le calcul du prix TTC) ... si seulement la BDD était plus claire Et bien merci pour ton aide à toi Pepitoww. je peux maintenant me consacrer à la gestion du tarif journalier pour la location produit. Encore merci ! -
[Résolu] Récupérer le prix produit dans la BDD
genius_ replied to genius_'s topic in PrestaShop pour les développeurs
Oui je suis conscient qu'il s'agit de prices.tpl que j'ai d'ailleurs exploré pour voir comment le prix était affiché. Il semblerait que l'affichage se fasse avec l'attribut $price de l'objet $product. L'accès se fait donc via : $product->price. Voici le paramètre du champs INPUT du prix HT : value="[spam-filter]toolsConvertPrice price=$product->price}|string_format:'%.2f'}" Le code complet : <td style="padding-bottom:5px;"> <input type="hidden" id="priceTEReal" name="price" value="{toolsConvertPrice price=$product->price}" /> {$currency->prefix}<input size="11" maxlength="14" id="priceTE" name="price_displayed" type="text" value="[spam-filter]toolsConvertPrice price=$product->price}|string_format:'%.2f'}" onchange="noComma('priceTE'); $('#priceTEReal').val(this.value);" onkeyup="$('#priceType').val('TE'); $('#priceTEReal').val(this.value.replace(/,/g, '.')); if (isArrowKey(event)) return; calcPriceTI();" />{$currency->suffix} <p class="preference_description">{l s='The pre-tax retail price to sell this product'}</p> </td> Je te remercie encore pour ton soutien, je bloque toujours autant. Il s'agit de POO alors j'imagine que l'attribut $price de la classe Product (objet $product dans le code) doit être initialisé à partir de sa valeur dans la BDD (donc de la valeur que j'ai saisi et qui est dans cette BDD ... incompréhension totale) -
[Résolu] Récupérer le prix produit dans la BDD
genius_ replied to genius_'s topic in PrestaShop pour les développeurs
Oui, lorsque je saisi mon tarif dans mon champs et que j'enregistre. je vais voir ma table ps_product : elle contient bien la valeur saisie (dans la colonne price). Voici le code qui s'exécute lorsque j'enregistres mes modifications en BO : public function hookActionProductUpdate($params) { $id_product = Tools::getValue('id_product'); $sampleObj = BlockLocationClasse::loadByIdProduct($id_product); $sampleObj->dispo = (boolean)Tools::getValue('dispo'); $sampleObj->texte = Tools::getValue('texte'); $sampleObj->tarif = (float)Tools::getValue('tarif'); $sampleObj->nb_jour_max = Tools::getValue('nb_jour_max'); $sampleObj->id_product = $id_product; //Test l'objet et son attribut "tarif" pour voir si on peut modifier le tarif dans la BDD if( !empty($sampleObj) && isset($sampleObj->tarif) ) { $this->setProductPrice($id_product, $sampleObj->tarif); /*<-------------------- ICI QUE J'APPELLE MA METHODE*/ } //Test l'objet afin de voir s'il faut le modifier ou le crééer if( !empty($sampleObj) && isset($sampleObj->id) ) { $sampleObj->update(); } else { $sampleObj->add(); } } La méthode en question : /* Méthode pour modifier uniquement le prix d'un produit en fonction de son ID Arguments : - id_produit pour le WHERE - price qui est le tarif à modifier */ public function setProductPrice($id_product, $price) { $result = Db::getInstance()->update('product', array('price' => $price), 'id_product = '.(int)$id_product); } EDIT : qui plus est, lorsque j'accède au listing des produits en BO (donc Catalogue -> produits) j'ai bien le tarif saisi qui s'affiche correctement dans la colonne prix de base donc je soupçonne les fichiers .tpl de ne pas aller récupérer la bonne valeur dans la BDD ... vraiment étrange. -
[Résolu] Récupérer le prix produit dans la BDD
genius_ replied to genius_'s topic in PrestaShop pour les développeurs
Merci pour les informations, c'est donc bien ce que je pensais, seule la table ps_product est utilisée pour l'affichage (et les getters de la classe Product). Vraiment bizarre que le .tpl qui affiche les prix n'aille pas "récupérer" les valeurs qui sont pourtant correctes dans ma table ps_product D'ailleurs je ne l'ai pas précisé, mais l'affichage du prix pose problème dans le FO : lors du listing des produits, et dans la fiche produit. j'ai donc écris un getter qui fonctionne, mais celà n'est pas très pro et je dois donc appeler ce getter dans tout les .tpl qui affichent le prix ... pas pratique du tout. EDIT : La variable qui affiche le prix dans les .tpl, notamment product_list.tpl est : $product.show_price. Je suis perdu, je pensais qu'on accéder aux attributs d'une classe via nomClasse->attribut, il ne s'agit donc pas de l'affichage de l'attribut d'un objet produit ? SVP -
Bonjour J'ai créé un module qui permet en BO de remplir quelques champs (pour louer un article) et donc l'admin peut saisir un champ "tarif" qui modifie le prix de l'article pour le remplacer par celui saisi. J'arrive bien à modifier la table ps_product (donc la colonne price) ainsi que la table ps_product_attribute (colonne price) et la table ps_layered_price_index mais à moitié (uniquement la colonne price_min qui est le prix HT, pas price_max qui est le prix TTC) Quand je vais dans l'onglet prix de la page de modification d'un produit (en BO) je ne retrouve pas le prix que j'ai saisi via mon module qui a son onglet aussi dans la page de modification d'un produit (vous savez les onglets prix, informations, déclinaisons, quantités etc)... ... Incompréhension totale. Comment faire pour modifier correctement le prix HT, pour ensuite calculer automatiquement le prix TTC ? Je désespère, je vous remercie de votre patience
-
Bonjour Je désire proposer certains articles à la location : soit l'article sera proposé à la vente, soit à la vente. Or je ne sais pas comment m'y prendre, j'avais pensé passer par un module mais je ne m'en sors pas. Alors j'ai pensé ajouter un type de produit (visible dans Catalogue -> produits -> modif du produit -> puis tout en haut de l'onglet Information on a : Simple, Pack, Dématérialisé, j'ai ajouté Location. Mais j'aimerai que lorsque cette radio box soit cochée, on puisse avoir un onglet location qui s'affiche comme lorsqu'on clique sur Pack ou Dématérialisé (l'onglet dédié s'affiche) Je suis perdu et je fais appel à votre soutien Merci d'avance
-
Bonjour Je développe un petit module pour permettre de proposer un article à la location. Grâce à un tuto qui m'a grandement aidé (http://www.prestasho...-en-prestashop/) j'ai pu ajouter en back-office un onglet "location de produit" dans la page de modification d'un produit. L'admin saisi une date, dans un champ <input> de type date mais dans la fonction hookActionProductUpdate($params) qui effectue mon traitement lorsque j'enregistre les modifs, je voudrais vérifier que la données saisie est bien au bon format (et donc de type date) La fonction en question, toute simple : public function hookActionProductUpdate($params) { $id_product = Tools::getValue('id_product'); $sampleObj = BlockLocationClasse::loadByIdProduct($id_product); $sampleObj->texte = Tools::getValue('texte'); $sampleObj->date_limite = Tools::getValue('date_limite'); $sampleObj->nb_article = Tools::getValue('nb_article'); $sampleObj->nb_jour_max = Tools::getValue('nb_jour_max'); $sampleObj->id_product = $id_product; // -----------> je suppose que le traitement doit se faire ici ou alors dans ma condition ci-dessous // mais comment la faire cette vérif ? avec quelles méthodes ? if( !empty($sampleObj) && isset($sampleObj->id) ) { $sampleObj->update(); } else { $sampleObj->add(); } } Si le type date pose problème, on peut essayer avec un <input> de type texte S'il vous plait. Je vous remercie de votre patience.
-
Bonjour J'ai trouvé un court tuto qui correspond parfaitement à mes attentes, j'ai repris le code, j'ai ajouté des champs (4) dans le .tpl ainsi que dans le .php et dans la classe dédiée. http://www.prestasho...-en-prestashop/ "Mon" module qui permettra à l'admin de choisir une date pour louer un article s'installe parfaitement et est "opérationnel" enfin ... à moitié ! Lorsque je suis en back-office, je remplis mes champs de formulaire dans la page de modification d'un produit et j'enregistre. Je vais voir ma BDD et là incompréhension : les données que j'ai saisies ne sont pas dans ma table ... bien qu'il y ait une ligne existante une fois que j'ai remplis le formulaire en back-office (mais les dates sont 0000-00-00 donc nulles) Je soupcçonne mon .tpl d'être faux. En effet, seul le <textarea> est pris en compte lorsque je fais enregistrer (dans la page de modification de produits en BO) puisque j'ai isolé le <textarea> et il est pris en compte tandis que tout ce qui se trouve dans mon <form> non <!-- <input type="hidden" name="submitted_tabs[]" value="blocklocation" /> --> <h4>{l s='Location de déguisements' mod='blocklocation'}</h4> <ul> <li> <textarea name="texte" > {if isset($blocklocation_texte)} {$blocklocation_texte} {/if} </textarea> </li> </ul> <form action="#" method="post"> Départ : <input type="text" name="date_depart" /> {if isset($blocklocation_date_depart)} {$blocklocation_date_depart} {/if} Arrivée : <input type="text" name="date_retour" /> {if isset($blocklocation_date_retour)} {$blocklocation_date_retour} {/if} Disponible à la location : <select name="disponible"> <option value="0"> Oui </option> <option value="1"> Non </option> </select> </form> Comment faire pour que le getValue dans mon .php prenne bien en compte les valeurs saisies ? Je fais appel à vous pour m'aider si vous le voulez bien merci RESOLU : il s'agissait d'un problème dans mon template j'ai eu besoin de mettre un <fieldset> qui englobe tout mon "formulaire"