Ошибка в подсчетах итоговой цены при использовании - Бонусные баллы Есть решение

0

Добрый день, в версии shop-script 8.21.0.49 при оформлении заказа в один шаг, при введённом промокоде на скидку в 300 руб., если в корзине добавлять товар количества более 7, то в скидке меняется цена, как в большую сторону, так может и в меньшую. Посмотрел на демо на вашем сайте, эта дичь творится и у вас!! При чем чем больше количества товаров, тем больше сумма может расходится! Как это исправить?

7 комментариев

  • +1

    Делит скидку на все товары и округляет до копейки. 

    Чтобы не получилась, что на один "борщ с курицей" скидка была 42р.857142857142к. — чек с такой скидкой не пробьётся. поэтому скидка на одну позицию округляется до 42р86к, что даёт скидку на весь заказ 300р.02к.

    • +1
      Dimasiksb Dimasiksb 26 декабря 2021 13:51 #

      ну допустим в примере есть копейки, но как быть если у товара цена без копеек? от куда они берутся и почему копейки прибавляются, т.е. на 3 товара скидка увеличивается на ,01 копейку, а при большем товаре вообще какая то странная вещь появляется. Товар 1700 ровно стоит, скидка 500 ровно, от куда копейки? Скидка применена не на каждый товар, а на всю корзину

       

      • 0
        replicant replicant 26 декабря 2021 16:08 #

        Дело не в том сколько стоит товар, а в том сколько единиц товара в заказе и делится ли скидка нацело на это количество. Как раз из-за того, что скидка идет на всю корзину, то её надо равномерно распределить по всему составу заказа.

        500 / 3 = 166,6666666666667 (166,67) - размер скидки на 1 товар для 3-х шт
        500 / 6 = 83,33333333333333 (83,33) - размер скидки на 1 товар для 6-ти шт

        Именно поэтому эти -1 и +2 копейки и "танцуют", потому что деление не получается.

        4599.99 / 3 = новая цена товара, обратно так (1533.33 + 166.67) * 3 = 4599.99
        9700.02 / 6 = новая цена товара, обратно так (1616.67 + 83.33) * 6 = 9700.02

        См. Магазин - Настройки - Валюты - Распределение скидки в заказе.

        • +1
          replicant replicant 26 декабря 2021 16:38 #

          По аналогичной схеме, скажем в Магните, когда к чеку применяются бонусные баллы по скидочной карте, то цены товаров полностью перестраиваются и на одни и те же товары в чеках разных покупателей они могут отличаться на эти самые контрольные копейки для обеспечения деления. Распечатку чека можно поизучать с калькулятором в руках.

        • +1
          Dimasiksb Dimasiksb 26 декабря 2021 20:35 #

          А зачем деление в целом для всей корзины вообще делать, если стоит расчет скидки для всего заказа? есть итоговая сумма всей корзины - скидка и ВСЁ! делить то зачем?

          • +1

            Если вы в чеке укажете 3шт. товара по полной стоимости и отдельно просто "скидка" (я не уверен, что такое через кассу пройдёт, ну ладно), то покупатель сможет на совершенно законном основании вернуть любое количество (1 или 2) из трёх товаров и требовать возврата полной стоимости без учёта скидок.

          • 0

            настраивать не пробовали? /webasyst/shop/?action=settings#/unit/

            Добавить комментарий

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