Jump to content

bdesprez

Members
  • Posts

    26
  • Joined

  • Last visited

1 Follower

About bdesprez

  • Birthday 05/22/1986

Profile Information

  • Location
    Saint Herblain
  • Activity
    Developer

Recent Profile Visitors

1,033 profile views

bdesprez's Achievements

  1. @Mediacom87 Effectivement, j'ai eu un retour très rapidement. Et étrangement, mon message qui date du moi de mai 2020 sur le PRestaShop addons a enfin eu une réponse … Merci à toi 👍
  2. @Mediacom87 : OK, après avoir cliqué sur le profil, je pense que c t un troll mdr … Bien joué Mais j'ai quand même envoyé un message sur LinkedIn … On ne sait jamais lol
  3. @Prestashop Addict : C'est bien la 1ère chose que j'ai faite …_il y a 1an et demi … Et je n'ai jamais eu de réponse lol @Mediacom87 : Merci, je vais tenter ça
  4. Salut ! Je tente ma chance ici, car c'est un cauchemar d'avoir des réponses directement des gars de PrestaShop addons … (quittent le chat alors qu'ils sont censés contacté un autre service, ou raccrochent au bout d'un certain temps après la même raison …) Il y a un an et demi (oui je suis patient …) j'ai trouvé un bug sur le module colissimo. J'aimerai contacter le développeur du module pour lui en faire part, mais impossible de trouver le moindre projet GitHub ou autre … En clair, le module écoute le hook «ActionProductUpdate» et sauvegarde les informations reçues du POST (Tools::getValue) dans la BDD (via l'objet ColissimoCustomProduct). Mai si la méthode de sauvegrade d'un produit est lancé par autre chose que le B.O. (un module tiers par exemple, ou un WebService) la méthode ne vérifie pas que la sauvegarde provient d'un POST du formulaire et donc efface toutes les informations liées au produit … J'ai potentiellement, une proposition de correction, mais ce n'est utile que si li développeur du module l'intègre dans une version officielle … Une personne du forum sera peut-êtr à même de me rediriger vers le bon interlocuteur.
  5. Hi ! I try here because it's a nightnmare to have answers directly from prestashop addons guys … 1 year and a half from now, I found a bug in the colissimo module. I tried to contact the module developper but with no luck … The module listen the ActionProductUpdate hook (hookActionProductUpdate) and save data from POST (Tools::getValue) to DB (through ColissimoCustomProduct object). But if the product save method is run by another module, this hook erase all colissimo data because the form data are not defined in the POST … I try to find someone who knows the module developer (or the GitHub project) to try to fix it !
  6. Hi, recently I had some problems about the override of name validation. I would like to accept digits in customer name. After some tests, I see it will mby be almost impossible to do it. The name validation is made at least at 3 different places : PrestaShop\PrestaShop\Core\ConstraintValidator\Constraints\CustomerName Validate::isCustomerName (which use Constraints\CustomerName) but could be override PrestaShopBundle\Form\Admin\Sell\Customer\CustomerType (which use Constraints\CustomerName) PrestaShop\PrestaShop\Core\Domain\Customer\ValueObject\LastName (which use a specific rule) PrestaShop\PrestaShop\Core\Domain\Customer\ValueObject\FirstName (which use a specific rule) Do you have any idea to accept digits in customer name without rewrite PrestaShop ??? I override Validate::isCustomerName to accept digits, but BO customer form throws an error, so I listen the hook «CustomerFormBuilderModifier» to change the validation rule on firstname and lastname to use the Validate::isCustomerName method (by creating another validator). But now I'm stuck with the validation in PrestaShop\PrestaShop\Core\Domain\Customer\ValueObject\LastName and PrestaShop\PrestaShop\Core\Domain\Customer\ValueObject\FirstName.
  7. Sooo, I think I found the solution … DO NOT PUT «page» in the smarty assign … I replaced «page» by «num_page» and I now it works … It's good to know …
  8. Hi, I have some difficulties to create a module front controller. Everithing seems fine (I used another controller of my module to create this one) but I have a fatal error … Type error: Argument 1 passed to smartyClassnames() must be of the type array, null given, called in /var/www/ps-bruno/classes/Smarty/SmartyLazyRegister.php on line 83 The controller is placed in «xlpos/controllers/front/Ventesc.php»: class XlposVentescModuleFrontController extends ModuleFrontController { public $auth = true; public $guestAllowed = false; /** * @throws PrestaShopException * @throws Exception * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $this->setTemplate('module:xlpos/views/templates/front/1_7_ventesc.tpl'); $this->context->smarty->assign([ 'liste_ventes' => [], 'page' => 1 ]); } } The template is placed in «xlpos/views/templates/front/1_7_ventesc.tpl» : {extends file='customer/page.tpl'} {block name='page_title'} {l s='Purchases' mod='xlpos'} {/block} {block name='page_content'} <h6>{l s='Purchases you have made on the web AND in our shops:' mod='xlpos'}</h6> {if $liste_ventes && count($liste_ventes)} <table class="table table-striped table-bordered hidden-sm-down"> <thead class="thead-default"> <tr> <th>{l s='Purchase' mod='xlpos'}</th> <th>{l s='Date' mod='xlpos'}</th> <th>{l s='Amount' mod='xlpos'}</th> <th>{l s='View purchase' mod='xlpos'}</th> </tr> </thead> <tbody> {foreach from=$liste_ventes item=vente} <tr> <td>{$vente->vcentete_type|capitalize} #{$vente->vcentete_num}</td> <td scope="row">{dateFormat date=$vente->vcentete_date full=0}</td> <td>{Tools::displayPrice($vente->vcentete_totalttc)}</td> <td class="text-sm-center"><a href="#todo"><i class="material-icons"></i></a></td> </tr> {/foreach} </tbody> </table> {else} <aside class="notifications"> <div class="container"> <article class="alert alert-warning" role="alert" data-alert="warning"> <ul> <li>{if $page === 1 } {l s='You don\'t have any purchase!' mod='xlpos'} {else} {l s='No more purchase!' mod='xlpos'} {/if}</li> </ul> </article> </div> </aside> {/if} <nav aria-label="{l s='Purchase navigation' mod='xlpos'}"> <ul class="pagination justify-content-center"> <li class="page-item {if $page === 1 }disabled{/if}"> <a class="page-link" href="{$link->getModuleLink('xlpos', 'VentesCentralisees', ['page' => $page - 1], true)|escape:'htmlall':'UTF-8'}" tabindex="-1" {if $page === 1 }aria-disabled="true"{/if}>{l s='Newer' mod='xlpos'}</a> </li> <li class="page-item">{$page}</li> <li class="page-item {if count($liste_ventes) === 0 }disabled{/if}"> <a class="page-link" href="{$link->getModuleLink('xlpos', 'VentesCentralisees', ['page' => $page + 1], true)|escape:'htmlall':'UTF-8'}" {if count($liste_ventes) === 0 }aria-disabled="true"{/if}>{l s='Older' mod='xlpos'}</a> </li> </ul> </nav> {/block} My module listen the hook «displayCustomerAccount» and add 2 buttons : <!-- Module xlpos loyalty --> <a class="col-lg-4 col-md-6 col-sm-6 col-xs-12" id="xlpos-loyalty-link" href="{$link->getModuleLink('xlpos', 'Loyalty', ['id_externe' => $id_externe, 'identfidelite' => $identfidelite], true)|escape:'htmlall':'UTF-8'}" title="{l s='My loyalty' mod='xlpos'}" rel="nofollow"> <span class="link-item"> <i class="material-icons">&#xE89A;</i> {l s='My loyalty' mod='xlpos'} </span> </a> <!-- /Module xlpos loyalty --> <!-- Module xlpos purchases --> <a class="col-lg-4 col-md-6 col-sm-6 col-xs-12" id="xlpos-ventesc-link" href="{$link->getModuleLink('xlpos', 'Ventesc', ['page' => 1, 'id_externe' => $id_externe, 'identfidelite' => $identfidelite], true)|escape:'htmlall':'UTF-8'}" title="{l s='My purchases' mod='xlpos'}" rel="nofollow"> <span class="link-item"> <i class="material-icons">&#xE889;</i> {l s='My purchases' mod='xlpos'} </span> </a> <!-- /Module xlpos purchases --> The «displayCustomerAccount» hook works fine (see ps_cust.jpg). But when I click on «My Purchases» I have an error (see error.jpg). I tried to clean the cache. When I remove the extends part of the template, the page is loaded … But it's ugly (the HTML contains only elements of the template file).
  9. Hi everyone, I face a problem since PrestaShop has changed the stock management. I work on a module which is called by webservices. I added a new element to centralize calls... One of the functionnality is to update products informations like price, stock etc. When the module receive informations it calls StockAvailable::setQuantity when the stock value has changed. When the method is called, an error occured : [PHP Notice #8] Use of undefined constant _PS_BO_ALL_THEMES_DIR_ - assumed '_PS_BO_ALL_THEMES_DIR_' (\{...}/override\/classes\/controller\/AdminController.php, line 444) I think it's because of StockManager which need the employee to make the stock movment. My question is quite simple : Is it possible to update the product stock outside a backoffice context?
  10. Bonjour à tous, je me tourne vers la communauté pour m'aider à trouver la source d'une anomalie remontée par un client. Ce dernier à récemment passé une commande sur son site PrestaShop et lors de la réception de son email de confirmation, une des lignes article présente dans l'email possède une quantité préfixé d'un point d'exclamation … Je me suis demandé si ça pouvait provenir d'une quantité négative en stock mais le 1er article a aussi un stock négatif … J'ai passé mon après-midi à scruter le code sans rien trouver … Mon jeu de piste à commencé avec le template mails/fr/order_conf.html. Qui m'a conduit à chercher le contenu de la variable smarty {products}: Que j'ai trouvée dans class/PaymentModule.php et qui m'a dirigé vers la variable PHP $product_list_html remplie par le template email/fr/order_conf_product_list.tpl. Ce template utilise la variable smarty {$product['quantity']} dans la zone quantité, cette variable smarty est présente dans la variable PHP $product_var_tpl_list. La variable $product_var_tpl_list est un tableau de $product_var_tpl dont la valeur 'quantity' provient de la quantité présente sur le produit de la commande $order. Cette liste de produits provient de la variable $package['product_list] générée par la méthode Cart->getPackageList() … Je n'ai vu, à aucun moment, l'info d'un point d'exclamation … Je suis perdu … Merci de votre aide !
  11. Recently I discovered a problem with combinations in multishop context. First of all, the error : Duplicate entry '339-1' for key 'product_default' UPDATE ps_product_attribute a INNER JOIN ps_product_attribute_shop product_attribute_shop ON (product_attribute_shop.id_product_attribute = a.id_product_attribute AND product_attribute_shop.id_shop = 2) SET a.default_on = '1', product_attribute_shop.default_on = '1' WHERE a.id_product_attribute = 932 Now, I will explain how I did it : Prerequisites : Multishop option activated At least 2 shops Combinations enabled Steps to producing error again : Context : All shops Create a product Context : a specific shop Associate the product to a shop's category Add a combination for this product This combination is now the default one Context : another specific shop Associate the product to a shop's category Add another combination Doh! ERROR! Indeed, the product already has a default attribute but it does not exist in the actual context. Code side now : In ProductCose class (Product.php), the error is raised when «checkDefaultAttributes» is called. Searching default attribute in associated shop table. If it exists it's ok, the method return TRUE. If product does not have attributes, ok, it's returning FALSE. «ObjectModel::updateMultishopTable» is called but there is an index «product_default» in the DB table «product_attribute». It's impossible to have two different default attribute for a product attribute. It sounds like we cannot have different combinations for the same product in different shops. If it is the wanted purpose, I am wondering why the «product_attribute» table has an associated shop table… If it is not, the index «product default» may be on the «product_attribute_shop» table. Oh! wait, there is an index called «id_product» ( cols: id_product, id_shop, default_on).
  12. Bon j'ai trouvé le problème qui vient en fait du code dans le controller. Si dans votre constructeur vous faites appel à la méthode de traduction (l), il faut absolument qu'elle soit appelée après le parent::__construct … Mea culpa pour m'être un peu emporté, même si je pense ce que j'ai écris
  13. Bonjour, [Mode pas content activé ] récemment j'ai découvert que, contrairement à ce qui est spécifié dans la «doc» PrestaShop sur le développement de module (http://developers.prestashop.com/module/05-CreatingAPrestaShop17Module/index.html), il y a bien des changements à apporter sur un module fonctionnant en 1.6 même s'il n'utilise pas de template ou autre contenu estétique. Nul part il n'est fait mention de l'évolution de fonctionnement des entrées de menu (Tabs) qui ne faut plus créer lors de l'installation mais définir un tableau dans le constructeur du module. Merci à Maxence de Flotte : [/Mode pas content] Bon maintenant que j'arrive à faire mes entrées de menu et tout et tout, j'ai un autre besoin, pour un autre module. Dans ma page de conf du module, j'ai rajouté un lien vers un contrôleur d'admin qui ne possédera aucune entrée de menu (en fait mon module n'a aucune entrée de menu, car à part la page de conf et l'autre page il n'y a rien). En PrestaShop 1.6, pas de problème. En PrestaShop 1.7, j'ai une erreur 500 … Et question log … Je n'ai rien trouvé (j'ai activé le mode développeur). Toute aide sera la bienvenue ^^ [Mode pas content bis ] Je comprends que le marketing PrestaShop se base sur les formations mais de là à dire et je cite : «PrestaShop 1.7 was built so that modules that were written for PS 1.6 could work almost as-is – save for minor changes and a cosmetic update, the template files being in need of adapting to the 1.7 default theme.» c'est un peu fort … [/Mode pas content]
  14. Merci beaucoup. Je trouve étonnant l'obligation de créer un contrôleur vide mais l'important dans le cas présent, c'est que ta solution fonctionne.
×
×
  • Create New...