Jump to content
geoffreywalton

Google Base feeds

Recommended Posts

Google Base Feeds

 

Google have just announced you have to prove you "own" the url from which a feed comes from.

 

From May 18, 2010, you will not be able to submit any product listings unless you have previously claimed your Website URL.

 

So have a look at their write up

 

Whilst I was updating a site I thought a little guide might be of help so here it is.

 

Steps to carry out before installing the contribution.

 

1. Register an account in the Google Merchant Centre.

2. "Verify and Claim" your url, as part of this you have to either put a file in the root of your site or add some code to index.php, but just follow the instructions..

3. Add a download and remember the name of the file you used as you need it to add to your .htaccess file during the installation. Note this is where you can set up a schedule of uploads but not yet.

4. Click on Edit next to the name of the the feed. Googlebase, Text, Autodetect, Tab normally works.

6. Click on Settings >> General, now you can enter some basic account information.

 

Then install the contribution.

 

Set the parameters to true for any extra fields you want to appear on the feed. There may well be some default values you need to set as well. If you need any of these set "optional_sec" to false if you are not going to use them.

 

You can see what is "sent" to google by entering www.yoursite.com/googlebase.php

 

Now go back to the google merchant centre and schedule the upload.

 

Basic Monitoring:

 

When an upload has happened you should go to http://www.google.com/merchants/merchantdashboard and click on <Datafeeds>.

 

Click on the name of the feed to see the "Feed Status" and any errors in it.

 

Click on My Products >> Data Quality to see if there are any other errors.

 

Hope that helps some of you.

 

Geoffrey


Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

Google Base FeedsSet the parameters to true for any extra fields you want to appear on the feed. There may well be some default values you need to set as well. If you need any of these set "optional_sec" to false if you are not going to use them.

Should read:

 

Google Base FeedsSet the parameters to true for any extra fields you want to appear on the feed. There may well be some default values you need to set as well. If you need any of these extra fields set "optional_sec" to true otherwise set it to false if you are not going to use them.

Edited by geoffreywalton

Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

And now here is the list of amendments made to bring the contribution into line with current google requirements that I have just uploaded at Google Base Feeds, and a few changes that I needed.

 

Enjoy

 

Updated to allow stock to be set as follows

Use true stock figures

Use true stock figures but change zero and negatives to a default level.

Set all stock levels to a default level.

 

Removed language, manufacturer's id and model no as per http://www.google.com/support/merchants/bin/answer.py?hl=en_US&answer=160373

 

Added in tax

 

Additional code added to allow UPC/EAN/IBSN and manu part no to be easily added to the feed if new fields have been added to the product table.

 

This will enable you to stop getting a "Missing gtin" message. http://www.google.com/support/merchants/bin/answer.py?hl=en_US&answer=160161

 

Changed to switches from 0/1 to true/false to make it more understandable.

 

Added in field separator selection

 

New param to output a product if it is active or there is stock. (how do you sell inactive products as will not appear on site.)

 

Changed code to work with shops in root and catalog type directories.

 

Now works with configuration files in /includes/local for testing.


Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

Did you happen to mention that if you are a Google Webmaster user then the verification code for Google Webmaster Tools is the same code used for Google Merchant Center. You just have to tell it to verify from the Google Merchant Center site.


Community Bootstrap Edition, Edge

 

Avoid the most asked question. See How to Secure My Site and How do I...?

Share this post


Link to post
Share on other sites

A quick question regarding the basics of how this works: once I've set everything up per the instructions above, my products will start appearing in the "Shopping" results of a Google search? I was under the impression merchants had to pay Google to have their products appear in those listings. That not the case? Or am I not understanding where the individual product results will be displayed on the Google end of things?

Share this post


Link to post
Share on other sites

A quick question regarding the basics of how this works: once I've set everything up per the instructions above, my products will start appearing in the "Shopping" results of a Google search? I was under the impression merchants had to pay Google to have their products appear in those listings. That not the case? Or am I not understanding where the individual product results will be displayed on the Google end of things?

No, Google is free to list products. You just have to send them the feed. That is done with a contribution like Googlefeeder or The Feed Machine. The Find will visit your site and get your Google Feed file if you tell them where it is.


Community Bootstrap Edition, Edge

 

Avoid the most asked question. See How to Secure My Site and How do I...?

Share this post


Link to post
Share on other sites

Have just uploaded v1.3a as if attempt to download 1.3 you get a page not found error.

 

HTH

 

G

Edited by geoffreywalton

Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

G:

 

I got an error after a few trial uploads after I did the install of the new file. I have about 151 products, but the errors on both tests indicated "0 of 34" products inserted.

 

The error seemed to be with an incorrect number of tabs. That's what Google said. I had /t set. The error indicated that the pipe | was detected.

 

When I revert to the earlier version of googlebase.php I had installed it runs OK.

 

I am willing to continue testing this in that I'd like to get this running so I can try it in another on line shop I have. Right now I am stuck running that second store manually because the htaccess approach won't work there for some reason.

 

Thanks


I am not a professional webmaster or PHP coder by background or training but I will try to help as best I can.

I remember what it was like when I first started with osC. It can be overwhelming.

However, I strongly recommend considering hiring a professional for extensive site modifications, site cleaning, etc.

There are several good pros here on osCommerce. Look around, you'll figure out who they are.

Share this post


Link to post
Share on other sites

Hi,

 

I wanted to install your latest version of this contribution, however there seems to be a SQL error - it is referring to non existing table products_images:

 

: SQL error Table 'xxxxxx_myownsql.products_images' doesn't exist| sql = SELECT concat...

 

after removing products_images from the query, the error is showing non existing column:

 

: SQL error Unknown column 'products_images.image_filename' in 'field list'| sql = SELECT concat

 

Perhaps you could try to adjust the query to correspond with vanilla sql version. However, after changing the query as follows:

 

$sql = "
SELECT concat( '" . $productURL . "' ,products.products_id) AS product_url,
products_model AS prodModel, 
products_weight AS weight, 
manufacturers.manufacturers_name AS mfgName,
manufacturers.manufacturers_id,
products.products_id AS id,
products.products_model AS upc,
products.products_model AS isbn,
products.products_model AS mpn,
products_description.products_name AS name,
products_description.products_description AS description,
products.products_quantity AS quantity,
products.products_status AS prodStatus,
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 = 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
ORDER BY
products.products_id ASC
";


$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
";

 

I'm presented with: Fatal error: Call to undefined function tep_not_null() in /home/hmmmmmm/www/includes/classes/seo.class.php on line 1106

 

I'm using the latest version of the seo.class 2-2.2d-9. Any ideas please?


Absinthe Original Liquor Store

Share this post


Link to post
Share on other sites

OK, the solution was to include the tep_not_null function...

after require_once('../includes/configure.php');

place the following:

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;
     }
   }
 }
}

 

The complete part of the code will now look like:

 

/*************** 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

 

No errors now, but I have to wait for the results from Google.


Absinthe Original Liquor Store

Share this post


Link to post
Share on other sites

The error seemed to be with an incorrect number of tabs. That's what Google said. I had /t set. The error indicated that the pipe | was detected.

 

Altoid

 

You can set the field separator for each feed in google base. Do you have yours set to auto detect?

 

Mr A

 

I uploaded sql for a shop with more images installed, I'll correct that.

 

I have never used this on a shop that has SEO installed and being used, I would have thought there is a problem with includes/classes/seo.class.php, what links are generated?

 

G


Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

It's working fine with Ultimate SEO now if the fix above is included, the links are generated almost (no categories) perfect. To see what I mean, the correct link should be:

http://www.originalabsinthe.com/absinthe-absinth-king-p-30.html (absinthe is the category)

however it is generated in the feed as:

http://www.originalabsinthe.com/absinth-king-p-30.html


Absinthe Original Liquor Store

Share this post


Link to post
Share on other sites

Alternatively you could add

 

require_once('../includes/functions/general.php');

 

That whole seo url bit looks fishy to me but I have not delved into it.

 

Just spotted another fix required if you are using | or ~ as your field separator.

 

$_cleaner_array = array(">" => "> ", "®" => "", "®" => "", "™" => "", "™" => "", "\t" => "", "~" => "", "|" => "", " " => "");

 

or

 

$_cleaner_array = array(">" => "> ", "®" => "", "®" => "", "™" => "", "™" => "", "$Separator" => "", " " => "");

 

Guess that needs to go into 1.6!!

 

Started to add all the settings to the configuration table, one day I'll add that too.

 

G


Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

hi sounds like a great contrib

i installed

have 105 products

but in ggogle base under status it says

0 of 939

i guess questions would be

why 0 ?

and why of 939?

Hmm

K

Share this post


Link to post
Share on other sites

You could access the google_base.php file direct from your browser and look at the output and see if there are 105 lines or 939.

 

I cut and paste the results into edit plus 2 and then replace http://......../product_ino with linefeedhttp://......../product_ino.

 

You can do it in ma word if you need to

 

G


Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

Just to let you know:

 

Detected encoding: windows-1252

Detected delimiter: Tab (\t)

Detected file format: Text

 

:thumbsup:


Absinthe Original Liquor Store

Share this post


Link to post
Share on other sites

I forgot to mention that I've also deleted $Separator."genre" from the output as it was outputting nonsense (category name in German language). I've got four different languages in my store.


Absinthe Original Liquor Store

Share this post


Link to post
Share on other sites

To make sure that the output for "genre" is in correct language, I had to add the following line to the $catInfo SQL query - AND language_id=$languages_id.

Edited by mr_absinthe

Absinthe Original Liquor Store

Share this post


Link to post
Share on other sites

Altoid

 

You can set the field separator for each feed in google base. Do you have yours set to auto detect?

 

 

G: I had the delimitor set to tab in Google Base. I just uploaded your update and first run, it worked, all items uploaded.

 

I have Ultimate SEO Urls (Jack's version) installed so I set the enable for that to true.

 

Doing that I got 0 of 1 uploaded. Resetting back to false I got the full upload.

 

Thanks much


I am not a professional webmaster or PHP coder by background or training but I will try to help as best I can.

I remember what it was like when I first started with osC. It can be overwhelming.

However, I strongly recommend considering hiring a professional for extensive site modifications, site cleaning, etc.

There are several good pros here on osCommerce. Look around, you'll figure out who they are.

Share this post


Link to post
Share on other sites

I have never used this on a shop that has SEO installed and being used, I would have thought there is a problem with includes/classes/seo.class.php, what links are generated?

 

So take anything I say with a pinch of salt.

 

If you enter www.yoursite.co.uk/store/googlebase.php you will ge the file normally sent to google displayed on the screen. Try it with seo option on and off and look to see the differences.

 

I might be adding seo to a shop I have been asked to set up so will try it then but that could be some time in the future or even never come off.

 

Cheers

 

G


Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

So take anything I say with a pinch of salt.

 

If you enter www.yoursite.co.uk/store/googlebase.php you will ge the file normally sent to google displayed on the screen. Try it with seo option on and off and look to see the differences.

 

I might be adding seo to a shop I have been asked to set up so will try it then but that could be some time in the future or even never come off.

 

Cheers

 

G

 

I did the www.mysite.com/googlebase.php test and got a blank page after setting SEO to true. Switching it to false generates the correct data.

 

What I really needed was to get this working with my one shop via the htaccess coding technique. It is working so now I can schedule uploads on the google base site accordingly and that's good to go. Thanks for working on this and keep on keepin' on.

 

SK


I am not a professional webmaster or PHP coder by background or training but I will try to help as best I can.

I remember what it was like when I first started with osC. It can be overwhelming.

However, I strongly recommend considering hiring a professional for extensive site modifications, site cleaning, etc.

There are several good pros here on osCommerce. Look around, you'll figure out who they are.

Share this post


Link to post
Share on other sites

Alternatively you could add

 

require_once('../includes/functions/general.php');

 

That whole seo url bit looks fishy to me but I have not delved into it.

 

Don't know why turning on seo would cause a blank page, would nee to echo out some values to see what is coming out, this is the bit that generates part of the link.

 

  $home = DB_SERVER;
 $user=DB_SERVER_USERNAME;
 $pass=DB_SERVER_PASSWORD;
 $base=DB_DATABASE;
 $catalogURL = HTTP_SERVER.DIR_WS_HTTP_CATALOG;
 $imageURL = HTTP_SERVER.DIR_WS_HTTP_CATALOG.DIR_WS_IMAGES;

if(SEO_ENABLED=='true'){
 include_once('includes/classes/seo.class.php');
 $seo_urls = new SEO_URL($languages_id);

 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);
 }
}

if(SEO_ENABLED=='true'){
  $productURL = 'product_info.php'; 
  $productParam = "products_id=";   
}else{
  $productURL = $catalogURL.'product_info.php?products_id=';
}

$already_sent = array();

if($convertCur)
{
  if(SEO_ENABLED=='true'){
      $productParam="" . $curType . "&products_id=";
  }else{
      $productURL = $catalogURL."/product_info.php?currency=" . $curType . "&products_id=";  //where CURTYPE is your currency type (eg. USD, EUR, GBP)
  }
}

 

Then around line 330 the seo url for the product is generated.

 

        if(SEO_ENABLED=='true'){
               $output .= tep_href_link($productURL,$productParam . $row->id) . $Separator;
       }else{
			$output .= $row->product_url . $Separator;
       }

 

Enjoy

 

G


Need help installing add ons/contributions, cleaning a hacked site or a bespoke development, check my profile

 

Virus Threat Scanner

My Contributions

Basic install answers.

Click here for Contributions / Add Ons.

UK your site.

Site Move.

Basic design info.

 

For links mentioned in old answers that are no longer here follow this link Useful Threads.

 

If this post was useful, click the Like This button over there ======>>>>>.

Share this post


Link to post
Share on other sites

I'm using ultimate seo urls and header tags

 

define('SEO_ENABLED','true'); if I set it to true googlebase.php gives this error:

 

Fatal error: Call to undefined function tep_not_null() in /home/n8tdbsl6/public_html/includes/classes/seo.class.php on line 1106

 

When i set it to false i get for every product I get something like this:

 

link title description expiration_date price image_link genre id weight manufacturer mpn payment_accepted product_type currency location tax quantity brand condition age_range made_in

 

http://prott.co.uk//product_info.php?currency=GBP&products_id=28 Galaxy T1 Speed:10 Control:7 Plies:3+2 Thickness:7.4±0.2mm Weight:86±3g Type:OFF+ Butterfly Schlager Carbon substitute The Blade is of 5-ply wood and 4-ply Carbon Fibre materials! This is a VERY FAST (OFF+) all-out attack style blade. This is a 9-ply blade (4 carbon, 5 wood), giving the blade an awesome rigid/solid feel. The 4 layers of high grade carbon fibre provide a HUGE sweetspot. 2010-05-11 18.99 http://prott.co.uk/images/galaxy_t1.jpg Blades 28 0.15 Gms. Galaxy/ Milky Way T-1 Paypal Blades Prott.co.uk Bristol UK ::0:n 2 Galaxy/ Milky Way New 20-90 UK

 

I've manually updated it to google base and received an email:

 

No items inserted

Uploaded at: 11 April 2010 15:58:05 BST

Processed at: 11 April 2010 16:01:37 BST

 

For more details on the status of your data feed, go to

 

Feed status summary for outfile.txt

No items inserted - Processed on 11-Apr-2010 16:01 BST

 

Detected encoding: ISO-8859-2

Detected delimiter: ,

Detected file format: Text

 

any idea how to have it fixed?

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×