pfilias Posted April 2, 2008 Share Posted April 2, 2008 Has anyone had any luck in getting QT Pro to solve the puzzle I posted a few pages ago? I did a store for someone who sells bracelets. They sell the bracelets in lots of 10, 25, 50, 100, 1000. I think that attributes are stored as text, which probably leads to the problem. So, say I have 10,000 bracelets. I'd LOVE to be able to have the quantity actually subtracted from the "type" of bracelet pack ordered. So, if someone ordered one 1,000 pack, the total in stock would go from 10,000 to 9,000. Anyone have this solved? Quote Link to comment Share on other sites More sharing options...
Andyy Posted April 2, 2008 Share Posted April 2, 2008 It could be done by setting it up in admin/products_attributes.php 1 under Product Options add PACKS Track Stock? = YES 2 under Option Values Add PACKS = 10 PACKS = 100 PACKS = 1000 PACKS = 10000 3 under Products Attributes Add Product Name = Product1 Option Name = PACKS Option Value = 10 Value Price = 10.0000 Prefix = + Add Product Name = Product1 Option Name = PACKS Option Value = 100 Value Price = 100.0000 Prefix = + Add Product Name = Product1 Option Name = PACKS Option Value = 1000 Value Price = 1000.0000 Prefix = + Add Product Name = Product1 Option Name = PACKS Option Value = 10000 Value Price = 10000.0000 Prefix = + The company will now need to prepack their total stock qty into pack qty ready for shippment to reflect the Attribute qty on the site. So if the total stock is 44000 units then the department will devide the their stock into say: 100 packs of 10 units = 1000 units 10 packs of 100 units = 1000 units 2 packs of 1000 units = 2000 units 4 packs of 10000 units = 40000 units Total stock 44,000 units --------- goto Stock Report page in admin click Product1 which will take you to stock.php?product_id=? in the address bar In the dropdown list you will see PACKS Quantity 10 add 100 100 add 10 1000 add 2 10000 add 4 Have fun Regards Andrew Quote Link to comment Share on other sites More sharing options...
pfilias Posted April 3, 2008 Share Posted April 3, 2008 Andyy, I just PM'd you. After further thought, this is how we currently do this. However, what I'm looking for might be a little bit more complicated that how you understood it. I don't want to have to split up the packs into your 44,000 scenario. Instead, I wish there was a way to just say I have 44,000 of those items, total, but they could be bought in quantities of 10, 100, 1000, 10000, for instance. This way, the "attribute" would actually be a number that would get subtracted, so, if the customer bought 2x1000 packs, it would subtract 2000. I don't think QT Pro is designed for this, and I may have to go back to the drawing board and have it so the user can just enter the # of items they want to buy, themselves. With that scenario, though, I'd want to figure out a way to force the customer to only buy in certain increments. Anyone ever work something like that out? It could be done by setting it up in admin/products_attributes.php 1 under Product Options add PACKS Track Stock? = YES 2 under Option Values Add PACKS = 10 PACKS = 100 PACKS = 1000 PACKS = 10000 3 under Products Attributes Add Product Name = Product1 Option Name = PACKS Option Value = 10 Value Price = 10.0000 Prefix = + Add Product Name = Product1 Option Name = PACKS Option Value = 100 Value Price = 100.0000 Prefix = + Add Product Name = Product1 Option Name = PACKS Option Value = 1000 Value Price = 1000.0000 Prefix = + Add Product Name = Product1 Option Name = PACKS Option Value = 10000 Value Price = 10000.0000 Prefix = + The company will now need to prepack their total stock qty into pack qty ready for shippment to reflect the Attribute qty on the site. So if the total stock is 44000 units then the department will devide the their stock into say: 100 packs of 10 units = 1000 units 10 packs of 100 units = 1000 units 2 packs of 1000 units = 2000 units 4 packs of 10000 units = 40000 units Total stock 44,000 units --------- goto Stock Report page in admin click Product1 which will take you to stock.php?product_id=? in the address bar In the dropdown list you will see PACKS Quantity 10 add 100 100 add 10 1000 add 2 10000 add 4 Have fun Regards Andrew Quote Link to comment Share on other sites More sharing options...
flashtorch Posted April 4, 2008 Share Posted April 4, 2008 Hi, urgently need some kind soul to assist me here. I just installed OsC and QT PRO. But when I try to add product, I found an error as per below, HTTP 403 (FORBIDDEN) You are not authorized to view this page You might not have permission to view this directory or page using the credentials you supplied. -------------------------------------------------------------------------------- If you believe you should be able to view this directory or page, please try to contact the Web site by using any e-mail address or phone number that may be listed on the localhost home page. You can click Search to look for information on the Internet. HTTP Error 403 - Forbidden Internet Explorer Can you please assist? What went wrong exactly! Quote Link to comment Share on other sites More sharing options...
k2tec Posted April 4, 2008 Share Posted April 4, 2008 Hi, urgently need some kind soul to assist me here. I just installed OsC and QT PRO. But when I try to add product, I found an error as per below, HTTP 403 (FORBIDDEN) You are not authorized to view this page You might not have permission to view this directory or page using the credentials you supplied. -------------------------------------------------------------------------------- If you believe you should be able to view this directory or page, please try to contact the Web site by using any e-mail address or phone number that may be listed on the localhost home page. You can click Search to look for information on the Internet. HTTP Error 403 - Forbidden Internet Explorer Can you please assist? What went wrong exactly! did your site run without qtpro? because I think this is more a problem with your .htaccess or config file in admin. Quote Link to comment Share on other sites More sharing options...
flashtorch Posted April 5, 2008 Share Posted April 5, 2008 did your site run without qtpro?because I think this is more a problem with your .htaccess or config file in admin. Yeah, my site functions properly with osC. But when I installed QTpro, that problem occurs. Quote Link to comment Share on other sites More sharing options...
flashtorch Posted April 5, 2008 Share Posted April 5, 2008 One thing I need to clarify for the error I received. It happens only when I want to assign stock level (no. of stock) for product with particular attributes. So, it is within QT pro functions. My OsC runs properly without QT pro. Thank you. Best Regards. Quote Link to comment Share on other sites More sharing options...
Andyy Posted April 5, 2008 Share Posted April 5, 2008 Sounds like your stock.php form does not seam to read the php self tag in admin/stock.php find: <td><form action="<? echo $PHP_SELF;?>" method=get> Changing it to: <td><form action="#" method=get> Andrew Quote Link to comment Share on other sites More sharing options...
flashtorch Posted April 5, 2008 Share Posted April 5, 2008 Sounds like your stock.php form does not seam to read the php self tag in admin/stock.php find: <td><form action="<? echo $PHP_SELF;?>" method=get> Changing it to: <td><form action="#" method=get> Andrew Millionssss Thanks! I finally got it run! You are really the kind soul. Cheers~ for this helpful community! Quote Link to comment Share on other sites More sharing options...
Nicooo Posted April 8, 2008 Share Posted April 8, 2008 (edited) Millionssss Thanks! I finally got it run! You are really the kind soul. Cheers~ for this helpful community! Hi all, i have installed QTpro on a stock MSOsc site and i found two errors when running the programm : Fatal error: Call to undefined function: checkout_initialization_method() in /home/mabdd/boutique/catalog/shopping_cart.php on line 221 Fatal error: Call to undefined function: calculate_price() in /home/mabdd/boutique/catalog/includes/classes/order.php on line 315 Is something could help me because i don't understand why i have such problems on a stock MS2 version without other contribs ! :blink: Thank u guys ! Edited April 8, 2008 by Nicooo Quote Link to comment Share on other sites More sharing options...
k2tec Posted April 14, 2008 Share Posted April 14, 2008 I do not have that lines in my classes/ order.php. Which version of qtpro are you running. Quote Link to comment Share on other sites More sharing options...
phixon Posted April 16, 2008 Share Posted April 16, 2008 I was wondering if there was a guide other than the manual for using this addon, as I want to know how to use it properly. Quote Link to comment Share on other sites More sharing options...
Andyy Posted April 16, 2008 Share Posted April 16, 2008 Not that I know of Josh! Andrew Quote Link to comment Share on other sites More sharing options...
rhubarb Posted April 17, 2008 Share Posted April 17, 2008 I was wondering if anyone had used QTPro and produced a size/colour selection matrix as seen at Boden ? Quote Link to comment Share on other sites More sharing options...
PJ2006 Posted April 21, 2008 Share Posted April 21, 2008 Hi, I'm having real problems merging the changes for QTPro into one of my files, can anyone help? This is the file is catalog\product_info.php The file in the QTPro contribution is like this: <?php /* $Id: product_info.php 1739 2007-12-20 00:52:16Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO); $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_check = tep_db_fetch_array($product_check_query); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> <script language="javascript"><!-- function popupWindow(url) { window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,res izable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,le ft=150') } //--></script> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="3" cellpadding="3"> <tr> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </table></td> <!-- body_text //--> <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0"> <?php if ($product_check['total'] < 1) { ?> <tr> <td><?php new infoBox(array(array('text' => TEXT_PRODUCT_NOT_FOUND))); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table></td> </tr> </table></td> </tr> <?php } else { $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_info = tep_db_fetch_array($product_info_query); tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'"); if ($new_price = tep_get_products_special_price($product_info['products_id'])) { $products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>'; } else { $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])); } if (tep_not_null($product_info['products_model'])) { $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>'; } else { $products_name = $product_info['products_name']; } ?> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading" valign="top"><?php echo $products_name; ?></td> <td class="pageHeading" align="right" valign="top"><?php echo $products_price; ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"> <?php if (tep_not_null($product_info['products_image'])) { //++++ QT Pro: Begin Changed code ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td class="smallText"> <?php //++++ QT Pro: End Changed Code ?> <table border="0" cellspacing="0" cellpadding="2" align="right"> <tr> <td align="center" class="smallText"> <script language="javascript"><!-- document.write('<?php echo '<a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>'); //--></script> <noscript> <?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?> </noscript> </td> </tr> </table> <?php } ?> <p><?php echo stripslashes($product_info['products_description']); ?></p> <?php //++++ QT Pro: Begin Changed code if (tep_not_null($product_info['products_image'])) { ?> </td> </tr> </table> <?php } //++++ QT Pro: End Changed Code $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { //++++ QT Pro: Begin Changed code $products_id=(preg_match("/^\d{1,10}(\{\d{1,10}\}\d{1,10})*$/",$HTTP_GET_VARS['products_id']) ? $HTTP_GET_VARS['products_id'] : (int)$HTTP_GET_VARS['products_id']); require(DIR_WS_CLASSES . 'pad_' . PRODINFO_ATTRIBUTE_PLUGIN . '.php'); $class = 'pad_' . PRODINFO_ATTRIBUTE_PLUGIN; $pad = new $class($products_id); echo $pad->draw(); } //Display a table with which attributecombinations is on stock to the customer? if(PRODINFO_ATTRIBUTE_DISPLAY_STOCK_LIST == 'True'): require(DIR_WS_MODULES . "qtpro_stock_table.php"); endif; //++++ QT Pro: End Changed Code ?> </td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'"); $reviews = tep_db_fetch_array($reviews_query); if ($reviews['count'] > 0) { ?> <tr> <td class="main"><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php } if (tep_not_null($product_info['products_url'])) { ?> <tr> <td class="main"><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php } if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td> </tr> <?php } else { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td> </tr> <?php } ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()) . '">' . tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS) . '</a>'; ?></td> <td class="main" 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> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td> <?php if ((USE_CACHE == 'true') && empty($SID)) { echo tep_cache_also_purchased(3600); } else { include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS); } } ?> </td> </tr> </table></form></td> <!-- body_text_eof //--> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- right_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_right.php'); ?> <!-- right_navigation_eof //--> </table></td> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> My existing file which has been modified for Ultra Pics looks like this: <?php /* $Id: product_info.php,v 1.98 2003/09/02 18:52:33 project3000 Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO); $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_check = tep_db_fetch_array($product_check_query); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> <script type="text/javascript" src="includes/js/prototype.js"></script> <script type="text/javascript" src="includes/js/scriptaculous.js?load=effects"></script> <script type="text/javascript" src="includes/js/lightbox.js"></script> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="3" cellpadding="3"> <tr> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </table></td> <!-- body_text //--> <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0"> <?php if ($product_check['total'] < 1) { ?> <tr> <td><?php new infoBox(array(array('text' => TEXT_PRODUCT_NOT_FOUND))); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table></td> </tr> </table></td> </tr> <?php } else { // BOF MaxiDVD: Modified For Ultimate Images Pack! $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, p.products_image_med, p.products_image_lrg, p.products_image_sm_1, p.products_image_xl_1, p.products_image_sm_2, p.products_image_xl_2, p.products_image_sm_3, p.products_image_xl_3, p.products_image_sm_4, p.products_image_xl_4, p.products_image_sm_5, p.products_image_xl_5, p.products_image_sm_6, p.products_image_xl_6, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); // EOF MaxiDVD: Modified For Ultimate Images Pack! $product_info = tep_db_fetch_array($product_info_query); tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'"); if ($new_price = tep_get_products_special_price($product_info['products_id'])) { $products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>'; } else { $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])); } if (tep_not_null($product_info['products_model'])) { $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>'; } else { $products_name = $product_info['products_name']; } ?> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading" valign="top"><?php echo $products_name; ?></td> <td class="pageHeading" align="right" valign="top"><?php echo $products_price; ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"> <?php if (tep_not_null($product_info['products_image'])) { ?> <table border="0" cellspacing="0" cellpadding="2" align="right"> <tr> <td align="center" class="smallText"> <!-- // BOF MaxiDVD: Modified For Ultimate Images Pack! //--> <?php if ($product_info['products_image_med']!='') { $new_image = $product_info['products_image_med']; $image_width = MEDIUM_IMAGE_WIDTH; $image_height = MEDIUM_IMAGE_HEIGHT; } else { $new_image = $product_info['products_image']; $image_width = SMALL_IMAGE_WIDTH; $image_height = SMALL_IMAGE_HEIGHT;}?> <?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image_med']) . '" target="_blank" rel="lightbox">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], $product_info['products_description'], ULT_THUMB_IMAGE_WIDTH, ULT_THUMB_IMAGE_HEIGHT, 'hspace="1" vspace="1"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?> <!-- // EOF MaxiDVD: Modified For Ultimate Images Pack! //--> </td> </tr> </table> <?php } ?> <p><?php echo stripslashes($product_info['products_description']); ?></p> <?php $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { ?> <table border="0" cellspacing="0" cellpadding="2"> <tr> <td class="main" colspan="2"><?php echo TEXT_PRODUCT_OPTIONS; ?></td> </tr> <?php $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $products_options_array = array(); $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); if ($products_options['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } } if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) { $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']]; } else { $selected_attribute = false; } ?> <tr> <td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td> <td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?></td> </tr> <?php } ?> </table> <?php } ?> </td> </tr> <?php // BOF MaxiDVD: Modified For Ultimate Images Pack! if (ULTIMATE_ADDITIONAL_IMAGES == 'enable') { include(DIR_WS_MODULES . 'additional_images.php'); } // BOF MaxiDVD: Modified For Ultimate Images Pack! ; ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd where r.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and r.reviews_id = rd.reviews_id and rd.languages_id = '" . (int)$languages_id . "'"); $reviews = tep_db_fetch_array($reviews_query); if ($reviews['count'] > 0) { ?> <tr> <td class="main"><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php } if (tep_not_null($product_info['products_url'])) { ?> <tr> <td class="main"><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php } if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td> </tr> <?php } else { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td> </tr> <?php } ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()) . '">' . tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS) . '</a>'; ?></td> <td class="main" 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> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td> <?php //added for cross -sell if ( (USE_CACHE == 'true') && !SID) { echo tep_cache_also_purchased(3600); include(DIR_WS_MODULES . FILENAME_XSELL_PRODUCTS); } else { include(DIR_WS_MODULES . FILENAME_XSELL_PRODUCTS); include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS); } } ?> </td> </tr> </table></form></td> <!-- body_text_eof //--> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- right_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_right.php'); ?> <!-- right_navigation_eof //--> </table></td> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> I'm afraid my php skills are just not good enough to be able to work out this merge - can anyone help me? Thanks Quote Link to comment Share on other sites More sharing options...
miniwangja Posted April 22, 2008 Share Posted April 22, 2008 Did anyone figure out how to make QTPRO work with PAYPAL IPN yet?? [The problem with Attribute Stock not decreasing] Regards, dan Quote Link to comment Share on other sites More sharing options...
Andyy Posted April 22, 2008 Share Posted April 22, 2008 There are 2 settings to make in your paypal account to get things working Go to your paypal account and login to your business account When you have logged in, follow these instructions PayPal Settings Quote Link to comment Share on other sites More sharing options...
phixon Posted April 23, 2008 Share Posted April 23, 2008 (edited) Cant Install Properly. Ok, I am trying to install this to a fresh copy of OSC, and everything seems ok, but I get errors on admin/categories.php Fatal error: Call to undefined function: tep_hide_session_id() in /home/sites/mywebsite/public_html/admin/categories.php on line 746 The regular page doesn't show up, but just that line, and the menu on the left. I am assuming I have installed it wrong. Following the install manual I think I MAY have gone wrong here. # Alter the database tables with the QT Pro new_install.sql script * Using PHPmyadmin, click on your store database, click on the SQL tab, enter the location of the QT Pro new_install.sql script and click go * Or using the command line "mysql storedb < new_install.sql". Make sure you specify the path to the QT Pro folder if needed. # Load the configuration data for QT Pro using the config.sql script using the PHPmyadmin or the command line as for new_install.sql Not entirely sure what this means so I just went to phpmyadmin And clicked import then 'browsed' the files and clicked GO. new_install.sql first then repeated for the other. Thanks in advance Edited May 21, 2008 by Jan Zonjee Quote Link to comment Share on other sites More sharing options...
quietstorm037 Posted April 25, 2008 Share Posted April 25, 2008 Ive installed the QTpro everything works fine as far as setting stock numbers on individual sizes goes, but when a purchase is made the stock never updates(decreases). I am currently using Paypal IPN as my checkout processing...Don't know where to look or what to change to make Paypal communicate to the right setting to deduct an item, please help. Quote Link to comment Share on other sites More sharing options...
sinryder Posted May 1, 2008 Share Posted May 1, 2008 hey guys iam also having the same problem.. installed qtpro on oscmmerce rc2 site and its not subtracting the stock. It works fine when an order is placed with credit card but it doesnt work when order is placed by PayPal Website Payments Standard . its the payment option that came with rc2.. so any help is greatly apprecaited thankyou Quote Link to comment Share on other sites More sharing options...
Rhawke Posted May 7, 2008 Share Posted May 7, 2008 Hi All, I am attempting to use the contribution QTPRO to display three sequenced drop down boxes, one of which should be showing a different price for each attribute that populates into that specific pull down. The overall goal is to not have a price for the product at all, but rather to use that pull down box to allow the customer to choose an option, and therefor set the price sent to the cart. The problem is, although the structure for the individual prices are there, they all show up as "optionName (+$0)" I added a dollar sign to that string and the prices weren't showing up regardless of the $ I added. I checked the database and the table does contain the price I assigned using products_attributes.php. And I looked through the sql query on pad_base.php and it seems to be calling the required information from that table, yet it does not seem to want to display it in the product_info.php page. if anyone has any suggestions, or perhaps even a fix for this, please let me know what I'm obviously missing :) I am using QTPRO version qtpro4.4b (for osC2.2 rc2a) and everything else in the installation appears to be working correctly so far. I do have Product Attrib Sort v1.0 installed and the forum for that is located here: http://www.oscommerce.com/forums/index.php?showtopic=68003 Thanks for your time, Rhawke Quote Link to comment Share on other sites More sharing options...
phixon Posted May 8, 2008 Share Posted May 8, 2008 can someone please explain how to efficiently use this addon. On my shop I have many different shoes, tents clothes etc is different colours and sizes. can someone please just bullet point some key points for me thankyou! Quote Link to comment Share on other sites More sharing options...
zebraplayer Posted May 13, 2008 Share Posted May 13, 2008 Hello, I have QTPro installed and it works great, except for a big problem. I have my installation set to NOT display the shopping cart after adding a product, so customers never get to product_info.php where the contriution does its magic. Is there anyway to have the QTPro functionality appear on the main catalog page? For example, here index.php?cat=27 I appreciate your help on this. -Lou Quote Link to comment Share on other sites More sharing options...
Rhawke Posted May 14, 2008 Share Posted May 14, 2008 Hi All, I am attempting to use the contribution QTPRO to display three sequenced drop down boxes, one of which should be showing a different price for each attribute that populates into that specific pull down. The overall goal is to not have a price for the product at all, but rather to use that pull down box to allow the customer to choose an option, and therefor set the price sent to the cart. The problem is, although the structure for the individual prices are there, they all show up as "optionName (+$0)" I added a dollar sign to that string and the prices weren't showing up regardless of the $ I added. I checked the database and the table does contain the price I assigned using products_attributes.php. And I looked through the sql query on pad_base.php and it seems to be calling the required information from that table, yet it does not seem to want to display it in the product_info.php page. if anyone has any suggestions, or perhaps even a fix for this, please let me know what I'm obviously missing :) I am using QTPRO version qtpro4.4b (for osC2.2 rc2a) and everything else in the installation appears to be working correctly so far. I do have Product Attrib Sort v1.0 installed and the forum for that is located here: http://www.oscommerce.com/forums/index.php?showtopic=68003 Thanks for your time, Rhawke Ok, I haven't solved the problem yet for Paypal IPN V2.3.3 and Qtpro v4.4b not updating my attributes stock levels in the product_stock table. What I ended up settling for was to revert to paypal IPN v1.3 which is unfortunate but necessary. I will continue to see if I can work out in the code what the heck is causing this to not work and maybe I'll get lucky enough to create a fix so we can use the most up to date versions of both contributions. So again, if you are having trouble with stock not updating after a successful sale using paypal ipn v2.3.3 and qtpro V4.4b then you may also have to revert to paypal v1.3 for now. good Luck, Rhawke Quote Link to comment Share on other sites More sharing options...
Rhawke Posted May 14, 2008 Share Posted May 14, 2008 can someone please explain how to efficiently use this addon. On my shop I have many different shoes, tents clothes etc is different colours and sizes. can someone please just bullet point some key points for me thankyou! Hello Phixon, Basically, the key points of using this contribution are to allow you the following: 1. Add quantities to product attributes: for example if you have a t-shirt, and it comes in red, blue and green. You can set a quantity for each color. ie.. 2 red, 1 blue and 5 green. As each color sells out it will be removed from the color drop down box and the remaining colors with quantities can still be sold. 2. Sequencing drop down boxes: this allows you to force customers to choose certain options of a product before checking out. for example.. if you have a t-shirt they must choose a size before the color drop down box beomes available, depending on the size chosen, the colors that are in stock for that size are then populated into the drop down box for the customer to choose from. The customer can not add this t-shirt to the cart until they have made their size and color selections. 3. Multiple drop down boxes allow you to have several deifferent options available all at once. 4. radio boxes: this allows you to have radio box choices on your product_info.php page where visitors can select one or the other or all of the boxes at your discretion. the only other thing I haven't mentioned I can think of is a bit complicated to explain, but there is the option for sequenced drop down boxes of setting a quantity for each combination of choices you create, so for example if you create a sequence of t-shirt-x-large-blue and give that combination a quantity of 20, then you have made 20 xlarge blue t-shirts available for sale on your site. I hope all that makes some sense to you and makes this contrib a bit more appealing, Rhawke Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.