Jump to content
Johnson

Master Products - MS2

Recommended Posts

Hi Chipo

I'm having the same problem I need the products to appear as a standalone product as well as a "Slave". Did you manage to fix this?? Does anybody else have any ideas how to work around this??

 

Thanks

 

Terry

Please, is there anybody out there with experience of Master Products who can help me with this?? When I add an already existing product to a master as a slave it then disappears as a standalone product in the product listing.

 

Help!

Share this post


Link to post
Share on other sites

Please, is there anybody out there with experience of Master Products who can help me with this?? When I add an already existing product to a master as a slave it then disappears as a standalone product in the product listing.

 

Help!

I have the same request. Master product's fathers please help us to solve it. Although I would be happy if slave product name's link on a master's page will be opened as a standalone product's page. Thank you. By the way. Gratest contribution. Gratest. Gratest. Very usefull.

Share this post


Link to post
Share on other sites

I have a problem with Master Products combined with the Ajax AttributeManager (http://addons.oscommerce.com/info/4063).

After installing Master Products I suddenly do not see the result of the AttributeManager (i.e. pull down select box with size/color) in my shopping cart and prices are no longer ajusted.

 

Is there something special to do when using both these modules to get things to work?

Is there anyone using this who can confirm that this should be working (or has a fix) - version info would be great.

Did I do wrong?

 

I am using OS Commerce RC2a with Ajax AttributeManager v2.8.7 and Master Products RC2a v1.23

 

Regards,

 

Rob

Share this post


Link to post
Share on other sites

Would anyone happen to know how to do the following:

 

I have some products (masters) where the slaves have atributes and I have some other products (masters) where the slaves do not have atributes.

 

At the present moment, the slaves listings on product_info.php shows "Option" in all products whether they have atributes or not.

 

I would like the "Options" listing to show ONLY if slaves have atributes....

 

Any suggestions on how to do that?

 

thanks!

 

Ricardo

Share this post


Link to post
Share on other sites

Hi,

 

the master module introduces a new function into osCommerce that (I think) has nothing to do with the master module itself.

Suddenly I get a pull-down box where the customer may select the number of items to buy, on the left side of this box the text "TEXT_QUANTITY" is show.

 

Why is this done? Why is there no define() for this text done by Master Products?

And why is this a pull-down box - and not as I see it on many other systems a field where I can type a number (like in the shopping cart).

 

Btw: Is there any support on this module ? The installation manual mentions this thread as the "the oficial suport thread" (typos are in the manual :o ) but reading this thread it looks like there are lots of questions but hardly any answers.

Does anyone feel responsible for this module ??? Apparently Johnson (the original author) bailed out ...

 

Rob

Edited by Rob65

Share this post


Link to post
Share on other sites

Next problem ...

 

I tried to use the Simple Template System together with the Master Products modules.

It seems that this is not working correctly.

Suddenly my content field stops half-way during parsing of the product_info.php file.

 

In product_info.php a form (buy_now_) is created and the simple template system stops parsing the file after the </form> (it seems).

As soon as I revert back to the previous version of my webshop without Master Products, parsing is OK.

 

Rob

Share this post


Link to post
Share on other sites

Bwah,

 

did a full reinstall of osCommerce RC2a including the Ajax Attribute Manager, FCK Editor, QT-Pro, Ship2Pay, Ultimate SEO, Ultra Pics, Simple Template System and the Master Products Module (took me almost all night ...).

 

Everything works except .... Master Products.

With the Master Products added the simple template is not working properly anymore (suddenly the files are only parsed to half way the file), I get some extra fields for free (that are not part of Master Products) and the attributes that I add to products do not show up in my shopping cart.

 

Also, 'slave' products do not appear as separate selectable products in the catalog but they do show up in the "new products" window - from where I can select and buy this as a separate product.

 

I a sorry but it looks I have to tell the customer that I have to remove the whole Master Products module and search for another option. There are just too many problems with the Master Products module to solve for me.

A whole week of data entry lost ...

 

Rob

Share this post


Link to post
Share on other sites

Hi,

 

I followed the instructions for RC2 but I am getting a few errors. First, in the admin section, when I click on a product I get

Warning: reset(): Passed variable is not an array or object in /path/admin/includes/classes/object_info.php on line 17

Warning: Variable passed to each() is not an array or object in /path/admin/includes/classes/object_info.php on line 18

 

Also, the item's information is completely missing from the page. It just shows empty text fields.

 

 

On the product info pages, the tables are out of whack.

 

I am running a fairly clean version of RC2 but it has Ultimate SEO URLs installed, and it has STS. Any help would be appreciated.

Share this post


Link to post
Share on other sites

Sorry for my previous. I made some mistakes but I fixed them and it's working great now. Question: How can I get the suggested products box to appear in my STS template? Does anyone know?

Share this post


Link to post
Share on other sites

Sorry for my previous. I made some mistakes but I fixed them and it's working great now. Question: How can I get the suggested products box to appear in my STS template? Does anyone know?

 

ON EDIT: Actually, if I turn off STS, the suggested items box still doesn't appear even though I modded column_right.php. Obviously something is amiss, but I can't figure out what I could've done wrong. I went back through twice, making sure I didn't make any more mistakes, and this time I can't find a single one. Any ideas?

Share this post


Link to post
Share on other sites

I Have problem on my product_info page : I want to display reviews for master and slave products both on my product_info page.

 

I think this query must be modified but I'm not an expert in code (and in english also...) :

$reviews_query_raw = "select r.reviews_id, reviews_text, r.reviews_rating, r.date_added, r.customers_name from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd where r.products_id = '" . (int)$product_info['products_id'] . "' and r.reviews_id = rd.reviews_id and rd.languages_id = '" . (int)$languages_id . "' and r.approved = '1' order by r.reviews_id desc";

 

Thanx in advance for your help

Share this post


Link to post
Share on other sites

Can someone tell me how to do an htaccess redirect of all slaves to their correspondent master.

 

I have slaves listed as products on Google Products and when people click on them, it takes them to the individual slave product page which they cannot order from. Therefore I would like all slaves links to be redirected to their Masters.

 

Thanks in Advance!

Share this post


Link to post
Share on other sites

any body kind enough to help me on what to change on the product info file the very long modification. its a big trouble coz i am changing a modified site already my boss just bought it ??

 

here is my product_info

 

<?php
/*
 $Id: product_info.php 1739 2007-12-20 00:52:16Z hpdl $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.php');

 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);

 $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
 $product_check = tep_db_fetch_array($product_check_query);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script type="text/javascript" src="iepngfix_tilebg.js"></script>
<style type="text/css">
.ie6_png 			{behavior: url("iepngfix.htc") }
.ie6_png img		{behavior: url("iepngfix.htc") }
.ie6_png input		{behavior: url("iepngfix.htc") }
</style>
<!--[if IE]>
  <script type="text/javascript" src="ie_png.js"></script>
  <script type="text/javascript">
      ie_png.fix('.png');
  </script>
<![endif]-->
<script language="javascript"><!--
function popupWindow(url) {
 window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=150')
}
//--></script>
</head>
<body>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" class="<?php echo MAIN_TABLE; ?>" cellspacing="0" cellpadding="0">
<tr>
   <td class="<?php echo BOX_WIDTH_TD_LEFT; ?>"><table border="0" class="<?php echo BOX_WIDTH_LEFT; ?>" cellspacing="0" cellpadding="0">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td class="<?php echo CONTENT_WIDTH_TD; ?>"><?php echo panel_top(); ?><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?>



<?php
 if ($product_check['total'] < 1) {
?>
<?php echo tep_draw_top();?>

<?php echo tep_draw_title_top();?>

			<?php echo TEXT_PRODUCT_NOT_FOUND; ?>

<?php echo tep_draw_title_bottom();?>

<?php echo tep_draw1_top();?>

<?php echo tep_draw_infoBox2_top();?>

		<table border="0" width="100%" cellspacing="0" cellpadding="2">
			<tr><td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td></tr>
           </table>

<?php echo tep_draw_infoBox2_bottom();?>

<?php echo tep_draw1_bottom();?>

<?php
 } else {
   $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
   $product_info = tep_db_fetch_array($product_info_query);

   tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");

   if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
     $products_price2 = '<span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span><br><s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s>';
   } else {
     $products_price2 = '<span class="productSpecialPrice">'.$currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])).'</span>';
   }

   if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
     $products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s>   <b class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</b>';
   } else {
     $products_price = '<b class="productSpecialPrice">'.$currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])).'</b>';
   }

   if (tep_not_null($product_info['products_model'])) {
     $products_name = $product_info['products_name'] . '<br> <span class="smallText">[' . $product_info['products_model'] . ']</span>';
   } else {
     $products_name = $product_info['products_name'];
   }
?>

<?php echo tep_draw_top();?>

<?php echo tep_draw_title_top();?>

			<div class="left_part"><?php echo $breadcrumb->trail(' » ')?> »  <?php echo $products_name; ?></div><div class="right_part"><?php echo $products_price2; ?></div>

<?php echo tep_draw_title_bottom();?>

<?php echo tep_draw1_top();?>

	<?php /*  echo tep_draw2_top();  */?>

<?php /*  echo tep_pixel_trans();  */?>

<?php
   if (tep_not_null($product_info['products_image'])) {
?>



<div class="main prod_info" style="width:<?php echo (SMALL_IMAGE_WIDTH +23);?>px;">

<?php echo tep_draw_prod_pic_top();?><script language="javascript"><!--
document.write('<?php echo '<a href="javascript:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, '') . '</a>'; ?>');
//--></script><noscript>
<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, '') .  '</a>'; ?></noscript><?php echo tep_draw_prod_pic_bottom();?>

<script language="javascript"><!--
document.write('<?php echo '<a class="enlarge" href="javascript:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');
//--></script>
<noscript><?php echo '<a class="enlarge" href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' .  TEXT_CLICK_TO_ENLARGE . '</a>'; ?></noscript></div>	
<div class="main"><div class="desc2"><?php echo stripslashes($product_info['products_description']); ?></div><br>
			  <br><div><?php echo $products_price?></div></div><br>
<div style="clear:both;"></div>
<?php
   }
?>


	<?php /*  echo tep_draw2_bottom();  */?>

<div class="cart_line_x padd2_gg"><?php echo tep_draw_separator('spacer.gif', '1', '1'); ?></div>

	<?php echo tep_draw2_top(); ?>

<?php
   $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
   $products_attributes = tep_db_fetch_array($products_attributes_query);
   if ($products_attributes['total'] > 0) {
?>


         <table border="0" cellspacing="4" cellpadding="2">
           <tr>
             <td class="main" colspan="2"><strong class="strong"><?php echo TEXT_PRODUCT_OPTIONS; ?></strong></td>
           </tr>
<?php
     $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
     while ($products_options_name = tep_db_fetch_array($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 " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");
       while ($products_options = tep_db_fetch_array($products_options_query)) {
         $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
         if ($products_options['options_values_price'] != '0') {
           $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
         }
       }

       if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
         $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
       } else {
         $selected_attribute = false;
       }
?>
          <td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
             <td class="main"><?php echo tep_draw_checkbox_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute) ; ?></td>
           </tr>
<?php
     }
?>
         </table>
<?php 
   }
?>


<?php
   $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");
   $reviews = tep_db_fetch_array($reviews_query);
   if ($reviews['count'] > 0) {
?>
   <table cellpadding="0" cellspacing="4" border="0">
  <tr>
       <td class="main"><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
</table>
<?php
   }

   if (tep_not_null($product_info['products_url'])) {
?>
   <table cellpadding="0" cellspacing="4" border="0">
  <tr>
       <td class="main"><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td>
     </tr>
</table>

<?php echo tep_pixel_trans();?>

<?php
   }

   if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {
?>

<?php echo tep_pixel_trans();?>

<table cellpadding="0" cellspacing="4" border="0">    
  <tr>
       <td class="main"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td>
     </tr>
</table>
<?php
   } else {
?>

<?php echo tep_pixel_trans();?>

  <table cellpadding="0" cellspacing="4" border="0">   
  <tr>
       <td class="main"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td>
     </tr>
</table>
<?php
   }
?>

<?php echo tep_draw2_bottom(); ?>

<?php echo tep_pixel_trans();?> 

<div class="cart_line_x padd2_gg"><?php echo tep_draw_separator('spacer.gif', '1', '1'); ?></div>

<?php echo tep_draw2_top(); ?>

<?php echo tep_pixel_trans();?>
<?php echo tep_pixel_trans();?>

<?php  /* echo tep_draw_infoBox2_top(); */ ?>

		<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr>
               <td class="main button_marg"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()) . '">' . tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS) . '</a>'; ?></td>
               <td class="main button_marg" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_add_to_cart1.gif', IMAGE_BUTTON_IN_CART); ?></td>
             </tr>
           </table>

<?php  /* echo tep_draw_infoBox2_bottom(); */ ?>

	<?php echo tep_draw2_bottom(); ?>


<?php echo tep_draw1_bottom();?>
<?php echo tep_draw_bottom();?>
<?php
   if ((USE_CACHE == 'true') && empty($SID)) {
     echo tep_cache_also_purchased(3600);
   } else {
    include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS);
   }
 }
?>



</form></td>
<!-- body_text_eof //-->
<td class="<?php echo BOX_WIDTH_TD_RIGHT; ?>"><table border="0" class="<?php echo BOX_WIDTH_RIGHT; ?>" cellspacing="0" cellpadding="0">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
   </table></td>
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-13148196-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

just that long part and i can do the rest..

Share this post


Link to post
Share on other sites

Hello there,

I have two may be simple questions.

 

1.) How can I change the order of the slaves in the overview of the article

2.) The quantity of each slave is pre-selected to 1. So when i hit "to the cart" it automatically pushes EVERY slave (which is not manually deselected) in the cart. Where can I change that to 0?

 

 

I truly tried to find answers in this thread and via google but I wasn't too lucky though :-/

 

 

thanks

tunix

Share this post


Link to post
Share on other sites

Hello there,

I have two may be simple questions.

 

1.) How can I change the order of the slaves in the overview of the article

2.) The quantity of each slave is pre-selected to 1. So when i hit "to the cart" it automatically pushes EVERY slave (which is not manually deselected) in the cart. Where can I change that to 0?

 

 

I truly tried to find answers in this thread and via google but I wasn't too lucky though :-/

 

 

thanks

tunix

Check this line ///$lc_text = tep_draw_input_field('Qty_ProdId_' . $listing['products_id'], '0', 'size="4"'); ////in /includes/modules/master_listing.php

Share this post


Link to post
Share on other sites

dear all,

 

i am looking at installing this contribution but need some confirmation first if it can do what i need it to do.

 

the functionality i am looking at is:

 

1) Choose a product and add it to card

2) When in card i need the customer to be offered additional things they can buy that are related to this product

 

 

example:

a) Let say I buy shoes

B) add to card

c) in one of the columns or on the main page i am offered to add "shoe laces" and "shoe polish" and perhaps other related products

d) i decide to add the laces and the card updates on top

e) then i go to checkout as usual

 

hope some one could confirm to me if i can use this contribution for the above described functionality

 

thanks

Share this post


Link to post
Share on other sites

Have installed this contribution on a heavily modified site but i ran into a few problems maybe someone can help me with

 

1: on product_info if i put a price of 0.00 for the master product it is still showing a price of 0.00

 

2: master and slave products are still showing on product_new page

 

3: how come slave product images do not pop-up into a larger image when clicked?

Share this post


Link to post
Share on other sites

Hey guys,

 

I'm having an interesting error happening on catalog/shopping_cart.php in the block of code below.

 

This is happening only on products with attributes and it happens regardless of which attribute is chosen.

 

The error is:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{1}7' at line 1

 

SELECT products_master FROM products WHERE products_id = 128{1}7

 

[TEP STOP]

 

 

The code is:

// Master Products     
   $master_prod = tep_db_query("select products_master, products_master_status from " . TABLE_PRODUCTS . " where products_id = '" . $products[$i]['id'] . "'");
   $master_prod_values = tep_db_fetch_array($master_prod);

   if (($master_prod_values['products_master_status'] == 0) && ($master_prod_values['products_master'] != 0)) {
     $prod_link_id = $master_prod_values['products_master'];
   } else { $prod_link_id = $products[$i]['id']; }
    $products_name = '<table border="0" cellspacing="2" cellpadding="2">' .
                     '  <tr>' .
                     '    <td class="productListing-data" align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $prod_link_id) . '">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td>' .
                     '    <td class="productListing-data" valign="top"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '"><b>' . $products[$i]['name'] . '</b></a>';
//Master Products EOF

 

 

Anyone have any ideas how to fix this? I've been searching the forums and haven't found this error anywhere else yet. Thanks in advance for any ideas :)


~Tracy
 

Share this post


Link to post
Share on other sites

It appears the issue may lie in the includes/application_top.php code listed below. The products with attributes are slaves of a master - so I'm guessing it's in the add slave section but I'm not positive as they can add multiple products (it's a box where they enter the quantity for each slave item and then hit the add to cart button). Again, it's only happening if there is an attribute (which is thankfully only two products, but unfortunately one of those products is our top seller so I'd love to get this fixed).

 

Any thoughts on why this would suddenly trigger a 1064 error?

 

      // customer adds a product from the products page
     case 'add_product' :    if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
                               $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+ $HTTP_POST_VARS['cart_quantity'], $HTTP_POST_VARS['id']);
                             }
                             tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                             break;
    //Master Products
    // customer adds multiple products from the master_listing page
     case 'add_slave' :
                             reset($HTTP_POST_VARS);
                             while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
                               if (substr($key,0,11) == "Qty_ProdId_") {
                                 $prodId = substr($key,11);
                                 $qty = $val;
							  // if zero: go to the next HTTP_POST_VARS on next line
							  if ($qty <= 0) continue;
                                 if(isset($HTTP_POST_VARS["id_$prodId"]) && is_array($HTTP_POST_VARS["id_$prodId"])) {
                                   // We have attributes
                                   $cart->add_cart($prodId, $cart->get_quantity(tep_get_uprid($prodId,$HTTP_POST_VARS["id_$prodId"]))+$qty, $HTTP_POST_VARS["id_$prodId"]);
                                 } else {
                                   // No attributes
                                   $cart->add_cart($prodId, $cart->get_quantity($prodId)+$qty);
                                 }
                               }
                             }
                             tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                             break;
    //Master Products EOF
     // performed by the 'buy now' button in product listings and review page
     case 'buy_now' :        if (isset($HTTP_GET_VARS['products_id'])) {
                               if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {
                                 tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
                               } else {
                                 $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);
                               }
                             }
                             tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                             break;
     case 'notify' :         if (tep_session_is_registered('customer_id')) {
                               if (isset($HTTP_GET_VARS['products_id'])) {
                                 $notify = $HTTP_GET_VARS['products_id'];
                               } elseif (isset($HTTP_GET_VARS['notify'])) {
                                 $notify = $HTTP_GET_VARS['notify'];
                               } elseif (isset($HTTP_POST_VARS['notify'])) {
                                 $notify = $HTTP_POST_VARS['notify'];
                               } else {
                                 tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify'))));
                               }
                               if (!is_array($notify)) $notify = array($notify);
                               for ($i=0, $n=sizeof($notify); $i<$n; $i++) {
                                 $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $notify[$i] . "' and customers_id = '" . $customer_id . "'");
                                 $check = tep_db_fetch_array($check_query);
         // BOF SPPC, Hide products and categories from groups
         if (is_array($hide_status_products) && tep_not_null($hide_status_products)) {
         	foreach($hide_status_products as $key => $subarray) {
         		if ($subarray['products_id'] == tep_get_prid($notify[$i]) && $subarray['hidden'] == '0') {
                                 if ($check['count'] < 1) {
                                   tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())");
                                 }
                               } // end if ($subarray['products_id'] == tep_get_prid($notify[$i])...
                           } // end foreach ($hide_status_products as $key => $subarray)
                       } else {
                       	if ($check['count'] < 1) {
                       		tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())");
                       	}
                   }
               // EOF SPPC, Hide products and categories from groups
                             }

                               tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify'))));
                             } else {
                               $navigation->set_snapshot();
                               tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
                             }
                             break;
     case 'notify_remove' :  if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) {
                               $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'");
                               $check = tep_db_fetch_array($check_query);
                               if ($check['count'] > 0) {
                                 tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'");
                               }
                               tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action'))));
                             } else {
                               $navigation->set_snapshot();
                               tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
                             }
                             break;
     case 'cust_order' :     if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) {
                               if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) {
                                 tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid']));
                               } else {
                                 $cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1);
                               }
                             }
                             tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                             break;
   } // end switch
// BOF Separate Pricing Per Customer v4.1, Hide products from groups mod
   } else { // $hide_product is true
      tep_redirect(tep_href_link(FILENAME_DEFAULT));
 }
// EOF Separate Pricing Per Customer v4.1, Hide products from groups mod
} // if (isset($HTTP_GET_VARS['action']))

 

 

Hey guys,

 

I'm having an interesting error happening on catalog/shopping_cart.php in the block of code below.

 

This is happening only on products with attributes and it happens regardless of which attribute is chosen.

 

The error is:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{1}7' at line 1

 

SELECT products_master FROM products WHERE products_id = 128{1}7

 

[TEP STOP]


~Tracy
 

Share this post


Link to post
Share on other sites

Anybody? I still have no idea why this isn't working, and it does have our top selling product unable to be ordered through the site right now :( Any thoughts on what bit of code is incorrect with MySQL 5.0.89 would be greatly appreciated.

 

You can see this in action at mountainmeadowherbs.com/gentle-birth-formula-p-31.html - try adding it to the cart and you'll see the error.

 

It appears the issue may lie in the includes/application_top.php code listed below. The products with attributes are slaves of a master - so I'm guessing it's in the add slave section but I'm not positive as they can add multiple products (it's a box where they enter the quantity for each slave item and then hit the add to cart button). Again, it's only happening if there is an attribute (which is thankfully only two products, but unfortunately one of those products is our top seller so I'd love to get this fixed).

 

Any thoughts on why this would suddenly trigger a 1064 error?

 

      // customer adds a product from the products page
     case 'add_product' :    if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
                               $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+ $HTTP_POST_VARS['cart_quantity'], $HTTP_POST_VARS['id']);
                             }
                             tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                             break;
    //Master Products
    // customer adds multiple products from the master_listing page
     case 'add_slave' :
                             reset($HTTP_POST_VARS);
                             while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
                               if (substr($key,0,11) == "Qty_ProdId_") {
                                 $prodId = substr($key,11);
                                 $qty = $val;
							  // if zero: go to the next HTTP_POST_VARS on next line
							  if ($qty <= 0) continue;
                                 if(isset($HTTP_POST_VARS["id_$prodId"]) && is_array($HTTP_POST_VARS["id_$prodId"])) {
                                   // We have attributes
                                   $cart->add_cart($prodId, $cart->get_quantity(tep_get_uprid($prodId,$HTTP_POST_VARS["id_$prodId"]))+$qty, $HTTP_POST_VARS["id_$prodId"]);
                                 } else {
                                   // No attributes
                                   $cart->add_cart($prodId, $cart->get_quantity($prodId)+$qty);
                                 }
                               }
                             }
                             tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                             break;
    //Master Products EOF
     // performed by the 'buy now' button in product listings and review page
     case 'buy_now' :        if (isset($HTTP_GET_VARS['products_id'])) {
                               if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {
                                 tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
                               } else {
                                 $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);
                               }
                             }
                             tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                             break;
     case 'notify' :         if (tep_session_is_registered('customer_id')) {
                               if (isset($HTTP_GET_VARS['products_id'])) {
                                 $notify = $HTTP_GET_VARS['products_id'];
                               } elseif (isset($HTTP_GET_VARS['notify'])) {
                                 $notify = $HTTP_GET_VARS['notify'];
                               } elseif (isset($HTTP_POST_VARS['notify'])) {
                                 $notify = $HTTP_POST_VARS['notify'];
                               } else {
                                 tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify'))));
                               }
                               if (!is_array($notify)) $notify = array($notify);
                               for ($i=0, $n=sizeof($notify); $i<$n; $i++) {
                                 $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $notify[$i] . "' and customers_id = '" . $customer_id . "'");
                                 $check = tep_db_fetch_array($check_query);
         // BOF SPPC, Hide products and categories from groups
         if (is_array($hide_status_products) && tep_not_null($hide_status_products)) {
         	foreach($hide_status_products as $key => $subarray) {
         		if ($subarray['products_id'] == tep_get_prid($notify[$i]) && $subarray['hidden'] == '0') {
                                 if ($check['count'] < 1) {
                                   tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())");
                                 }
                               } // end if ($subarray['products_id'] == tep_get_prid($notify[$i])...
                           } // end foreach ($hide_status_products as $key => $subarray)
                       } else {
                       	if ($check['count'] < 1) {
                       		tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())");
                       	}
                   }
               // EOF SPPC, Hide products and categories from groups
                             }

                               tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify'))));
                             } else {
                               $navigation->set_snapshot();
                               tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
                             }
                             break;
     case 'notify_remove' :  if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) {
                               $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'");
                               $check = tep_db_fetch_array($check_query);
                               if ($check['count'] > 0) {
                                 tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'");
                               }
                               tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action'))));
                             } else {
                               $navigation->set_snapshot();
                               tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
                             }
                             break;
     case 'cust_order' :     if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) {
                               if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) {
                                 tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid']));
                               } else {
                                 $cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1);
                               }
                             }
                             tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                             break;
   } // end switch
// BOF Separate Pricing Per Customer v4.1, Hide products from groups mod
   } else { // $hide_product is true
      tep_redirect(tep_href_link(FILENAME_DEFAULT));
 }
// EOF Separate Pricing Per Customer v4.1, Hide products from groups mod
} // if (isset($HTTP_GET_VARS['action']))


~Tracy
 

Share this post


Link to post
Share on other sites

This is the wrong query?

$master_prod = tep_db_query("select products_master, products_master_status from " . TABLE_PRODUCTS . " where products_id = '" . $products[$i]['id'] . "'");

 

What query do I need to change then? Any idea on where it's getting the query from - or how to find out?

 

Both chunks of PHP code you listed have nothing to do with the error you're getting. It's the wrong query.


~Tracy
 

Share this post


Link to post
Share on other sites

The error message is

SELECT products_master FROM products WHERE products_id = 128{1}7

That is not produced by the code you show, which would produce

select products_master, products_master_status from products where products_id = '128{1}7'

You need to find the correct code first.

Share this post


Link to post
Share on other sites

Hmmm - could it be the X-Sell contribution? I have a includes/modules/xsell_cart.php file with this query:

$xsell_master_query = tep_db_query("SELECT products_master FROM " . TABLE_PRODUCTS . " WHERE products_id = " . $product_id_in_cart['id'] . "");

 

includes/modules/master_products.php has a similar query - but it uses the "LIKE" statement so I don't think it's the right one- but here it is just in case

$master_query = tep_db_query("select products_master from " . TABLE_PRODUCTS . " where products_master LIKE '%" . $HTTP_GET_VARS['products_id'] . "%' and find_in_set('".$customer_group_id."', products_hide_from_groups) = 0");

 

These are the only two places I can find the query string

tep_db_query("select products_master from

in the entire site.

 

The error message is

 

That is not produced by the code you show, which would produce

 

You need to find the correct code first.


~Tracy
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×