Добавление товара как в корзине на странице товара

Добрый день!
Подскажите пожалуйста как на странице товара добавлять товар по такому же принципу как в корзине?
Т.е. в поле кол-во указывается не сколько добавить, а сколько должно быть?
Версия 2.1.2.
В форме указываю экшен как в корзине «cart/change» но не работает по причине того, что нет ключа у еще не добавленного товара, как быть?
Марк Львов
07 декабря 2013, 10:42
modx.pro
2 381
0

Комментарии: 14

Марк Львов
07 декабря 2013, 14:48
0
По идее можно сперва указать экшен «cart/add», а затем сменить экшен после первого добавления товара в корзину и прописать ключ через js, но тогда нужно как-то подрубить callback на добавление товара в корзину с экшеном «cart/add», может кто подскажет как/куда?
    Марк Львов
    07 декабря 2013, 14:58
    0
    Нашел… но неужели это единственный способ, ни чего более простого и готового нет?
    Василий Наумкин
    07 декабря 2013, 15:09
    0
    cart\add добавляет указанное кол-во товара.
    cart\change меняет количество добавленного товара.

    Если товар в корзине уже существует, то при add будет change. Что тут может быть не понятно?
      Марк Львов
      07 декабря 2013, 15:21
      0
      cart\add — прибавит к существующему кол-ву товаров столько сколько я укажу в поле, но мне же нужно, чтобы при загрузки страницы отображать сколько товаров уже есть в корзине и при помощи + или — менять реальное кол-во товара в корзине, без нажатия кнопки купить. Зайдя на страницу товара пользователь всегда будет видеть сколько этого товара уже есть в корзине и при желании может его поменять. В общем хочется получить возможность управлять кол-вом товара на странице самого товара по принципу идентичному как изменятся кол-во товара на странице корзины.
        Василий Наумкин
        07 декабря 2013, 15:22
        0
        Ну так вставь в поле выбора количества свой сниппет, который выведет не единичку, а количество товара в корзине.
          Марк Львов
          07 декабря 2013, 15:31
          0
          Тогда он будет прибавлять к существующему кол-ву товара текущее кол-во товара, а не менять на указанное.
            Василий Наумкин
            07 декабря 2013, 15:45
            0
            Ну так измени и action в форме, если товар уже есть в корзине.

            Прояви фантазию.
              Марк Львов
              07 декабря 2013, 15:49
              0
              В данный момент проявляю))) Способ я написал выше, жаль по дефолту такого нет… в принципе, нужно научить cart\change возвращать ключ, если товара не было еще в корзине и прописывать его в форму и все.
              Марк Львов
              07 декабря 2013, 17:15
              0
              Пичаль какая-то, config.js (minishop2/web/config.js) каждый раз при запуске minishop2 перезаписывается:
              if (file_put_contents($this->config['jsPath'] . 'web/config.js', $config_js)) {
              						$this->modx->regClientStartupScript($this->config['jsUrl'] . 'web/config.js');
              					}
              					else {
              						$this->modx->regClientStartupScript("<script type=\"text/javascript\">\n".$config_js."\n</script>", true);
              					}
              как же тогда прописать свои callback функции? Причем этот конфиг файл подключается в обязательном порядке
                Василий Наумкин
                07 декабря 2013, 17:33
                0
                Конечно, печаль, если не понимать, что делаешь.

                Калбеки нужны для того, чтобы прописать в них свой код, а MS2 его выполнит при наступлении события. Например, вот так:
                miniShop2.Callbacks.Cart.add.response.success = function(response) {
                	$('#myModal').modal();
                };
                Вызов модального окна при добавлении товара в корзину.
                  Василий Наумкин
                  07 декабря 2013, 17:59
                  0
                  На всякий случай — прописывать нужно в любом своём скрипте, не в miniShop2.

                  Это позволяет задать произвольное действие в любой момент выполнения скрипта.
                    Марк Львов
                    07 декабря 2013, 18:03
                    0
                    да уже понял, удобная штука, спасибо
                    Марк Львов
                    07 декабря 2013, 18:02
                    0
                    Небольшая поправочка если не понимать КАК делать, искал поиском и в мануалах по быстрому — увы не нашел.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        14