Jump to content

[SOLVED] Product displaying incorrect price after combination added.


Recommended Posts

[sOLVED]

[After looking at the bug tracker, I found the solution: my only currency is $USD, but I had left the conversion rate at the default of 1.45 (prestashop defaults to the euro). Changed it to 1 and it solved the issue. There's still a problem with the price displayed for taxable buyers, but that's another thread. --cz]

I added a combination to a product on my test site, left the impact on price options to none, and the price changed (increased) by a mysterious amount. since i had used the combination generator i had to manually deleted 150+ combinations to test whether the combi was the culprit. it was. i deleted all instances and recreated the combi & it happened again (didn't use the generator yet since i'm testing the error).

3 questions: what's causing this, how can i fix it, and is there an easy way to mass delete combinatins?

17417_oAG0MbE6YKR3LBnABuCP_t

17418_ayuqhqpsA7s9wRrGmDco_t

17419_Zqzpm3e1B6GDKnIaBDMP_t

Link to comment
Share on other sites

okay, further investigation revealed that i had several tax items besides the one i wanted as default. i deleted the unnecessary ones and applied the correct one. then applied it to the individual products. now the price still shows up incorrectly, regardless of whether a 'combination' is on offer, so we can eliminate that as the culprit.

to answer the question of mass combination deletion, just use the combination generator again, with only one option -- it'll wipe all the others out; then you can manually delete the one.

still need to know why the pre-sale and after discount price is showing up wrong on the product page (it shows the correct price in the shopping cart)

here's how i have it set up: 8.375% tax applies to purchases for Oklahoma purchasers only; all other allowed buyers pay no tax. 'apply tax' checked on individual products; tax enabled under tax options. all items so far are on sale, so 'reduction amount' is applied.

so, for the example in the first post, retail before tax = $980, tax applied to pre-discounted price makes it $1062.08, discount of $245 makes final price w/ tax $817.08. but the product page shows pre-discounted, pre-tax price of $1440.60, not $980, and the after-discount, pre-tax price as $1108.28 -- where do these numbers come from?

Link to comment
Share on other sites

More information on the problem: i found out i had my taxes set up incorrectly for my situation; the instructions here are correct (but the problem persists; see more after the quote):

I found out how to get the pre-tax price to show up in product pages!! This only works if customers are not logged in (if their state has taxes)...or for customers in states with no taxes. For example, if a returning customer logs in from a state with taxes, they will see the taxed prices everywhere. As long as they do not log in, though, they will see the pretax prices!

In the Catalog product page, in the tax section, "Tax:" drop-down, choose "No Tax". Actually, this drop-down is tied to the Shipping >> States page. In each state, you must choose either Product or State or Both. If you need only state taxes, choose "State" here. This controls the taxes to be charged throughout the site. You then don't need to choose the tax option in the product pages!! Managing the states taxes properly will do the job site-wide.

If certain products have additional taxes or surcharges (on top of State taxes), create the special taxes under the Payment >> Taxes subtab. Then under the Shipping>>State subtab, choose "Product tax" (if you have no state tax), or, "Both Product and State" (if you have both) . Then, go to the Catalog >> product page and choose the special tax you just created under the Tax drop-down. Choosing the tax drop-down in the product page does trigger the tax to show up in the storefront under product views, however. If you chose both Product and State taxes, you will see the two taxes adding up in the product views and cart, as well. This still needs fixing if pre-tax price is desired for display.


So taxes are behaving correctly, more or less. the prices are still wrong on the product pages, only they've increased. Here's where it gets interesting. on another thread i saw someone mention that when you load the page, you may briefly see the correct price, which is quickly replaced by the wrong one. I checked the source code, and IT ONLY SHOWS THE CORRECT PRICE, at least for the discounted price. the line that shows the original, pre-discount price reads:

$1,062.08  tax excl.



which is close, but no cigar. it's actually the old price WITH TAX INCLUDED, not TAX EXCL. it should actually read:

$980.00  tax excl.



as it is supposed to be tax excluded. the 2 incorrect prices that my browser displays are nowhere in the source code.

thanks,

--cz

Link to comment
Share on other sites

I'm not feeling any love here ... I know others have had this problem with no useful solutions offered. I did some more digging into the source code & found out that you can save source code from Google Chrome to see the generated javascript; lo & behold, the wrong (higher) prices appear in the generated code instead of the correct ones. Still no closer to solving this, though.

HELP!

thanks,

--cz

Link to comment
Share on other sites

There is some javascript code that updates the price, I'm still not sure why it is doing it, but if you look for "var productPriceWithoutReduction" in product.tpl you will see where the higher price is declared.

There is a functions that updated the price based on that variable.

Now you just need to find out why "$product->getPriceWithoutReduct()" is returning a higher price than it should....

Link to comment
Share on other sites

  • 1 year later...

I have the same problem but it seems to really be combinations that are doing it.
Only in Chrome, Firefox is fine.
If I remove all combinations I get the correct price.
Add any combinations and everything goes nuts.

Example:
Real default cost: $899
option 1: $0
option 2: $12
option 3: $20
Displayed default price on product.php : $911

So its getting the price from the wrong combination, but then all the other options return the wrong price too
Very strange, I am pretty sure its only since updating to 1.3.6.0
I have made no edits to product.php or product.tpl
I will attach them anyway, just in case.
Please try, it applies to all products on www.thtp.com.au but only in Chrome I think.

Version 1.3.6.0
Zeus server.

product.php

product.tpl.txt

Link to comment
Share on other sites

Hey.
This has bothered me for awhile.
We finally made some edits to product.js and got it to work like this.

Desired Functionality:
1. US Based Store
2. Show prices everywhere WITHOUT tax (except in the cart and checkout)
3. Apply State Tax only if shipping to that state

So we:
1. Added the tax rate for our state
2. Went to CUSTOMERS > GROUPS edited the Default Group to show Tax Excluded.
3. Go to SHIPPING > STATES > Edit Your State and click BOTH PRODUCT & STATE TAX
3. Added a product that had combinations.
4. Indicated that NO TAX is to be applied. This should apply just the STATE tax during checkout.

When we generated the combinations, we had lots of weirdness in the pricing display.

We made some minor changes to /themes/..../js/product.js and got it to work nicely.

Attached to a later reply (SEE BELOW...) is our version of product.js for you to try out if that might help.

This version is edited from 1.3.2 I plugged it in to a fresh copy of 1.3.6 and it worked.
No guarantees of anything, of course!

Good Luck.

Link to comment
Share on other sites

Thanks for your help dasher3000.
Its obvious I'm not the only one with this problem.
I think I'll try some other shops and see what happens.
I tried using your product.js but for me it just stopped all functionality of the combinations.
I am guessing it works for you because of other modifications you made elsewhere.

The code appears like this.

\{\par
\tab if (typeof function_name == 'string')\par
\tab\tab return (typeof window[function_name] == 'function');\par
\tab return (function_name instanceof Function);\par
\}\par
\par


Seems a bit strange and related to Msftedit but I don't know how much it would change how it works.

I have tried totally disabling taxes, made no difference.
It seems to be how Chrome interprets the javascript specifically with combinations.
Would upgrading to 1.4x help?

Link to comment
Share on other sites

I didn't have any cross browser issues with the .js

I'll repost the file without the mess - sorry for that...moving too fast!

The file is from 1.3.2 and I plugged it in to a new shop using 1.3.6 and it worked.
No guarantee, of course, but I hope it helps.

This is virtually the only thing that annoys me about Presta - I really hope it gets addressed in 1.4
Seems like a big problem.

File coming in a bit....

Best of luck.

product.js

Link to comment
Share on other sites

I can't explain what was causing the problem - yet.
I spent hours comparing files etc. Weirdest thing. But I learned lots in the process.
finally I decided to put the site down for a couple of hours to fix it.

I backed up the database, and all the files.
dropped the database, created one new, imported the backup.
deleted all files from server, uploaded fresh 1.3.6.0, edited and uploaded settings.inc.php
uploaded backup of /img/p /modules/editorial and /themes/mytheme
All seems fixed in all browsers now.

I need to add some custom blocks and stuff but its mostly intact.
Thanks again for your help.

Edit:
Found the culprit.
I had twitter code in a Free Block

[removed][removed]
[removed]
new TWTR.Widget({
version: 2,
type: 'list',
rpp: 2,
interval: 6000,
title: 'Whats new at',
subject: 'The Home Theatre

Professionals',
width: 'auto',
height: 125,
theme: {
shell: {
background: '#dddddd',
color: '#000000'
},
tweets: {
background: '#ffffff',
color: '#000000',
links: '#0000c2'
}
},
features: {
scrollbar: false,
loop: false,
live: false,
hashtags: false,
timestamp: false,
avatars: false,
behavior: 'all'
}
}).render().setList('TheHTPros', 'THTP').start();
[removed]




Something in there causes javascript to really screw up on Chrome and possibly other browsers.
Link to comment
Share on other sites

  • 4 weeks later...
I didn't have any cross browser issues with the .js

I'll repost the file without the mess - sorry for that...moving too fast!

The file is from 1.3.2 and I plugged it in to a new shop using 1.3.6 and it worked.
No guarantee, of course, but I hope it helps.

This is virtually the only thing that annoys me about Presta - I really hope it gets addressed in 1.4
Seems like a big problem.

File coming in a bit....

Best of luck.


Thanks! That fix worked perfectly on my 1.3.7 shop. :)
Link to comment
Share on other sites

  • 2 months later...
[sOLVED]

[After looking at the bug tracker, I found the solution: my only currency is $USD, but I had left the conversion rate at the default of 1.45 (prestashop defaults to the euro). Changed it to 1 and it solved the issue. There's still a problem with the price displayed for taxable buyers, but that's another thread. --cz]


Thankyou.
Link to comment
Share on other sites

I have a similar problem and can't figure it out with the steps above. My default currency in INR not USD but I have USD & EUR enabled since we ship to those countries. My problem is when I select USD or EUR the price displayed on the product page is ridiculously low like $1 or something. If I add the product to cart, it then displays the correct amount and even in checkout it shows the right price. I have the price display problem only in the product page. Any suggestions or help? I'm on PS 1.3.2.

Thanks!

Link to comment
Share on other sites

  • 9 months later...

okay added combination 65 grams, 110 grma, 1/2 lbs , 1lbs - when a client customer order the -1/2 lbs , 1lbs has no carrier for that ? can someone send me for a fix? www.generalvilla.com beef-jerky , the follow combinations 1/2 lbs , 1lbs have no carriers...when checkout process.

Link to comment
Share on other sites

  • 1 month later...

I didn't have any cross browser issues with the .js

 

I'll repost the file without the mess - sorry for that...moving too fast!

 

The file is from 1.3.2 and I plugged it in to a new shop using 1.3.6 and it worked.

No guarantee, of course, but I hope it helps.

 

This is virtually the only thing that annoys me about Presta - I really hope it gets addressed in 1.4

Seems like a big problem.

 

File coming in a bit....

 

Best of luck.

 

Hello, thank you very much for your posts but it looks js file cannot be downloaded from this Forum. Can someone email that to me? I am really in need to resolve this issue.

 

Thank a lot.

Link to comment
Share on other sites

  • 11 months later...
I have a similar problem and can't figure it out with the steps above. My default currency in INR not USD but I have USD & EUR enabled since we ship to those countries. My problem is when I select USD or EUR the price displayed on the product page is ridiculously low like $1 or something. If I add the product to cart, it then displays the correct amount and even in checkout it shows the right price. I have the price display problem only in the product page. Any suggestions or help? I'm on PS 1.3.2.

 

Thanks!

 

I'm on 1.4.8.2 and this problem still persist. I have product with combination, discount in amount. Everytime you change the combination, the amount (in foreign currency) keeps increasing higher and higher. It will only stop when it reaches the amount without discount. This problem does not happen in default currency.

 

Here's where it gets interesting. on another thread i saw someone mention that when you load the page, you may briefly see the correct price, which is quickly replaced by the wrong one.

 

I also notice this behaviour.

 

I follow a suggestion from another thread here and replace the whole //Parameter but it doesn't solve the problem.

Edited by boylibre (see edit history)
Link to comment
Share on other sites

  • 7 months later...

Try updating productPriceDisplay to productPriceWithoutReductionDisplay in file /js/product.js

 

from org. JS code:

reduction = productPriceDisplay * (parseFloat(selectedCombination['specific_price'].reduction_percent) / 100) + reduction_price;

To new JS line

reduction = productPriceWithoutReductionDisplay * (parseFloat(selectedCombination['specific_price'].reduction_percent) / 100) + reduction_price;

I hope it helps others..

 

I like to say special thanks to JavaScript alert() function (LOL) 

 

:P:D:lol::)

Link to comment
Share on other sites

  • 1 year later...
×
×
  • Create New...