Latest News: (loading..)
jpweber

Quantity Price Breaks

899 posts in this topic

i've put on the 14Jun2005 Contribution by Com2 and noticed that for wahtever reason a discount isn't applied for the order total...

 

any thoughts on this???

 

we've got our price breaks at:

1 to 5

6 to 49

50+

 

we had a customer that ordered 70, 40 and 12 and it applied full price...

Share this post


Link to post
Share on other sites

I have what I hope is not a unique situation.

 

We sell chemicals in various containers and did not like the way the out of the box attribute configuration did volume pricing. Hence, we installed QPB. Successfully!!! However, we really need the best of both worlds.

 

We need to have volume pricing yet sell in containers of:

7 Gallons

20 Gallons

35 Gallons

55 Gallons

330 Gallons

 

We need each of these sizes to have the volume price yet be able to be ordered in multiples of each.

 

I.E. 5 - 35Gallon Drums. Where they would receive the volume discount for 175Gallons. But at check out they only select the number of drums in lots of the drum size.

 

I am by no means a programmer. I can however, follow directions...

So, if this is out there please let me know. If not, I guess I will learn to program the hard way :)

Share this post


Link to post
Share on other sites

Just set up Quantity Price Breaks for Separate Pricing Per Customer and it's working pretty well. My site is beginning to have some very sophisticated pricing capability. Thanks to all who contributed to this.

 

Does anyone know if there is a mod to this that automatically sets a % discount across all products for a certain quantity? Maybe some other contrib does this but I guess I thought this could operate at a macro level in addition to the per product basis, which of course is great.

 

Thanks.

Share this post


Link to post
Share on other sites

Hi

 

I'm hoping someone can help!

I have recently installed this contribution and it seams to work apart from one thing:

 

For taxable goods, in admin, i am inputting the discounted price inclusive of tax (gross price) but when i look at the prices in the store, the discounted price has had tax added to it (sometimes this means it shows up as higher than the normal price)

 

Hope this makes sense!

Share this post


Link to post
Share on other sites
But I am unable to find anything compatible to Discountplus.

DiscountPlus does what I need on this

 

How the heck did you get Discountplus to work? :o

 

In the Admin panel there's 10 options for discounts, it only allows 1.

When I try to add a second discount option (at the same time as the first or later), I get an error that the product_ID already exsist.

I added the item to my cart and it went from a $1.38 to $48.89. >_<

 

I tried 3 times with a fresh database and files. What I need is something like this -

 

$1.39 each

$8.00 for 6

$15.00 for 12

 

It doesn't matter where the customer makes the selection, product info page or shopping cart. I would just like to find a discount mod that works. I'm getting tired of hacking files for nothing. :angry:

Share this post


Link to post
Share on other sites

Is anyone having problems with 0 shipping charges on their quantity price break products only? I'm not sure if it was something in this module, a fix for it, or implimentation of another module..but there are no shipping charges only for the price break products...the regular products it works fine... thanks!

Share this post


Link to post
Share on other sites

I am still trying to figure out why shipping is not being charged for these products used with quantity discount unless regular products without quantity discount are in the cart...does anyone know if it have anything to do with the code in shopping_cart.php class for "global $languages_id;" and parts that go along with it since i have "register globals=off/false" ???

Share this post


Link to post
Share on other sites
I am still trying to figure out why shipping is not being charged for these products used with quantity discount unless regular products without quantity discount are in the cart
Since the same code is used for product with and without a price break it doesn't seem logical that there is a problem with that. Are you sure the weight of those products is still there? Perhaps there is something wrong in admin/categories.php and the weight of the product becomes 0 if you edit the price breaks...

Share this post


Link to post
Share on other sites

Hi Pals, :)

 

Could someone advise me please what is the latest version of Quantity Price Breaks to install ?

 

I need it to support for the english & Hebrew languages..

 

Could someone help me please ??

 

Thanks in advance !

 

Regards, :)

Elazar

Share this post


Link to post
Share on other sites
Since the same code is used for product with and without a price break it doesn't seem logical that there is a problem with that. Are you sure the weight of those products is still there? Perhaps there is something wrong in admin/categories.php and the weight of the product becomes 0 if you edit the price breaks...

 

If the weight was 0, my cart completely bypasses the first shipping screen... when quantity discount products go to shipping screen, the price is $0...if there is a regular product in the cart as well it shows the correct price for everything, and on the checkout final page the price is correct either way.

Share this post


Link to post
Share on other sites
Hi Pals, :)

 

Could someone advise me please what is the latest version of Quantity Price Breaks to install ?

 

I need it to support for the english & Hebrew languages..

 

Could someone help me please ??

 

Thanks in advance !

 

Regards, :)

Elazar

 

Ditto...any help would be great...

Share this post


Link to post
Share on other sites

Hi: i,m spanish girl and no very wel the english, sorry

 

i?m install you contrubutions, but i thinks what price can it for categorys not only for products.

 

there would be some form to make the discounts by categories? for exemple 2 figures the 5% for 3 Figures 7% ?

 

thank for to contributions, and help

 

regards

 

Maria :D

Share this post


Link to post
Share on other sites
As noted in my signature, Price Break 1.11.2 worked great for me.

 

This one:

New bug-fix version: price-break-1.11.2 (correction) Tim Cartwright (Berbee) 10 Nov 2004

 

From the page: http://www.oscommerce.com/community/contributions,1242/

 

Good luck.

 

I posted this on another forum, but this appears to be the help thread for this contribution. I spent hours installing the Price Break Contribution and it appeared to be working fine, as far as "looks": http://familymemoriesandmore.com/cart/prod...;products_id=28

 

However, when I change the quantity and add to cart, it only adds 1, 2, 3, 4, etc., according to how many times I've tried! Then if I change the quantity while in the cart, I get this error:

 

Fatal error: Unsupported operand types in /home/garysgal/public_html/cart/includes/application_top.php on line 355

 

Here's my line 355 in my application_top:

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

 

What's going on here? Please help! Thank you!

sdobreff likes this

Share this post


Link to post
Share on other sites
How the heck did you get Discountplus to work? :o

 

In the Admin panel there's 10 options for discounts, it only allows 1.

When I try to add a second discount option (at the same time as the first or later), I get an error that the product_ID already exsist.

I added the item to my cart and it went from a $1.38 to $48.89. >_<

 

I tried 3 times with a fresh database and files. What I need is something like this -

 

$1.39 each

$8.00 for 6

$15.00 for 12

 

It doesn't matter where the customer makes the selection, product info page or shopping cart. I would just like to find a discount mod that works. I'm getting tired of hacking files for nothing. :angry:

 

Hi,

 

I just thought I look in here again and saw your comment.

About Discountplus I can only say that it worked perfectly for my needs with the exception of not being capable to work with customer groups. (what I definetly need)

Even the options were discounted correctly.

For example product 1 costs 100. The option 1 costs 10 what makes 110. I setup the price breaks on a percentage base in the admin. When choosing 10 units the price goes done exactly the percentage. If it is 10% then the price per unit will be 99 (for the product including the option). It also works with additional options.

But as I mentioned before the possibility of defining groups is missing and therefore I need a different solution. SPPC and Price Breaks for SPPC looks good on a first sight, but I can't get the price break to work with the options too.

Share this post


Link to post
Share on other sites

Hi guys,

I very need your help!

I'm bulding my commercial website and know almost nothing about php programming.

I added this mod to my site (the 1.2 version) and everything it looked Ok, except one BIG THING!

When I search a product from the search bar it says (note that the word inserted was "pc":

 

1054 - Unknown column 'p.products_id' in 'on clause'

 

select count(distinct p.products_id) as total from products p left join manufacturers m using(manufacturers_id), products_description pd left join specials s on p.products_id = s.products_id, categories c, products_to_categories p2c where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and ((pd.products_name like '%pc%' or p.products_model like '%pc%' or m.manufacturers_name like '%pc%') )

 

I can tell you that my site is on a Linux server using a Mysql 5.0 or more, and that I update it using the post. Infact it worked well for the product description that had the same problem, but not with the search bar.

I hope that I was clear in this my description, and that somebody can solve my problem.

 

Thanks.

Bye

Share this post


Link to post
Share on other sites

Hello everyone. I'm new to osCommerce and pretty unfamiliar with working with templates in general on websites. I've downloaded Discountplus, as it's supposed to do exactly what I need:

~ I need one product to have a price break. If a customer buys one of the product, he pays $23 for it. If he orders 2 or more, he gets them for $20 each. There is just this one product I need this feature for.

By the looks of the searching I've done thru the forums and contributions, Discountplus is what I need. Perhaps it's just me, but the instructions seem confusing.

Could anyone give me some direction as to what to do with these files once I've got them? I appreciate any assistance. taifun89343, How did you get this to work? Thanks!

Share this post


Link to post
Share on other sites

Does anyone know how to get Quantity Price Breaks to work with Simple Template System STS? I can't figure out how to make a placeholder.

Share this post


Link to post
Share on other sites

I had this contribution installed but when you enabled the price column in the store admin under config/product listing all the prices showed "0" zero. Yes the prices were listed when you clicked the product to read further information but the prices said zero on the product listing page.

 

Can someone please help?

 

Thank you!

Share this post


Link to post
Share on other sites
Does anyone know how to get Quantity Price Breaks to work with Simple Template System STS? I can't figure out how to make a placeholder.

 

I think I do :P

 

go to:

catalog/includes/sts_product_info.php

 

find:

$template['regularprice'] = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));

replace with:

// $template['regularprice'] = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
$template['regularprice'] = $products_price=$pf->getPriceString();

 

find:

// See if any product reviews

above add:

$template['changequantity'] = TEXT_ENTER_QUANTITY . ":" . tep_draw_input_field('cart_quantity', $pf->adjustQty(1), 'size="6"');

 

 

Now the box with muliple prices will show on your product info sts template

Also you can add:

$changequantity

wherever you want the quantity input field would like to appear!

 

Everything else is working out of the box!

 

Good luck!

Share this post


Link to post
Share on other sites

I install Quantity Price Breaks Per Product contribution successfully (version 1.11.2 correction I believe). It works as it is supposed to, and up to my expectations. I didn't notice any problems until a customer brought one to my attention. As a result I installed chemo's "Output Queries Debug" contribution to aid me in find the cause.

 

The problem I am having is when I add multiple products to the shopping cart, the MySQL server gets taxed hard. For every single product I add to the shopping cart, it adds 7 new MySQL queries, and with every new product added the page parse time increases.

 

As an example I added 10 products to my shopping cart, after I added the 10th product, the number of MySQL queries was up to 91, and the page parse time was at 133 seconds.

 

I've copied and pasted the QUERY DEBUG OUTPUT below:

 

Current Parse Time: 133.796 s with 91 queries

QUERY DEBUG:

 

Array

(

[QUERIES] => Array

(

[0] => select value from sessions where sesskey = '4274e13ca3d65d35a0028d0120c4c407' and expiry > '1165719990'

[1] => select code, title, symbol_left, symbol_right, decimal_point, thousands_point, decimal_places, value from currencies

[2] => delete from whos_online where time_last_click < '1165719090'

[3] => select count(*) as count from whos_online where session_id = '4274e13ca3d65d35a0028d0120c4c407'

[4] => update whos_online set customer_id = '0', full_name = 'Guest', ip_address = '207.40.146.116', time_last_click = '1165719990', last_page_url = '/~opamp/catalog/shopping_cart.php?sort=3a' where session_id = '4274e13ca3d65d35a0028d0120c4c407'

[5] => select banners_id, date_scheduled from banners where date_scheduled != ''

[6] => select b.banners_id, b.expires_date, b.expires_impressions, sum(bh.banners_shown) as banners_shown from banners b, banners_history bh where b.status = '1' and b.banners_id = bh.banners_id group by b.banners_id

[7] => select specials_id from specials where status = '1' and now() >= expires_date and expires_date > 0

[8] => select products_id, products_image, products_tax_class_id, products_price from products where products_status = '1' order by products_date_added desc limit 20

[9] => select products_name from products_description where products_id = '1019' and language_id = '1'

[10] => select specials_new_products_price from specials where products_id = '1019' and status

[11] => select sum(tax_rate) as tax_rate from tax_rates tr left join zones_to_geo_zones za on (tr.tax_zone_id = za.geo_zone_id) left join geo_zones tz on (tz.geo_zone_id = tr.tax_zone_id) where (za.zone_country_id is null or za.zone_country_id = '0' or za.zone_country_id = '223') and (za.zone_id is null or za.zone_id = '0' or za.zone_id = '57') and tr.tax_class_id = '1' group by tr.tax_priority

[12] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1016' and pd.products_id = '1016' and pd.language_id = '1'

[13] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1015' and pd.products_id = '1015' and pd.language_id = '1'

[14] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '150' and pd.products_id = '150' and pd.language_id = '1'

[15] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '154' and pd.products_id = '154' and pd.language_id = '1'

[16] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '155' and pd.products_id = '155' and pd.language_id = '1'

[17] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '165' and pd.products_id = '165' and pd.language_id = '1'

[18] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '900' and pd.products_id = '900' and pd.language_id = '1'

[19] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '904' and pd.products_id = '904' and pd.language_id = '1'

[20] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '973' and pd.products_id = '973' and pd.language_id = '1'

[21] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '756' and pd.products_id = '756' and pd.language_id = '1'

[22] => select products_quantity from products where products_id = '1016'

[23] => select products_quantity from products where products_id = '1015'

[24] => select products_quantity from products where products_id = '150'

[25] => select products_quantity from products where products_id = '154'

[26] => select products_quantity from products where products_id = '155'

[27] => select products_quantity from products where products_id = '165'

[28] => select products_quantity from products where products_id = '900'

[29] => select products_quantity from products where products_id = '904'

[30] => select products_quantity from products where products_id = '973'

[31] => select products_quantity from products where products_id = '756'

[32] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1016' and pd.products_id = '1016' and pd.language_id = '1'

[33] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1015' and pd.products_id = '1015' and pd.language_id = '1'

[34] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '150' and pd.products_id = '150' and pd.language_id = '1'

[35] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '154' and pd.products_id = '154' and pd.language_id = '1'

[36] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '155' and pd.products_id = '155' and pd.language_id = '1'

[37] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '165' and pd.products_id = '165' and pd.language_id = '1'

[38] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '900' and pd.products_id = '900' and pd.language_id = '1'

[39] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '904' and pd.products_id = '904' and pd.language_id = '1'

[40] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '973' and pd.products_id = '973' and pd.language_id = '1'

[41] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '756' and pd.products_id = '756' and pd.language_id = '1'

[42] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1016' and pd.products_id = '1016' and pd.language_id = '1'

[43] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1015' and pd.products_id = '1015' and pd.language_id = '1'

[44] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '150' and pd.products_id = '150' and pd.language_id = '1'

[45] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '154' and pd.products_id = '154' and pd.language_id = '1'

[46] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '155' and pd.products_id = '155' and pd.language_id = '1'

[47] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '165' and pd.products_id = '165' and pd.language_id = '1'

[48] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '900' and pd.products_id = '900' and pd.language_id = '1'

[49] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '904' and pd.products_id = '904' and pd.language_id = '1'

[50] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '973' and pd.products_id = '973' and pd.language_id = '1'

[51] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '756' and pd.products_id = '756' and pd.language_id = '1'

[52] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1016' and pd.products_id = '1016' and pd.language_id = '1'

[53] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1015' and pd.products_id = '1015' and pd.language_id = '1'

[54] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '150' and pd.products_id = '150' and pd.language_id = '1'

[55] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '154' and pd.products_id = '154' and pd.language_id = '1'

[56] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '155' and pd.products_id = '155' and pd.language_id = '1'

[57] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '165' and pd.products_id = '165' and pd.language_id = '1'

[58] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '900' and pd.products_id = '900' and pd.language_id = '1'

[59] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '904' and pd.products_id = '904' and pd.language_id = '1'

[60] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '973' and pd.products_id = '973' and pd.language_id = '1'

[61] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '756' and pd.products_id = '756' and pd.language_id = '1'

[62] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1016' and pd.products_id = '1016' and pd.language_id = '1'

[63] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '1015' and pd.products_id = '1015' and pd.language_id = '1'

[64] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '150' and pd.products_id = '150' and pd.language_id = '1'

[65] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '154' and pd.products_id = '154' and pd.language_id = '1'

[66] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '155' and pd.products_id = '155' and pd.language_id = '1'

[67] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '165' and pd.products_id = '165' and pd.language_id = '1'

[68] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '900' and pd.products_id = '900' and pd.language_id = '1'

[69] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '904' and pd.products_id = '904' and pd.language_id = '1'

[70] => select pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8, p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri

ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri

ce8_qty, p.products_qty_blocks, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = '973' and pd.products_id =

Share this post


Link to post
Share on other sites

I install Quantity Price Breaks Per Product contribution successfully (version 1.11.2 correction I believe). It works as it is supposed to, and up to my expectations. I didn't notice any problems until a customer brought one to my attention. As a result I installed chemo's "Output Queries Debug" contribution to aid me in find the cause.

 

The problem I am having is when I add multiple products to the shopping cart, the MySQL server gets taxed hard. For every single product I add to the shopping cart, it adds 7 new MySQL queries, and with every new product added the page parse time increases.

 

As an example I added 10 products to my shopping cart, after I added the 10th product, the number of MySQL queries was up to 91, and the page parse time was at 133 seconds.

 

I've copied and pasted the QUERY DEBUG OUTPUT below:

 

edited to added: tried posting the debug report, but the forums cut my post off midway through.. I've added a link to a txt document in my profile under interest.

 

If you look at where all the time is going to parse the page, it pretty much all taken by queries to pull the product pages in the MySQL database including price breaks 1 through 8

 

My store has around 820 products, is hosted on a virtual dedicated server running apache/Linux and MySQL 4.1.21-standard.

 

For the type of types of products I sell, it wouldn't be uncommon for a customer to add dozens of different products to their shopping, but with each product they add, the page load time get longer and longer, and eventually to the point where it's ridiculous. I think this problem is creating a bad shopping experience and is costing me both customers and orders.

 

I would like to know if anyone else experiences this same problem. Is there a solution to my problem? If so, what? If you need any additional information, please just ask.. Any help would be appreciated. Thank you.

 

Best Regards,

Wayne

Share this post


Link to post
Share on other sites
If you look at where all the time is going to parse the page, it pretty much all taken by queries to pull the product pages in the MySQL database including price breaks 1 through 8.
From the debug it looks like the same information is queried 5 times so it would definetely help if that info was stored in some additional PriceBreakStore class and the info taken from that class instead of doing it 5 times. The shopping cart class is probably responsible for that. The function get_products calls PriceFormatter for every product and then calculate (to get the total price) does it again.

 

Part of the problem you have is that some of these queries take exceptionally long (up to 12 seconds). Now the function loadProduct in PriceFormatter IMHO contains a lot of crud with which nothing is done (adding the tables products_to_categories, manucturers and products_description in the query where no information is taken from it doesn't help).

 

Can you try replacing that function with this one:

function loadProduct($product_id, $language_id=1)
{
// get rid of all the extra info this query was getting, we are only interested in prices!
$sql = "select p.products_id, p.products_price, " .
" p.products_price1,p.products_price2,p.products_price3,p.products_price4, " . 
" p.products_price5,p.products_price6,p.products_price7,p.products_price8," .
" p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri
ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri
ce8_qty," .
" p.products_qty_blocks, p.products_tax_class_id," .
" IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price," .
" from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s using(products_id) " .
" where p.products_status = '1' and p.products_id = '" . (int)$product_id . "' ";

$product_info_query = tep_db_query($sql);
$product_info = tep_db_fetch_array($product_info_query);
$this->parse($product_info);

return $product_info;
}

Make sure there are no "expired" specials still around together with valid specials for a certain product_id.

I remember from posts that people find that having specials slowed down their shop a lot, so if this is still a slow query it can be split in two. That makes a lot of queries but if they are fast the customer suffers less.

Share this post


Link to post
Share on other sites
Is there a solution to my problem?
Perhaps this works. Instead of the function loadProduct shown above try the one below (keeps backups of changed files!). First save the following code as a file called PriceFormatterStore.php in catalog/includes/classes:

<?php
/* $Id: PriceFormatterStore.php v 1.0 2006/12/10
  an object to store the price breaks of a product once queried by the class PriceFormatter.php
 to avoid it being queried more than once

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

  Copyright (c) 2006 osCommerce

 Released under the GNU General Public License
*/

class PriceFormatterStore {
var $pricebreaks = array();

function addPriceBreakData ($products_id, $productinfo) {
		$this->pricebreaks[$products_id] = array('products_id' => tep_get_prid($productinfo['products_id']),
			'products_price' => $productinfo['products_price'],
			'products_name' => $productinfo['products_name'],
			'products_model' => $productinfo['products_model'],
			'products_weight' => $productinfo['products_weight'],
			'products_tax_class_id' => $productinfo['products_tax_class_id'],
			'products_image' => $productinfo['products_image'],
			'products_qty_blocks' => $productinfo['products_qty_blocks'],
			'specials_new_products_price' => $productinfo['specials_new_products_price'],
			'products_price1_qty' => $productinfo['products_price1_qty'],
			'products_price2_qty' => $productinfo['products_price2_qty'],
			'products_price3_qty' => $productinfo['products_price3_qty'],
			'products_price4_qty'=> $productinfo['products_price4_qty'],
			'products_price5_qty'=> $productinfo['products_price5_qty'],
			'products_price6_qty'=> $productinfo['products_price6_qty'],
			'products_price7_qty' => $productinfo['products_price7_qty'],
			'products_price8_qty' => $productinfo['products_price8_qty'],
			'products_price1' => $productinfo['products_price1'],
			'products_price2' => $productinfo['products_price2'],
			'products_price3'=> $productinfo['products_price3'],
			'products_price4' => $productinfo['products_price4'],
			'products_price5'=> $productinfo['products_price5'],
			'products_price6' => $productinfo['products_price6'],
			'products_price7' => $productinfo['products_price7'],
			'products_price8' => $productinfo['products_price8']);
}

 function getPriceBreak($product_id) {
	$products_id = tep_get_prid($product_id);
	if(isset($this->pricebreaks[$products_id]) && tep_not_null($this->pricebreaks[$products_id])) {
		return $this->pricebreaks[$products_id];
		}	else {
			return false;
	}
}
}
?>

Then change application_top.php where the class PriceFormatter.php is included to:

  // include the price formatter for the price breaks contribution
 require(DIR_WS_CLASSES . 'PriceFormatter.php');
 $pf = new PriceFormatter;
require(DIR_WS_CLASSES . 'PriceFormatterStore.php');
 $pfs = new PriceFormatterStore;

Then change the function loadProduct in the class PriceFormatter.php to:

function loadProduct($product_id, $language_id=1)
 {
global $pfs;

$pricebreak = $pfs->getPriceBreak($product_id);
// returns false if the price break information is not yet stored
if ($pricebreak != false) {
	$product_info = $pricebreak;
} else {		
  $sql="select pd.products_name, p.products_model, p.products_image, p.products_id," .
  " p.manufacturers_id, p.products_price, p.products_weight," .
  " p.products_price1,p.products_price2,p.products_price3,p.products_price4, p.products_price5,p.products_price6,p.products_price7,p.products_price8," .
  " p.products_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_pri
ce4_qty, p.products_price5_qty,p.products_price6_qty,p.products_price7_qty,p.products_pri
ce8_qty," .
  " p.products_qty_blocks," .
  " p.products_tax_class_id," .
  " IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price," .
  " from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " using(products_id), " .
  " " . TABLE_PRODUCTS_DESCRIPTION . " pd " .
  " where p.products_status = '1'" .
  " and pd.products_id = p.products_id " .
  " and p.manufacturers_id = m.manufacturers_id " .
  " and p.products_id = '" . (int)$product_id . "'" .
  " and pd.language_id = '". (int)$language_id ."'";

  $product_info_query = tep_db_query($sql);
  $product_info = tep_db_fetch_array($product_info_query);
 $pfs->addPriceBreakData(tep_get_prid($product_id), $product_info);
}
$this->parse($product_info);

return $product_info;
}

The idea is to simplify the query in PriceFormatter (and hopefully make it quicker) and then only query the information once.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

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


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now