我在 Magento 1.7 安装上有一个产品页面,该页面具有分层定价的产品。它应该说买 4 并节省 13%,它会在 13% 的值被 100% 覆盖之前的瞬间完成(这是不正确的)。我只能假设页面上有一些错误的 JavaScript 导致了这种情况,但我不知道如何找到它。有人可以给我一些关于如何找到和修复这个错误的建议吗?
这是页面: http: //makethemostof.co.uk/lace-print-cushions
我在 Magento 1.7 安装上有一个产品页面,该页面具有分层定价的产品。它应该说买 4 并节省 13%,它会在 13% 的值被 100% 覆盖之前的瞬间完成(这是不正确的)。我只能假设页面上有一些错误的 JavaScript 导致了这种情况,但我不知道如何找到它。有人可以给我一些关于如何找到和修复这个错误的建议吗?
这是页面: http: //makethemostof.co.uk/lace-print-cushions
在 Chrome Inspector 中查看了 HTML 元素:class="benefit"
.
在 loupe.js 文件中的 Resources 选项卡中搜索“.benefit”,1 个匹配项。
转到脚本选项卡,loupe.js 文件,美化代码,搜索“.benefit”。
$$('.benefit').each(function(el) {
var parsePrice = function(html) {
return parseFloat(/\d+\.?\d*/.exec(html));
};
var container = $(this.containers[3]) ? this.containers[3] : this.containers[0];
var price = parsePrice($(container).innerHTML);
var tierPrice = $$('.price.tier-' + i);
tierPrice = tierPrice.length ? parseInt(tierPrice[0].innerHTML, 10) : 0;
var $percent = Selector.findChildElements(el, ['.percent.tier-' + i]);
$percent.each(function(el) {
el.innerHTML = Math.ceil(100 - ((100 / price) * tierPrice));
});
}, this);
多亏了 Chrome Inspector,不到一分钟就找到了脚本。
现在,这是罪魁祸首:
el.innerHTML = Math.ceil(100 - ((100 / price) * tierPrice));
这是一个简单的数学计算。我不知道是什么tierPrice
,但我相信您可以找到适合您业务的正确计算方法(Math.ceil
将数字四舍五入)。
其实是
for (var i > 0; i < this.tierPrices.length; i++) {
如果您将其替换为 1,它将仅计算第一层价格的正确节省百分比,而不是之后的其他价格,它们仍将设置为 100%。
虽然他需要为所有层级价格计算它,所以如果i
大于 0,他需要计算正确的层级百分比,否则它与产品价格相同或等于 0 或 100%
希望能帮助到你
对于那些对 Magento 1.7 中层级价格节省总是显示为 100% 的错误特别感兴趣的人,这是修复:
在 js/varien/product.js 中更改第 748 行的以下内容:
for (var i = 0; i < this.tierPrices.length; i++) {
和
for (var i > 1; i < this.tierPrices.length; i++) {
虽然这是一篇关于试图找出问题根源的好帖子,但我发现页面上的解决方案只是阻止代码运行,它们实际上并没有解决问题。我在这里发布了这个问题的解决方案: