Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Automatically send data feed to Froogle


gottaloveit

Recommended Posts

Hi Jack,

 

think that the SEO addons are not my thing to do  :(

 

Installation looks fine but get the next error when try the googlebase datafeed :

Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, resource given in /home2/kozak/public_html/blablabla.eu/backend/googlefeeder.php on line 288

Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, resource given in /home2/kozak/public_html/blablabla.eu/backend/googlefeeder.php on line 386

Feed contains 0 products.

File Completed: your-outfile.txt

Use the following for easier viewing from this page. It is still in development and not meant for anything other than viewing.
File Completed: your-outfile.csv

 

and an empty page when do the bing datafeed

 

Hope you can help me 

 

thanks

Kozak

Link to comment
Share on other sites

I checked it again I have done the Googlestuff but still error :

Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, resource given in /home2/kozak/public_html/droomhuwelijk.eu/backend/googlefeeder.php on line 288

Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, resource given in /home2/kozak/public_html/droomhuwelijk.eu/backend/googlefeeder.php on line 386

Feed contains 0 products.

File Completed: clientsdroomhuwelijk.txt

Use the following for easier viewing from this page. It is still in development and not meant for anything other than viewing.
File Completed: clientsdroomhuwelijk.csv

 

I have to tell that the shop does'n sell products, no prices, no shipping, no taxes, etc..

It's an publicitypage. I use phonenumbers in place of prices. 

 

here the googlefeeder.php

 

<?php
//  Title: Google Base Data Feeder
//  Version: 3.3 by Jack York (aka Jack_mcs) - www.oscommerce-solution.com
 
chdir('../');
include_once 'includes/application_top.php';
$use_mysqli = false; 
if (function_exists('tep_get_version')) { 
   $ver = tep_get_version();
   if (isset($ver[4]) && $ver[4] > 1) { //only versions after 2.3.1 use mysqli
      $use_mysqli = true;
   }
$myfetch_mysql = ($use_mysqli ? mysqli_fetch_object : mysql_fetch_object);
 
/*************** BEGIN MASTER SETTINGS ******************/
 
define('SEO_ENABLED','true');    //Change to 'false' to disable if Ultimate SEO URLs is not installed
define('FEEDNAME', 'lalala.txt');       //from your googlebase account
define('DOMAIN_NAME', 'lalala.eu'); //your correct domain name (don't include www unless it is used but do include the shops directory)
define('FTP_USERNAME', '[email protected]'); //created from within your googlebase account
define('FTP_PASSWORD', '***********'); //created from within your googlebase account
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_ID', $languages_id);   //Change this to the id of your language if different than what is set as the default language in admin
define('QUOTES_CATEGORY_NAME',''); //if the Quotes contribution is installed, enter the name of the quotes category here
define('SKIP_CATEGORY_ID', ''); //don't list any categories (or their products) listed here - separate each id by a comma
define('SKIP_PRODUCT_ID', ''); //don't list any products listed here - separate each id by a comma
 
/*************** OPTIONS - IF ENABLED, ALSO SET THE SIMILAR OPTION FARTHER DOWN ******************/
define('OPTIONS_ENABLED', 1);
define('OPTIONS_ENABLED_AGE_RANGE', 0);
define('OPTIONS_ENABLED_ATTRIBUTES', 0);
define('OPTIONS_ENABLED_BRAND', 1);            //if set, see options for this setting below
define('OPTIONS_ENABLED_CONDITION', 1);
define('OPTIONS_ENABLED_CURRENCY', 0);
define('OPTIONS_ENABLED_EXPIRATION', 1);
define('OPTIONS_ENABLED_FEED_LANGUAGE', 0);
define('OPTIONS_ENABLED_GTIN', 0);              //if set, a database field named products_gtin must exist
define('OPTIONS_ENABLED_GOOGLE_PRODUCT_CATEGORY', 0); //http://www.google.com/support/merchants/bin/answer.py?answer=160081
define('OPTIONS_ENABLED_GOOGLE_UTM', 0);
define('OPTIONS_ENABLED_IDENTIFIER_EXISTS', 1); //set to 0 if required - https://support.google.com/merchants/answer/188494?hl=en
define('OPTIONS_ENABLED_ISBN', 0);              //if set, a database field named products_isbn must exist
define('OPTIONS_ENABLED_MADE_IN', 0);
define('OPTIONS_ENABLED_MPN', 1);               //if set, see options for this setting below
define('OPTIONS_ENABLED_PRODUCT_MODEL', 0);     //displays the product model
define('OPTIONS_ENABLED_PRODUCT_TYPE', 1);
define('OPTIONS_ENABLED_SHIPPING', 0);
define('OPTIONS_ENABLED_INCLUDE_TAX', 0);       //0 = no tax, 1 = uses google method, 2 = UK Vat
define('OPTIONS_ENABLED_UPC', 0);               //if set, a database field named products_upc must exist
define('OPTIONS_ENABLED_WEIGHT', 0);
 
//some of the following only work if the matching option is enabled above.
define('OPTIONS_AGE_RANGE', '20-90 years');
 
define('OPTIONS_AVAILABILITY', 'IN STOCK');     //in stock - Include this value if you are certain that it will ship (or be in-transit to the customer) in 3 business days or less.
                                                //available for order - Include this value if it will take 4 or more business days to ship it to the customer.
                                                //out of stock - You’re currently not accepting orders for this product.
                                                //preorder - You are taking orders for this product, but it’s not yet been released.
                                                //if empty (no entry), the data will be loaded from the database. A field in the products description table named products_availability is required
                                                //if "quantity," the field will be popuplated via the quantity: 0 or less = out of stock, greater than 0 = in stock
                                                //if "status," the field will be popuplated via the status field. in or out of stock
 
define('OPTIONS_BRAND', 'name');                //leave blank to load from the database field named products_brand, set to "name"  to substitute the products name, manu to substitute the manufactueres name or model to substitute the products model
define('OPTIONS_CONDITION', 'new');             //possible entries are New, Refurbished, Used or blank, which loads from the database field named products_condition
define('OPTIONS_CURRENCY', 'EUR');
define('OPTIONS_CURRENCY_THOUSANDS_POINT', ','); //this is the thousands point as in $1,000.
define('OPTIONS_DATE_FORMAT', 'Y-m-d');         //change how the date is formatted
define('OPTIONS_FEED_LANGUAGE', 'en');
define('OPTIONS_GOOGLE_UTM', '?utm_source=GoogleBase1&utm_medium=BaseFeed1&utm_campaign=products'); //see http://www.google.com/support/googleanalytics/bin/answer.py?hl=en&answer=55578
define('OPTIONS_GOOGLE_PRODUCT_CATEGORY', '');  //enter db to load from a database field named google_product_category enter or enter a specific google category - see taxomy - http://www.google.com/support/merchants/bin/answer.py?answer=160081
define('OPTIONS_GTIN', '');
define('OPTIONS_ISBN', '');
define('OPTIONS_MADE_IN', 'eu');
define('OPTIONS_MPN', 'model');                       //leave blank to load from the database field named products_mpn, set to "name"  to substitute the products name, manu to substitute the manufactueres name or model to substitute the products model
define('OPTIONS_PRODUCT_TYPE', ''); //full means the full category path (i.e., hardware,printers), anything else, or blank, means just the products category (i.e., printers)
 
//the following is for the shipping override option - enter multiple values separated by a comma
//Format entries follow. A colon must be present for each field, whether it is entered or not.
// COUNTRY - OPTIONAL - If country isn't included, we'll assume the shipping price applies to the target country of the item. If region isn't included, the shipping price will apply across the entire country.
// REGION  - OPTIONAL - blank for entire country, otherwise, us two-letter State (CA), full zip code (90210) or wildcard zip code (902*)
// SERVICE - OPTIONAL - The service class or delivery speed, i.e. ground
// PRICE   - REQUIRED - Fixed shipping price (assumes the same currency as the price attribute)
define('OPTIONS_SHIPPING_STRING', 'US:FL:Ground:7.00'); //says charge shipping to US for residents of Florida at 5% and don't apply tax to shipping
 
define('OPTIONS_TAX_RATE' , '0'); //default = 0 (e.g. for 20.0% tax use "$taxRate = 20.0;")  //only used in the next line
define('OPTIONS_TAX_CALC', (OPTIONS_ENABLED_INCLUDE_TAX == 2 ? (OPTIONS_TAX_RATE/100) + 1 : '1')); //UK. US tax rate - US is ignorded since it is 1
//the following is for the tax override option - enter multiple values separated by a comma
//Format entries follow. A colon must be present for each field, whether it is entered or not.
// COUNTRY  - OPTIONAL - country the tax applies to - only US for now
// REGION   - OPTIONAL - blank for entire country, otherwise, us two-letter State (CA), full zip code (90210) or wildcard zip code (902*)
// TAX      - REQUIRED - default = 0 (e.g. for 5.76% tax use 5.76)
// SHIPPING - OPTIONAL - do you charge tax on shipping - choices are y or n
define('OPTIONS_TAX_STRING', 'US:FL:5.00:n'); //says charge tax to US for residents of Florida at 5% and don't apply tax to shipping
 
define('OPTIONS_UPC', '');
define('OPTIONS_WEIGHT_ACCEPTED_METHODS', 'lb'); //Valid units include lb, pound, oz, ounce, g, gram, kg, kilogram.
 
//the following allow skipping certain items
define('OPTIONS_IGNORE_PRODUCT_PRICE', 0);  //0 = include products with price of 0 in output, 1 = ignore products with price of 0
define('OPTIONS_IGNORE_PRODUCT_ZERO', 0);  //0 = include products with qty of 0 in output, 1 = ignore products with qty of 0
 
/*************** END MASTER SETTINGS ******************/
 
 
/*************** NO EDITS NEEDED BELOW THIS LINE *****************/
 
//********************
//  Start TIMER
//  -----------
$stimer = explode( ' ', microtime() );
$stimer = $stimer[1] + $stimer[0];
//  -----------
 
define('FTP_ENABLED', (isset($_GET['noftp']) ? '0' : '1'));   //DO NOT CHANGE THIS LINE
$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();
 
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(OPTIONS_DATE_FORMAT, time() + 2419200 );
 
$quotes = '';
if (QUOTES_CATEGORY_NAME !== '') {
   $quotes = " and products.customers_email_address = '' and products.quotes_email_address = ''";
}
 
$identfierCtr = 0; //check if the identifier exists field applies
$extraFields = '';
if (OPTIONS_AVAILABILITY == '') {
   $extraFields .= ' products_description.products_availability as availability, ';
}
if (OPTIONS_ENABLED_BRAND == 1) {
   $identfierCtr++;
   
   if (strlen(OPTIONS_BRAND) == 0) {
       $extraFields .= ' products.products_brand as brand, ';
   } else {
       switch (OPTIONS_BRAND) {
           case 'name':   $extraFields .= ' products_description.products_name as brand, '; break;
           case 'manu':   $extraFields .= ' manufacturers.manufacturers_name as brand, ';   break;
           case 'model':  $extraFields .= ' products.products_model as brand, ';            break;
           default:       $extraFields .= ' products_description.products_name as brand, ';
       }
   }
}
if (OPTIONS_ENABLED_CONDITION == 1 && strlen(OPTIONS_CONDITION) == 0) {
   $extraFields .= ' products.products_condition as pcondition, ';
}
if (OPTIONS_ENABLED_GTIN == 1  && strlen(OPTIONS_GTIN) == 0) {
   $identfierCtr++;
   $extraFields .= ' products.products_gtin as gtin, ';
}
if (OPTIONS_ENABLED_ISBN == 1  && strlen(OPTIONS_ISBN) == 0) {
   $extraFields .= ' products.products_isbn as isbn, ';
}
if (OPTIONS_ENABLED_MPN == 1) {
   $identfierCtr++;
 
   if (strlen(OPTIONS_MPN) == 0) {
       $extraFields .= ' products.products_mpn as mpn, ';
   } else {
       switch (OPTIONS_MPN) {
           case 'name':   $extraFields .= ' products_description.products_name as mpn, '; break;
           case 'manu':   $extraFields .= ' manufacturers.manufacturers_name as mpn, ';   break;
           case 'model':  $extraFields .= ' products.products_model as mpn, ';            break;
           default:       $extraFields .= ' products_description.products_name as mpn, ';
       }
   }
}
 
if (OPTIONS_ENABLED_UPC == 1  && strlen(OPTIONS_UPC) == 0) {
   $extraFields .= ' products.products_upc as upc, ';
}
 
if (OPTIONS_ENABLED_GOOGLE_PRODUCT_CATEGORY == 1 && OPTIONS_GOOGLE_PRODUCT_CATEGORY == 'db') {
   $extraFields .= ' products_description.google_product_category as google_category, ';
}
 
if (tep_not_null(SKIP_CATEGORY_ID)) {
   $ids = explode(',', SKIP_CATEGORY_ID);
   for ($i = 0; $i < count($ids); ++$i) {
       $cStr .=  $ids[$i] . ",";       
   }
   $cStr = substr($cStr, 0, -1);
   $skipCatIDS = " and categories.parent_id NOT IN (" . $cStr . ") ";
}
 
if (tep_not_null(SKIP_PRODUCT_ID)) {
   $ids = explode(',', SKIP_PRODUCT_ID);
   $skipIDS = ' and ( ';
   for ($i = 0; $i < count($ids); ++$i) {
       $skipIDS .= ' products.products_id != ' . $ids[$i] . ' and ';
   }
   $skipIDS = substr($skipIDS, 0, -4) . ' ) ';
}
 
$sql = "
SELECT concat( '" . $productURL . "' ,products.products_id) AS product_url,
products_model AS prodModel,
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, " . $extraFields . "
FORMAT( IFNULL(specials.specials_new_products_price, products.products_price) * " . OPTIONS_TAX_CALC . ",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 . $skipCatIDS . $skipIDS . "
AND categories_description.language_id = " . DEFAULT_LANGUAGE_ID . "
AND products_description.language_id = " . DEFAULT_LANGUAGE_ID . "
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 .   "
AND categories_description.language_id = " . DEFAULT_LANGUAGE_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 = tep_db_query( $catInfo )or die( $FunctionName . ": SQL error " . tep_db_error() . "| catInfo = " . htmlentities($catInfo) );
 
while ( $catRow = $myfetch_mysql( $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\tprice\timage_link\tid\tavailability";
$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_EXPIRATION == 1)       $output .= "\texpiration_date";
   if(OPTIONS_ENABLED_FEED_LANGUAGE == 1)   $output .= "\tlanguage";
   if(OPTIONS_ENABLED_GOOGLE_PRODUCT_CATEGORY == 1) $output .= "\tgoogle product category";
   if(OPTIONS_ENABLED_GTIN == 1)             $output .= "\tgtin";
   if(OPTIONS_ENABLED_IDENTIFIER_EXISTS == 1 && $identfierCtr > 1)  $output .= "\tidentifier exists";
   if(OPTIONS_ENABLED_ISBN == 1)             $output .= "\tisbn";
   if(OPTIONS_ENABLED_MADE_IN == 1)         $output .= "\tmade_in";
   if(OPTIONS_ENABLED_MPN == 1)                 $output .= "\tmpn";
   if(OPTIONS_ENABLED_PRODUCT_MODEL == 1)   $output .= "\tmodel";
   if(OPTIONS_ENABLED_PRODUCT_TYPE == 1)     $output .= "\tproduct_type";
   if(OPTIONS_ENABLED_SHIPPING == 1)         $output .= "\tshipping";
   if(OPTIONS_ENABLED_INCLUDE_TAX == 1)         $output .= "\ttax";
   if(OPTIONS_ENABLED_UPC == 1)             $output .= "\tupc";
   if(OPTIONS_ENABLED_WEIGHT == 1)           $output .= "\tshipping_weight";
 
   if (OPTIONS_ENABLED_ATTRIBUTES == 1)  {
       $products_options_name_query = tep_db_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(tep_db_error());
       while ($products_options_name = $myfetch_mysql($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=tep_db_query( $sql )or die( $FunctionName . ": SQL error " . tep_db_error() . "| sql = " . htmlentities($sql) );
 
//Currency Information
if(CONVERT_CURRENCY) {
   $sql3 = "
   SELECT
   currencies.value AS curUSD
   FROM
   currencies
   WHERE currencies.code = '" . CURRENCY_TYPE . "'";
 
   $result3=tep_db_query( $sql3 )or die( $FunctionName . ": SQL error " . tep_db_error() . "| sql3 = " . htmlentities($sql3) );
   $row3 = $myfetch_mysql( $result3 );
}
 
$loop_counter = 0;
$statsArray = array();      //record messages
$statsArrayPrice = array(); //record prices of 0
$statsArrayQty = array();   //record quantities of 0
$showPriceZero = false;
$showQtyZero = false;
 
 
while( $row = $myfetch_mysql( $result ) ) {
   if (isset($already_sent[$row->id])) continue; // if we've sent this one, skip the rest of the while loop
   if (OPTIONS_IGNORE_PRODUCT_PRICE > 0 && $row->price <= 0) continue; //skip products with 0 price
   if (OPTIONS_IGNORE_PRODUCT_ZERO > 0 && $row->quantity < 1) continue; //skip products with 0 qty
   if (OPTIONS_IGNORE_PRODUCT_PRICE < 1 && $row->price <= 0 && $row->prodStatus == 1) {$statsArray['price']++; $showPriceZero = true; }//record for warning
   if (OPTIONS_IGNORE_PRODUCT_ZERO < 1 && $row->quantity < 1 && $row->prodStatus == 1) {$statsArray['qty']++; $showQtyZero = true; } //record for warning
 
   $statsArray['total']++;
 
   if ( $row->prodStatus == 1 ) {
      if (CONVERT_CURRENCY) {
          $row->price = preg_replace("/[^.0-9]/", "", $row->price);
          $row->price = $row->price *  $row3->curUSD;
          $row->price = number_format($row->price, 2, '.', OPTIONS_CURRENCY_THOUSANDS_POINT);
      }
 
      $availability = '';
      switch (OPTIONS_AVAILABILITY) {
         case 'quantity': $availability = ($row->quantity > 0 ? 'in stock' : 'out of stock'); break;
         case 'status':   $availability = ($row->prodStatus == 1 ? 'in stock' : 'out of stock'); break;
         case '':         $availability = $row->availability; break;
         default:         $availability = OPTIONS_AVAILABILITY;
      }
 
      $google_utm = (OPTIONS_ENABLED_GOOGLE_UTM ? OPTIONS_GOOGLE_UTM : '');
      $pURL = $row->product_url;
 
      if(SEO_ENABLED=='true'){
          $output .= tep_href_link($productURL,$productParam . $row->id, 'NONSSL', false) . $google_utm . "\t";
          $pURL = tep_href_link($productURL,$productParam . $row->id, 'NONSSL', false);
      } else {
          $output .= $row->product_url . $google_utm . "\t";
      }
 
      if ($showPriceZero) {
          $showPriceZero = false;
          $statsArrayPrice[] = $pURL;
      }
      if ($showQtyZero) {
          $showQtyZero = false;
          $statsArrayQty[] = $pURL;
      }
 
      $output .=
      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" .
      $row->price . "\t" .
      $row->image_url . "\t" .
    //  $catIndex[$row->prodCatID] . "\t" .
      $row->id . "\t" . $availability;
 
      //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" . (isset($row->brand) ? $row->brand : (strlen(OPTIONS_BRAND) ? $row->name : "Not Supported"));
         if(OPTIONS_ENABLED_CONDITION == 1)
            $output .= "\t" . (isset($row->pcondition) ? $row->pcondition : OPTIONS_CONDITION);
         if(OPTIONS_ENABLED_CURRENCY == 1)
            $output .= "\t" . OPTIONS_CURRENCY;
         if(OPTIONS_ENABLED_EXPIRATION == 1)
            $output .= "\t" . $feed_exp_date;
         if(OPTIONS_ENABLED_FEED_LANGUAGE == 1)
            $output .= "\t" . OPTIONS_FEED_LANGUAGE;
         if(OPTIONS_ENABLED_GOOGLE_PRODUCT_CATEGORY == 1)
            $output .= "\t" . (OPTIONS_GOOGLE_PRODUCT_CATEGORY == 'db' ? $row->google_category : OPTIONS_GOOGLE_PRODUCT_CATEGORY);
         if(OPTIONS_ENABLED_GTIN == 1)
            $output .= "\t" . (isset($row->gtin) ? $row->gtin : (strlen(OPTIONS_GTIN) ? OPTIONS_GTIN : "Not Supported"));
            
         if (OPTIONS_ENABLED_IDENTIFIER_EXISTS == 1 && $identfierCtr > 1) {
            $icnt = 0;
            if (OPTIONS_ENABLED_BRAND && empty($row->brand)) $icnt++;
            if (OPTIONS_ENABLED_GTIN && empty($row->gtin)) $icnt++;   
            if (OPTIONS_ENABLED_MPN && empty($row->mpn)) $icnt++;  
            if ($icnt > 1) { //at least two required fields are empty
              $output .= "\tFALSE";
            } else {
              $output .= "\tTRUE";
            }
         }   
            
         if(OPTIONS_ENABLED_ISBN == 1)
            $output .= "\t" . (isset($row->isbn) ? $row->isbn : (strlen(OPTIONS_ISBN) ? OPTIONS_ISBN : "Not Supported"));
         if(OPTIONS_ENABLED_MADE_IN == 1)
            $output .= "\t" . OPTIONS_MADE_IN;
         if(OPTIONS_ENABLED_MPN == 1)
            $output .= "\t" . (isset($row->mpn) ? $row->mpn : (strlen(OPTIONS_MPN) ? OPTIONS_MPN : "Not Supported"));
         if(OPTIONS_ENABLED_PRODUCT_MODEL == 1)
            $output .= "\t" . (! empty($row->prodModel) ? $row->prodModel : $row->catName);
         if(OPTIONS_ENABLED_PRODUCT_TYPE == 1)
            $output .= "\t" . ((OPTIONS_PRODUCT_TYPE == strtolower('full')) ? $catIndex[$row->prodCatID] : $row->catName);
         if(OPTIONS_ENABLED_SHIPPING == 1)
            $output .= "\t" . OPTIONS_SHIPPING_STRING;
         if(OPTIONS_ENABLED_INCLUDE_TAX == 1)
            $output .= "\t" . OPTIONS_TAX_STRING;
         if(OPTIONS_ENABLED_UPC == 1)
            $output .= "\t" . (isset($row->upc) ? $row->upc : (strlen(OPTIONS_UPC) ? OPTIONS_UPC : "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 = tep_db_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 = $myfetch_mysql($products_attributes_query);
            if ($products_attributes->total > 0) {
              $products_options_name_query = tep_db_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(tep_db_error());
 
              $trackTabs = '';
 
              while ($products_options_name = $myfetch_mysql($products_options_name_query)) {
                $products_options_array = array();
                $products_options_query = tep_db_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 = $myfetch_mysql($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 '<p style="margin:auto; text-align:left">';
printf( "Feed contains %d products.", $statsArray['total'] );
echo '</p>';
 
$warning = false;
if (count($statsArray['price']) > 0) {
  $warning = true;
  echo '<p style="margin:auto; text-align:left;  padding:10px; 0px">';
  printf( "***Warning:*** There are %d products with a price of $0.<br>", $statsArray['price'] );
 
  for ($i = 0; $i < count($statsArrayPrice); ++$i) {
      echo  '   ' . $i . ' - ' . $statsArrayPrice[$i] .'<br>';
  }
 
  echo '</p>';
}
 
if (count($statsArray['qty']) > 0) {
  $warning = true;
  echo '<p style="margin:auto; text-align:left; padding-bottom:10px; ">';
  printf( "***Warning:*** There are %d products with a quantity of 0.<br>", $statsArray['qty'] );
 
  for ($i = 0; $i < count($statsArrayQty); ++$i) {
      echo  '   ' . $i . ' - ' . $statsArrayQty[$i] .'<br>';
  }
 
  echo '</p>';
}
 
if (tep_not_null(SKIP_PRODUCT_ID)) {
  echo '<p style="margin:auto; text-align:left; padding-bottom:10px; ">';
  printf( "The following product ID's were skipped: %s.", SKIP_PRODUCT_ID );
  echo '</p>';
}
 
$completed = 'File Completed' . ($warning ? ' (with warnings): ' : ':' );
 
echo '<p style="margin:auto; text-align:left">';
echo "$completed <a href=\"../" . $OutFile . "\" target=\"_blank\">" . $destination_file . "</a><br>\n\n";
echo '</p>';
 
 
$csvFileDest = str_replace('.txt', '.csv', $destination_file);
$csvFileLocn = str_replace('.txt', '.csv', $OutFile);
$csvStr = str_replace("\t", '", "', '"' . $output);
$csvStr = str_replace("\n", "\"\n\"", $csvStr);
$csvStr = substr($csvStr,0,-1);
$csvStr = str_replace("\t", '", "', '"' . $output . '"');
 
$fp = fopen( $csvFileLocn , "a" );
$fout = fwrite( $fp , $csvStr );
fclose( $fp );
 
echo '<p style="margin:auto; text-align:left; padding-top:10px;">';
echo 'Use the following for easier viewing from this page. It is still in development and not meant for anything other than viewing.' . "<br>\n\n";
echo "$completed <a href=\"../" . $csvFileLocn . "\" target=\"_blank\">" . $csvFileDest . "</a><br>\n";
echo '</p>';
 
 
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>';
 
 
 
 
//  ---------
 
?>
 
This is NOT easy  :)  an example could help me
 
Thanks Jack
kozak
Link to comment
Share on other sites

The fix depends on your version of oscommerce but try both changes - one should work. In the googlefeeder file, find

$myfetch_mysql = ($use_mysqli ? mysqli_fetch_object : mysql_fetch_object);

and change it to

$myfetch_mysql = mysql_fetch_object;

or

$myfetch_mysql = mysqli_fetch_object;

Please don't post code, especially code that everyone has, unless asked. It makes reading the thread difficult.

Support Links:

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

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Hi Jack,

 

 

thank you for your quick and awesome fix.

I use 2.3.3 and the first change is the right one.

 

Little question ; Is it possible to also see the disabled products?

 

Have a nice sunday

 

Kozak 

Link to comment
Share on other sites

Dear Jack,

 

 

SEO URL's and Google feeder working well.

The ONLY think i'm worry about is Google feeder.

Feed contains 154169 products, this is right, but NOT all are showing up in the txt and csv file!!!

And don't know why but I yet the categorie name does not show up in Google Feeder.

Think after I updated products descriptions.

 

Have no idea if seo url is setting well as I have done ;

Enable SEO URLs? true   Add cPath to product URLs? false   Add category parent to product URLs? false   Add category parent to begining of URLs? true   Filter Short Words 3   Output W3C valid URLs (parameter string)? false   Enable SEO cache to save queries? true   Enable product cache? true   Enable categories cache? true   Enable manufacturers cache? false   Enable Articles Manager Articles cache? false   Enable Articles Manager Topics cache? false   Enable FAQDesk Categories cache? false   Enable Information Pages cache? false   Enable Links Manager cache? false   Enable NewsDesk Articles cache? false   Enable NewsDesk Categories cache? false   Enable Pollbooth cache? false   Enable Page Editor cache? false   Enable automatic redirects? true   Enable use Header Tags SEO as name? false   Enable performance checker? false   Choose URL Rewrite Type Rewrite   Enter special character conversions     Remove all non-alphanumeric characters? false   Reset SEO URLs Cache false   Uninstall Ultimate SEO false

 

I don't want that he changes the url's in something different, like the added C etc...

 

Thanks for your kind advise

 

Greatings from sunny Colombia

Kozak

Link to comment
Share on other sites

There is a mistake in the released version for counting files. Find the following two lines and switch their order (move the 1st line to after the 2nd)

   $statsArray['total']++;

   if ( $row->prodStatus == 1 ) {

Support Links:

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

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

I did it Jack, but don't see any changes in Froogle, still missing a bunch of products, while I find them on the catalog & admin site.

 

And still missing categorienames before the productnames  :(

 

 

When I sawn it I took a backup and notes in my logfile.

Then I updated products, drunk some coffee and when I tried de froogle again it was gone

 

Strange.

 

IT & Womens, the worries of a man

Link to comment
Share on other sites

 

@@Jack_mcs

 

I am having a problem with the csv file that is generated by this addon.

 

It looks like the problem is somewhere in here:

$csvFileDest = str_replace('.txt', '.csv', $destination_file);
$csvFileLocn = str_replace('.txt', '.csv', $OutFile);
$csvStr = str_replace("\t", '", "', '"' . $output);
$csvStr = str_replace("\n", "\"\n\"", $csvStr);
csvStr = substr($csvStr,0,-1);
$csvStr = str_replace("\t", '", "', '"' . $output . '"');

Everytime my cron job runs instead of replacing the file... it adds the information to the file.

 

As a result the file keeps getting larger and larger...

 

Instead of being replaced by a newer version.

 

I am currently using this code:

$csvFileDest = str_replace('.txt', '.csv', $destination_file);
$csvFileLocn = str_replace('.txt', '.csv', $OutFile);
$csvStr = str_replace("\t", '", "', '"' . $output);
//$csvStr = str_replace("\n", "\"\n\"", $csvStr);
//csvStr = substr($csvStr,0,-1);
//$csvStr = str_replace("\t", '", "', '"' . $output . '"');

This seems to just not generate the csv at all...

 

Any ideas on how to fix this?

 

The problem seems to be here:

$csvStr = str_replace("\n", "\"\n\"", $csvStr);
csvStr = substr($csvStr,0,-1);
$csvStr = str_replace("\t", '", "', '"' . $output . '"');

 

Any ideas here?

Link to comment
Share on other sites

Hi Jack,

using the latest version. I believe that $currentVersion in feeders.php should be 3.4 but my problem is with weight, even when enabled in googlefeeder.php - define('OPTIONS_ENABLED_WEIGHT', 1); it still doesn't show in the .txt file. Am I missing something else?

Absinthe Original Liquor Store

Link to comment
Share on other sites

Thanks for mentioning the version. Someone else did that too. It is correct in the next version but not worth an upload to fix this one.

 

Just setting that option should be all that is needed. Is the whole column missing or does it at least shown a column heading?

Support Links:

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

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

However I still might have a problem with a cron. After running it, I receive a message full of warnings:

PHP Warning:  require(includes/configure.php): failed to open stream: No such file or directory in /home/user/public_html/admin/includes/application_top.php on line 43
PHP Warning:  require(includes/configure.php): failed to open stream: No such file or directory in /home/user/public_html/admin/includes/application_top.php on line 43
PHP Fatal error:  require(): Failed opening required 'includes/configure.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/admin/includes/application_top.php on line 43

Warning: require(includes/configure.php): failed to open stream: No such file or directory in /home/user/public_html/admin/includes/application_top.php on line 43

Warning: require(includes/configure.php): failed to open stream: No such file or directory in /home/user/public_html/admin/includes/application_top.php on line 43

Fatal error: require(): Failed opening required 'includes/configure.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/admin/includes/application_top.php on line 43

The cron is php5 -q /home/user/public_html/admin/googlefeeder.php

Absinthe Original Liquor Store

Link to comment
Share on other sites

Unless they are preventing the feed from being created, they can be ignored.Try changing the cron command to the following to hide them:

php5 -q /home/user/public_html/admin/googlefeeder.php >/dev/null 2>&1 

Support Links:

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

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

  • 2 weeks later...

Remove the following lines:

$csvFileDest = str_replace('.txt', '.csv', $destination_file);
$csvFileLocn = str_replace('.txt', '.csv', $OutFile);
$csvStr = str_replace("\t", '", "', '"' . $output);
$csvStr = str_replace("\n", "\"\n\"", $csvStr);
$csvStr = substr($csvStr,0,-1);
$csvStr = str_replace("\t", '", "', '"' . $output . '"');

$fp = fopen( $csvFileLocn , "a" );
$fout = fwrite( $fp , $csvStr );
fclose( $fp );

Support Links:

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

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

  • 2 weeks later...

Try adding the following after the include application_top line

  error_reporting(E_ALL);  
  ini_set('display_errors','1'); 

You could also try changing the line beginning with $myfetch_mysql mentioned previously in this trhead.

Support Links:

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

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

OK, I've changed it to:

include_once 'includes/application_top.php';
    error_reporting(E_ALL);  
    ini_set('display_errors','1'); 
    chdir('../');

and these are the errors received:

Warning: require(includes/configure.php): failed to open stream: No such file or directory in /home/user/public_html/admin/includes/application_top.php on line 43

Warning: require(includes/configure.php): failed to open stream: No such file or directory in /home/user/public_html/admin/includes/application_top.php on line 43

Fatal error: require(): Failed opening required 'includes/configure.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/admin/includes/application_top.php on line 43

I have tried all three combinations of the $myfetch_mysql line, same errors, no file created.

Absinthe Original Liquor Store

Link to comment
Share on other sites

Hi Jack & Mr A.

 

Looks like the includes folder is not being found by application_top?

 

You could try  coding in the path to the includes file so it would maybe something like:

 

set_include_path('/home/user/public_html/admin/includes/')

 

at the top of the googlefeeder file

 

(maybe remove the admin/ bit depending where  chdir ../ is in the code)

 

I've had a couple of sites where running the cronjob on an /admin/ file fails every time - some needed the cron file to actually be in the catalog folder (old stuff - PHP 5.3 and less) on some more recent ones with osC 2.3.4 I've used a chopped down application_top file - /admin/includes/application_top_cron.php (code below) - that may run without the chdir command but I think Mr A server is the culprit as cron jobs vary so much from server to server

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2014 osCommerce

  Released under the GNU General Public License
*/

// Start the clock for the page parse time log
  define('PAGE_PARSE_START_TIME', microtime());

// Set the level of error reporting
  error_reporting(E_ALL & ~E_NOTICE);

// check support for register_globals
  if (function_exists('ini_get') && (ini_get('register_globals') == false) && (PHP_VERSION < 4.3) ) {
    exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory. Please use PHP 4.3+ if register_globals cannot be enabled on the server.');
  }

// load server configuration parameters
  if (file_exists('includes/local/configure.php')) { // for developers
    include('includes/local/configure.php');
  } else {
    include('includes/configure.php');
  }

// Define the project version --- obsolete, now retrieved with tep_get_version()
  define('PROJECT_VERSION', 'osCommerce Online Merchant v2.3');

// some code to solve compatibility issues
  require_once(DIR_WS_FUNCTIONS . 'compatibility.php');

// set the type of request (secure or not)
  $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';

// set php_self in the local scope
  $req = parse_url($HTTP_SERVER_VARS['SCRIPT_NAME']);
  $PHP_SELF = substr($req['path'], ($request_type == 'SSL') ? strlen(DIR_WS_HTTPS_ADMIN) : strlen(DIR_WS_ADMIN));

// Used in the "Backup Manager" to compress backups
  define('LOCAL_EXE_GZIP', 'gzip');
  define('LOCAL_EXE_GUNZIP', 'gunzip');
  define('LOCAL_EXE_ZIP', 'zip');
  define('LOCAL_EXE_UNZIP', 'unzip');

// include the list of project filenames
  require(DIR_WS_INCLUDES . 'filenames.php');

// include the list of project database tables
  require(DIR_WS_INCLUDES . 'database_tables.php');

// Define how do we update currency exchange rates
// Possible values are 'oanda' 'xe' or ''
  define('CURRENCY_SERVER_PRIMARY', 'oanda');
  define('CURRENCY_SERVER_BACKUP', 'xe');

// include the database functions
  require(DIR_WS_FUNCTIONS . 'database.php');

// make a connection to the database... now
  tep_db_connect() or die('Unable to connect to database server!');

// set application wide parameters
  $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION);
  while ($configuration = tep_db_fetch_array($configuration_query)) {
    define($configuration['cfgKey'], $configuration['cfgValue']);
  }

// define our general functions used application-wide
  require(DIR_WS_FUNCTIONS . 'general.php');
  require(DIR_WS_FUNCTIONS . 'html_output.php');

// initialize the logger class
  require(DIR_WS_CLASSES . 'logger.php');

// include shopping cart class
  require(DIR_WS_CLASSES . 'shopping_cart.php');




// define our localization functions
  require(DIR_WS_FUNCTIONS . 'localization.php');

// Include validation functions (right now only email address)
  require(DIR_WS_FUNCTIONS . 'validations.php');

// setup our boxes
  require(DIR_WS_CLASSES . 'table_block.php');
  require(DIR_WS_CLASSES . 'box.php');

//define chaset
  if(!defined(CHARSET)){
      define('CHARSET', 'utf-8');
  }

// split-page-results
  require(DIR_WS_CLASSES . 'split_page_results.php');

// entry/item info classes
  require(DIR_WS_CLASSES . 'object_info.php');

// email classes
  require(DIR_WS_CLASSES . 'mime.php');
  require(DIR_WS_CLASSES . 'email.php');

// file uploading class
  require(DIR_WS_CLASSES . 'upload.php');


// calculate category path
  if (isset($HTTP_GET_VARS['cPath'])) {
    $cPath = $HTTP_GET_VARS['cPath'];
  } else {
    $cPath = '';
  }

  if (tep_not_null($cPath)) {
    $cPath_array = tep_parse_category_path($cPath);
    $cPath = implode('_', $cPath_array);
    $current_category_id = $cPath_array[(sizeof($cPath_array)-1)];
  } else {
    $current_category_id = 0;
  }

// initialize configuration modules
if(class_exists(DIR_WS_CLASSES . 'cfg_modules.php')){
  require(DIR_WS_CLASSES . 'cfg_modules.php');
  $cfgModules = new cfg_modules();

// the following cache blocks are used in the Tools->Cache section
// ('language' in the filename is automatically replaced by available languages)
  $cache_blocks = array(array('title' => TEXT_CACHE_CATEGORIES, 'code' => 'categories', 'file' => 'categories_box-language.cache', 'multiple' => true),
                        array('title' => TEXT_CACHE_MANUFACTURERS, 'code' => 'manufacturers', 'file' => 'manufacturers_box-language.cache', 'multiple' => true),
                        array('title' => TEXT_CACHE_ALSO_PURCHASED, 'code' => 'also_purchased', 'file' => 'also_purchased-language.cache', 'multiple' => true)
                       );
					  } 
					   // define low stock report

  
 
?>

Edited by Bob Terveuren
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...