Ikoshop Posted 10 hours ago Share Posted 10 hours ago Je rencontre des problèmes depuis hier lors de l'ajout de certains produits avec la méthode Product:add() Dès que le nom du produit contient un # ça crée une exception. Le produit est alors ajouté dans ps_product et dans ps_product_shop mais pas dans product_lang. J'ai vérifié dans l'interface Prestashop et en effet il est aussi impossible de rajouter un produit avec ce nom. Cependant, on peut rajouter directement un produit avec le même nom dans ps_product_lang avec MySQLCe champ contient des caractères non valides : <>;=#{} - Langue: Français (French) C'est un peu embêtant dans la mesure où il existe bon nombre de produits avec ce symbole dans les différents catalogues que je serai amené à importer. Quelqu'un sait pourquoi c'est interdit et à quel niveau la vérification est faite? J'ai regardé dans Validate.php, par exemple au niveau de isGenericName() mais je n'ai rien vu qui pourrait bloquer ça. Il y a moyen de changer la règle ou faut-il choisir entre changer le nom en remplaçant le #, rejeter les produits avec ce symbole ou ajouter les produits avec des commandes SQL au lieu de la méthode fournie? Link to comment Share on other sites More sharing options...
Eolia Posted 10 hours ago Share Posted 10 hours ago 'name' => array( 'type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128 ), public static function isCatalogName($name) { return !empty($name) && preg_match(Tools::cleanNonUnicodeSupport('/^[^<>;=#{}]*$/u'), $name); } Link to comment Share on other sites More sharing options...
Prestashop Addict Posted 9 hours ago Share Posted 9 hours ago Le # est utilisé par PS pour les déclinaisons dans l'url, c'est pour cela que c'est interdit. Link to comment Share on other sites More sharing options...
Eolia Posted 9 hours ago Share Posted 9 hours ago (edited) il y a une heure, Prestashop Addict a dit : Le # est utilisé par PS pour les déclinaisons dans l'url, c'est pour cela que c'est interdit. Et ? L'url_rewrite le dégage de toute façon. https://presta.devcustom.net/test/57-test-28.html https://presta.devcustom.net/test/57-test-28.html#/23-pointure-40 Edited 8 hours ago by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Ikoshop Posted 8 hours ago Author Share Posted 8 hours ago Merci pour vos réponses. Etant donné qu'il y a une raison (valide ou pas) derrière je vais devoir faire une substitution au moment d'ajouter les produits. J'ai testé avec 'str_replace("#","♯",$name) et les produits s'ajoutent. Visuellement c'est acceptable, c'est juste au niveau des recherches que ça pourrait coincer, mais on fera avec. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now