Jump to content

PoOoOoZ

Members
  • Posts

    44
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

PoOoOoZ's Achievements

Newbie

Newbie (1/14)

5

Reputation

  1. Réponse : Doublage de fonction : $this->product->description = $this->transformDescriptionWithImg($this->product->description); $this->product->description = $this->transformDescriptionWithIDPRICE($this->product->description); Ajout de : protected function transformDescriptionWithIDPRICE($desc) { $reg = '/\[id\-([0-9]+)\]/'; while (preg_match($reg, $desc, $matches)) { $prix_id = number_format(Combination::getPrice($matches[1]),2); $html_id = '<span>'.$prix_id.'&nbsp;€</span>'; $desc = str_replace($matches[0], $html_id, $desc); } return $desc; } Voilà c'est pas plus compliqué pas besoin de modules super louches =)
  2. Je ne cherche pas a faire quelque chose par défaut... Comment modifier/augmenter cette fonction : protected function transformDescriptionWithImg($desc) { $reg = '/\[img\-([0-9]+)\-(left|right)\-([a-zA-Z0-9-_]+)\]/'; while (preg_match($reg, $desc, $matches)) { $link_lmg = $this->context->link->getImageLink($this->product->link_rewrite, $this->product->id.'-'.$matches[1], $matches[3]); $class = $matches[2] == 'left' ? 'class="imageFloatLeft"' : 'class="imageFloatRight"'; $html_img = '<img src="'.$link_lmg.'" alt="" '.$class.'/>'; $desc = str_replace($matches[0], $html_img, $desc); } return $desc; Afin que [id-9876] renvoi le prix final de l'id 9876 ?
  3. Merci mais ce n'est pas dans la description, et ce n'est pas adaptable comme on veut...
  4. Bonjour, y'a t'il une façon d'afficher le prix d'une déclinaison (en précisant par exemple l'ID de l'attribut ou stock), à l'intérieur d'une description ? Car j'ai des centaines de pages de descriptions avec des tableaux parfois très long référençant toute les déclinaisons ainsi que le prix de chaque déclinaison. Les prix sont parfois changé directement dans la base de donnée, ça serait bien qu'une fonction du même style que pour afficher les miniatures existe [img-left-1000], du genre : [price_id_2086779] ??? Existe-t-il un module ou un moyen quelconque de faire ça ?
  5. J'aurais pensé a une solution pour vérifier chaque ligne de la table "ps_mailalert_customer_oos" car ça ne dépasse pas les 50 lignes, au lieu de vérifier chaque changement de prix de chaque produit. Y'a t-il un moyen d'appeller (je sais pas si le terme est bon) le hook "hookActionUpdateQuantity" pour chaque produit de la table "ps_mailalert_customer_oos" ? Merci pour tes éclaircissements.
  6. Non j'importe un fichier CSV d'environ 14000 références dans ma base SQL avec deux colonnes, "ID_STOCK" et "QUANTITY" avec "ON DUPLICATE KEY UPDATE quantity=values(quantity)",
  7. Je fait la mise à jour directement par SQL, avec un "ON DUPLICATE KEY UPDATE quantity=values(quantity)".
  8. Bonjour, j'utilise le module "mailalerts" afin d'envoyer des notifications quand un produit redevient disponible. Cependant je met à jour manuellement les quantité dans la base de donnée, et la fonction d'envoi du mail qui est normalement appellé lors de la mise à jour des quantité ("hookActionUpdateQuantity") n'est pas appellé, je suis obligé de remodifier la quantité en back office pour chaque produit si je veux que les mails d'alertes partent. Y'a t-il un moyen d'activer le hook "hookActionUpdateQuantity" pour chaque produit sans avoir a modifier chaque produit ? Ou alors une autre façon simple d'envoyer les mails en utilisant une autre astuce ? Ci-dessous ce que je cherche a lancer sans passer par une update manuel en BO : (MailAlert::sendCustomerAlert) public function hookActionUpdateQuantity($params) { $id_product = (int)$params['id_product']; $id_product_attribute = (int)$params['id_product_attribute']; $quantity = (int)$params['quantity']; $context = Context::getContext(); $id_shop = (int)$context->shop->id; $id_lang = (int)$context->language->id; $product = new Product($id_product, false, $id_lang, $id_shop, $context); $product_has_attributes = $product->hasAttributes(); $configuration = Configuration::getMultiple( array( 'MA_LAST_QTIES', 'PS_STOCK_MANAGEMENT', 'PS_SHOP_EMAIL', 'PS_SHOP_NAME' ), null, null, $id_shop ); $ma_last_qties = (int)$configuration['MA_LAST_QTIES']; $check_oos = ($product_has_attributes && $id_product_attribute) || (!$product_has_attributes && !$id_product_attribute); if ($check_oos && $product->active == 1 && (int)$quantity <= $ma_last_qties && !(!$this->_merchant_oos || empty($this->_merchant_mails)) && $configuration['PS_STOCK_MANAGEMENT']) { $iso = Language::getIsoById($id_lang); $product_name = Product::getProductName($id_product, $id_product_attribute, $id_lang); $template_vars = array( '{qty}' => $quantity, '{last_qty}' => $ma_last_qties, '{product}' => $product_name ); if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/productoutofstock.txt') && file_exists(dirname(__FILE__).'/mails/'.$iso.'/productoutofstock.html') ) { // Send 1 email by merchant mail, because Mail::Send doesn't work with an array of recipients $merchant_mails = explode(self::__MA_MAIL_DELIMITOR__, $this->_merchant_mails); foreach ($merchant_mails as $merchant_mail) { Mail::Send( $id_lang, 'productoutofstock', Mail::l('Product out of stock', $id_lang), $template_vars, $merchant_mail, null, strval($configuration['PS_SHOP_EMAIL']), strval($configuration['PS_SHOP_NAME']), null, null, dirname(__FILE__).'/mails/', false, $id_shop ); } } } if ($this->_customer_qty && $quantity > 0) MailAlert::sendCustomerAlert((int)$product->id, (int)$params['id_product_attribute']); }
  9. Oui le changement de "Cookie.php" & "FrontController.php" fait disparaître sans aucun doute le bug. MAIS ces fichiers sont beaucoup modifié depuis la 1.5.2, la dernière solution apportée est préférable :
  10. Testé avec 1.5.2 -> Parfait ! Simplement remplacer Cookie.php & FrontController.php (télécharger le "RAW" et remplacer). Perso pas eu besoin de vider le cache smarty. edit: les fichiers à remplacer : Cookie.php (classes/Cookie.php) FrontController.php (classes/controller/FrontController.php) (a confirmer pour 1.5.0 / 1.5.1)
  11. $reg = '/\[img-([0-9]+)-(left|right)-([a-z]+)\]/'; $reg = '/\[img-([0-9]+)-(left|right)-([a-z_]+)\]/'; Il y'a le "_" en plus.
  12. Même problème, que je pensais avoir résolu quelques semaines plus tôt qui réapparait. Config SEO / URL : URL Simplifiée : Oui Rediriger automatiquement URL Canonique : Oui Désactiver Option Apache MultiViews : Non Ajouts .htaccess : SetEnv PHP_VER 5 SetEnv REGISTER_GLOBALS 0 SetEnv MAGIC_QUOTES 0 Dans chaque cas, il y'a suppression du cache smarty + cache du navigateur. ------------------------------------------------------------------------------------------ Configuration 1 Table "ps_configuration" : PS_SHOP_DOMAIN : "www.xyz.com" PS_SHOP_DOMAIN_SSL : "www.xyz.com" Table "ps_shop_url" : domain : "www.xyz.com" domain_ssl : "www.xyz.com" physical_uri : "/" virtual_uri : "" Google Chrome 23.0.1271.64 (MAC) : xyz.com -> Bug Panier Vide www.xyz.com -> OK Firefox 16.0.2 (MAC) : xyz.com -> Bug Panier Vide www.xyz.com -> OK Safari 6.0.2 (MAC) : xyz.com -> OK www.xyz.com -> OK Internet Explorer 9.0.8112.16421 (PC) : xyz.com -> Bug Panier Vide www.xyz.com -> OK ------------------------------------------------------------------------------------------ Configuration 2 Table "ps_configuration" : (sans www) PS_SHOP_DOMAIN : "xyz.com" PS_SHOP_DOMAIN_SSL : "xyz.com" Table "ps_shop_url" : domain : "www.xyz.com" domain_ssl : "www.xyz.com" physical_uri : "/" virtual_uri : "" Pareil ------------------------------------------------------------------------------------------ Configuration 3 Table "ps_configuration" : PS_SHOP_DOMAIN : "xyz.com" PS_SHOP_DOMAIN_SSL : "xyz.com" Table "ps_shop_url" : (+ régénération du .htaccess pour retirer les www) domain : "xyz.com" domain_ssl : "xyz.com" physical_uri : "/" virtual_uri : "" Google Chrome 23.0.1271.64 (MAC) : xyz.com -> OK www.xyz.com -> OK Firefox 16.0.2 (MAC) : xyz.com -> OK www.xyz.com -> OK Safari 6.0.2 (MAC) : xyz.com -> OK www.xyz.com -> OK Internet Explorer 9.0.8112.16421 (PC) : xyz.com -> OK www.xyz.com -> OK Cette solution fonctionne (retirer les www pour toute la config domain / domain ssl), mais pas de redirection www. ------------------------------------------------------------------------------------------ J'essaye de voir comment forcer le "www" sans avoir ce bug panier. La solution se trouve surement dans la manière d'enregistrer et de récupérer les cookies.
  13. pour moi la 1.5.2 ne corrige pas cette erreur. J'ai trouvé le problème : /controllers/front/ProductController.php - ligne 474 : $reg = '/\[img-([0-9]+)-(left|right)-([a-z]+)\]/'; Quand il y'a un "_" ce n'est pas pris en compte comme une image a afficher. A remplacer simplement par : $reg = '/\[img-([0-9]+)-(left|right)-([a-z_]+)\]/'; Et bien sur lancer un petit update sur votre table "ps_product_lang" si vous souhaitez garder la nouvelle nomenclature "_default", pour tout les formats de base : UPDATE `ps_product_lang` SET `description` = REPLACE(`description`,"-small]","-small_default]"); UPDATE `ps_product_lang` SET `description` = REPLACE(`description`,"-medium]","-medium_default]"); UPDATE `ps_product_lang` SET `description` = REPLACE(`description`,"-large]","-large_default]"); UPDATE `ps_product_lang` SET `description` = REPLACE(`description`,"-thickbox]","-thickbox_default]"); UPDATE `ps_product_lang` SET `description` = REPLACE(`description`,"-category]","-category_default]"); UPDATE `ps_product_lang` SET `description` = REPLACE(`description`,"-home]","-home_default]"); UPDATE `ps_product_lang` SET `description` = REPLACE(`description`,"-scene]","-scene_default]"); UPDATE `ps_product_lang` SET `description` = REPLACE(`description`,"-m_scene]","-m_scene_default]") (ne pas oublier de recréer les images au moins une fois...)
  14. Depuis mise à jour 1.5.1, l'ajout d'un produit dans le panier est très lent. Je pensais avoir un problème dans ma base alors j'ai passé deux jours à me prendre la tête sur ça. Si 70 attributs sur le site, l'ajout d'un produit au panier prend 5 secondes. 1148 attributs -> 30 secondes. 2818 attributs -> 1 minute 15 3702 attributs -> 1 minute 45 pour ajouter un seul produit dans le panier ! Je n'ai rien trouvé sur le forum français concernant ce problème alors je poste la solution que j'ai trouvé ici : "http://forge.prestashop.com/browse/PSCFV-4761" classes/Cart.php -> ligne 446 $sql->innerJoin('product_shop', 'product_shop', 'product_shop.id_shop='.$id_shop); par $sql->innerJoin('product_shop', 'product_shop', 'product_shop.id_product = p.id_product AND product_shop.id_shop = '.$id_shop );
  15. -Installation prestashop 1.5.1 -Création d'un produit (ou utilisation des produits installés (ipod...) -Souhaitez-vous associer une image à ce produit dans votre description ? Cliquez ici. -[img-15-left-home_default] -Le site affiche "[img-15-left-home_default]" -Si j'utilise un autre format d'image sans l'utilisation du caractère "_", ça marche ([img-15-left-home]) Mais pas avec la config de base.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More