Jump to content

Maxime G

Members
  • Posts

    44
  • Joined

  • Last visited

Maxime G's Achievements

Newbie

Newbie (1/14)

1

Reputation

  1. Début des essais d'ajout : samedi. Produits finalement ajoutés dimanche (avec une astuce maintenant inutile pour contourner les bugs qui ont été corrigés lundi). Produits validés dans la nuit de mardi à mercredi (cette nuit donc) et visibles dans Google Shopping. Il faut compter 2-3 jours, c'est ce qu'il revient apparemment. Le délai devrait diminuer, car c'est le lancement, il y a beaucoup de demande d'ajout.
  2. Il y a eu quelques problèmes. Tout est corrigé depuis 2j. Il faut mettre les attributs en anglais uniquement. C'est pour l'import au format txt qu'on peut spécifier à la première ligne les attributs en français. Dans g:condition, il faut mettre en anglais, donc new, used ou refurbished. Je n'ai pas de soucis avec ça.
  3. Vous allez rire... J'ai configurer le flux (dans google merchant) avec langue des attributs en français. Du coup, il me disait qu'il manquait prix et état. J'ai remplacé les par et par (avec l'accent, oui oui) (et le new en neuf dedans). Et ça a marché. Il a bien tout importé. En prenant aussi les balises qui étaient restées en anglais (title, g:brand ...). On peut dire que Google a du mal avec l'XML...
  4. Sans le guid, ça n'a rien changé. J'essaye sans le g:weight demain... J'ai bien peur que ce soit un problème côté Google. Pq le XML généré est bon. Je l'ai validé dans plusieurs validateurs en ligne, ça passe (enfin, avec ma version de google base, j'ai entièrement corrigé les pb utf8). Mes changements : private function _postProcess() { $description = Configuration::get('googlebase_description'); $domain = Configuration::get('googlebase_domain'); $psdir = Configuration::get('googlebase_psdir'); $items_added = 0; $link = new Link(); $Products = Product::getProducts(intval($this->_cookie->id_lang), 0, NULL, 'id_product', 'ASC'); if($Products) { $xml = '<?xml version="1.0" encoding="UTF-8" ?>'."\n"; $xml .= ''."\n\n"; $xml .= ''."\n"; $xml .= '<title>Google Base feed for '.$domain.'</title>'."\n"; $xml .= ''.htmlspecialchars($description, ENT_NOQUOTES, 'UTF-8').''."\n"; $xml .= '<link>http://'.$domain.'/</link>'."\n"; $xml .= "\n"; $this->_addToFeed($xml); $items = ''; foreach ($Products AS $Product) { if ($Product['active']) { $image = Image::getImages(intval($this->_cookie->id_lang), $Product['id_product']); $expire_date = date('Y-m-d', strtotime("+30 days")); $cat_to_url = Category::getLinkRewrite($Product['id_category_default'], intval(Configuration::get('PS_LANG_DEFAULT'))); $product_link = $link->getProductLink($Product['id_product'], $Product['link_rewrite'], $cat_to_url); // Make 1.1 result look like 1.2 if (strpos( $product_link, 'http://' ) === false ) $product_link = 'http://'.$_SERVER['HTTP_HOST'].$product_link; // remove the start to get a URI relative to __PS_BASE_URI__ $product_link = str_replace('http://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__,'',$product_link); // Then build a full url according to the settings $product_link = 'http://'.$domain.$psdir.$product_link; $id = 'pc'.strtolower(Language::getIsoById($this->_cookie->id_lang)).'-'.$Product['id_product']; $xml = ''."\n"; $xml .= '<title>'.htmlspecialchars($Product['name'], ENT_NOQUOTES, 'UTF-8').'</title>'."\n"; $xml .= '<link>'.$product_link.'</link>'."\n"; $xml .= '<![CDATA['.html_entity_decode(strip_tags($Product['description_short']), ENT_QUOTES, 'UTF-8').']]>'."\n"; //$xml .= ''.$id.''."\n"; $xml .= ''.$id.''."\n"; $xml .= 'new'."\n"; $xml .= ''.Product::getPriceStatic(intval($Product['id_product']), true, null, 2).''."\n"; $xml .= ''.$this->getPath($Product['id_category_default']).''."\n"; $xml .= ''.htmlspecialchars($Product['manufacturer_name'], ENT_NOQUOTES, 'UTF-8').''."\n"; $xml .= ''.$expire_date.''."\n"; if (isset($image[0])) $xml .= 'http://'.$domain.$psdir.'img/p/'.$image[0]['id_product'].'-'.$image[0]['id_image'].'-large.jpg'."\n"; if ($Product['weight']>0) $xml .= ''.$Product['weight'].' '.Configuration::get('PS_WEIGHT_UNIT').''."\n"; $xml .= ''."\n\n"; $items .= $xml; $items_added++; if ($items_added > 100) { // 0.6.3.1: Flush the buffer out to the file, just in case it gets too big $this->_addToFeed($items); $items_added = 0; $items = ''; } } } $this->_addToFeed( "$items\n" ); } $res = file_exists($this->winFixFilename(Configuration::get('googlebase_filepath'))); $this->_html .= ''; $this->_html .= $res ? $this->l('Feed file successfully generated') : $this->l('Error while creating feed file'); $this->_html .= ''; }
  5. Donc on est 3. Je viens de lire tout ça. Ça bidouille, mais c'était surtout pour essayer de corriger des erreurs UTF8 ou avoir la description longue. Je vais essayer sans le guid et sans le poids comme il y en a un chez qui ça a marché sans ça. Seulement, faire les essais, c'est long. Faut attendre l'analyse...
  6. J'ai la même erreur que toi. Pourtant, j'ai repris le module, corrigé 2-3 trucs. Avec xmlns:g="http://base.google.com/ns/1.0" et des ... Il arrive à vouloir te chercher un put***n de n:id. Et les autres aussi n:price, n:condition, et même un n:title. Alors lui, je sias pas d'où il sort... Je lance un import en essayant avec le n de partout, on verra bien dans une demi heure quand il se sera décidé à traiter le fichier. Mais pourtant, on pourrait mettre xmlns:babar="http://base.google.com/ns/1.0" et utiliser babar:id ... On verra bien. Pour l'instant on est 2 dans le monde à avoir cette co*ille.
  7. Le CSS, c'est juste pour la déco, on s'en rend vite compte mais c'est pas bloquant ;-) Pour le product-list.tpl tu peux mettre ton prix au kilo/litre/m²/autre dans un comme pour le prix, et le placer juste en dessous. Tu rajoutes priceweight dans le class="price" de ce que tu as ajouté : class="price priceweight" Et comme ça, il a les styles du prix, et dans ta css tu peux améliorer en ajoutant : .priceweight { color: #00f !important; /* par exemple pour le mettre en bleu */ autre-regle: autre-valeur !important; }
  8. J'ai parcouru, tout m'a l'air bon dans le tuto. Merci, car je ne suis sans doute pas le meilleur pour expliquer. Pour afficher dans product-list, il faut suivre le même cheminement, sauf qu'il n'y a pas à s'embêter avec l'affichage javascript des combinaisons. PS: asta la vista sans "h", c'est un site de crack :-) ¡ Hasta luego !
  9. Dans classes/Product.php Il y a à la ligne 155 : protected $fieldsRequired = array('id_tax', 'quantity', 'price'); J'ai essayé, ça fait rien de plus... Par défaut, c'est 0, et il l'accepte.
  10. Ça m'étonnerait, normalement, il y a un freeze des ajouts de fonctionnalités à la fin des alpha. Pourquoi pas pour la 1.4 qui pourrait être en plus "Loi Chatel"-compliant (ie date livraison fixe). Remarque, le fait de ne pas afficher de date fixe de livraison (genre "xx/xx/2010" au lieu de "dans 3j") ne se verra pas sanctionner en soi (la dgccrf s'amuse à passer des commandes sur tous les sites). Par contre, un client peut annuler, à raison, une commande en invoquant ceci. (en pratique, il peut déjà utiliser le délai de rétractation à réception pour refuser et se faire entièrement rembourser, mais pensez aux cas des denrées alimentaires, non éligible au retour...).
  11. Merci à emraud pour ses essais, ça m'a permis de corriger deux problèmes gênants que je n'avais pas vu, faute d'un contexte non favorable. Une v3 est donc née. En pièce jointe de ce post, le zip avec les fichiers déjà modifiés pour la 1.2.5 Pour ceux souhaitent l'utiliser, je rappelle que : * Vous ne devez pas avoir fait d'autres modifications dans le code source de ces 3 fichiers ; * Vous devez comprendre les implications d'utiliser les poids comme poids nets ; * Vous devez d'abord tester ça sur une version qui n'est PAS en production ; * Vous devez vous signaler ici (ça n'est pas propre à la version zip, voir licence en 1er post). Petite note pour certains, un "j'ai même pas essayé donc j'y arrive pas, tu peux le faire pour moi ?" (j'ai résumé, mais l'idée est là) ne se réalisera pas. Je n'aide que ceux qui mettent les mains dans le cambouis et qui essaye de comprendre, et de faire (et qui ont lu le topic en entier). prestashop-priceweight-v3-for-1.2.5.zip
  12. C'est bon, je la tiens ! Et en même temps, ça m'a fait corrigé un autre petit bug. Voici la deuxième partie de la modif de product.php // MAX Prix au Kg $combinations_weightprice = null; $product_weightprice = null; $display_weightprice = false; $unit_weightprice = null; if (isset($SpecialFeatures['priceweight']) && floatval($SpecialFeatures['priceweight']) > 0) { $display_weightprice = true; $product_weight = floatval($product->weight) / floatval($SpecialFeatures['priceweight']); if ($product_weight > 0) { $product_weightprice = round(($product->getPrice(true, null)) / ($product_weight), 2); } else { $product_weightprice = 'ERROR'; } if (isset($combinations) && is_array($combinations)) { $combinations_weightprice = array(); foreach ($combinations AS $id_product_attribute => $comb) { $comb_weight = $product_weight + floatval($comb['weight']) / floatval($SpecialFeatures['priceweight']); if ($comb_weight > 0) { $priceweight = round(($product->getPrice(true, $id_product_attribute)) / ($comb_weight), 2); } else { $priceweight = 'ERROR'; } foreach ($comb['attributes'] as $id_attribute) { $combinations_weightprice[$id_attribute] = $priceweight; } } } //var_dump($product_weightprice, $combinations_weightprice); if (isset($SpecialFeatures['priceweight_unit'])) { $unit_weightprice = $SpecialFeatures['priceweight_unit']; } else { $unit_weightprice = 'kg'; } } $smarty->assign(array( 'display_weightprice' => $display_weightprice, 'unit_weightprice' => $unit_weightprice, 'product_weightprice' => $product_weightprice, 'combinations_weightprice' => $combinations_weightprice)); Changement : * appel de $product->getPrice(true, $id_product_attribute) au lieu de $product->getPrice(true, null)+$comb['price'] qui était faux dans certain cas. * ajout d'une boucle pour attribuer les id_attribute et non le id_product_attribute dans tant que clé de $combinations_weightprice ce qui causait ton problème. Moi j'étais dans un cas particulier qui me masquait ça (j'avais pour l'instant les id_attribute égaux aux id_product_attribute car j'avais pas encore ajouté d'autres produits utilisant ça). (à adapter avec les $comb['ean13'] et $product->ean13 dans ton cas) Je releaserai la v3 ce soir.
×
×
  • Create New...