Calljj:
Further to this, can force the error.
includes/modules/pages/product_info/jscript_dynamic_price_update.php
[B] // use the spans to see if there is a discount occuring up in this here house
var test = thePrice.getElementsByTagName("span");
var psp = false;
var pdpt = false;
for (var a=0,b=test.length; a<b; a++) {
if (test[a].className === "normalprice") {
pdpt = test[a];
[/B]
>
> Leaving like this on a sale/special/reduced priced product, that is priced by attributes (product price is zero, attributes do all the work) gives:
> Price 0.00 Price 123
> Price 0.00 Price 234
> Price 0.00 Price 456
>
> ```
<h2 id="productPrices" class="productGeneral"><font size="0.5" color="#636363">Price: </font><font size="0.5" color="#636363">Price: </font><span class="normalprice">£0.00</span> <span class="productSpecialPrice"><font size="0.5" color="#636363">Price: </font>£726.75</span><span class="productPriceDiscount"><br>Save: 25% off</span>
</h2>
Comment out the ```
pdpt = test[a];
>
> And gives the same (lowest priced attribute) starting price for all the different priced attributes
>
> price 999 price 123
> price 999 price 234
> price 999 price 456
>
>
> My html on page is as follows:
>
> ```
<h2 id="productPrices" class="productGeneral">
<font size="0.5" color="#636363">Price: </font><span class="normalprice">£969.00 </span> <span class="productSpecialPrice"><font size="0.5" color="#636363">Price: </font>£951.75</span><span class="productPriceDiscount"><br>Save: 25% off</span>
</h2>
/languages/english/extra_definitions/dynamic_price_updater.php contents:
<?php
/**
* @package Dynamic Price Updater
* @author Design75
* @version 3.0
* @licence This module is released under the GNU/GPL licence
*/
define('BOX_HEADING_DYNAMIC_PRICE_UPDATER_SIDEBOX', 'Price Breakdown'); // the heading that shows in the Updater sidebox
define('DPU_BASE_PRICE', 'Base price');
define('UPDATER_PREFIX_TEXT', '<font size="0.5" color="#636363">Price: </font>');
define('UPDATER_PREFIX_TEXT_STARTING_AT', 'Starting at: ');
define('UPDATER_PREFIX_TEXT_AT_LEAST', 'At least: ');
define('DPU_SHOW_QUANTITY_FRAME', ' (%s)');
define('DPU_SIDEBOX_QUANTITY_FRAME', ' x %s'); // how the weight is displayed in the sidebox. Default is ' x 1'... set to '' for no display... %s is the quantity itself
define('DPU_SIDEBOX_PRICE_FRAME', ' (%s)'); // how the attribute price is displayed
define('DPU_SIDEBOX_TOTAL_FRAME', '<span class="DPUSideboxTotalText">Total: </span><span class="DPUSideboxTotalDisplay">%s</span>'); // this is how the total should be displayed. %s is the price itself as displayed in the
define('DPU_SIDEBOX_FRAME', '<span class="DPUSideBoxName">%1$s</span>%3$s%2$s<br />'); // the template for the sidebox display. Instructions below
/*
*DPU_SIDEBOX_FRAME has 3 variables you can use... They are:
* %1$s - The attribute name
* %2$s - The quantity display
* %3$s - The individual price display
* You can position these anywahere around the DPU_SIDEBOX_FRAME string or even remove them to prevent them from displaying
*/
```
I've been thinking about this issue over the last week, trying to figure out how it is possible that with a fully installed series of software that
1) The normalprice would get updated but.
2) That the price presented as an update is 0.00.
Just a few minutes ago, I thought about comparing the above provided code that is currently bolded to see if there was anything obvious considering that at least recently no web page has been presented for independent review (ie. posted with the likes of mysiteDOTcom). And the thing is that I do not see a history along the master path of the software that shows this code section as presented:
```
// use the spans to see if there is a discount occuring up in this here house
var test = thePrice.getElementsByTagName("span");
var psp = false;
var pdpt = false;
for (var a=0,b=test.length; a<b; a++) {
if (test[a].className === "normalprice") {
pdpt = test[a];
```
There is some "key" code missing and if it has been relocated for some reason, that too has not been explained. The code snippet in this area should be:
```
// use the spans to see if there is a discount occuring up in this here house
var test = thePrice.getElementsByTagName("span");
var psp = false;
var a;
var b = test.length;
var pdpt = false;
for (
a = 0; a < b; a += 1) {
if (test[a].className === "normalprice") {
pdpt = test[a];
```
The for loop had been modified 10 months ago as part of 3.2.0 and before that the if statement checking for normalprice didn't exist, so there has been some amount of editing performed. Even within the code, there are other cases of using the variable a and a similar loop performed; however, the loop does not evaluate the normalprice className. If I remember correctly that was on purpose in the event of some sort of communication failure that at least a price remained visible, but I could be wrong there throughout. I would have to look again to see if there really is a reason to not evaluate normalprice in the other situations.
Regardless, there is something that has been modified from the provided files and those changes have not been explained nor presented. As such I would not be surprised that the modifications (or lack of incorporation of changes) have caused the issues observered. I'm open to trying to further investigate but am not seeing the behavior that has been described when the provided software is loaded in full as provided.