We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1477
    • 515 Posts
    SSDTyphon, спасибо!
      Shopkeeper - сниппет и модуль для создания интернет-магазина.
      TVimageResizer - плагин для изменения размеров (а также наложения водяных знаков и скругления углов) картинок TV при создании документа.
      PickDocsInTree - плагин для выбора документов из дерева.
      Paykeeper 1.5 - Сниппет для онлайн-оплаты в интернет-магазине MODx + Shopkeeper (Webmoney и Robokassa).
      • 2308
      • 3 Posts
      назрел такой вопрос
      установил корзину вроде все в порядке
      со страницы отправки заказа собственно заказ не отправляется, хотя в &orderid выставлен id отдельной страницы

      upd: спасибо, уже сам разобрался со своей тупостью
      форму вставлял просто не через eform

      теперь только другой косяк, после успешной отправки формы выводит страницу с благодарностью, но кукисы не чистит
        • 28300
        • 60 Posts
        asstet Вы валидный &gotoid в eForm указать не забыли?
          • 2308
          • 3 Posts
          нет не забыл, там дело в том в скрипте shopkeeper.js при полной загрузке страницы есть проверка
            if(window.location.href.indexOf('/'+gotoid)>-1){
              $.cookie('stuffAll', '', {expires: 1, path: '/'});
              $.cookie('stuffAll', null);
            }else{
              if($.cookie('stuffAll')!=null){
                fillCart($.cookie('stuffAll'));
              }
            }

          где собственно проверяется, если это страница указанная в &gotoid, то кукисы очищают
          вопрос в следующем
          эта проверка происходит при наличии скрипта shopkeeper.js на этой странице, как сделать чтобы на странице с благодарностью был этот скрипт без показа корзины, как собственно в примере.
            • 1477
            • 515 Posts
            Quote from: asstet at Aug 19, 2009, 12:37 AM

            эта проверка происходит при наличии скрипта shopkeeper.js на этой странице, как сделать чтобы на странице с благодарностью был этот скрипт без показа корзины, как собственно в примере.
            Ну обычно такая страница (по крайней мере я так делаю) создается в разделе каталога, в шаблоне которого например в сайдбаре всегда стоит корзина. А очищать невидимую корзину по-моему как-то не правильно.
              Shopkeeper - сниппет и модуль для создания интернет-магазина.
              TVimageResizer - плагин для изменения размеров (а также наложения водяных знаков и скругления углов) картинок TV при создании документа.
              PickDocsInTree - плагин для выбора документов из дерева.
              Paykeeper 1.5 - Сниппет для онлайн-оплаты в интернет-магазине MODx + Shopkeeper (Webmoney и Robokassa).
              • 28300
              • 60 Posts
              Выкладываю Frontend manager для Shopkeeper. Решил всё-таки не писать с нуля, а переделать модуль.
              Т.е. это тот же модуль 0.8.6 Shopkeeper-а, но оформленный как сниппет. Единственное, добавил параметр &mgrStyle (0 или 1) для опциональной отмены подгрузки таблицы стилей админки.

              Может быть кому-нибудь да пригодится.
                • 28300
                • 60 Posts
                Кстати, чтобы при обновлении страницы не исчезала доп.цена (ну, она, конечно, появляется после нажатия на кнопки доп. цены или "добавить в корзину", но хочется, чтобы и не исчезала), можно в shopkeeper.js почти в самом конце файла внутри
                $(document).ready(function(){
                ...
                })

                Перед строчкой if(debug){ написать
                $('.addparam').each(function(i){
                  if(this.checked)
                    jQuery.additOpt(this);
                  else if (this.options){
                    for(var j=0; j<this.options.length; j++){
                      if (this.options[j].selected){
                        jQuery.additOpt(this);
                        break;
                      }
                    }
                  }
                })


                Т.е. результирующий код выглядит так:
                $(document).ready(function(){
                  if(window.location.href.indexOf('/'+gotoid)>-1){
                    $.cookie('stuffAll', '', {expires: 1, path: '/'});
                    $.cookie('stuffAll', null);
                  }else{
                    if($.cookie('stuffAll')!=null){
                      fillCart($.cookie('stuffAll'));
                    }
                  }
                  if($.cookie('tempParam')){
                    $.cookie('tempParam', '', {expires: 1, path: '/'});
                    $.cookie('tempParam', null);
                  }
                  $('.addparam').each(function(i){
                    if(this.checked)
                      jQuery.additOpt(this);
                    else if (this.options){
                      for(var j=0; j<this.options.length; j++){
                        if (this.options[j].selected){
                          jQuery.additOpt(this);
                          break;
                        }
                      }
                    }
                  })
                  if(debug){
                    var  degugString = $.cookie('tempParam') ? "1. "+$.cookie('tempParam') : '';
                    degugString += $.cookie('stuffAll') ? "\n\n2. "+$.cookie('stuffAll') : '';
                    degugString += $.cookie('additParam') ? "\n\n3. "+$.cookie('additParam') : '';
                    if(degugString!='') alert(degugString);
                  }
                });

                Это "быстрое решение", наверное есть более красивое.
                  • 28300
                  • 60 Posts
                  Quote from: asstet at Aug 19, 2009, 12:37 AM

                  как сделать чтобы на странице с благодарностью был этот скрипт без показа корзины, как собственно в примере.
                  Если это у вас страница с уникальным шаблоном, добавьте вызов shopkeeper.js в хедере,
                  если это одна только такая страница с общим шаблоном, но без корзины, сделайте простой сниппет с вызовом
                  $modx->regClientSturtupScript('assets/snippets/shopkeeper/shopkeeper.js');

                  И вставьте где-нибудь на странице с благодарностями
                    • 28300
                    • 60 Posts
                    В Shopkeeper поддерживаются только кнопки "добавить в корзину" с тегом "button" класса "shs-but". Было бы не плохо позволить использовать для этой кнопки ещё "input", или просто не ограничивать выбор.
                    Например, если в shopscript.js 0.8.8 beta3 строка 46:
                        $('button.'+settings.clButton+':eq(0)',this).click(function(){

                    удалить селектор ’button’:
                        $('.'+settings.clButton+':eq(0)',this).click(function(){

                    То кнопку добавления в корзину можно сделать из чего угодно с классом "shs-but".
                      • 1477
                      • 515 Posts
                      Quote from: SSDTyphon at Aug 20, 2009, 06:06 AM

                      В Shopkeeper поддерживаются только кнопки "добавить в корзину" с тегом "button" класса "shs-but". Было бы не плохо позволить использовать для этой кнопки ещё "input", или просто не ограничивать выбор.
                      Например, если в shopscript.js 0.8.8 beta3 строка 46:
                      ....
                      удалить селектор ’button’:
                      ...
                      То кнопку добавления в корзину можно сделать из чего угодно с классом "shs-but".
                      Это сделано для более быстрой работы яваскрипта. Если не указывать конкретный элемент, то ему придется пробегаться по всем существующим HTML-элементам и искать в них CSS-класс. А зачем кнопку делать элементом input? Можно поставить <button type="submit" например. А с помощью CSS любой button можно визуально превратить во что угодно.
                        Shopkeeper - сниппет и модуль для создания интернет-магазина.
                        TVimageResizer - плагин для изменения размеров (а также наложения водяных знаков и скругления углов) картинок TV при создании документа.
                        PickDocsInTree - плагин для выбора документов из дерева.
                        Paykeeper 1.5 - Сниппет для онлайн-оплаты в интернет-магазине MODx + Shopkeeper (Webmoney и Robokassa).