Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Automatically send data feed to Froogle


gottaloveit

Recommended Posts

Ok so I finally got a response from google base about this issue.

 

Apparently it is because my client has 'Garmin' as a brand (manufacturer) it is confusing google with having a sub category also called 'Garmin'

 

So I am presuming that I need to do away with all sub categories in the feed and only include the top level categories. Only problem is that I am not sure what to change.

 

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

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

 

Any help would be greatly appreciated.

 

Thanks

 

M

 

Has anyone come across this problem, no clue on how to solve it.

 

Mark

Lifes a bitch, then you marry one, then you die!

Link to comment
Share on other sites

  • Replies 3.7k
  • Created
  • Last Reply
plusecheck: please read the installation guide, I believe it's step 2 or 3. Good luck! Brand is based on the Manufacturer that is set for the product. If no manufacturer is set, then there will be no brand. =)

 

edukes: For product type, I currently have it set to include the entire category tree (which may not neccessary be correct). My logic was that the more information about the product we can provide Google, the better chance of their algorithms guessing it correctly. If Google complains, I will adjust it to just the product level category. To obtain the 'top-level' category you would have to trace from the current category level through every parent category. If it's just one category deep, then you could just call for the parent category.

 

once again, i don't have a store anymore. so let me know if you notice any bugs. i will be traveling again for a while, so i may not have access to the forums. =)

 

I have recently started using googlefeeder and my products have been appearing on googlebase, but I just got this email from google.

 

Hello,

 

Thank you for submitting a bulk upload to Google Base. We have reviewed your bulk upload and need you to make changes. Your bulk upload has been disapproved due to the reason(s) listed below.

 

Issues:

 

1. Multiple product type values

 

-----------------

1. Multiple product type values: We noticed that you included more than one values in the product_type for some items. For example, for your item titled "Klickfix Handlebar Fitting," you included "ACCESSORIES, BAGS & BASKETS, BAGS & BASKET FITTINGS" as the product_type. Please include only one value in the "product_type" attribute. A more relevant product_type value for that item would be "Bike accessories."

 

Including irrelevant information may cause your products to be miscategorised and adversely affect your items' placement. For a list of examples product_type values, please visit http://base.google.co.uk/base/help/product_types.html

 

After you have made the necessary change(s), please upload a new version of your bulk upload. We will notify you if we need you to make any additional corrections. Otherwise, we will send you an email to let you know that your bulk upload has been approved.

 

Yours sincerely,

 

The Google Team

 

If this is the case then I would just like the bottom level category displayed as the product type. Can anyone help me to alter googlefeeder to achieve this?

Link to comment
Share on other sites

Default osC special prices work with this contribution. Some users have installed contributions that apply special pricing that is outside of the default osC tables. Only default osC special prices are supported for logistical reasons.

 

I´am using the default OSC Special Prices and it didn´t work. Any ideas`?

Link to comment
Share on other sites

Default osC special prices work with this contribution. Some users have installed contributions that apply special pricing that is outside of the default osC tables. Only default osC special prices are supported for logistical reasons.

 

I´am using the default OSC Special Prices and it didn´t work. Any ideas`?

Link to comment
Share on other sites

Default osC special prices work with this contribution. Some users have installed contributions that apply special pricing that is outside of the default osC tables. Only default osC special prices are supported for logistical reasons.

 

I´am using the default OSC Special Prices and it didn´t work. Any ideas`?

Link to comment
Share on other sites

1. Multiple product type values: We noticed that you included more than one values in the product_type for some items. For example, for your item titled "Klickfix Handlebar Fitting," you included "ACCESSORIES, BAGS & BASKETS, BAGS & BASKET FITTINGS" as the product_type. Please include only one value in the "product_type" attribute. A more relevant product_type value for that item would be "Bike accessories."

 

 

 

I have an identical issue with my feed being rejected. I would just like a generic 'Glasses' for the product type instead of the category tree that it is outputting at the moment .. any suggestions as to how to do this would be greatfully received

 

John K

Link to comment
Share on other sites

  • 2 weeks later...
I have an identical issue with my feed being rejected. I would just like a generic 'Glasses' for the product type instead of the category tree that it is outputting at the moment .. any suggestions as to how to do this would be greatfully received

 

John K

 

Not a problem! I mentioned that this may become an issue when I initially released the Google Feeder with their new product type attribute. Here's a fix:

 

Replace:

$catIndex[$curID] = $temp . ", " . $catTempDes[$curID];

 

With:

$catIndex[$curID] = $temp;

 

Let me know if that works, I no longer run an osC site. If it does, I'll integrate it into the next release. Thanks!

Most likely your question has been answered, please do a search first.

Link to comment
Share on other sites

I've been reading through this forum and i seen lots of issues regarding ftp login errors.

Error: FTP connection has failed!

Attempted to connect to uploads.google.com for user ntzilla

 

 

The file is being created correctly, but this is the error that i get when i run the googlefeeder.php file. it seems that if i change to a passive mode, some of the parameters seem to be different. I'm not good with php but i understand some basics to modify.

 

 

here is my file. this seems to be a great script if i could get the ftp going this will be nice for my e-commerce customers.

 

anyhelp is greatly appreciated.

$OutFile = "../temp/feeds/froogle_us_file.txt"; //"CHANGEME-full-path-to-file-with-777-dir-and-file-permissions-your-outfile.txt";

$destination_file = "froogle_us_file.txt"; //"CHANGEME-filename-to-upload-to-google.txt" ;

$source_file = $OutFile;

$catalogURL = 'http://www.ntzilla.com';

$imageURL = 'http://www.ntzilla.com/images/';

$productURL = 'http://www.ntzilla.com/product_info.php?products_id=';

$already_sent = array();

 

$home = "localhost" ;

$user="***********";

$pass="***********";

$base="***********";

 

$ftp_server = "uploads.google.com" ;

$ftp_user_name = "ntzilla";

$ftp_user_pass = "************";

$ftp_directory = ""; // leave blank

 

$productCondition = ""; //new, used, OR refurbished for ALL products.

 

//END Required Configuration

 

 

//START Optional Advance Configuration

 

$SEO_FLAG = 0; //default = 0

 

//Monetary Adjustments for Products in Feed

$taxRate = 0; //default = 0 (e.g. for 17.5% tax use "$taxRate = 17.5;")

$taxCalc = ($taxRate/100) + 1; //Do not edit

$convertCur = false; //default = false

$curType = "USD"; // Converts Currency to any defined currency (eg. USD, EUR, GBP)

if($convertCur)

{

$productURL = "CHANGEME-http://www.ntzilla.com/product_info.php?currency=" . $curType . "&products_id="; //where CURTYPE is your currency type (eg. USD, EUR, GBP)

}

 

//END Optional Advance Configuration

 

 

//START Optional Advance Feed Attributes

 

//(0=False 1=True) (optional_sec must be enabled to use any options)

$optional_sec = 0;

$shipping = 0;

$flatShipping = ""; //this is not binary. Custom Code is required to provide the shipping cost per product. ###needs to be an array for per product.

$pickup = 0;

$pickup_value = "false"; //true or false only.

$price_type = 0;

$price_type_value = ""; //negotiable or starting.

$payment_accepted = 1;

$default_payment_methods = "Visa:Mastercard"; //Acceptable values: cash, check, GoogleCheckout, Visa, MasterCard, AmericanExpress, Discover, wiretransfer

$payment_notes = 0;

$payment_notes_text = ""; //payment policy text

$model_number = 1; //this is for the manufacturer model number, NOT your internal store sku

$feed_quantity = 0;

$tax_percent = 0;

$tax_percent_additonal_value = 0; //default = 0 (e.g. for 17.5% tax use "$tax_percent_additonal_value = 17.5;") Please note that this is tax in addition to the taxRate set above. If the taxRate set above is 0%, then this is your full tax rate for your region.

$tax_region = 0;

$tax_region_value = "";

 

//END Optional Advance Feed Attributes

 

 

 

$feed_exp_date = date('Y-m-d', time() + 2592000 );

 

 

if (!($link=mysql_connect($home,$user,$pass)))

{

echo "Error when connecting itself to the data base";

exit();

}

if (!mysql_select_db( $base , $link ))

{

echo "Error the data base does not exist";

exit();

}

 

$sql = "

SELECT concat( '" . $productURL . "' ,products.products_id) AS product_url,

products_model AS prodModel, products_weight,

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,

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

";

 

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 = "brand\tcondition\tlink\ttitle\tdescription\texpiration_date\tprice\timage_link\tproduct_type\tid";

 

//create optional section

if($optional_sec == 1)

{

if($shipping == 1)

$output .= "\tshipping";

if($pickup == 1)

$output .= "\tpickup";

if($price_type == 1)

$output .= "\tprice_type";

if($payment_accepted == 1)

$output .= "\tpayment_accepted";

if($payment_notes == 1)

$output .= "\tpayment_notes";

if($model_number == 1)

$output .= "\tmodel_number";

if($feed_quantity == 1)

$output .= "\tquantity";

if($tax_percent == 1)

$output .= "\ttax_percent";

if($tax_region == 1)

$output .= "\ttax_region";

}

$output .= "\n";

 

 

$result=mysql_query( $sql )or die( $FunctionName . ": SQL error " . mysql_error() . "| sql = " . htmlentities($sql) );

 

//Currency Information

if($convertCur)

{

$sql3 = "

SELECT

currencies.value AS curUSD

FROM

currencies

WHERE currencies.code = '$curType'

";

 

$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 || ($optional_sec == 1 && $feed_quantity == 1) )

{

 

if($convertCur)

{

$row->price = ereg_replace("[^.0-9]", "", $row->price);

$row->price = $row->price * $row3->curUSD;

$row->price = number_format($row->price, 2, '.', ',');

}

 

//SEO Link Translation Logic: Edit as Neccessary

$productURL="";

if($SEO_FLAG)

{

$string = ereg_replace("[^a-zA-Z0-9 ]", "", $row->name);

$string = ereg_replace(' ', ' ', $string);

$string = ereg_replace(' ', '-', strtolower($string));

 

$productURL = $catalogURL . $string . "-p-" . $row->id . ".html";

}

else

{

$productURL = $row->product_url;

}

 

$output .=

$row->mfgName . "\t" .

$productCondition . "\t" .

$productURL . "\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($optional_sec == 1)

{

if($shipping == 1)

$output .= "\t" . $flatShipping;

if($pickup == 1)

$output .= "\t" . $pickup_value;

if($price_type == 1)

$output .= "\t" . $price_type_value;

if($payment_accepted == 1)

$output .= "\t" . $default_payment_methods;

if($payment_notes == 1)

$output .= "\t" . $payment_notes_text;

if($model_number == 1)

$output .= "\t" . $row->prodModel;

if($feed_quantity == 1)

$output .= "\t" . $row->quantity;

if($tax_percent == 1)

$output .= "\t" . $tax_percent_additonal_value;

if($tax_region == 1)

$output .= "\t" . $tax_region_value;

}

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

}

 

ftp_file( $ftp_server, $ftp_user_name, $ftp_user_pass, $source_file, $ftp_directory, $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>';

// ---------

 

?>

Link to comment
Share on other sites

Hi there

I was very happy to find a contribution for froogle,

BUT i didn't understand this contribution-the readme was unclear to me... :huh:

is there anynthing i should run on my database??

is those files are the only thing i need to upload?

catalog/admin/feeders

catalo/admin/gqgooglefeeder

catalog/admin/includes/boxes/feeders

 

the file googlefeeder120/feeds is eampty is it o.k?

 

If you can help me it will be great!

have a good day

Link to comment
Share on other sites

  • 3 weeks later...

This looks like a really cool contribution! However, being the noob that I am, I'm stuck on the first instruction!

 

$OutFile = "../feeds/your-outfile.txt"; //Replace "your-outfile" with the filename provided by Google

 

Where do you get this filename provided by Google?

 

Thanks In Advance For Your Help,

 

Jason

Link to comment
Share on other sites

Not a problem! I mentioned that this may become an issue when I initially released the Google Feeder with their new product type attribute. Here's a fix:

 

Replace:

$catIndex[$curID] = $temp . ", " . $catTempDes[$curID];

 

With:

$catIndex[$curID] = $temp;

 

Let me know if that works, I no longer run an osC site. If it does, I'll integrate it into the next release. Thanks!

I think the rejections are the fact that the required fields are not being generated.

 

Title

Description

Brand

Condition

ISBN

Link

Location

mpn

Price

Product Type

UPC

 

those are the required field now for "Products" according to what I see on feed registration page. the others I can fix, but I don't have the first clue what a valid UPC would be for each product.

 

the latest 1.2 version posted has these:

 

title

description

brand

condition

link

expiration_date

price

image_link

product_type

id

 

anyone working on an update?

Link to comment
Share on other sites

  • 3 weeks later...

My webhost upgraded the mysql server from 4.1.20 version to 5.0.41 version. Since the upgrade when the feeder runs, it takes awhile and then when it finally decides to do anything the browser gives an error that the page cannot be displayed.

 

What code do I need to update to make it compatible with mysql version 5.0.41 and/or how to identify exactly where the problem is so it can be fixed?

 

Thanks.

Link to comment
Share on other sites

I think the rejections are the fact that the required fields are not being generated.

 

Title

Description

Brand

Condition

ISBN

Link

Location

mpn

Price

Product Type

UPC

 

those are the required field now for "Products" according to what I see on feed registration page. the others I can fix, but I don't have the first clue what a valid UPC would be for each product.

 

the latest 1.2 version posted has these:

 

title

description

brand

condition

link

expiration_date

price

image_link

product_type

id

 

anyone working on an update?

 

I just posted the fix for Froogle's UPC and MPN requirements at http://www.oscommerce.com/community/contributions,4455

Link to comment
Share on other sites

I just posted the fix for Froogle's UPC and MPN requirements at http://www.oscommerce.com/community/contributions,4455

 

Have not ISBN,can work?

[Marktet] Increasing your store sales, a Market Add-ons

 

AskCost Automated Store Feed System API v1.0

 

It will list your products on AskCost,and deliver targeted customers to your online shop store when they are ready to buy, increasing your store sales.

Link to comment
Share on other sites

  • 2 weeks later...

Hey guys, please advise!

 

I've been using this contrib for a year now, and it's been working great, but today, I just listed new products on my catalog and when I tried making the feeder file, I got this error:

 

: SQL error The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay| sql = SELECT concat( 'http://www.emvee.ca/product_info.php?currency=USD&products_id=' ,products.products_id) AS product_url, products_model AS prodModel, products_weight, 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, FORMAT( IFNULL(specials.specials_new_products_price, products.products_price) * 1,2) AS price, CONCAT( 'http://www.emvee.ca/images/' ,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

 

Anyone know what's wrong and how I can fix it?

Link to comment
Share on other sites

Hi every one,

 

I was using Google Base / Froogle Data Feeder v1.20 for a while now, , i was updating google feed every 2nd or 3rd day using ftp service(Part of this contributionl.

 

But from last couples of days Google base started giving me error that there are too many formating error in my file. and ten no item is live any more.

 

What I did now I made a back of system and Installed one other Contribution link found in this forum just above.

 

http://www.oscommerce.com/community/contributions,4455

 

 

Now after following instructions When I upload feed, I am getting almost same error as in last post.

 

"

: SQL error Unknown column 'products.manufacturers_id' in 'on clause'| sql = SELECT concat( 'http://www.zeeshop.co.uk/product_info.php?language=en&currency=GBP&products_id=' ,products.products_id) AS product_url, products_model AS prodModel, products_weight, manufacturers.manufacturers_name AS mfgName, manufacturers.manufacturers_id, products.products_id AS id, products_description.products_name AS name, products_or 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) * 1,2) AS price, CONCAT( 'http://www.zeeshop.co.uk/images/' ,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 AND products.products_status != 0 AND products.products_price != 0 AND products.products_price != '' AND products_description.language_id = '1' AND products_description.language_id = '1' AND categories_description.language_id = '1' ORDER BY products.products_id ASC

"

 

Please help me, because i had a major update in stock and need to upload in many different shopping search engines.

 

 

Also What experienced User suggestes, Should I continue to use Froogle Data Feeder v1.20

or udate to Automated Store Feeds v3.3a is right decision.

 

Please help me sorting this error out for me.

 

Thansk and regards.

 

zee

Link to comment
Share on other sites

Hi,

 

This is a fabulous contribution, and it's working perfectly. Many thanks to those involved in making it available.

 

I'm trying to change the category output to show just the lowest level category. So instead of a output like this:

 

Top Category, Sub Category 1, Sub Category 2

Top Category

Top Category, Sub Category 1

 

I just want it to show this:

Sub Category 2

Top Category

Sub Category 1

 

In my case, that is much more descriptive of what I'm selling than the full list.

 

The problem is that I'm a total php novice. I can recognize that this is the code that is generating the data, but I can't figure out what to change to output just the last category.

 

Any suggestions?

 

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

 

Thanks a bunch!

Adrienne

Link to comment
Share on other sites

hi ,

 

i was wondering if anyone could shed some light on an error i am getting when trying to use a feed from my oscommerce shop

 

i get the error

 

Warning: ftp_connect() [function.ftp-connect]: php_network_getaddresses: gethostbyname failed in C:\Inetpub\vhosts\kingunderground.com\httpdocs\catalog\admin\froogle.php on line 278

FTP open connection failed to FROOGLE_FTP_SERVER

 

i understand i need to edit the froogle.php file which is fine but my php is a lets just say " basic " so if someone could point me in the right direction that would be a massive help.

 

Darren

Link to comment
Share on other sites

Warning: ftp_connect() [function.ftp-connect]: php_network_getaddresses: gethostbyname failed in C:\Inetpub\vhosts\kingunderground.com\httpdocs\catalog\admin\froogle.php on line 278

FTP open connection failed to FROOGLE_FTP_SERVER

 

It looks like your problem is that you've named the ftp server FROOGLE_FTP_SERVER in the upfront section. If you're trying to post to google, their bulk upload server is named uploads.google.com

 

Log on to your google account and it will show you your server name (should be uploads.google.com, but maybe they have more than one), your login id and you can check or change your login password. All those variables must be set in the googlefeeder.php file.

 

Adrienne

Link to comment
Share on other sites

By the way, looks like you are using an older version of this contribution. Your filename should be googlefeeder.php, not froogle.php. Google won't accept the old froogle format any more, so you have to install the latest version.

 

Adrienne

Link to comment
Share on other sites

By the way, looks like you are using an older version of this contribution. Your filename should be googlefeeder.php, not froogle.php. Google won't accept the old froogle format any more, so you have to install the latest version.

 

Adrienne

 

Just wanted to say thaks for the help i know get the msg

 

Connected to uploads.google.com, for user kingunderground

Uploaded C:/Inetpub/vhosts/kingunderground.com/httpdocs/catalog/feeds/FROOGLE_FTP_FILENAME to uploads.google.com as FROOGLE_FTP_FILENAME

 

So this has worked hopefully, could anyone now tell me if I have to do anything else or will this now appear on Google base

 

Thanks for all the help it’s really appreciated.

 

Darren

www.kingunderground.com

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...