Google Merchant ou Google Products ou encore Google Shopping, Quelqu'un connait? |
Bienvenue invité ( Connexion | Inscription )
Google Merchant ou Google Products ou encore Google Shopping, Quelqu'un connait? |
29 Oct 2010, 09:26
Message
#26
|
|
Ceinture jaune OSC Groupe : Membres Messages : 68 Inscrit : 18-July 05 Lieu : Paris Membre no 6539 |
Bonjour,
ok je vais tester les différentes modifs. sinon combien de temps mets google à intégrer vos produits ? pour un site ou j'ai envoyé seulement 22 produits, ca fait 10 jours et ca apparait toujours pas. j'ai le sablier pour tous les produits (en attente d'évaluation) et pour products ads, c'est inclus dans l'index de recherche. et pour un produit j'ai même la colonne Impr. avec la valeur 6, je comprends donc 6 impressions. Bon WE -------------------- osCommerce MS2
CRE Loaded6 v4 Fr Sp1.2 RC2 |
|
29 Oct 2010, 09:27
Message
#27
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 346 Inscrit : 21-December 05 Membre no 8273 |
Types de codage pris en chargePartager Imprimer
Google Shopping prend en charge les codages UTF-8, UTF-16, Latin-1, Windows-1252 et ASCII. Si vous n'êtes pas sûr du codage de votre fichier, sélectionnez l'option Détection automatique. Si vous utilisez le Bloc-notes pour enregistrer votre fichier, sélectionnez Enregistrer sous, puis choisissez ANSI ou UTF-8 dans Codage. Si votre fichier n'est pas codé dans l'un de ces types de codage, il ne sera pas traité. Important : Si vous envoyez un fichier XML utilisant le codage Latin-1 ou UTF-16, veillez à le spécifier dans le fichier. Pour ce faire, dans la première ligne de votre fichier de données, remplacez <?xml version=" 1.0"?> par l'un des éléments suivants : Pour le codage Latin-1 : <?xml version="1.0" encoding="ISO-8859-1"?> Pour le codage UTF-16 : <?xml version="1.0" encoding="UTF-16"?> selon vos formats donc |
|
29 Oct 2010, 09:44
Message
#28
|
|
Ceinture orange OSC Groupe : Membres Messages : 181 Inscrit : 3-January 08 Membre no 20263 |
Pour moi, ils ont mis 5 jours à me vérifier mon flux manuellement
(et pour le moment à me le refouler...) -------------------- Sur OsCommerce 2.2
|
|
29 Oct 2010, 09:49
Message
#29
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 346 Inscrit : 21-December 05 Membre no 8273 |
nous on est intégrer depuis hier
http://img146.imageshack.us/img146/2212/googleln.jpg mais on a beaucoup d "info en base UPC/ean Marques Fabricants Poids , ect .... + d'infos possible , google attend surement des informations complète... On a fournit quelques milliers d'EAN. ect.. |
|
29 Oct 2010, 10:04
Message
#30
|
|
Ceinture jaune OSC Groupe : Membres Messages : 56 Inscrit : 24-April 06 Lieu : Paris Membre no 10102 |
Pour dvf
As-tu fais une action quelconque pour que les avis sur ta boutique apparaissent dans le GG Merchant : 4 avis sur le marchand Ton fichier envoyé était-il en texte ou en XML. Si en XML avais-tu mis "neuf" ou "new" pour la condition du produit ? |
|
29 Oct 2010, 10:33
Message
#31
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 346 Inscrit : 21-December 05 Membre no 8273 |
moi je taff tjs en fichier plat c'est toujours plus simple pour tout le monde que de parser un flux xml. qui peut faire beaucou d'erreur facilement.
ah ces avis de gens qui postent que ceux qui sont pas content et qui ont 2 ans //// c'est google qui attache. Faudra du coup que je montre une campagne d'avis sur un comparateur pour avoir des notes dans google ;:) |
|
29 Oct 2010, 10:56
Message
#32
|
|
Ceinture jaune OSC Groupe : Membres Messages : 56 Inscrit : 24-April 06 Lieu : Paris Membre no 10102 |
Citation Faudra du coup que je montre une campagne d'avis sur un comparateur pour avoir des notes dans google ;:) C'est la même réflexion que je me suis fait quand j'ai vu ces avis. |
|
29 Oct 2010, 11:39
Message
#33
|
|
Ceinture orange OSC Groupe : Membres Messages : 181 Inscrit : 3-January 08 Membre no 20263 |
Dvf, effectivement ton fichier est correct. Merci
GG vient de me valider le flux. Mes produits sont en lignes. -------------------- Sur OsCommerce 2.2
|
|
29 Oct 2010, 12:34
Message
#34
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 346 Inscrit : 21-December 05 Membre no 8273 |
attention à adapter le tout quand même car je vous ai juste donné le fichier d'export
j'ai fait des modifs dans l'export.php pour avoir les bonnes infos |
|
29 Oct 2010, 12:43
Message
#35
|
|
Ceinture orange OSC Groupe : Membres Messages : 181 Inscrit : 3-January 08 Membre no 20263 |
j'ai effectivement virer les infos dont je n'avais pas besoin : manufacturer2, code barre...
-------------------- Sur OsCommerce 2.2
|
|
4 Nov 2010, 08:33
Message
#36
|
|
Ceinture jaune OSC Groupe : Membres Messages : 56 Inscrit : 16-October 06 Lieu : Brest Membre no 12677 |
Bonjour,
j'ai réussi à envoyer un fichier de données .txt sans installer UExport en utilisant une base de fichier csv pour un site comparateur. Mes produits sont bien pris en compte sur GGmerchant depuis le 30 octobre mais ils sont toujours en attente d'évaluation ? -------------------- osCommerce 2.2-MS2 + header tag SEO + SEO url rewriting + loginbox
|
|
4 Nov 2010, 08:51
Message
#37
|
|
Ceinture jaune OSC Groupe : Membres Messages : 56 Inscrit : 24-April 06 Lieu : Paris Membre no 10102 |
Pour un site:
Upload de 249 produits le 25 octobre. Sur la page Rapport sur les performances (menu de gauche) en bas de page Rapport hebdomadaire, sous offres je suis à 249 (le nb de produits uploader) depuis hier et aucun n'est actif. Je suis comme toi. Je ne comprend pas pourquoi c'est si long et qu'aucun produit après plus de 10 jours après l'upload ne soit actif. |
|
4 Nov 2010, 11:57
Message
#38
|
|
Ceinture orange OSC Groupe : Membres Messages : 181 Inscrit : 3-January 08 Membre no 20263 |
La validation de la mise en ligne des produits est faite manuellement par un technicien GG.
Donc effectivement c'est long surtout que c'est le début... Dans mon secteur d'activité, nous sommes en France plusieurs dizaines de boutiques... Et actuellement nous sommes 2 à être référencé. C'est la preuve que pour l'instant peu de boutiques sont présentes par rapport au nombre total. Cela dit, pour ceux que que le tracking intéresse, dans mon code posté plus haut, j'ai modifié la ligne de l'url des produits par : $output .= tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . "?utm_source=google&utm_medium=cp&utm_campaign=google-merchant" . "\t"; En effet, GG Shopping m'annonce une quarantaine de clics/jour mais dans GG Analytics, ces clics sont "noyés" dans les visites venant de Google organic. J'ai donc ajouter le tracking : ?utm_source=google&utm_medium=cp&utm_campaign=google-merchant basé le l'outil de création d'url de google ici afin de différencier les visites du référencement naturel et celle de GG Shopping (google-merchant). Si ça peut interresser Ce message a été modifié par mickael34 - 4 Nov 2010, 12:19. -------------------- Sur OsCommerce 2.2
|
|
4 Nov 2010, 22:10
Message
#39
|
|
Ceinture jaune OSC Groupe : Membres Messages : 68 Inscrit : 18-July 05 Lieu : Paris Membre no 6539 |
Bonsoir,
effectivement c'est une très très bonne idée : Citation J'ai donc ajouter le tracking : ?utm_source=google&utm_medium=cp&utm_campaign=google-merchant du cout je fais les modifs ce soir. pour info j'ai un site avec 22 produits qui a mis 2 semaines pour être inséré un autre avec 6000 produits qui viennent d'être validés, suite à un mail reçu, en 3 semaines et un autre avec plus de 40000 produits qui est en attente. c'est effectivement manuel, et c'est sans doute la raison pour laquelle c'est long Bonne nuit Ce message a été modifié par Acuponctus - 4 Nov 2010, 22:10. -------------------- osCommerce MS2
CRE Loaded6 v4 Fr Sp1.2 RC2 |
|
5 Nov 2010, 11:16
Message
#40
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 31 Inscrit : 1-November 06 Lieu : Israel Membre no 12992 |
Il faut un peu de patience, ils répondent sur ce mail: googlebase-support@google.com.
@mickael34: très bonne idée, merci yossi |
|
8 Nov 2010, 08:39
Message
#41
|
|
Ceinture jaune OSC Groupe : Membres Messages : 56 Inscrit : 16-October 06 Lieu : Brest Membre no 12677 |
Bonjour,
Je viens de recevoir un email de GGMerchant refusant mes annonces en raison de quelques petites erreurs que je dois corriger et ensuite répondre au mail reçu pour demander à revoir le flux de mes produits. 1 semaine en gros d'attente, pour moi, pour que GGM regarde mes données. -------------------- osCommerce 2.2-MS2 + header tag SEO + SEO url rewriting + loginbox
|
|
15 Nov 2010, 11:15
Message
#42
|
|
Ceinture blanche OSC Groupe : Membres Messages : 2 Inscrit : 15-November 10 Membre no 28292 |
bonjour,
tout d'abord merci à tous pour votre contrib... bien utile pour un newbie comme moi j'ai cependant un problème... le code de "dvf" marche bien, sauf que pour l'image, étant donné que j'ai pour chaque produit une petite image et une image plus grosse, il me prend la petite image, ce qui ne plait pas a Google apparement puisqu'il ne l'affiche pas dans mes fiches produits.. quelle modif puis-je faire sur le code pour que la grosse image soit prise en compte ? |
|
15 Nov 2010, 11:22
Message
#43
|
|
Ceinture jaune OSC Groupe : Membres Messages : 68 Inscrit : 18-July 05 Lieu : Paris Membre no 6539 |
il faut simplement modifier le code afin qu'il prenne la grande image
-------------------- osCommerce MS2
CRE Loaded6 v4 Fr Sp1.2 RC2 |
|
15 Nov 2010, 11:27
Message
#44
|
|
Ceinture blanche OSC Groupe : Membres Messages : 2 Inscrit : 15-November 10 Membre no 28292 |
merci beaucoup Acuponctus, le probleme est que je ne sais pas quel code il faut modifier pour que ca marche !
j'ai bien compris que le code de l'image était celui la "$output .= HTTP_SERVER . DIR_WS_HTTP_CATALOG . DIR_WS_IMAGES . $products['products_image'] ."\t";" mais comment le modifier pour que ce soit la grosse image prise en compte? Ce message a été modifié par optimum - 15 Nov 2010, 11:30. |
|
15 Nov 2010, 13:30
Message
#45
|
|
Ceinture jaune OSC Groupe : Membres Messages : 68 Inscrit : 18-July 05 Lieu : Paris Membre no 6539 |
ca dépend de la base données
y a t il une contrib particulière pour les images gérées ? peux tu mettre un exemple de la table products -------------------- osCommerce MS2
CRE Loaded6 v4 Fr Sp1.2 RC2 |
|
29 Nov 2010, 23:01
Message
#46
|
|
Ceinture marron OSC Groupe : Membres Messages : 1315 Inscrit : 17-March 04 Lieu : Gard Membre no 2145 |
Salut à tous... Je craque avec notre pote Google !!! Il m'est absolument impossbile d'envoyer mes produit sur google merchant. J'ai essayé diverses façons (flux rss, google base, google feeder, export universel) et à chaque fois il y a un problème. Après de multiples tentatives, j'ai des produits mais le prix est HT... Vous auriez une piste ? Voici le fichier qui fonctionne ... presque Code <?php // Title: Google Base / Froogle Data Feeder 2.5 // Last Update: 12/25/09 by Jack_mcs at oscommerce-solution.com /*************** BEGIN MASTER SETTINGS ******************/ define('SEO_ENABLED','false'); //Change to 'false' to disable if Ultimate SEO URLs is not installed define('FEEDNAME', 'test.txt'); //from your googlebase account define('DOMAIN_NAME', 'www.lxxxxx'); //your correct domain name (don't include www unless it is used) define('FTP_USERNAME', 'googleFTP-username'); //created from within your googlebase account define('FTP_PASSWORD', 'googleFTP-password'); //created from within your googlebase account define('FTP_ENABLED', '0'); //set to 0 to disable define('CONVERT_CURRENCY', '0'); //set to 0 to disable - only needed if a feed in a difference currecny is required define('CURRENCY_TYPE', 'EUR'); //(eg. USD, EUR, GBP) define('DEFAULT_LANGUAGE', 1); //Change this to the id of your language. BY default 1 is english define('QUOTES_CATEGORY_NAME',''); //if the Quotes contribution is installed, enter the name of the quotes category here define('OPTIONS_ENABLED', 1); define('OPTIONS_ENABLED_AGE_RANGE', 0); define('OPTIONS_ENABLED_ATTRIBUTES', 0); define('OPTIONS_ENABLED_BRAND', 1); define('OPTIONS_ENABLED_CONDITION', 1); define('OPTIONS_ENABLED_CURRENCY', 0); define('OPTIONS_ENABLED_FEED_LANGUAGE', 0); define('OPTIONS_ENABLED_FEED_QUANTITY', 0); define('OPTIONS_ENABLED_MADE_IN', 0); define('OPTIONS_ENABLED_MANUFACTURER', 1); //displays the manufacturer name define('OPTIONS_ENABLED_PAYMENT_ACCEPTED', 0); define('OPTIONS_ENABLED_PRODUCT_MODEL', 0); //displays the product model define('OPTIONS_ENABLED_PRODUCT_TYPE', 0); define('OPTIONS_ENABLED_SHIPPING', 0); define('OPTIONS_ENABLED_INCLUDE_TAX', 0); define('OPTIONS_ENABLED_UPC', 0); define('OPTIONS_ENABLED_WEIGHT', 0); //the following only matter if the matching option is enabled above. define('OPTIONS_AGE_RANGE', '0-9'); define('OPTIONS_BRAND', ''); define('OPTIONS_CONDITION', 'New'); //possible entries are New, Refurbished, Used define('OPTIONS_DEFAULT_CURRENCY', 'EUR'); define('OPTIONS_DEFAULT_FEED_LANGUAGE', 'fr'); define('OPTIONS_LOWEST_SHIPPING', ''); //this is not binary. Custom Code is required to provide the shipping cost per product. ###needs to be an array for per product. define('OPTIONS_MADE_IN', 'USA'); define('OPTIONS_MANUFACTURERS_NAME_IGNORE', ''); //list if comma separated manufacturer names to be skipped - e.g. Matrox,Fox define('OPTIONS_PAYMENT_ACCEPTED_METHODS', ''); //Acceptable values: cash, check, GoogleCheckout, Visa, MasterCard, AmericanExpress, Discover, wiretransfer define('OPTIONS_TAX_RATE', 0); //default = 0 (e.g. for 17.5% tax use 17.5) define('OPTIONS_WEIGHT_ACCEPTED_METHODS', 'kg'); //Valid units include lb, pound, oz, ounce, g, gram, kg, kilogram. /*************** END MASTER SETTINGS ******************/ /*************** NO EDITS NEEDED BELOW THIS LINE *****************/ require_once('../includes/configure.php'); if (! function_exists("tep_not_null")) { function tep_not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } } if(SEO_ENABLED=='true'){ //******************** // Modification for SEO // Since the ultimate SEO was only installed on the public side, we will include our files from there. require_once('../includes/filenames.php'); require_once('../includes/database_tables.php'); include_once('../' .DIR_WS_CLASSES . 'seo.class.php'); $seo_urls = new SEO_URL(DEFAULT_LANGUAGE); function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) { global $seo_urls; return $seo_urls->href_link($page, $parameters, $connection, $add_session_id); } } //******************** // Start TIMER // ----------- $stimer = explode( ' ', microtime() ); $stimer = $stimer[1] + $stimer[0]; // ----------- $OutFile = "../feeds/" . FEEDNAME; $destination_file = FEEDNAME; $source_file = $OutFile; $imageURL = 'http://' . DOMAIN_NAME . '/images/'; if(SEO_ENABLED=='true'){ $productURL = 'product_info.php'; // ***** Revised for SEO $productParam = "products_id="; // ***** Added for SEO }else{ $productURL = 'http://' . DOMAIN_NAME . '/product_info.php?products_id='; } $already_sent = array(); $taxCalc = (OPTIONS_ENABLED_INCLUDE_TAX ? (OPTIONS_TAX_RATE/100) + 1 : 1); //Do not edit if(CONVERT_CURRENCY) { if(SEO_ENABLED=='true'){ $productParam="currency=" . CURRENCY_TYPE . "&products_id="; }else{ $productURL = "http://" . DOMAIN_NAME . "/product_info.php?currency=" . CURRENCY_TYPE . "&products_id="; //where CURRENCY_TYPE is your currency type (eg. USD, EUR, GBP) } } $feed_exp_date = date('Y-m-d', time() + 2505600 ); if (!($link=mysql_connect(DB_SERVER,DB_SERVER_USERNAME,DB_SERVER_PASSWORD))) { echo "Error when connecting itself to the data base"; exit(); } if (!mysql_select_db( DB_DATABASE , $link )) { echo "Error the data base does not exist"; exit(); } $quotes = ''; if (QUOTES_CATEGORY_NAME !== '') { $quotes = " and products.customers_email_address = '' and products.quotes_email_address = ''"; } $sql = " SELECT concat( '" . $productURL . "' ,products.products_id) AS product_url, products_model AS prodModel, manufacturers.manufacturers_name AS mfgName, manufacturers.manufacturers_id, products.products_id AS id, products_description.products_name AS name, products_description.products_description AS description, products.products_quantity AS quantity, products.products_status AS prodStatus, products.products_weight AS prodWeight, FORMAT( IFNULL(specials.specials_new_products_price, products.products_price) * " . $taxCalc . ",2) AS price, CONCAT( '" . $imageURL . "' ,products.products_image) AS image_url, products_to_categories.categories_id AS prodCatID, categories.parent_id AS catParentID, categories_description.categories_name AS catName FROM (categories, categories_description, products, products_description, products_to_categories) left join manufacturers on ( manufacturers.manufacturers_id = products.manufacturers_id ) left join specials on ( specials.products_id = products.products_id AND ( ( (specials.expires_date > CURRENT_DATE) OR (specials.expires_date is NULL) OR (specials.expires_date = 0) ) AND ( specials.status = 1 ) ) ) WHERE products.products_id=products_description.products_id AND products.products_id=products_to_categories.products_id AND products_to_categories.categories_id=categories.categories_id AND categories.categories_id=categories_description.categories_id " . $quotes . " ORDER BY products.products_id ASC "; $quotes = ''; if (QUOTES_CATEGORY_NAME !== '') { $quotes = " and categories_description.categories_name NOT LIKE '" . QUOTES_CATEGORY_NAME . "' "; } $catInfo = " SELECT categories.categories_id AS curCatID, categories.parent_id AS parentCatID, categories_description.categories_name AS catName FROM categories, categories_description WHERE categories.categories_id = categories_description.categories_id " . $quotes; function findCat($curID, $catTempPar, $catTempDes, $catIndex) { if( (isset($catTempPar[$curID])) && ($catTempPar[$curID] != 0) ) { if(isset($catIndex[$catTempPar[$curID]])) { $temp=$catIndex[$catTempPar[$curID]]; } else { $catIndex = findCat($catTempPar[$curID], $catTempPar, $catTempDes, $catIndex); $temp = $catIndex[$catTempPar[$curID]]; } } if( (isset($catTempPar[$curID])) && (isset($catTempDes[$curID])) && ($catTempPar[$curID] == 0) ) { $catIndex[$curID] = $catTempDes[$curID]; } else { $catIndex[$curID] = $temp . ", " . $catTempDes[$curID]; } return $catIndex; } $catIndex = array(); $catTempDes = array(); $catTempPar = array(); $processCat = mysql_query( $catInfo )or die( $FunctionName . ": SQL error " . mysql_error() . "| catInfo = " . htmlentities($catInfo) ); while ( $catRow = mysql_fetch_object( $processCat ) ) { $catKey = $catRow->curCatID; $catName = $catRow->catName; $catParID = $catRow->parentCatID; if($catName != "") { $catTempDes[$catKey]=$catName; $catTempPar[$catKey]=$catParID; } } foreach($catTempDes as $curID=>$des) //don't need the $des { $catIndex = findCat($curID, $catTempPar, $catTempDes, $catIndex); } $_strip_search = array( "![\t ]+$|^[\t ]+!m", // remove leading/trailing space chars '%[\r\n]+%m'); // remove CRs and newlines $_strip_replace = array( '', ' '); $_cleaner_array = array(">" => ">", "®" => "", "Æ" => "", "™" => "", "ô" => "", "\t" => "", " " => "", "<" => "<", "&" => "&"); if ( file_exists( $OutFile ) ) unlink( $OutFile ); $output = "link\ttitle\tdescription\texpiration_date\tprice\timage_link\tproduct_type\tid"; $attributesColumns = array(); //create optional section if(OPTIONS_ENABLED == 1) { if(OPTIONS_ENABLED_AGE_RANGE == 1) $output .= "\tage_range"; if(OPTIONS_ENABLED_BRAND == 1) $output .= "\tbrand"; if(OPTIONS_ENABLED_CONDITION == 1) $output .= "\tcondition"; if(OPTIONS_ENABLED_CURRENCY == 1) $output .= "\tcurrency"; if(OPTIONS_ENABLED_FEED_LANGUAGE == 1) $output .= "\tlanguage"; if(OPTIONS_ENABLED_FEED_QUANTITY == 1) $output .= "\tquantity"; if(OPTIONS_ENABLED_MADE_IN == 1) $output .= "\tmade_in"; if(OPTIONS_ENABLED_MANUFACTURER == 1) $output .= "\tmanufacturer"; if(OPTIONS_ENABLED_PAYMENT_ACCEPTED == 1) $output .= "\tpayment_accepted"; if(OPTIONS_ENABLED_PRODUCT_MODEL == 1) $output .= "\tmpn"; if(OPTIONS_ENABLED_PRODUCT_TYPE == 1) $output .= "\tproduct_type"; if(OPTIONS_ENABLED_SHIPPING == 1) $output .= "\tshipping"; if(OPTIONS_ENABLED_UPC == 1) $output .= "\tupc"; if(OPTIONS_ENABLED_WEIGHT == 1) $output .= "\tweight"; if (OPTIONS_ENABLED_ATTRIBUTES == 1) { $products_options_name_query = mysql_query("select distinct popt.products_options_id, popt.products_options_name from products_options popt, products_attributes patrib where popt.language_id = '" . (int)1 . "' order by popt.products_options_name") or die(mysql_error()); while ($products_options_name = mysql_fetch_object($products_options_name_query)) { $attributesColumns[] = $products_options_name->products_options_name; $name = strtolower($products_options_name->products_options_name); $name = str_replace(" ","_", $name); $output .= "\tc:" . $name; } /* //If you want to only show particular attributes, comment out the above and uncomment this section. //Then enter two lines for each one you want to show. For example, if the atttributes you want to //show are named Color and Fabric, the entries would appear as follows: $attributesColumns[] = "Color"; $attributesColumns[] = "Fabric"; $output .= "\tc:" . strtolower("Color"); $output .= "\tc:" . strtolower("Fabric"); */ } } $output .= "\n"; $result=mysql_query( $sql )or die( $FunctionName . ": SQL error " . mysql_error() . "| sql = " . htmlentities($sql) ); //Currency Information if(CONVERT_CURRENCY) { $sql3 = " SELECT currencies.value AS curUSD FROM currencies WHERE currencies.code = '" . CURRENCY_TYPE . "'"; $result3=mysql_query( $sql3 )or die( $FunctionName . ": SQL error " . mysql_error() . "| sql3 = " . htmlentities($sql3) ); $row3 = mysql_fetch_object( $result3 ); } $loop_counter = 0; while( $row = mysql_fetch_object( $result ) ) { if (isset($already_sent[$row->id])) continue; // if we've sent this one, skip the rest of the while loop if( $row->prodStatus == 1 || (OPTIONS_ENABLED == 1 && $quantity == 1) ) { if (CONVERT_CURRENCY) { $row->price = ereg_replace("[^.0-9]", "", $row->price); $row->price = $row->price * $row3->curUSD; $row->price = number_format($row->price, 2, '.', ','); } if(SEO_ENABLED=='true'){ $output .= tep_href_link($productURL,$productParam . $row->id) . "\t" . preg_replace($_strip_search, $_strip_replace, strip_tags( strtr($row->name, $_cleaner_array) ) ) . "\t" . preg_replace($_strip_search, $_strip_replace, strip_tags( strtr($row->description, $_cleaner_array) ) ) . "\t" . $feed_exp_date . "\t" . $row->price . "\t" . $row->image_url . "\t" . $catIndex[$row->prodCatID] . "\t" . $row->id; }else{ $output .= $row->product_url . "\t" . preg_replace($_strip_search, $_strip_replace, strip_tags( strtr($row->name, $_cleaner_array) ) ) . "\t" . preg_replace($_strip_search, $_strip_replace, strip_tags( strtr($row->description, $_cleaner_array) ) ) . "\t" . $feed_exp_date . "\t" . $row->price . "\t" . $row->image_url . "\t" . $catIndex[$row->prodCatID] . "\t" . $row->id; } //optional values section if(OPTIONS_ENABLED == 1) { if(OPTIONS_ENABLED_AGE_RANGE == 1) $output .= " \t " . OPTIONS_AGE_RANGE; if(OPTIONS_ENABLED_BRAND == 1) $output .= " \t " . OPTIONS_BRAND; if(OPTIONS_ENABLED_CONDITION == 1) $output .= " \t " . OPTIONS_CONDITION; if(OPTIONS_ENABLED_CURRENCY == 1) $output .= " \t " . OPTIONS_DEFAULT_CURRENCY; if(OPTIONS_ENABLED_FEED_LANGUAGE == 1) $output .= " \t " . OPTIONS_DEFAULT_FFEED_LANGUAGE; if(OPTIONS_ENABLED_FEED_QUANTITY == 1) $output .= " \t " . $row->quantity; if(OPTIONS_ENABLED_MADE_IN == 1) $output .= " \t " . OPTIONS_MADE_IN; if(OPTIONS_ENABLED_MANUFACTURER == 1) $output .= " \t " . (in_array($row->mfgName,explode(",",OPTIONS_MANUFACTURERS_NAME_IGNORE)) ? '' : $row->mfgName); if(OPTIONS_ENABLED_PAYMENT_ACCEPTED == 1) $output .= " \t " . OPTIONS_PAYMENT_ACCEPTED_METHODS; if(OPTIONS_ENABLED_PRODUCT_MODEL == 1) $output .= " \t " . $row->prodModel; if(OPTIONS_ENABLED_PRODUCT_TYPE == 1) { $catNameTemp = strtolower($catName); $output .= " \t " . $row->catName; } if(OPTIONS_ENABLED_SHIPPING == 1) $output .= " \t " . OPTIONS_LOWEST_SHIPPING; if(OPTIONS_ENABLED_UPC == 1) $output .= " \t " . "Not Supported"; if(OPTIONS_ENABLED_WEIGHT == 1) $output .= " \t " . $row->prodWeight . ' ' .OPTIONS_WEIGHT_ACCEPTED_METHODS; /******************* BEGIN HANDLING THE ATTRIBUTES ********************/ if (OPTIONS_ENABLED_ATTRIBUTES == 1) { $products_attributes_query = mysql_query("select count(*) as total from products_options popt, products_attributes patrib where patrib.products_id='" . $row->id . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)1 . "'"); $products_attributes = mysql_fetch_object($products_attributes_query); if ($products_attributes->total > 0) { $products_options_name_query = mysql_query("select distinct popt.products_options_id, popt.products_options_name from products_options popt, products_attributes patrib where patrib.products_id='" . (int)$row->id . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)1 . "' order by popt.products_options_name") or die(mysql_error()); $trackTabs = ''; while ($products_options_name = mysql_fetch_object($products_options_name_query)) { $products_options_array = array(); $products_options_query = mysql_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from products_attributes pa, products_options_values pov where pa.products_id = '" . (int)$row->id . "' and pa.options_id = '" . $products_options_name->products_options_id . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)1 . "'"); while ($products_options = mysql_fetch_object($products_options_query)) { $products_options_array[] = array('id' => $products_options->products_options_values_id, 'text' => $products_options->products_options_values_name); } for ($a = 0; $a < count($attributesColumns); ++$a) { if ($products_options_name->products_options_name == $attributesColumns[$a]) { if ($a == 0) $trackTabs = "\t"; else { if (empty($trackTabs)) $trackTabs = str_repeat("\t", $a); $trackTabs .= "\t"; } $output .= $trackTabs; foreach ($products_options_array as $arr) $output .= $arr['text'] . ','; $output = substr($output, 0, -1); } } } } } /******************* END HANDLING THE ATTRIBUTES ********************/ } $output .= " \n"; } $already_sent[$row->id] = 1; $loop_counter++; if ($loop_counter>750) { $fp = fopen( $OutFile , "a" ); $fout = fwrite( $fp , $output ); fclose( $fp ); $loop_counter = 0; $output = ""; } } $fp = fopen( $OutFile , "a" ); $fout = fwrite( $fp , $output ); fclose( $fp ); echo "File completed: <a href=\"" . $OutFile . "\" target=\"_blank\">" . $destination_file . "</a><br>\n"; chmod($OutFile, 0777); //Start FTP function ftp_file( $ftpservername, $ftpusername, $ftppassword, $ftpsourcefile, $ftpdirectory, $ftpdestinationfile ) { // set up basic connection $conn_id = ftp_connect($ftpservername); if ( $conn_id == false ) { echo "FTP open connection failed to $ftpservername <BR>\n"; return false; } // login with username and password $login_result = ftp_login($conn_id, $ftpusername, $ftppassword); // check connection if ((!$conn_id) || (!$login_result)) { echo "FTP connection has failed!<BR>\n"; echo "Attempted to connect to " . $ftpservername . " for user " . $ftpusername . "<BR>\n"; return false; } else { echo "Connected to " . $ftpservername . ", for user " . $ftpusername . "<BR>\n"; } if ( strlen( $ftpdirectory ) > 0 ) { if (ftp_chdir($conn_id, $ftpdirectory )) { echo "Current directory is now: " . ftp_pwd($conn_id) . "<BR>\n"; } else { echo "Couldn't change directory on $ftpservername<BR>\n"; return false; } } ftp_pasv ( $conn_id, true ); // upload the file $upload = ftp_put( $conn_id, $ftpdestinationfile, $ftpsourcefile, FTP_ASCII ); // check upload status if (!$upload) { echo "$ftpservername: FTP upload has failed!<BR>\n"; return false; } else { echo "Uploaded " . $ftpsourcefile . " to " . $ftpservername . " as " . $ftpdestinationfile . "<BR>\n"; } // close the FTP stream ftp_close($conn_id); return true; } if (FTP_ENABLED) ftp_file( "uploads.google.com", FTP_USERNAME, FTP_PASSWORD, $source_file, "", $destination_file); //End FTP // End TIMER // --------- $etimer = explode( ' ', microtime() ); $etimer = $etimer[1] + $etimer[0]; echo '<p style="margin:auto; text-align:center">'; printf( "Script timer: <b>%f</b> seconds.", ($etimer-$stimer) ); echo '</p>'; // --------- ?> Merci de votre aide -------------------- Pax Vobiscum
MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso --------------------------------------- Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18 --------------------------------------- Et en local sous MAC OS X 10.5.8 |
|
29 Nov 2010, 23:30
Message
#47
|
|
Ceinture jaune OSC Groupe : Membres Messages : 56 Inscrit : 24-April 06 Lieu : Paris Membre no 10102 |
Je viens de voir ton post avant d'aller me coucher. M'a l'air bien complexe.
Pourquoi ne pas partir de l'export universel et du fichier transmis soit pour générer un fichier XML soit un fichier texte. L'intérêt du fichier XML est que tu sais s'il y a des erreurs quand tu l'envoie à GG Merchant et tu peux corriger facilement. Je serais toi, je reprendrais l'EU et le fichier pour export XML et tu nous dis ce qui ne vas pas, en commençant par générer un fichier simple et minimal. |
|
29 Nov 2010, 23:35
Message
#48
|
|
5eme dan OSC Groupe : Administrateur Messages : 9221 Inscrit : 4-March 03 Lieu : Pau Membre no 927 |
Je vois 2 lignes dans ton code :
33 : define('OPTIONS_ENABLED_INCLUDE_TAX', 0); 47 : define('OPTIONS_TAX_RATE', 0); //default = 0 (e.g. for 17.5% tax use 17.5) donc passe la première variable à 1 et la seconde à 19.6 par exemple. Mais dans ce cas il faut envoyer des prix ttc or ton code récupère le prix des produits en HT ($row->price) sans se soucier de la tva Il n'utilise d'ailleurs pas les fonction natives osC, ce qui est dommage car il existe un tep_add_tax dans la bibliothèque osc de base. Il manque dans ta requete la récup du tax_class_id dans la table products et la conversion de cet id en ratio via la table tax_rates. La classe currencies peut aussi mettre en forme tes prix plutôt que de convertir les affichages : (lignes 331 à 336) Ces parties de code me semble complètement à revoir. -------------------- Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues : Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums. Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin. ----------------------------- Quelques sites de référence --------------------------- PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien) |
|
29 Nov 2010, 23:39
Message
#49
|
|
Ceinture marron OSC Groupe : Membres Messages : 1315 Inscrit : 17-March 04 Lieu : Gard Membre no 2145 |
Merci à vous deux pour les pistes...
Le soucis Gnidhal c'est que j'ai deux TVA (19,6 et 5,5) ben oui sinon c'est pas drôle Bon je vais re-regarder ça. -------------------- Pax Vobiscum
MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso --------------------------------------- Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18 --------------------------------------- Et en local sous MAC OS X 10.5.8 |
|
30 Nov 2010, 00:06
Message
#50
|
|
5eme dan OSC Groupe : Administrateur Messages : 9221 Inscrit : 4-March 03 Lieu : Pau Membre no 927 |
ok, perso j'utilise ce code pour gg merchant :
Code <?php /* $Id: g_merchant.php,v 1 20/11/2010 18:30:26:fxm - gnidhal Exp $ osCommerce, Open Source E-Commerce Solutions Copyright © 2010 osCommerce Released under the GNU General Public License */ function clean_desc($t){ $t = nl2br($t); $t = strip_tags(preg_replace('`<br(\s?\/)?'.'>`i', "\n",html_entity_decode($t))); $t = htmlspecialchars($t); return $t; } require('includes/application_top.php'); define ('DISPLAY_PRICE_WITH_TAX', true); $content = '<?xml version="1.0" encoding="ISO-8859-1"?'.'>'."\n"; $content .= '<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">'."\n"; $content .= ' <channel>'."\n"; $content .= '<title>Catalogue de '. HTTP_SERVER . DIR_WS_HTTP_CATALOG.'</title>'."\n"; $content .= '<link>'. HTTP_SERVER . DIR_WS_HTTP_CATALOG.'</link>'."\n"; $content .= '<description>Description du site</description>'."\n"; // On vérifie la langue utilisée dans le catalogue $language_code = (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) ? $HTTP_GET_VARS['language'] : DEFAULT_LANGUAGE; // Requête identifiant les produits disponibles dans le catalogue $products_query = tep_db_query("SELECT p.*, pd.products_name, pd.products_description as description FROM " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd WHERE p.products_id = pd.products_id AND p.products_status = 1 AND pd.language_id = FLOOR($languages_id) ORDER BY p.products_price, pd.products_name "); $product_num = 0; while($products = tep_db_fetch_array($products_query)) { if (intval($products['manufacturers_id']) > 0) { $manufacturers_query = tep_db_query("SELECT manufacturers_name FROM " . TABLE_MANUFACTURERS . " WHERE manufacturers_id = " . $products['manufacturers_id']); $manufacturers_result = tep_db_fetch_array($manufacturers_query); $products['manufacturers_name'] = $manufacturers_result['manufacturers_name']; } $special_query = tep_db_query("SELECT specials_new_products_price FROM " . TABLE_SPECIALS . " WHERE products_id = " . $products['products_id']); if ($special_result = tep_db_fetch_array($special_query)) $products['products_price'] = $special_result['specials_new_products_price']; $product_num++; $content .= "<item>\n"; $content .= "\t<title>".$products['products_name']."</title>\n"; $content .= "\t<link>".tep_href_link("product_info.php?products_id=". $products['products_id'])."</link>\n"; $content .= "\t<description>".clean_desc($products['description'])."</description>\n"; $content .= "\t<g:image_link>".HTTP_SERVER . DIR_WS_HTTP_CATALOG . DIR_WS_IMAGES . $products['products_image']."</g:image_link>\n"; $content .= "\t<g:price>".preg_replace('`€`',' EUR',$currencies->display_price($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])))."</g:price>\n"; $content .= "\t<g:brand>".$products['manufacturers_name']."</g:brand>\n"; $content .= "\t<g:condition>new</g:condition>\n"; $content .= "\t<g:availability>in stock</g:availability>\n"; $content .= "\t<g:shipping_weight>".round($products['products_weight'])." kg</g:shipping_weight>\n"; $content .= "\t<g:id>".$products['products_model'].'_'.$products['products_id']."</g:id>\n"; $content .= "</item>\n"; } $content .= "</channel>\n"; $content .= "</rss>\n"; /** Activer la ligne suivante pour écrire un fichier rss xml à la racine, attention uniquement PHP5!**/ //file_put_contents('g_merchant.xml', $content); // tep_redirect('g_merchant.xml'); // optionnel Header( 'Content-Type: text/xml' ); echo $content; require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> c'est réduit à l'essentiel mais ça fonctionne. Attention si les descriptions sont longues, il faudra peut-être les tronquer. Enfin les lignes 26 et 28 sont à personnaliser pour le site. -------------------- Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues : Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums. Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin. ----------------------------- Quelques sites de référence --------------------------- PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien) |
|
Version bas débit | Nous sommes le : 10th April 2024 - 22:27 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |