We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1477
    • 515 Posts
    Quote from: antey at Aug 31, 2009, 03:53 AM

    Quote from: a.tuzhilkin at Aug 31, 2009, 03:42 AM

    Ок. Поставлю её. Ну а если нельзя заменить запятую на точку, что делать?
    Помоему это относится к настройкам на сервере, в плане, что считать разделителем в числах.
    Да не. Там дело в том, что в shopkeeper.js запятая используется как разделитель значений (строк) в куках. Почему-то сразу я не мог предположить, что такие некрасивые названия товаров как Казан индукционный 32 см 6,4 л ( Cast) могут быть необходимы.
      Shopkeeper - сниппет и модуль для создания интернет-магазина.
      TVimageResizer - плагин для изменения размеров (а также наложения водяных знаков и скругления углов) картинок TV при создании документа.
      PickDocsInTree - плагин для выбора документов из дерева.
      Paykeeper 1.5 - Сниппет для онлайн-оплаты в интернет-магазине MODx + Shopkeeper (Webmoney и Robokassa).
      • 21610
      • 360 Posts
      Иногда каталоги заливаешь на сайт из обменного файла... И проверять/править 2000 позиций в xml-файле не вариант.
        Разработка сайтов на MODx
        • 2458
        • 27 Posts
        2SSDTyphon

        все работает. но в корзине цена остается - 0 руб.
        конечно общая - totalsum верная...
        а рядом с товаром в скобках так и остается доп.цена...

        где поменять переменные, не могу найти.
          • 28300
          • 60 Posts
          Quote from: autogen at Aug 31, 2009, 02:56 PM

          все работает. но в корзине цена остается - 0 руб.
          конечно общая - totalsum верная...
          а рядом с товаром в скобках так и остается доп.цена...

          Проблема только в режиме ajax. Для исправления правим файл class.shopkeeper.php
          строка 76:
          $priceAll += isset($additPrice) ? ($price+$additPrice)*$count : $price*$count;

          меняем на
          $incPrice = isset($additPrice) ? ($price+$additPrice)*$count : $price*$count;
          $priceAll += $incPrice;


          далее в строках 80 и 86 меняем $price на $incPrice
          Вроде, всё.

          Quote from: autogen at Aug 31, 2009, 02:56 PM

          где поменять переменные, не могу найти.
          О каких переменных идёт речь?
            • 2458
            • 27 Posts
            Спасибо.!

            Маленькое замечание:
            Вместо:
            $incPrice = isset($additPrice) ? ($price+$additPrice)*$count : $price*$count;
            $priceAll += $incPrice;


            Нужно убрать *$count
            $incPrice = isset($additPrice) ? ($price+$additPrice) : $price*$count;
            $priceAll += $incPrice;


            Еще раз спасибо!

            Да, подскажите, а как убрать стоимость в названии доп. параметра в скобках в корзине?
            т.е. у меня доп. параметры 2мл, 6мл, 12мл, у каждого своя цена. все работает, все отлично. Но в корзине выводит:
            Анис 2мл (38). Вот как убрать 38?
              • 28300
              • 60 Posts
              Quote from: autogen at Aug 31, 2009, 06:17 PM

              Маленькое замечание:
              Вместо:
              $incPrice = isset($additPrice) ? ($price+$additPrice)*$count : $price*$count;
              $priceAll += $incPrice;


              Нужно убрать *$count
              $incPrice = isset($additPrice) ? ($price+$additPrice) : $price*$count;
              $priceAll += $incPrice;

              Ну, в общем-то, если убрать *$count, то общая сумма при добавлении более одного товара с доп. параметрами будет считаться как за один товар. Так, что всё же убирать не надо.Или можно записать так:
              $incPrice = (isset($additPrice) ? ($price+$additPrice) : $price)*$count;
              $priceAll += $incPrice;


              Quote from: autogen at Aug 31, 2009, 06:17 PM

              Да, подскажите, а как убрать стоимость в названии доп. параметра в скобках в корзине?
              т.е. у меня доп. параметры 2мл, 6мл, 12мл, у каждого своя цена. все работает, все отлично. Но в корзине выводит:
              Анис 2мл (38). Вот как убрать 38?
              Для ajax смотрите в class.shopkeeper.php функция getAddit(), ищите строки формирования вывода вида:
              $outputArray[$index-1] .= 

              Без ajax-а смотрите в shopkeeper.js функция additString(num)
              var tempPrice = parseInt(tempArr[3])!=0 ? ' ('+tempArr[3]+')' : '';

              Там не сложно. Если всё же возникнут проблемы - пишите.
                • 2458
                • 27 Posts
                Спасибище! smiley

                По поводу *count -
                Там же две общие суммы.
                1-ая общая в позиции. т.е. цена товара*количество, а 2-ая - сумма всех товаров.

                Так что если убрать *count - все работает нормально.
                Общая сумма (итого) считается тоже правильно.

                  • 28300
                  • 60 Posts
                  Quote from: autogen at Sep 01, 2009, 01:42 AM

                  По поводу *count -
                  Там же две общие суммы.
                  1-ая общая в позиции. т.е. цена товара*количество, а 2-ая - сумма всех товаров.

                  Так что если убрать *count - все работает нормально.
                  Общая сумма (итого) считается тоже правильно.
                  Если говорить о куске кода
                  $incPrice = isset($additPrice) ? ($price+$additPrice)*$count : $price*$count;
                  $priceAll += $incPrice;

                  то, это не две общие суммы.
                  $priceAll - суммарная стоимость всех выбранных товаров далее в функции не используется (возможно задел на будущее).
                  $incPrice - определяет как будет отображаться цена рядом с товаром в корзине. Если вы хотите, чтобы отражалась только цена за единицу товара, то убираем *$count из первой строчки совсем и добавляем во вторую.
                  $incPrice = isset($additPrice) ? ($price+$additPrice) : $price;
                  $priceAll += $incPrice*$count;

                  Тогда логика работы сохранится на случай, если $priceAll всё же понадобится в будущем.
                  Если хотите, чтобы рядом с товаром отображалась суммарная стоимость одинаковых товаров, оставляйте как было.
                  Но убирать *$count; только в одном блоке конструкции ?: нельзя. Иначе при добавлении нескольких одинаковых товаров с доп. свойствами вы получите рядом с товаром цену за единицу, а при добавлении нескольких одинаковых товаров без доп. свойств - суммарную стоимость.
                    • 17064
                    • 35 Posts
                    Все хорошо, но жутко неудобно делать "дизайн" в файле JS, пора выводить шаблоны вывода в отдельные ТПЛ с соответствующими плейсхолдерами. Делать верстку в JS совсем неправильно.

                    За сниппет спасибо. smiley
                      • 1477
                      • 515 Posts
                      Quote from: LFK at Sep 03, 2009, 12:02 AM

                      Все хорошо, но жутко неудобно делать "дизайн" в файле JS...
                      Дизайн таблицы с товарами? Это всё планируется, но можете привести пример что вы хотели изменить и почему пришлось лесть в JS?
                        Shopkeeper - сниппет и модуль для создания интернет-магазина.
                        TVimageResizer - плагин для изменения размеров (а также наложения водяных знаков и скругления углов) картинок TV при создании документа.
                        PickDocsInTree - плагин для выбора документов из дерева.
                        Paykeeper 1.5 - Сниппет для онлайн-оплаты в интернет-магазине MODx + Shopkeeper (Webmoney и Robokassa).