我可以在Magento页面上获得寻找不需要的JavaScript的建议吗?



我有一个关于Magento 1.7安装的产品页面,其中包含分层定价的产品。它应该说买 4 并节省 13%,在 13% 的值被 100% 覆盖之前,它会在一瞬间这样做(这是不正确的)。我只能假设页面上有一些错误的JavaScript导致了这种情况,但我不知道如何找到它。有人可以给我一些关于如何查找和修复此错误的建议吗?

这是页面: http://makethemostof.co.uk/lace-print-cushions

查看了Chrome Inspector中的HTML元素:class="benefit"

在"资源"选项卡中搜索".benefit",1 匹配,在放大镜.js文件中。

转到脚本选项卡,放大.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++) {

尽管这是一篇很棒的帖子,试图深入了解导致问题的原因,但我发现页面上的解决方案只是阻止代码运行,它们实际上并没有解决问题。我在这里发布了这个问题的解决方案:

https://stackoverflow.com/a/16022796/159341

最新更新