Не правильно считает баллы (партнерская программа) в карточке товара

Не правильно считает баллы или вообще просто 0 стоит (партнерская программа) в карточке товара

А в корзине все ОК


3 ответа
a
Леман Евгений
Programmer
#
18 мая 2020 05:59

Не думали, что кому-то могут понадобиться сотые значения. Особенно с учетом того, что значение в этом месте лишь примерное, т.к. не может учитывать возможные скидки. Попробуйте в шаблоне product.cart.html найти строку:

+{($product.price / $wa->shop->settings('affiliate_credit_rate'))|number_format:0}

И заменить на:

+{($product.price / $wa->shop->settings('affiliate_credit_rate'))}

a
A
#
18 мая 2020 17:42


Не думали, что кому-то могут понадобиться сотые значения.

Ну да для рублей наверное не надо)


Заменил. К сожалению нет.

начинает работать но не правильно - не округляет

должно быть 0.45


Если сумма выше и должно быть значение +0.90 бонусных баллов, в карточке товара округляется до 1

+1.35 бонусных баллов - округляется до 2

А когда два артикула сразу округляет до 1

a
Леман Евгений
Programmer
#
18 мая 2020 19:06
Ну да для рублей наверное не надо)

Не только в этом дело. Баллы не могут 1в1 совпадать с курсом валюты, т.к. это запрещено во многих странах. Плюс бОльшее их кол-во выглядит приятнее. "Вы получили 0.12 баллов" - это прямо как плевок в лицо. Вот было бы 120 - было бы приятнее. Пусть и курс их траты был бы 1/100 :) Но это не мое дело...

+{($product.price / $wa->shop->settings('affiliate_credit_rate'))|number_format:0}

Если честно я не помню точно синтаксис этого модификатора. Попробуйте вместо "0" указать "2". А вот с несколькими артикулами будет тяжелее. Там пересчет идет в javascript. Нужно в product.js найти строки:

if(volume > 0)
    $(".s-product-bonuspoints").text("+"+Math.ceil((price_sum*volume) / that.affiliate_rate));
else
    $(".s-product-bonuspoints").text("+"+Math.ceil(price_sum / that.affiliate_rate));

И заменить их примерно на такую конструкцию:

if(volume > 0)
    $(".s-product-bonuspoints").text("+"+Math.ceil((price_sum*volume*100) / that.affiliate_rate)/100);
else
    $(".s-product-bonuspoints").text("+"+Math.ceil((price_sum*100) / that.affiliate_rate)/100);

Проверить сейчас не могу, но вроде так.

Чтобы добавить комментарий, зарегистрируйтесь или войдите