Jeudi, Décembre 18, 2014
Text Size

Flux direct Google shopping

Attention, ouverture dans une nouvelle fenêtre. ImprimerEnvoyer

Note des utilisateurs: / 0
MauvaisTrès bien 

Il a été demandé un flux direct. Un flux pour Google shopping sans avoir à refaire un export RSS. Bien que je ne sois pas pour le faire, j'ai pris 5 minutes.Je ne suis pas pour avoir un tel flux pour plusieurs raisons :

  1. Vous ne serez pas maître du flux, et ce n'est pas la  meilleur chose vis à vis de Google.
  2.  Si vous avez des erreurs, vous ne pourrez pas les corriger manuellement dans le fichier.
  3.  Vous allez devoir corriger vous même l'encodage du fichier, et peut être manuellement corriger des données dans votre site, ce qui est un comble car je suppose que vous avez commençé votre référencement.
  4. Le composant com_export est fait pour que chacun puisse facilement l'adapter à ses besoins, à son site.

Un flux direct suppose que l'on fasse un fichier en php. Il y a déjà un tel fichier sur le forum Joomla! concernant un flux pour Leguide.com. Il ne reste plus qu'à l'adapter.

 

Alors en premier, vérifiez bien que vous avez mis le nom de votre site, la description et le titre de votre flux.

Si ce n'est pas le cas, vous aurez des problèmes.

Enregistrez ce code dans une nouvelle page en php que vous appelerez googleflux.php par exemple, mettez le en racine de votre site et testez le sur votre navigateur.

 

 >?php
 
define('DOMAIN', 'http://'.$_SERVER['HTTP_HOST'].'/', true);
set_time_limit(0);
ignore_user_abort();
error_reporting(E_ALL ^ E_NOTICE);
 
function remplacetxt($document){
 
     $search = array('@<script[^>]*?>.*?</script>@si', 
 
     '@<style[^>]*?>.*?</style>@siU', 
     '@<[?]php[^>].*?[?]>@si',
     '@<[?][^>].*?[?]>@si', 
     '@<[\/\!]*?[^<>]*?>@si', 
   '@<![\s\S]*?--[ \t\n\r]*>@',            
     '@([\r\n])[\s]+@',                
     '@&(quot|#34);@i',               
     '@&(amp|#38);@i',
     '@&(lt|#60);@i',
     '@&(gt|#62);@i',
     '@&(nbsp|#160);@i',
     '@&(iexcl|#161);@i',
     '@&(cent|#162);@i',
     '@&(pound|#163);@i',
     '@&(copy|#169);@i',
     '@&#(\d+);@e'  
     );
   $text = preg_replace($search, '', $document);
 
     return $text;
   }
 
  function getampers($document){
   $text = preg_replace('#&#', 'et', $document);
 
     return $text;
 
 
  }
$absolute_path_config = "./";
 
// Include configuration file
if(!file_exists($absolute_path_config . "configuration.php")) {
  exit('<HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY>Not Found</BODY></HTML>');
}
else {
  require_once($absolute_path_config . "configuration.php");
}
 
// Used for compatibility with Joomla 1.5
if (file_exists($absolute_path_config . 'administrator/components/com_virtuemart/compat.joomla1.5.php')) {
  define( '_VALID_MOS', 1 );
  define( '_JEXEC', 1 );
  include_once($absolute_path_config . 'administrator/components/com_virtuemart/compat.joomla1.5.php' );  
}
define('VMPREFIX', '$vm',true);
 
 
// Connect to the database
$conn = @mysql_connect($mosConfig_host, $mosConfig_user, $mosConfig_password);
if (mysql_error()) {
  print "<HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY>Not Found <p>Connection error. Please check the connection settings. Bye bye...</p></BODY></HTML>";
  exit;
}
else {
  @mysql_select_db($mosConfig_db, $conn);
  if (mysql_error()) {
    print "<HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY>Not Found</BODY></HTML>";
    exit;
  }
}
 
  Header( 'Content-Type: text/xml' ); 
  $export = '<?xml version="1.0" encoding="UTF-8"?>'; 
  $export .= '<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">';
  $export .='<channel>';
  $export .='<title>titre</title>';
  $export .='<link>'.DOMAIN.'</link>';
  $export .='<description>70 caracteres maxi</description>';
 
  $sql=@mysql_query('SELECT category_id , category_name , category_flypage from '.$vm.'vm_category');
while($res=@mysql_fetch_assoc($sql))
  {
  $cat[$res['category_id']]=$res['category_name'];
  $catf[$res['category_id']]=$res['category_id'];
  }
  $sql=@mysql_query('SELECT * from '.$vm.'vm_product_category_xref');
while($res=@mysql_fetch_assoc($sql))
  {
  $cats[$res['product_id']][strtolower($cat[$res['category_id']])]=strtoupper(substr($cat[$res['category_id']],0,1)).strtolower(substr($cat[$res['category_id']],1,10000));
  $catId[$res['product_id']][$res['category_id']]=$categoryid;
  }
 
$sql=@mysql_unbuffered_query('SELECT DISTINCT *
FROM '.$vm.'vm_product 
LEFT JOIN '.$vm.'vm_product_discount ON '.$vm.'vm_product.product_discount_id = '.$vm.'vm_product_discount.discount_id
LEFT JOIN '.$vm.'vm_product_mf_xref ON '.$vm.'vm_product_mf_xref.product_id = '.$vm.'vm_product.product_id
LEFT JOIN '.$vm.'vm_manufacturer ON '.$vm.'vm_product_mf_xref.manufacturer_id = '.$vm.'vm_manufacturer.manufacturer_id
LEFT JOIN '.$vm.'vm_product_price ON '.$vm.'vm_product_price.product_id = '.$vm.'vm_product.product_id
LEFT JOIN '.$vm.'vm_tax_rate ON '.$vm.'vm_tax_rate.tax_rate_id = '.$vm.'vm_product.product_tax_id
where product_publish= \'Y\' and product_price IS NOT NULL');
 
while($res=@mysql_fetch_assoc($sql))
  {
   $price=round(100*(($res['product_price']*$res['tax_rate'])+$res['product_price']))/100;
  $export .= '<item>';
  $export .= '<g:id>'.$res['product_sku'] .'</g:id>';
  $export .= '<g:condition>new</g:condition>';
        $export .= '<g:quantity>'.$res['product_in_stock'].'</g:quantity>';
  $export .= '<g:brand>'.remplacetxt($res['mf_name']) .'</g:brand>';
  $export .= '<description>'.remplacetxt(substr(strip_tags(str_replace(array('<BR>','
'), "</P>\n<P>",$res['product_desc'])),0,244)) .'</description>';
  $export .= '<title>'.remplacetxt($res['product_name']) .'</title>';
  $export .= '<g:product_type>'.remplacetxt(getampers(strip_tags(implode('>',$cats[$res['product_id']])))) .'</g:product_type>';
  $export .= '<g:price>'. $price .' EUR</g:price>'; 
  $export .= '<link>'.DOMAIN.'index.php?page=shop.product_details&product_id='. $res['product_id'] .'&option=com_virtuemart&Itemid=29</link>';
  $export .= '<g:image_link>'.DOMAIN.'components/com_virtuemart/shop_image/product/'. $res['product_thumb_image'].'</g:image_link>';
  $export .= '</item>';
   }
  $export .='</channel>';
  $export .= '</rss>'; 
 
  echo $export;
?>

Commentaires  

 
0 #5 Stéphane 11-04-2011 05:52
Bonjour Koomy

Le titre du flux doit résumer votre boutique. Vous pouvez mettre le nom de votre boutique, mais il vaut mieux que ce soit un titre référençable.
Pour ce qui est de l insertion, j ai fait une intro dessus sur http://blog.selige.fr/Ameliorer-Virtuemart/developpement-virtuemartjoomla/google-shopping.html
Citer
 
 
0 #4 koumy 10-04-2011 23:00
Bonjour,
Je suis pas a votre niveau. Mais j'ai besoin d'aide.
Que dois je écrire à : Titre de votre flux ? Un nom en rapport a l'activité ? Et je ne vois pas noter la différence entre: nouveau flux de donnée et nouveau flux de donnée texte ? Et pouquoi sont ils écrit chacun 2 fois ? Ou dois je rentrer mes données produits. :cry: je comprend rien, jvoi pas d'explications claires. Pourriez vous m'aider, vous avez l'air de maitriser. Merci ,koumy.
Citer
 
 
0 #3 koumy 10-04-2011 22:39
Bonjour,
Je viens chercher de l'aide.
J'avoue ne rien comprendre à votre echange plus haut.
J'ai une ptite question qui va sûrement vous paraître idiote,mais par pitié si vous pouviez me repondre, je pourrais passer a l'étape suivante.
Mon problème ::
J'ai valider mon Url, et je dois maintenant enregistrer mes flux (donc mes produits à vendre, si j'ai bien compris).
Mon souci est :
1/ que doit on marquer au niveau de " titre de votre flux " ?
Est ce le domaine d'activité ???
2/ et a quel moment dois je entrer mes données sur mes produits : nom produit, prix, description. ....
3/et pourquoi y a t-il :
a) nouveau flux de données
b)nouveau flux de données test
que dois je faire et ne pas faire?
Je sais que par rapport à vos échanges plus haut, mes.questions ont l'air stupides :sad: mais je suis bloquée.
Merci pour les aides, S'il vous plait explication simples demandées !!!Urgent Bien à vous .Koumy
Citer
 
 
0 #2 Stéphane 31-03-2011 06:05
De rien, c'est du vite fait. CE qu'il ya c'est que pour beaucoup de site, l'insertion du flux sur Google shopping aura une importance sur le référencement du site. Donc faire attention
Citer
 
 
0 #1 yannickag 30-03-2011 23:40
Bonjour,
Merci Stéphane pour ce code, je vais essayer de mettre en place en flux test.
C'est vrai que com-export est déjà très bien fait et facile à utiliser
Citer
 

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Articles

joomla/virtuemart
joomla/virtuemart
Amélioration d'une boutique Virtuemart 07 Mars 2011, 14.00 Administrator joomla/virtuemart
Amélioration d'une boutique Virtuemart
Dynamiser une boutique E-commerce, c'est intéresser le prospect. C'est lui indiquer ce qu'il doit acheter. C'est lui montrer que notre boutique est visuellement bien, et lui donner envie d'acheter. Je sais, 'lui indiquer ce
Read More 4673 Hits 3 Ratings
Avis de tornade sur le web : l'ouragan Pingouin 29 Avril 2012, 18.57 Administrator joomla/virtuemart
Avis de tornade sur le web : l'ouragan Pingouin
Depuis quelques jours un ourgan balaye le monde du web. Un ouragan annoncé, et qui ne passe pas forcement partout. Cet ouragan, défiant la nature est arrivée pour purifier une société régie par le grand Dieu du
Read More 1949 Hits 4 Ratings
Flux direct Google shopping 30 Mars 2011, 15.45 Administrator joomla/virtuemart
Flux direct Google shopping
Il a été demandé un flux direct. Un flux pour Google shopping sans avoir à refaire un export RSS. Bien que je ne sois pas pour le faire, j'ai pris 5 minutes.Je ne suis pas pour avoir un tel flux pour plusieurs raisons
Read More 4738 Hits 0 Ratings
Gagner du temps et de l'argent sur Virtuemart Joomla 07 Avril 2014, 11.31 Administrator joomla/virtuemart
Gagner du temps et de l'argent sur Virtuemart Joomla
Gagnez de l'argent quand on fait son site sur Joomla/ Virtuemart, c'est avant tout gagner du temps. Quand vous passez 2 heures tous les jours à faire et refaire les mêmes choses sur votre site virtuemart, il est grand temps
Read More 795 Hits 0 Ratings
Google Merchant 07 Mars 2011, 14.07 Administrator Développement Virtuemart/Joomla
Google Merchant
Quand on parle de site e-commerce, on parle aussi de recherche de client. Une des phases essentielles au bon fonctionnement d'une e-boutique est la recherche d'emplacement sur le net. Les moteurs de recherche d'article comme
Read More 3975 Hits 5 Ratings