Jump to content



Photo
* - - - - 3 votes

Quantity Price Breaks


  • Please log in to reply
886 replies to this topic

#781   musashi79uk

musashi79uk
  • Members
  • 35 posts
  • Real Name:Carl Fox

Posted 27 January 2011 - 15:17

Hi,
I installed QPBPP and everything went to plan.
I changed this code in catalog/includes/classes/shopping_cart.php:-

$products_query = tep_db_query("select p.products_id, pd.products_name, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_tax_class_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$products_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
if ($products = tep_db_fetch_array($products_query)) {
$prid = $products['products_id'];
$products_price = $products['products_price'];

I changed it to (as per the instructions):-

// BOF qpbpp
$pf->loadProduct($products_id, $languages_id); // does query if necessary and adds to
// PriceFormatterStore or gets info from it next
if ($products = $pfs->getPriceFormatterData($products_id)) {
if (tep_not_null($this->contents[$products_id]['discount_categories_id'])) {
$nof_items_in_cart_same_cat = $discount_category_quantity[$this->contents[$products_id]['discount_categories_id']];
$nof_other_items_in_cart_same_cat = $nof_items_in_cart_same_cat - $this->contents[$products_id]['qty'];
} else {
$nof_other_items_in_cart_same_cat = 0;
}
$products_price = $pf->computePrice($this->contents[$products_id]['qty'], $nof_other_items_in_cart_same_cat);
// EOF qpbpp

The problem I have though, is I am installing Online Gift Card 1.5 contribution but it is asking me to edit the original code as in the first block of text. I need to change it from p.products_tax_class_id from to p.products_tax_class_id, p.products_gift_card from

Does anyone know how I can incorporate the p.products_gift_card bit into the altered QPBPP? Everything else on the install went fine apart from this one little thing.

Thanks in advance for your help

Carl

#782   Katachi

Katachi
  • Members
  • 5 posts
  • Real Name:Samir Kharchi

Posted 02 February 2011 - 20:15

Hi,

I am in the middle of installing the Add-On "Quantity Price Breaks Per Product". Now I got to a point in the install.html that tells me to add some lines after a specific code snippet but that code snippet is not in there (anymore). :-/ I am using OSC 2.3.1, so the latest available version and the latest version of QPPPP, 1.36.

Here is the problematic section I am talking about. The install.html says:

catalog/admin/categories.php
After (around line 384):

} elseif (tep_not_null($HTTP_POST_VARS)) {
      $pInfo->objectInfo($HTTP_POST_VARS);

Add
// BOF qpbpp
      $price_breaks_array = array();
      for ($count = 0; $count <= (PRICE_BREAK_NOF_LEVELS - 1); $count++) {
        if(isset($HTTP_POST_VARS['products_price' . $count]) && tep_not_null($HTTP_POST_VARS['products_price' . $count]) &&
           isset($HTTP_POST_VARS['products_qty' . $count]) && tep_not_null($HTTP_POST_VARS['products_qty' . $count])) {
          $price_breaks_array[] = array(
            'products_price' => $HTTP_POST_VARS['products_price' . $count],
            'products_qty' => $HTTP_POST_VARS['products_qty' . $count],
            'products_delete' => (isset($HTTP_POST_VARS['products_delete' . $count]) && tep_not_null($HTTP_POST_VARS['products_delete' . $count])));
        }
      }
// EOF qpbpp

But there is no such line anywhere in the categories.php file. So I am a bit clueless where to put the additional code as it is code that should be in the else condition brackets. /sad.gif' class='bbc_emoticon' alt=':(' />
Anybody a solution or an idea? I wonder how everybody else has done this (I couldnĀ“t find anybody with the same question in this thread).

Thanks in advance for ANY help
Sam

Edited by Katachi, 02 February 2011 - 20:16.


#783   musashi79uk

musashi79uk
  • Members
  • 35 posts
  • Real Name:Carl Fox

Posted 09 February 2011 - 16:21

Has anyone managed to get Quantity Price Breaks Per Product to work with STS Simple Template System?
I've tried to create the $x$ tags but have run into errors.
Does anyone have a solution to this?

Thanks in advance

#784   skyhook

skyhook
  • Members
  • 1 posts
  • Real Name:Paolo

Posted 17 February 2011 - 11:37

Hi everyone, i am trying to istall this addon on osc 2.3.1 too, and i found the same problems.

Well is there anyone that completed this task with success ??

thanks in advance
SkyHook

Hi,

I am in the middle of installing the Add-On "Quantity Price Breaks Per Product". Now I got to a point in the install.html that tells me to add some lines after a specific code snippet but that code snippet is not in there (anymore). :-/ I am using OSC 2.3.1, so the latest available version and the latest version of QPPPP, 1.36.

Here is the problematic section I am talking about. The install.html says:

catalog/admin/categories.php
After (around line 384):

} elseif (tep_not_null($HTTP_POST_VARS)) {
      $pInfo->objectInfo($HTTP_POST_VARS);

Add
// BOF qpbpp
      $price_breaks_array = array();
      for ($count = 0; $count <= (PRICE_BREAK_NOF_LEVELS - 1); $count++) {
        if(isset($HTTP_POST_VARS['products_price' . $count]) && tep_not_null($HTTP_POST_VARS['products_price' . $count]) &&
           isset($HTTP_POST_VARS['products_qty' . $count]) && tep_not_null($HTTP_POST_VARS['products_qty' . $count])) {
          $price_breaks_array[] = array(
            'products_price' => $HTTP_POST_VARS['products_price' . $count],
            'products_qty' => $HTTP_POST_VARS['products_qty' . $count],
            'products_delete' => (isset($HTTP_POST_VARS['products_delete' . $count]) && tep_not_null($HTTP_POST_VARS['products_delete' . $count])));
        }
      }
// EOF qpbpp

But there is no such line anywhere in the categories.php file. So I am a bit clueless where to put the additional code as it is code that should be in the else condition brackets. /sad.gif' class='bbc_emoticon' alt=':(' />
Anybody a solution or an idea? I wonder how everybody else has done this (I couldnĀ“t find anybody with the same question in this thread).

Thanks in advance for ANY help
Sam



#785   Katachi

Katachi
  • Members
  • 5 posts
  • Real Name:Samir Kharchi

Posted 17 February 2011 - 14:25

Hi everyone, i am trying to istall this addon on osc 2.3.1 too, and i found the same problems.

Well is there anyone that completed this task with success ??

thanks in advance
SkyHook


@skyhook:
I simply added them in a logical way. For example the one I posted looks like this now:

$languages = tep_get_languages();
    for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
      $pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
      $pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
      $pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);

	  //MANUALLY MODIFIED LINES DID NOT EXIST BEFORE IN THIS PLACE ALTHOUGH THEY SHOULD BELONG BEFORE THE ABOVE qpbpp MODIFS
	  // BOF qpbpp
      $price_breaks_array = array();
      for ($count = 0; $count <= (PRICE_BREAK_NOF_LEVELS - 1); $count++) {
        if(isset($HTTP_POST_VARS['products_price' . $count]) && tep_not_null($HTTP_POST_VARS['products_price' . $count]) &&
           isset($HTTP_POST_VARS['products_qty' . $count]) && tep_not_null($HTTP_POST_VARS['products_qty' . $count])) {
          $price_breaks_array[] = array(
            'products_price' => $HTTP_POST_VARS['products_price' . $count],
            'products_qty' => $HTTP_POST_VARS['products_qty' . $count]);
        }
      }
	  // EOF qpbpp

It's working fine in my shop now. Let me know any other ones you find and I'll post my solutions here. Maybe someone can take the time to add these as installation notes to the contribution for future users with the same problems.

#786   aybc

aybc
  • Members
  • 25 posts
  • Real Name:Aaron Kostuik

Posted 20 February 2011 - 01:49

I am also running 2.3.1, i totally understand that it will take time for addons to come out for it. I really would like to use this contribution as well but i seem to be running into the same issues as skyhook and katachi.

How did everyone get around this code change:

In product_info.php

Change this:
<td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td>


to this:
<?php // BOF qpbpp
//<td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART);
?>
<td class="main" align="right">
<table border="0" align="right">
<tr><td align="center">
<?php echo TEXT_ENTER_QUANTITY . ":" . tep_draw_input_field('cart_quantity', $pf->adjustQty(1), 'size="6"'); ?>
</td></tr>
<tr><td align="center">
<?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?>
</td></tr>
</table>
</td>
<?php // EOF qpbpp ?>


product_info.php does not have that line, i guess 2.3.1 does it a little different; here is the code from my file.

<div class="buttonSet">
<span class="buttonAction"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary'); ?></span>

i assume i just replace everthing between the <span></span>

#787   scastro

scastro
  • Members
  • 44 posts
  • Real Name:Steve Castro

Posted 09 March 2011 - 18:24

Duplicate post - sorry.

Edited by scastro, 09 March 2011 - 18:28.


#788   scastro

scastro
  • Members
  • 44 posts
  • Real Name:Steve Castro

Posted 09 March 2011 - 18:27

I am also running 2.3.1, i totally understand that it will take time for addons to come out for it. I really would like to use this contribution as well but i seem to be running into the same issues as skyhook and katachi.

How did everyone get around this code change:

In product_info.php

Change this:
<td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td>


to this:
<?php // BOF qpbpp
//<td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART);
?>
<td class="main" align="right">
<table border="0" align="right">
<tr><td align="center">
<?php echo TEXT_ENTER_QUANTITY . ":" . tep_draw_input_field('cart_quantity', $pf->adjustQty(1), 'size="6"'); ?>
</td></tr>
<tr><td align="center">
<?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?>
</td></tr>
</table>
</td>
<?php // EOF qpbpp ?>


product_info.php does not have that line, i guess 2.3.1 does it a little different; here is the code from my file.

<div class="buttonSet">
<span class="buttonAction"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary'); ?></span>

i assume i just replace everthing between the <span></span>


Use a file compare program and see which lines of code changed. The problem is that it's using the same template structure as the older version. It takes a bit of hack and slashing but it works for 2.3.1.

#789   scastro

scastro
  • Members
  • 44 posts
  • Real Name:Steve Castro

Posted 09 March 2011 - 18:28

Hello,

I have v1.3.6 installed, and it's working just as it should.

However, I have a question. Is there a way to disable the minimum order quantity selected function? I noticed in the FAQ section of the install documentation, it walks through how to remove the Quantity Block feature but keep minimum order quantity feature in tact. I need the opposite.

I understand that the last response was from a year ago but I was hoping someone that has this installed could help me out, this extension works perfectly for me except that one small issue.

#790   benji_mckinney

benji_mckinney
  • Members
  • 3 posts
  • Real Name:Benji McKinney

Posted 28 April 2011 - 02:56

PLEASE help....

I am very new to osCommerce. I recently installed the QPBPP contribution. I had a few hiccups but I finally got it "mostly" working. The only problem I seemingly have now is (I beleive) on the product_listing.php file.

If you visit my store: www.graphiccentre.com and click on a category and then click on "details" button you get a "product not found" message. This does not happen from the index.php page or for sub-levels on categories where I have not yet applied any price breaks(not sure why). Once I add a price break, all items below that items have the same issue.

I thought this may have something to do with the product_listing.php file somehow. Can anyone help me? I know this thread is old but I am reaching for any help I can get...Jan, you seem to be the savior in this thread (many of your other comments have helped me fix other issues)....any help here?

VERY THANKFUL,
Benji

#791   Jan Zonjee

Jan Zonjee

    Governor of Peace

  • Core Team
  • 7,094 posts
  • Real Name:Jan Zonjee
  • Gender:Male
  • Location:the Netherlands

Posted 28 April 2011 - 21:14

If you visit my store: www.graphiccentre.com and click on a category and then click on "details" button you get a "product not found" message. This does not happen from the index.php page or for sub-levels on categories where I have not yet applied any price breaks(not sure why). Once I add a price break, all items below that items have the same issue.

There is a problem with the PHP code (you use a template and they sometimes have let's say peculiar code) where the products_id is missing in the links buy_now&products_id=">

<a href="http://www.yoursite.com/index.php?cPath=69&sort=2a&action=buy_now&products_id="><img src="includes/languages/english/images/buttons/button_in_cart.gif" border="0" alt="Buy Now" title=" Buy Now " width="79" height="14"></a>

Hard to say what the problem is without seeing the code but since the image and product description is OK it is probably a minor issue.

#792   benji_mckinney

benji_mckinney
  • Members
  • 3 posts
  • Real Name:Benji McKinney

Posted 02 May 2011 - 02:36

There is a problem with the PHP code (you use a template and they sometimes have let's say peculiar code) where the products_id is missing in the links buy_now&products_id=">

<a href="http://www.yoursite.com/index.php?cPath=69&sort=2a&action=buy_now&products_id="><img src="includes/languages/english/images/buttons/button_in_cart.gif" border="0" alt="Buy Now" title=" Buy Now " width="79" height="14"></a>

Hard to say what the problem is without seeing the code but since the image and product description is OK it is probably a minor issue.


Jan,

Thanks for the hint. Yes. This was an old template that I have been using as a backbone for my site. I would like to know which PHP source code you think this may be coming from? I was thinking that the root of the problem was caused somewhere in my "catalog/includes/modules/product_listing.php" code. I will include that page's code below for any clues that you may find. After I made this post I realized that the "add to cart" button was causing the same error so I am sure there is a similar problem with it as well. I came to the conclusion that the index.php (homepage) of the site is working properly because the code does not call to the product_listing.php code (adding to the theory that it is my root problem). I just can not figure out where the issue is. I know that you are very busy but I really appreciate any advice you could give a newby like myself. /blush.gif' class='bbc_emoticon' alt=':blush:' />

Also, there is the separate matter of the price breaks not showing on the product detail pages. In other words, it has a small table with two rows and columns (equal to the number of price breaks). There seems to be a top row missing - where it should show the quantities 1+, 25 , 50 , etc. Can you give me some direction on where to look to correct this? I thought that it may have something to do with table spacing or alignment but when i checked the table definitions they all seemed in order.

Code below for product_listing.php
<?php
/*
  $Id: product_listing.php,v 1.44 2003/06/09 22:49:59 hpdl Exp $

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

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/
  // BOF qpbpp
  
  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_LISTING);
// EOF qpbpp
  $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');

  if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
    <td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
  </tr>
</table>
<?php
  }

  $list_box_contents = array();

  for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
    switch ($column_list[$col]) {
      case 'PRODUCT_LIST_MODEL':
        $lc_text = TABLE_HEADING_MODEL;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_NAME':
        $lc_text = TABLE_HEADING_PRODUCTS;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_MANUFACTURER':
        $lc_text = TABLE_HEADING_MANUFACTURER;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_PRICE':
        $lc_text = TABLE_HEADING_PRICE;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_QUANTITY':
        $lc_text = TABLE_HEADING_QUANTITY;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_WEIGHT':
        $lc_text = TABLE_HEADING_WEIGHT;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_IMAGE':
        $lc_text = TABLE_HEADING_IMAGE;
        $lc_align = 'center';
        break;
      case 'PRODUCT_LIST_BUY_NOW':
        $lc_text = TABLE_HEADING_BUY_NOW;
        $lc_align = 'center';
        break;
    }

    if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) {
      $lc_text = tep_create_sort_heading($HTTP_GET_VARS['sort'], $col+1, $lc_text);
    }

    $list_box_contents[0][] = array('align' => $lc_align,
                                    'params' => 'class="productListing-heading"',
                                    'text' => '&nbsp;' . $lc_text . '&nbsp;');
  }

  if ($listing_split->number_of_rows > 0) {
    $rows = 0;
    $column = 0;
    echo '


             <table cellspacing=0 cellpadding=0>
               <tr><td width=452 valign=top class=br>
              <table cellspacing=0 cellpadding=0>
               <tr><td>
                    <table cellspacing=0 cellpadding=0>                     
                     <tr><td height=1 width=452 bgcolor=#FFFFFF colspan=3></td></tr>
                     <tr><td width=1 bgcolor=#FFFFFF></td><td class=ch1 width=432 bgcolor=#5482ad height=35>'.$breadcrumb->trail(' &raquo; ').'</td><td width=1 bgcolor=#FFFFFF></td></tr>                     
                    </table>
               </td></tr>
               <tr><td>
                    <table cellspacing=1 cellpadding=0>
                     <tr> 



         ';

    $listing_query = tep_db_query($listing_split->sql_query);
    // BOF qpbpp
    $no_of_listings = tep_db_num_rows($listing_query);
    while ($_listing = tep_db_fetch_array($listing_query)) {
     $_listing['discount_categories_id'] = NULL;
	   $listing[] = $_listing;
	   $list_of_prdct_ids[] = $_listing['products_id'];
	  }
	  $list_of_prdct_ids = array_unique($list_of_prdct_ids);

    $price_breaks_query = tep_db_query("select products_id, products_price, products_qty from  " . TABLE_PRODUCTS_PRICE_BREAK . " where products_id in (" . implode(',', $list_of_prdct_ids) . ") order by products_id, products_qty");
    while ($price_break = tep_db_fetch_array($price_breaks_query)) {
          $price_breaks_array[$price_break['products_id']][] = array('products_price' => $price_break['products_price'], 'products_qty' => $price_break['products_qty']);
    }
    $discount_category_query = tep_db_query("select p.products_id, p.products_quantity, p.products_weight, discount_categories_id from " . TABLE_PRODUCTS ." p left join " . TABLE_PRODUCTS_TO_DISCOUNT_CATEGORIES . " using(products_id) where p.products_id in (" . implode(',', $list_of_prdct_ids) . ")");
	  while ($dc_array = tep_db_fetch_array($discount_category_query)) {
	    $discount_categories[] = array ('products_id' => $dc_array['products_id'], 'products_quantity' => $dc_array['products_quantity'], 'products_weight' => $dc_array['products_weight'], 'discount_categories_id' => $dc_array['discount_categories_id']);
	  }
    for ($x = 0; $x < $no_of_listings; $x++) {
// add discount categories to the listing array
      if(!empty($discount_categories)) {
        for ($i = 0; $i < count($discount_categories); $i++) {
	        if ($listing[$x]['products_id'] == $discount_categories[$i]['products_id'] ) {
		        $listing[$x]['discount_categories_id'] = $discount_categories[$i]['discount_categories_id'];
		        $listing[$x]['products_quantity'] = $discount_categories[$i]['products_quantity'];
		        $listing[$x]['products_weight'] = $discount_categories[$i]['products_weight'];
		      }
	      }
	    } // end if(!empty($discount_categories)
	  }

//    while ($listing = tep_db_fetch_array($listing_query)) { (was original code)
	for ($x = 0; $x < $no_of_listings; $x++) {
      $product_contents = array();
      $rows++;
      if (($rows/2) == floor($rows/2)) {
        $list_box_contents[] = array('params' => 'class="productListing-even"');
      } else {
        $list_box_contents[] = array('params' => 'class="productListing-odd"');
      }

      $cur_row = sizeof($list_box_contents) - 1;

      for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
        $lc_align = '';

                switch ($column_list[$col]) {
          case 'PRODUCT_LIST_MODEL':
            $lc_align = '';
            $lc_text = '&nbsp;' . $listing[$x]['products_model'] . '&nbsp;';
            break;
          case 'PRODUCT_LIST_NAME':
            $lc_align = '';
            if (isset($HTTP_GET_VARS['manufacturers_id'])) {
              $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a>';
            } else {
              $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a>&nbsp;';
            }
            break;
          case 'PRODUCT_LIST_MANUFACTURER':
            $lc_align = '';
            $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '</a>&nbsp;';
            break;
          case 'PRODUCT_LIST_PRICE':
            $lc_align = 'right';
            $price_breaks_from_listing = array();
            if (isset($price_breaks_array[$listing[$x]['products_id']])) {
              $price_breaks_from_listing = $price_breaks_array[$listing[$x]['products_id']];
            }
            $pf->loadProduct($listing[$x]['products_id'], $languages_id, $listing[$x], $price_breaks_from_listing);
            $lc_text = $pf->getPriceStringShort();
            break;
          case 'PRODUCT_LIST_QUANTITY':
            $lc_align = 'right';
            $lc_text = '&nbsp;' . $listing[$x]['products_quantity'] . '&nbsp;';
            break;
          case 'PRODUCT_LIST_WEIGHT':
            $lc_align = 'right';
            $lc_text = '&nbsp;' . $listing[$x]['products_weight'] . '&nbsp;';
            break;
          case 'PRODUCT_LIST_IMAGE':
            $lc_align = 'center';
            if (isset($HTTP_GET_VARS['manufacturers_id'])) {
              $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';
            } else {
              $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>&nbsp;';
            }
            break;
          case 'PRODUCT_LIST_BUY_NOW':
            $lc_align = 'center';
            $lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing[$x]['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a>&nbsp;';
            break;
        }
// EOF qpbpp

        $list_box_contents[$cur_row][] = array('align' => $lc_align,
                                               'params' => 'class="productListing-data"',
                                               'text'  => $lc_text);
        $product_contents[] = $lc_text;       
      }


      $product_query = tep_db_query("select products_description  from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$listing['products_id'] . "' and language_id = '" . (int)1 . "'");
      $product = tep_db_fetch_array($product_query);
      $new_products['products_description'] = $product['products_description'];

      echo '
                      <td width=225 class=br bgcolor=#FFF8F7>
                          <table cellspacing=0 cellpadding=0 width=213>
                           <tr><td colspan=2 height=15></td></tr>
                           <tr><td valign=top>'.$product_contents[0].'</td>
                               <td width=103 valign=top>
                                <table cellspacing=0 border=0  cellpadding=0>
                                 <tr><td align=right height=35 valign=top>'.$product_contents[1].'</td></tr>
                                 <tr><td height=4></td></tr>
                                 <tr><td align=right><img src=images/m17.gif width=97 height=1></td></tr>
                                 <tr><td height=15></td></tr>
                                 <tr><td class=ch align=right>Price Now:</td></tr>
                                 <tr><td height=1></td></tr>
                                 <tr><td class=ch2 align=right height=35 valign=bottom>'.$product_contents[2].'</td></tr>
                                 <tr><td height=15></td></tr>
                                 <tr><td align=right><a href="'.tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id']) . '">' . tep_image_button('small_view.gif', IMAGE_BUTTON_BUY_NOW) . '</a></td></tr>
                                 <tr><td height=3></td></tr>
                                 <tr><td align=right><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_in_cart.gif', IMAGE_BUTTON_BUY_NOW) . '</a></td></tr>                                
                                 <tr><td height=15></td></tr>
                                </table>
                           </td></tr>
                          </table>
                         </td>

      ';
      $column ++;
      if ($column >= 2) {
        $rows ++;
        $column = 0;
        echo '

                     </tr>
                     <tr>
            ';
      } else echo '<td></td>';
    
    
    
    }

    echo '

                    </tr>                     
                    </table>
               </td></tr>
              </table>
              </td></tr>
              </table>              
        ';

    //new productListingBox($list_box_contents);
  } else {
    $list_box_contents = array();

    $list_box_contents[0] = array('params' => 'class="productListing-odd"');
    $list_box_contents[0][] = array('params' => 'class="productListing-data"',
                                   'text' => TEXT_NO_PRODUCTS);

    echo '<div class=PageHeading>Categories</div>';
    new productListingBox($list_box_contents);
  }

  if ( ($listing_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) {
?>

<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr><td height=20></td></tr>
  <tr>
    <td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
    <td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
  </tr>
</table>

<?php
  }
?>

Thank you again for your help and a wonderful contribution!

#793   benji_mckinney

benji_mckinney
  • Members
  • 3 posts
  • Real Name:Benji McKinney

Posted 02 May 2011 - 23:55

Also, there is the separate matter of the price breaks not showing on the product detail pages. In other words, it has a small table with two rows and columns (equal to the number of price breaks). There seems to be a top row missing - where it should show the quantities 1+, 25 , 50 , etc. Can you give me some direction on where to look to correct this? I thought that it may have something to do with table spacing or alignment but when i checked the table definitions they all seemed in order.


Okay. I decided to take another crack at fixing these issues today. I think this contribution is too useful to abandon.

I still have NOT solved my issues with my "details" and "add to cart" buttons not working. However, I did discover that the above issue with the quantity header not displaying on the product detail pages was due to a style definition for the table. I discovered this by using Firebug in Firefox. I simply right-clicked the table and reviewed the table row definitions. In true style of tables, I noticed that the header was defined by class="infoBoxHeading" and the other rows were defined with class="infoBoxContents". I changed the infoBoxHeading to infoBoxContents - voila! Like magic it appeared! Now I went back to my source coding and did a site-wide search for infoBoxHeading and replaced it on the PriceFormatter.php coding. This could have also been accomplished by changing the stylesheet reference code...I may go back and add a more appealing style later. For now, it is a small victory! /biggrin.gif' class='bbc_emoticon' alt=':D' />

I know Jan will probably be able to get me a solution for the details and cart buttons...I wish I could find the source of that pain.

#794   cruizer

cruizer
  • Members
  • 27 posts
  • Real Name:Brent

Posted 14 May 2011 - 19:38

I am currently installing this in v2.3.1, and in the product_info.php file.

The instructions say to replace the following section, with the new code, but the following section is not in 2.3.1.

<td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td>

This is what you are supposed to replace it with:
<?php // BOF qpbpp
                //<td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART);
?>
                <td class="main" align="right">
                  <table border="0" align="right">
                    <tr><td align="center">
                      <?php echo TEXT_ENTER_QUANTITY . ":" . tep_draw_input_field('cart_quantity', $pf->adjustQty(1), 'size="6"'); ?>
                    </td></tr>
                    <tr><td align="center">
                      <?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?>
                    </td></tr>
	          </table>
                </td>
<?php // EOF qpbpp ?>

Any thoughts on what I should do?

#795   cruizer

cruizer
  • Members
  • 27 posts
  • Real Name:Brent

Posted 14 May 2011 - 20:35

Next one:

File catalog/includes/application_top.php

This code does not exist:

$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['id']);

So therefore where am I supposed to put this:

//BOF qpbpp
                                //$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['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']);
//EOF qpbpp

Of course all help is greatly appreciated!

#796   cruizer

cruizer
  • Members
  • 27 posts
  • Real Name:Brent

Posted 14 May 2011 - 21:33

Please ignore my posts, somehow everything seems to work fine once I replaced the includes/modules/product_listing.php file with the original unmodified one!

#797   shaftman

shaftman
  • Members
  • 2 posts
  • Real Name:Ron

Posted 26 May 2011 - 17:20

Hello, Hope someone can give me some input

First, I'm a complete newbie, and as you can see My First Post. If I've made a mistake in posting, I apologize, I've never posted to a forum before. I find reading is the best way to learn but I am now stuck. I have NO knowledge of PHP. I can handle html but I am not a programer by any sense of the word. I've completed 25 contributions to my site and they all are doing well. My store is still in the works.

Problem: I sell repair parts and give a discount for quantity. I use the "special" in OSC to give the first discount off of retail price of 15% to all customers for purchasing 1 item. I then have QPBPP set for the next discount of 25% for purchasing 2 to 9 items and last a 40% discount for purchasing 10 items or more. I like the fact that the strike-out and the "Red" On-Sale appears on the Product List. The cart calculates the sub-total correctly if only 1 item is purchased but, the sub-total adds together the "On Sale" special price if any choice is made above 1. The added total at the top of the cart is correct but at the bottom sub total it's wrong. If I travel clear through the shopping cart to Purchase the items then the Shopping cart uses the correct amount. The wrong added amount only shows at the bottom of the first add-to-shopping-cart page. If I remove the "special" then everything works fine but the Product List page states a price of "From $xxxx" which is the 40% discounted price. Can anyone help with making the "special" and the "shopping cart" do the right math on the shopping cart page.

have gone over all the QPBPP install 3 to 4 times and used Araxis and WinMerge to verify the install. The SQL seems to be working as designed.

Thanks in advance.

#798   shaftman

shaftman
  • Members
  • 2 posts
  • Real Name:Ron

Posted 02 June 2011 - 16:17

Hello, Hope someone can give me some input

First, I'm a complete newbie, and as you can see My First Post. If I've made a mistake in posting, I apologize, I've never posted to a forum before. I find reading is the best way to learn but I am now stuck. I have NO knowledge of PHP. I can handle html but I am not a programer by any sense of the word. I've completed 25 contributions to my site and they all are doing well. My store is still in the works.

Problem: I sell repair parts and give a discount for quantity. I use the "special" in OSC to give the first discount off of retail price of 15% to all customers for purchasing 1 item. I then have QPBPP set for the next discount of 25% for purchasing 2 to 9 items and last a 40% discount for purchasing 10 items or more. I like the fact that the strike-out and the "Red" On-Sale appears on the Product List. The cart calculates the sub-total correctly if only 1 item is purchased but, the sub-total adds together the "On Sale" special price if any choice is made above 1. The added total at the top of the cart is correct but at the bottom sub total it's wrong. If I travel clear through the shopping cart to Purchase the items then the Shopping cart uses the correct amount. The wrong added amount only shows at the bottom of the first add-to-shopping-cart page. If I remove the "special" then everything works fine but the Product List page states a price of "From $xxxx" which is the 40% discounted price. Can anyone help with making the "special" and the "shopping cart" do the right math on the shopping cart page.

have gone over all the QPBPP install 3 to 4 times and used Araxis and WinMerge to verify the install. The SQL seems to be working as designed.

Thanks in advance.


PLEASE DISREGARD THIS POST:

Found the problem. Had a conflict in classes/shopping_cart

#799   havkrog

havkrog
  • Members
  • 3 posts
  • Real Name:Kim Havkrog

Posted 14 June 2011 - 15:54

Is there a kind soul here in the forum to help a poor fellow Dane :-)

I want like this

1-9 pc. $10 | 10+pc. $8

where I show my clients in the product listing that there are several price categories. So that my clients do not have to visit the product info page.

I've been through all pages of Quantity Price Break without success. Give me a tips :-)

Thanks in advance

Havkrog / Denmark

my product_listing.php
<?php
/*
  $Id: product_listing.php 1739 2007-12-20 00:52:16Z hpdl $
  adapted for Separate Pricing Per Customer v4.2 2007/08/23, adapted for QPBPP for SPPC v2.0 2008/11/11

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

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

// BOF QPBPP for SPPC
  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_LISTING);
// EOF QPBPP for SPPC
?>
<form name="cart_multi" method="post" action="<?php echo tep_href_link(FILENAME_SHOPPING_CART, tep_get_all_get_params(array('action')) . 'action=add_multi', 'NONSSL'); ?>">
<?php

?>
<br>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td align="right" class="main"><?php echo tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td>
  </tr>
</table>

<?php
  $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');
  //echo $listing_sql;

  if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
    <td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
  </tr>
</table>
<?php
  }
  $data_ok = ($listing_split->number_of_rows > 0);
	if ((PRODUCT_LIST_DESCRIPTION ) && $data_ok) {
		$listing_query = tep_db_query($listing_split->sql_query);
		while ($products = tep_db_fetch_array($listing_query)) $id_array[] = $products['products_id'];  
		$pid_string = implode(',', array_unique($id_array));
    $product_query = tep_db_query("select products_id, products_description from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id in (" . $pid_string . ") and language_id = '" . (int)$languages_id . "'");
		while ($products = tep_db_fetch_array($product_query)) {    
				$t_desc[$products['products_id']] = substr(strip_tags($products['products_description']), 0, PRODUCT_LIST_DESCRIPTION_MAX_LENGTH);  
	  }
}
function product_description($product_id,$link,$thumb=false) {
    global $t_desc;
		if (PRODUCT_LIST_DESCRIPTION) {
    	return '<br /><span class="productDesc">' . $t_desc[$product_id] . $link . '<font color="#800000"><b> ...' . MORE . '</b></a></span>';
		} else {
		return false; 
		}
  }
  $list_box_contents = array();

  for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
    switch ($column_list[$col]) {
      case 'PRODUCT_LIST_MODEL':
        $lc_text = TABLE_HEADING_MODEL;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_NAME':
        $lc_text = TABLE_HEADING_PRODUCTS;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_MANUFACTURER':
        $lc_text = TABLE_HEADING_MANUFACTURER;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_PRICE':
        $lc_text = TABLE_HEADING_PRICE;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_QUANTITY':
        $lc_text = TABLE_HEADING_QUANTITY;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_WEIGHT':
        $lc_text = TABLE_HEADING_WEIGHT;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_IMAGE':
        $lc_text = TABLE_HEADING_IMAGE;
        $lc_align = 'center';
        break;
      case 'PRODUCT_LIST_BUY_NOW':
        $lc_text = TABLE_HEADING_BUY_NOW;
        $lc_align = 'center';
        break;
    }

   //sort order & quantity change
    if ($column_list[$col] == 'PRODUCT_LIST_SORT_ORDER'){break;}
    if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') && ($column_list[$col] != 'PRODUCT_LIST_MULTIPLE')) {
   // if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) {
//end sort order & quantity change
      $lc_text = tep_create_sort_heading($HTTP_GET_VARS['sort'], $col+1, $lc_text);
    }

    $list_box_contents[0][] = array('align' => $lc_align,
                                    'params' => 'class="productListing-heading"',
                                    'text' => '&nbsp;' . $lc_text . '&nbsp;');
  }

  if ($listing_split->number_of_rows > 0) {

    $rows = 0;
    $listing_query = tep_db_query($listing_split->sql_query);
// BOF Separate Pricing per Customer
    $no_of_listings = tep_db_num_rows($listing_query);
// global variable (session) $sppc_customer_group_id -> local variable customer_group_id

  if (isset($_SESSION['sppc_customer_group_id']) && $_SESSION['sppc_customer_group_id'] != '0') {
  $customer_group_id = $_SESSION['sppc_customer_group_id'];
  } else {
   $customer_group_id = '0';
  }

    while ($_listing = tep_db_fetch_array($listing_query)) {
// BOF QPBPP for SPPC
     $_listing['discount_categories_id'] = NULL;
     $listing[] = $_listing;
     $list_of_prdct_ids[] = $_listing['products_id'];
    }
    $list_of_prdct_ids = array_unique($list_of_prdct_ids);
// EOF QPBPP for SPPC
// next part is a debug feature, when uncommented it will print the info that this module receives
 /*
   echo '<pre>';
   print_r($listing);
   echo '</pre>';
 */

// get all product prices for products with the particular customer_group_id
// however not necessary for customer_group_id = 0
if ($customer_group_id != '0') {
// BOF QPBPP for SPPC
  $pg_query = tep_db_query("select pg.products_id, customers_group_price as price from " . TABLE_PRODUCTS_GROUPS . " pg where products_id in (" . implode(',', $list_of_prdct_ids) . ") and pg.customers_group_id = '" . $customer_group_id . "' and customers_group_price != null");
// EOF QPBPP for SPPC

	while ($pg_array = tep_db_fetch_array($pg_query)) {
	$new_prices[] = array ('products_id' => $pg_array['products_id'], 'products_price' => $pg_array['price'], 'specials_new_products_price' => '', 'final_price' => $pg_array['price']);
	}
    for ($x = 0; $x < $no_of_listings; $x++) {
// replace products prices with those from customers_group table
      if(!empty($new_prices)) {
        for ($i = 0; $i < count($new_prices); $i++) {
	        if( $listing[$x]['products_id'] == $new_prices[$i]['products_id'] ) {
		        $listing[$x]['products_price'] = $new_prices[$i]['products_price'];
		        $listing[$x]['final_price'] = $new_prices[$i]['final_price'];
		      }
	      }
	    } // end if(!empty($new_prices)
	$listing[$x]['specials_new_products_price'] = ''; // makes sure that a retail specials price doesn't carry over to another customer group
	$listing[$x]['final_price'] = $listing[$x]['products_price']; // final price should not be the retail special price
   } // end for ($x = 0; $x < $no_of_listings; $x++)
} // end if ($customer_group_id != '0')

// an extra query is needed for all the specials

	$specials_query = tep_db_query("select products_id, specials_new_products_price from " . TABLE_SPECIALS . " where products_id in (" . implode(',', $list_of_prdct_ids) . ") and status = '1' and customers_group_id = '" . $customer_group_id . "'");
	while ($specials_array = tep_db_fetch_array($specials_query)) {
	$new_s_prices[] = array ('products_id' => $specials_array['products_id'], 'products_price' => '', 'specials_new_products_price' => $specials_array['specials_new_products_price'] , 'final_price' => $specials_array['specials_new_products_price']);
	}

// add the correct specials_new_products_price and replace final_price
	for ($x = 0; $x < $no_of_listings; $x++) {
    if(!empty($new_s_prices)) {
	    for ($i = 0; $i < count($new_s_prices); $i++) {
		    if( $listing[$x]['products_id'] == $new_s_prices[$i]['products_id'] ) {
		    $listing[$x]['specials_new_products_price'] = $new_s_prices[$i]['specials_new_products_price'];
		    $listing[$x]['final_price'] = $new_s_prices[$i]['final_price'];
		    }
	    }
	  } // end if(!empty($new_s_prices)
	} // end for ($x = 0; $x < $no_of_listings; $x++)

// BOF QPBPP for SPPC
    $price_breaks_query = tep_db_query("select products_id, products_price, products_qty from  " . TABLE_PRODUCTS_PRICE_BREAK . " where products_id in (" . implode(',', $list_of_prdct_ids) . ") and customers_group_id = '" . $customer_group_id . "' order by products_id, products_qty");
    while ($price_break = tep_db_fetch_array($price_breaks_query)) {
//          $price_breaks_array[$price_break['products_id']][] = array('products_price' => $price_break['products_price'], 'products_qty' => $price_break['products_qty']);
    }
// get discount category plus quantity blocks and minimum order quantity for retail
    $discount_category_query = tep_db_query("select p.products_id, p.products_qty_blocks as qtyBlocks, p.products_min_order_qty, p.products_quantity, p.manufacturers_id, p.products_weight, discount_categories_id from " . TABLE_PRODUCTS ." p left join (select products_id, discount_categories_id from " . TABLE_PRODUCTS_TO_DISCOUNT_CATEGORIES . " where products_id in (" . implode(',', $list_of_prdct_ids) . ") and customers_group_id = '" . $customer_group_id . "') as ptdc on p.products_id = ptdc.products_id where p.products_id in (" . implode(',', $list_of_prdct_ids) . ")");
	  while ($dc_array = tep_db_fetch_array($discount_category_query)) {
	    $discount_categories[] = array ('products_id' => $dc_array['products_id'], 'qtyBlocks' => ($customer_group_id == '0' ? $dc_array['qtyBlocks']: '1'), 'products_min_order_qty' => ($customer_group_id == '0' ? $dc_array['products_min_order_qty']: '1'), 'products_quantity' => $dc_array['products_quantity'], 'products_weight' => $dc_array['products_weight'], 'discount_categories_id' => $dc_array['discount_categories_id']);
	  }
	  if(!empty($discount_categories)) {
	    $no_of_discount_cats = count($discount_categories);
      for ($x = 0; $x < $no_of_listings; $x++) {
// add discount categories to the listing array 
        for ($i = 0; $i < $no_of_discount_cats; $i++) {
	        if ($listing[$x]['products_id'] == $discount_categories[$i]['products_id'] ) {
		        $listing[$x]['discount_categories_id'] = $discount_categories[$i]['discount_categories_id'];
		        $listing[$x]['qtyBlocks'] = $discount_categories[$i]['qtyBlocks'];
		        $listing[$x]['products_min_order_qty'] = $discount_categories[$i]['products_min_order_qty'];
		        $listing[$x]['products_quantity'] = $discount_categories[$i]['products_quantity'];
		        $listing[$x]['products_weight'] = $discount_categories[$i]['products_weight'];
		      }
	      } // end for ($i = 0; $i < $no_of_discount_cats; $i++) {
	    }
    } // end if(!empty($discount_categories)

// if customer group id is not retail we will have to do another query to get the 
// quantity blocks and minimum order quantity
  if ($customer_group_id != '0') {
    $pg_qb_moq_query = tep_db_query("select pg.products_id, pg.products_qty_blocks as qtyBlocks, pg.products_min_order_qty from " . TABLE_PRODUCTS_GROUPS . " pg where products_id in (" . implode(',', $list_of_prdct_ids) . ") and pg.customers_group_id = '" . $customer_group_id . "'");

	  while ($pg_qb_moq_array = tep_db_fetch_array($pg_qb_moq_query)) {
	   $new_qb_moq[] = array ('products_id' => $pg_qb_moq_array['products_id'], 'qtyBlocks' => $pg_qb_moq_array['qtyBlocks'], 'products_min_order_qty' => $pg_qb_moq_array['products_min_order_qty']);
	  }
	  if (!empty($new_qb_moq)) {
	    $no_of_pg_qb_moq = count($new_qb_moq);
      for ($x = 0; $x < $no_of_listings; $x++) {
        for  ($i = 0; $i < $no_of_pg_qb_moq; $i++) {
          if ($listing[$x]['products_id'] == $new_qb_moq[$i]['products_id'] ) {
		        $listing[$x]['qtyBlocks'] = $new_qb_moq[$i]['qtyBlocks'];
		        $listing[$x]['products_min_order_qty'] = $new_qb_moq[$i]['products_min_order_qty'];
          }
        }
      }
    } // end if (!empty($new_qb_moq))
  } // end if ($customer_group_id != '0') 
// EOF QPBPP for SPPC

//    while ($listing = tep_db_fetch_array($listing_query)) { (was original code)
	for ($x = 0; $x < $no_of_listings; $x++) {
      $rows++;

      if (($rows/2) == floor($rows/2)) {
        $list_box_contents[] = array('params' => 'class="productListing-even"');
      } else {
        $list_box_contents[] = array('params' => 'class="productListing-odd"');
      }

      $cur_row = sizeof($list_box_contents) - 1;

      for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
        $lc_align = '';
//sort order & quantity change
        if ($column_list[$col] == 'PRODUCT_LIST_SORT_ORDER'){break;}
//end sort order & quantity change
        switch ($column_list[$col]) {
          case 'PRODUCT_LIST_MODEL':
            $lc_align = '';
            $lc_text = '&nbsp;' . $listing[$x]['products_model'] . '&nbsp;';
            break;
          case 'PRODUCT_LIST_NAME':
            $lc_align = '';
         /*denne erstattes af Product Description 1.3 
		    if (isset($HTTP_GET_VARS['manufacturers_id'])) {
              $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a>';
            } else {
              $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a>&nbsp;';
            }
			*/
// BOF Product Description 1.3
             	$man_id = (tep_not_null($_GET['manufacturers_id']) ? $_GET['manufacturers_id'] : '');
		$link = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing[$x]['products_id'] . ($man_id ? '&manufacturers_id='.$man_id : ($cPath && $cat_path ? '&cPath=' . $cPath : '')) ) . '"' . ($man_id || ($cat_path && $cat_path) ? ' rel="nofollow"' : '') . '>';
		$lc_text = '&nbsp;' . $link . '<span class="productListing-name">' . $listing[$x]['products_name'] . '</span></a>' . product_description($listing[$x]['products_id'],$link);
// EOF Product Description 1.3
           
            break;
          case 'PRODUCT_LIST_MANUFACTURER':
            $lc_align = '';
            $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '</a>&nbsp;';
            break;
          case 'PRODUCT_LIST_PRICE':
            $lc_align = 'right';
// BOF QPBPP for SPPC
            $price_breaks_from_listing = array();
            if (isset($price_breaks_array[$listing[$x]['products_id']])) {
              $price_breaks_from_listing = $price_breaks_array[$listing[$x]['products_id']];
            }
            $pf->loadProduct($listing[$x]['products_id'], $languages_id, $listing[$x], $price_breaks_from_listing);
            $lc_text = $pf->getPriceString();
// EOF QPBPP for SPPC
            break;
			
          case 'PRODUCT_LIST_QUANTITY':
            $lc_align = 'right';
            $lc_text = '&nbsp;' . $listing[$x]['products_quantity'] . '&nbsp;';
            break;
          case 'PRODUCT_LIST_WEIGHT':
            $lc_align = 'right';
            $lc_text = '&nbsp;' . $listing[$x]['products_weight'] . '&nbsp;';
            break;
          case 'PRODUCT_LIST_IMAGE':
            $lc_align = 'center';
            if (isset($HTTP_GET_VARS['manufacturers_id'])) {
              $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';
            } else {
              $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>&nbsp;';
            }
            break;
          case 'PRODUCT_LIST_BUY_NOW':
            $lc_align = 'center';
            $lc_text  = '<input type="text" name="add_id['.$number_of_products.']" value="" size="4">';
            $lc_text .= '<input type="hidden" name="products_id['.$number_of_products.']" value="'.$listing[$x]['products_id'].'">';
 
  if ($listing[$x]['products_quantity'] > 0) {
            $lc_text .= '&nbsp;' . tep_image(DIR_WS_IMAGES . 'stock_on.gif','' . IMAGE_TEXT_STOCK_ON);
            } elseif ($listing[$x]['products_on_order'] != 0) {
            $lc_text .= '&nbsp;' . tep_image(DIR_WS_IMAGES . 'stock_on_order.gif','' . IMAGE_TEXT_STOCK_ON_ORDER .  $listing[$x]['products_on_order']);
            } else {
            $lc_text .= '&nbsp;' . tep_image(DIR_WS_IMAGES . 'stock_out.gif','' . IMAGE_TEXT_STOCK_OUT);// . ' ' . TEXT_INFO_STOCK_OUT;
            }
            break;
        }
// EOF Separate Pricing per Customer
        $list_box_contents[$cur_row][] = array('align' => $lc_align,
                                               'params' => 'class="productListing-data"',
                                               'text'  => $lc_text);
      }
    }

    new productListingBox($list_box_contents);
  } else {
    $list_box_contents = array();

    $list_box_contents[0] = array('params' => 'class="productListing-odd"');
    $list_box_contents[0][] = array('params' => 'class="productListing-data"',
                                   'text' => TEXT_NO_PRODUCTS);

    new productListingBox($list_box_contents);
  }

  if ( ($listing_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
    <td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
  </tr>
</table>
<?php
  }
?>
<br>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td align="right" class="main"><?php echo tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td>
  </tr>
</table>
</form>


#800   Fencer04

Fencer04
  • Members
  • 3 posts
  • Real Name:Justin Hansen

Posted 17 June 2011 - 18:44

I am having an issue with this update:
Find around 1011:
$product_query = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id  from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");

and

Find around 1014:
} else {
`
The only option that it looks like I have is this:
if (isset($HTTP_GET_VARS['search'])) {
      $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and pd.products_name like '%" . tep_db_input($search) . "%' order by pd.products_name");
    } else {
      $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by pd.products_name");
    }

The two replacement queries don't seem to fit the search function. This is a themed version that I downloaded from template monster. Can I please get some direction?