Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Google Base is changing and I need some help


lowkey704

Recommended Posts

I have a question. I know that Google is now forcing us to have condition.

 

I am looking over the code and I don't see a place to turn this on.

 

Is there a way to make it a default for all products in the feed?

 

//START Optional Advance Configuration

$SEO_FLAG = 1; //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 = "/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 = 1;
$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 = 0;
$default_payment_methods = ""; //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 = 1;
$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 );

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
           <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
     </tr>
     <tr>
       <td class="main">
<?php
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 AS 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\tweight";

//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 . "\t" .
	$row->weight;

	//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:left">';
printf( "Script timer: <b>%f</b> seconds.", ($etimer-$stimer) );
echo '</p>';
//  ---------
?>
       </td>
     </tr>
   </table></td>
<!-- body_text_eof //-->
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

Any help would be great

Yeah Yeah I am learning as I go... lol

Link to comment
Share on other sites

Actually I see "Condition" in the header of the code but it's not producing a Condition per item during the feed. How would I make each item show a condition of New during each feed?

Yeah Yeah I am learning as I go... lol

Link to comment
Share on other sites

  • 2 weeks later...

GOD DARNIT! Now google back has stopped accepting the feed. This sux... there has to be a way to set CONDITION to NEW by DEFAULT. I see that some other here are experiencing the same problem. I have read some other threads... but I haven't read a solution... 2,000 products just got zapped by google...

 

HELP!

 

Thanks for reading.

 

Lonny

Yeah Yeah I am learning as I go... lol

Link to comment
Share on other sites

at the end of $output, add and make it look like

. "\t" . 'new';

Ken

commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile).

over 20 years of computer programming experience.

Link to comment
Share on other sites

Thought it was in there

 

$condition = 1; // 31 jan 2007 Added condition due to Google Base making mandatory
// CHANGEME - Change this to Old or so
	$default_condition = "New"; // 31 jan 2007 Added condition due to Google Base making mandatory

 

Install any version after 1/1/07

 

4512_GoogleBase

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 ======>>>>>.

Link to comment
Share on other sites

at the end of $output, add and make it look like
. "\t" . 'new';

Ken

Note: my file may be different from yours as i have removed all those rubbish in the file so you will have to find the proper place to add that bit of code i posted above (you got the idea anyway).

Ken

commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile).

over 20 years of computer programming experience.

Link to comment
Share on other sites

damn I feel stupid now man... I was looking at the code and found where I have to enter "New" --- Geez.... what a stupid overlook... thanks for the responses guys!

Yeah Yeah I am learning as I go... lol

Link to comment
Share on other sites

Join the 200,000 odd other users of this site, we all have senior moments, well at least I do.

 

:-)

 

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 ======>>>>>.

Link to comment
Share on other sites

  • 3 months later...

Hi

 

Can anyone help? I'm having Google Base Auto Feeder 1.2 installed and try to activate "Condition" as required by google base; although, I've followed the suggestion here by adding "New" like "$output "\t" . 'new';", and also have it added into file create like $output = "link\ttitle\tdescription\texpiration_date\tprice\timage_link\tgenre\tid\tweight\tcondition"; but it did not appear in my outfile.txt (also set if($condition == 1) // 31 jan 2007 Added condition due to Google Base making mandatory) Any thought will be very much appreciated. organicme

Link to comment
Share on other sites

The condition field has been required for quite some time now. The last few versions of the google feeder contribution has that enabled. If you are having this problem, you should upgrade to the latest version. See My Addons for a link.

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

All of My Addons

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

The condition field has been required for quite some time now. The last few versions of the google feeder contribution has that enabled. If you are having this problem, you should upgrade to the latest version. See My Addons for a link.

Thanks, Jack. :thumbsup:

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...