Jump to content

sflraver

Members
  • Content count

    15
  • Joined

  • Last visited

  1. sflraver

    Seperate Pricing Per Customer v3.5

    Before I changed over to the column listing cont. I added a few price break discounts and the correct "from $**.**" price showed up for each of the customer groups (only with products with a quantity price break added). I think it had something to do with the SPPC_Price_Break_v20 contribution outside of the product_listing.php file. Never the less, I have it working with the column listing mod. If I do find out later what was causing the problem I will post back here. Searching back in this and other posts you are always there helping people out. I just want to say Thank You for everything. :)
  2. sflraver

    Seperate Pricing Per Customer v3.5

    Well... as a shot in the dark I installed something I wanted anyway which is Column Product Listing (for Separate Pricing Per Costomer v4.0). Everything shows up as it should now for the customer groups. I still wish I knew what was wrong with the standard product_listing.php but it works now.
  3. sflraver

    Seperate Pricing Per Customer v3.5

    Ok, I uncommented the debug feature in product_listing.php. This was the output for one product in the catagory. The account I am logged into, when browsing this product, should show $19.25, and it does when I click for the full product details. The thing that might be something is that the discount_categories_id does not have a variable. Could that be causing this and if so what could cause it not to have an id? Array ( [0] => Array ( [products_image] => test.jpg [products_name] => test [products_id] => 30 [manufacturers_id] => 0 [products_price] => 26.9500 [products_tax_class_id] => 0 [specials_new_products_price] => [final_price] => 26.9500 [discount_categories_id] => )
  4. sflraver

    Seperate Pricing Per Customer v3.5

    my products_listing.php is the exact same as the one in the package SPPC_Price_Break_v2_0 . Here is a copy below. That was the firt thing that I checked. Any other ideas or is there something wrong in the code below from my includes/moduels/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 $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' => ' ' . $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 = ''; switch ($column_list[$col]) { case 'PRODUCT_LIST_MODEL': $lc_align = ''; $lc_text = ' ' . $listing[$x]['products_model'] . ' '; 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 = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a> '; } 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->getPriceStringShort(); // 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 = '<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> '; // EOF Separate Pricing per Customer break; } $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 } ?>
  5. sflraver

    Seperate Pricing Per Customer v3.5

    I went back over everyting on the install and all seems ok. I am stumped on why the price becomes correct in the catagory listing for the customer's group only after it is added to the cart. Does anyone know the file OSC calls to pull the price on the catagory listing so maybe I can figure out where to start?
  6. sflraver

    Seperate Pricing Per Customer v3.5

    Update to the above: If I log into the shop as a discount customer and I add a product to my cart, that product shows the correct price if I continue to shop. If it is removed from my cart or I checkout, the price for that product goes back to the first level retail price. Still scratching my head on this one. Maybe this info will help someone track down whats wrong. For me, it threw a huge wrench into things because now I have no clue where to look.
  7. sflraver

    Seperate Pricing Per Customer v3.5

    I am running OSC RC2 with SPPC 422 and SPPC Price Break V2. Everyting is working correctly with the exception that all the product prices only show the retail price when browsing a catagory for wholesale (or any other discount level) customers. When you click for the full product details it then shows the correct price for the customer's group. I don't think I missed anyting on the install but it is such a large contribution I don't even know where to start. Any ideas?
  8. sflraver

    Multiple-Shipping-Addresses 2

    This looks like it would be a great contribution and I would love to use it. From the posts above it seems like it is a little crude and takes some hacking to impliment correctly. If anyone has updated this with the fixes for RC2 shown above and cleaned up/added the language files it would be great to have a update on this. I know I would love to use it with my new STS / SPPC / RC2 wholesale store. I wish I was better with PHP/MySql or I would spend the time on this one. I would be happy to paypal over someone a $50 spot if they made the changes above, added some instruction / help text for customers and made this contribution run smoothly on a RC2 like I have. Of course I would want "this contribution update funded by.." on the tag line... lol :)
  9. In the event that someone else has this problem I got it figured out. It is a server issue where the mod_rewrite.so is not loaded correctly on the secure side during the install of apache. I got it tracked down with help from my hosting company that houses my server (alabanza). Here is what the tech said he did, spelled out, step by step. Added the followin lines to /usr/local/apache-ssl/conf/modules in the right place. One goes at the bottom of the LoadModule section > # Load mod_rewrite > LoadModule rewrite_module libexec/mod_rewrite.so The other goes at the bottom of the AddModule section > AddModule mod_rewrite.c The sections are fairly obvious. Then an apache reload to bring in the new module: ]# /usr/local/bin/httpd.reload --restart Hope this helps someone else that has this problem.
  10. I have searched all day on this and cannot come up with anything. I have found some others having the same problem but no solution. Only getting the server error on secure pges with SEO installed but everything else working fine. For now I just removed the .htaccess and turned it off in the back end. If someone has had this problem before and can shed some light on it I would love to be able to install this cont.
  11. Please help. Site is down after installing SEO URLs. Works perfectly on every page until I go to "my account" or "cart" and the server switches to an ssl connection. Then I get an error like.. Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request.... etc. I was thinking it was an .htaccess probelm but I can't quite figure it out. I searched this thread and have seen the problem come up but no answers. Please help if anyone knows whats wrong.
×