Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

havkrog

Pioneers
  • Posts

    3
  • Joined

  • Last visited

Profile Information

  • Real Name
    Kim Havkrog

havkrog's Achievements

  1. 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' => ' ' . $lc_text . ' '); } 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 = ' ' . $listing[$x]['products_model'] . ' '; 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 = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a> '; } */ // 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 = ' ' . $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 = ' <a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '</a> '; 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 = ' ' . $listing[$x]['products_quantity'] . ' '; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_text = ' ' . $listing[$x]['products_weight'] . ' '; 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 = ' <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> '; } 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 .= ' ' . tep_image(DIR_WS_IMAGES . 'stock_on.gif','' . IMAGE_TEXT_STOCK_ON); } elseif ($listing[$x]['products_on_order'] != 0) { $lc_text .= ' ' . tep_image(DIR_WS_IMAGES . 'stock_on_order.gif','' . IMAGE_TEXT_STOCK_ON_ORDER . $listing[$x]['products_on_order']); } else { $lc_text .= ' ' . 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>
  2. Hello I have QPBPP for SPPC v2.0 installed on an OSC RC2a. I can not figure out how to get quantity price on product listing page, I have no overviw of this in the moment. I have 2 price categories, now showing only the highest price. I want to show both the lowest and the highest price. Hope you understand what I mean, I've spent days reading the posts in the forum but can not find anything that can help. Thanks in advance. Havkrog / Denmark Code from includes/modules/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' => ' ' . $lc_text . ' '); } 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 = ' ' . $listing[$x]['products_model'] . ' '; 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 = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a> '; } */ // 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 = ' ' . $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 = ' <a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '</a> '; 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 = ' ' . $listing[$x]['products_quantity'] . ' '; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_text = ' ' . $listing[$x]['products_weight'] . ' '; 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 = ' <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> '; } 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 .= ' ' . tep_image(DIR_WS_IMAGES . 'stock_on.gif','' . IMAGE_TEXT_STOCK_ON); } elseif ($listing[$x]['products_on_order'] != 0) { $lc_text .= ' ' . tep_image(DIR_WS_IMAGES . 'stock_on_order.gif','' . IMAGE_TEXT_STOCK_ON_ORDER . $listing[$x]['products_on_order']); } else { $lc_text .= ' ' . 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>
  3. Sorry wrong topic, i move it. Hello I have QPBPP for SPPC v2.0 installed on an OSC RC2a. I can not figure out how to get quantity price on product listing page, I have no overviw of this in the moment. I have 2 price categories, now showing only the highest price. I want to show both the lowest and the highest price. Hope you understand what I mean, I've spent days reading the posts in the forum but can not find anything that can help. Thanks in advance. Havkrog / Denmark Code from includes/modules/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' => ' ' . $lc_text . ' '); } 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 = ' ' . $listing[$x]['products_model'] . ' '; 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 = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a> '; } */ // 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 = ' ' . $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 = ' <a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '</a> '; 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 = ' ' . $listing[$x]['products_quantity'] . ' '; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_text = ' ' . $listing[$x]['products_weight'] . ' '; 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 = ' <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> '; } 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 .= ' ' . tep_image(DIR_WS_IMAGES . 'stock_on.gif','' . IMAGE_TEXT_STOCK_ON); } elseif ($listing[$x]['products_on_order'] != 0) { $lc_text .= ' ' . tep_image(DIR_WS_IMAGES . 'stock_on_order.gif','' . IMAGE_TEXT_STOCK_ON_ORDER . $listing[$x]['products_on_order']); } else { $lc_text .= ' ' . 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>
×
×
  • Create New...