Minishop2: переключение вариантов доставки

При переключении вариантов доставки на странице оформления заказа общая сумма меняется как-то через несколько раз. Запрос order/add уходит и срабатывает нормально, а вод order/getcost думает что установлен другой вариант и возвращает другую сумму.
Влад Дрямов
10 января 2014, 12:28
modx.pro
3 077
0

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

Василий Наумкин
10 января 2014, 19:19
0
Похоже, что-то там с javascript — сильно навороченно написали.

Можно попробовать подогнать старый, или самостоятельно разобраться и исправить новый.

Здесь тоже глючит? Я вот не могу повторить в Chrome.
    Влад Дрямов
    10 января 2014, 19:32
    0
    Да, такая же история. Пробую переключить с разной периодичностью, в 1-5 секунд и срабатывает не сразу, раз на десятый наверное. Тоже хром. Вот с вариантами оплаты всё ок.
      Василий Наумкин
      10 января 2014, 19:39
      0
      Ну тогда только упрощать javascript.
        Никита Павлов
        Никита Павлов
        11 января 2014, 12:50
        0
        Скрипт не ты писал чтоли? Тогда все ясно. На явный баг указывают, а в ответ — разбирайся сам.
          Василий Наумкин
          11 января 2014, 13:03
          0
          Новую версию писал Алексей Карташов.

          Старая — моя.

          На явный баг указывают, а в ответ — разбирайся сам
          В былые времена я бы тебя просто забанил, а сейчас предложу думать, что говоришь. Ты используешь бесплатное решение, в которое лично ты не вложил ни капли труда.

          Найди баг, почини, пришли pull-request. Именно так разрабатываются бесплатные решения.

          Если хочешь, чтобы твоей проблемой занялся я — плати. Для тебя специальная ставка — 1000 рублей в час.
            Никита Павлов
            Никита Павлов
            11 января 2014, 13:22
            0
            Я в твоем репозитории приобрел не одно дополнение к твоему бесплатному расширению, так что будь добр содержать базу в порядке, чтобы я мог их использовать и радоваться как все замечательно. А то клиент пришел, заказ сделал выбрал доставку, а на финальной стадии ему выкатывают другую стоимость доставки, отличную от выбранной и без объяснений.
            Просто забанить — это самый простой вариант жить в идеальном мире, где никто не жалуется.
              Василий Наумкин
              11 января 2014, 13:23
              0
              У тебя вопрос по платному дополнению?

              Или по бесплатному miniShop2?

              P.S. Я не вижу ни одной покупки от тебя в магазине.
                Никита Павлов
                Никита Павлов
                11 января 2014, 13:28
                0
                А это две разные вещи? Платные дополнения работают без бесплатного минишоп2? Я просто не понимаю почему ты говоришь, что это моя проблема, это проблема минишоп2 и, как видишь она не у меня одного. Я как минимум ожидал подсказки или какой то заинтересованности в проблеме, а не посыла куда по дальше, прикрытого бесплатностью.
                  Василий Наумкин
                  11 января 2014, 13:32
                  0
                  Я тебе не подсказал? Не дал ссылку на старую версию скрипта?

                  Даже еще не послал никуда. Мне просто непонятны твои высказывания, что
                  будь добр содержать базу в порядке, чтобы я мог их использовать и радоваться как все замечательно.

                  Ты думаешь, что после этих высказываний я тебе помогу, что ли?
                    Никита Павлов
                    Никита Павлов
                    11 января 2014, 13:47
                    0
                    Вот именно что ты помог не мне, я спрашивал по всякому в своей теме, в итоге получив в ответ:

                    Тебе никто ничего не должен, разбирайся сам.
                    Срач мне ни к чему, вопросы еще будут =) Я не считаю себя способным, именно, доработать минишоп, поэтому и обращался к создателям. Согласись продавать запчасти от бесплатной машины, которая чихает периодически и говорить, мол, а к запчастям то какие претензии, это как то не комильфо.

                    P.S. покупки были сделаны с почты crisped@yandex.ru
                      Василий Наумкин
                      11 января 2014, 14:02
                      0
                      Я бы никогда не догадался, Фантомас!

                      Ты похоже вообще не понимаешь, что я с тобой общаюсь только по доброте душевной. Даже попробовал во второй раз тебе объяснить то же самое.

                      miniShop2 и еще море дополнений разрабатываются мной за свой счет, их никто не оплачивает. Платные дополнения — отдельная песня, по ним есть техподдержка.

                      По miniShop2 — нет. И требовать что-то от меня, да еще и выходной просто верх наглости, с моей точки зрения.

                      Я и так убиваю всё свое время, отвечая на идиотские вопросы и чиня компоненты для других. У меня, как нетрудно догадаться, вся отлично работает и проблем никаких нет.

                      Если это неясно, и ты и впредь планируешь писать
                      Я не понимаю, так сложно ответить?
                      и
                      будь добр содержать базу в порядке, чтобы я мог их использовать и радоваться как все замечательно.

                      Скажи сразу — я тебя забаню нахер.
                      Никита Павлов
                      Никита Павлов
                      11 января 2014, 14:15
                      0
                      Ну умолять о помощи я точно не собираюсь… Я вполне корректно вопросы задавал, не надо выдергивать из контекста фразы. Почему ты игнорируешь вежливые вопросы и отвечаешь на агрессивные, я сам не понимаю. При чем тут для других, я еще раз повторюсь, на демо сайте та же проблема, в базовом варианте без каких либо дополнений.

                      Если дело в деньгах, то вопрос уже как то всплывал в том же репозитории. Ты посоветовал написать в simple-dream по поводу разработки дополнения, но видимо там в деньгах не нуждаются, т.к. ответа не последовало.

                      Я, например, готов оплатить твою помощь, оставь контакты.

                      Ну и не стоит забывать о том, что идиоты, со своими идиотскими вопросами, повышают посещаемость твоего блога как никак ;)
                      Василий Наумкин
                      11 января 2014, 14:28
                      0
                      Почему ты игнорируешь вежливые вопросы и отвечаешь на агрессивные, я сам не понимаю.
                      Потому что я сижу работаю, и отвечу на вежливый вопрос, когда освобожусь.

                      А когда я посреди отладки какого-то хитрого глюка в парсере pdoTools получаю уведомление со словами
                      Я не понимаю, так сложно ответить?
                      Хочется взять и уебать по голове такого замечательного читателя.

                      Я и сейчас отлаживаю скрипт импорта открытой документации, чтобы Susan Ottwell смогла добавить описание для pdoUsers на английском.
                      Кстати — вот, добавили только что.

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

                      И вопросов про этот глюк было не более 3х — 4х, что при нескольких сотнях пользователей MS2 говорит о трудноуловимости бага. В багтрекер его тоже никто не внёс.

                      Нужно подобрать условия, при которых он вылазит и только тогда его получится исправить.

                      На это нужно время, у меня его нет.

                      Я, например, готов оплатить твою помощь, оставь контакты.
                      Ты отбил уже всё желание тебе помогать.

                      Ну и не стоит забывать о том, что идиоты, со своими идиотскими вопросами, повышают посещаемость твоего блога как никак ;)
                      Да-да, это я всем должен. У меня тут все рекламой завешано и рублю милионы на посещениях.

                      С открытием этого сайта я стал зарабатывать меньше в 2 раза, потому что времени на него уходит много, а денег он не приносит.

                      Деньги платят за работу, которую я сейчас просто не успеваю делать — ибо отвечаю на вопросы. А когда пытаюсь не отвечать — вы возмущаетесь в комментариях.

                      Если так продолжится и дальше, то я просто отключу возможность задавать вопросы.
                      Никита Павлов
                      Никита Павлов
                      11 января 2014, 14:43
                      0
                      Ну да, ну да, портянки время писать есть, а работать нет. Ответь ты мне сразу, что мол мое время стоит столько-то, обращаться туда-то, ничего бы этого не было.
                      Баг трекер, серьезно? Человек спросил, когда ожидается введение учета остатков месяц назад, ответа так и не последовало.
                      Василий Наумкин
                      11 января 2014, 14:50
                      0
                      Действительно, с тобой только время зря терять, о чем я думал?

                      Всего хорошего!
                      Роман Наумов
                      12 января 2014, 01:34
                      0
                      Как показывает личный опыт, таким людям бесполезно что-то объяснять. Так что расточать на них своё красноречие не стоит :)

                      Мне кажется, на твоём сайте подавляющее большинство адекватных людей, которые не дёргают по пустякам. И вообще, благодарны тебе за ту огромную работу, которую ты проделал и продолжаешь делать.
                      Так что, не горячись. Где же тогда задавать вопросы? :)
                      Василий Наумкин
                      12 января 2014, 06:29
                      0
                      Спасибо!
                Никита Павлов
                Никита Павлов
                11 января 2014, 13:29
                0
                Тебе отписать с аккаунта в репозитории?
                  Василий Наумкин
                  11 января 2014, 13:33
                  0
                  Если у тебя есть проблема с купленным дополнением — пиши конечно.

                  Но юзер с именем «Никита Павлов» ничего не покупал, так что и в поддержку написать не сможет.
    Влад Дрямов
    13 января 2014, 13:35
    0
    Нашёл решение проблемы. Возвращаться к старому коду не пришлось.
    Метод miniShop2.Order.inititialize выглядит теперь так:
    initialize: function() {
    			miniShop2.Order.setup();
    			if ($(miniShop2.Order.order).length) {
    				miniShop2.$doc
    					.on('click', miniShop2.Order.order + ' [name="' + miniShop2.actionName + '"][value="order/clean"]', function(e) {
    						miniShop2.Order.clean();
    						e.preventDefault();
    					})
    					.on('change', miniShop2.Order.order + ' input, textarea', function(e) {
    						var $this = $(this);
    						var key = $this.attr('name');
    						var value = $this.val();
    						miniShop2.Order.add(key, value);
    					});
    				var $deliveryInputChecked = $(miniShop2.Order.deliveryInput + ':checked', miniShop2.Order.order);
    				$deliveryInputChecked.trigger('change');
    				miniShop2.Order.updatePayments($deliveryInputChecked.data('payments'));
    			}
    		}
    Т.е были убраны вот эти строки:
    if ($this.is(miniShop2.Order.deliveryInput)) {
    	miniShop2.Order.getRequired(value);
    }
    Метод miniShop2.Order.add выглядит теперь так:
    add: function(key, value) {
    			var callbacks = miniShop2.Order.callbacks;
    			var old_value = value;
    			callbacks.add.response.success = function(response) {
    				(function(key, value, old_value) {
    					var $field = $('[name="' + key + '"]', miniShop2.Order.order);
    					switch (key) {
    						case 'delivery':
    							$field = $(miniShop2.Order.deliveryInputUniquePrefix + response.data[key]);
    							if (response.data[key] != old_value) {
    								$field.trigger('click');
    							}
    							else {
                                                                    miniShop2.Order.getRequired(value);
    								miniShop2.Order.updatePayments($field.data('payments'));
    								miniShop2.Order.getcost();
    							}
    							break;
    						case 'payment':
    							$field = $(miniShop2.Order.paymentInputUniquePrefix + response.data[key]);
    							if (response.data[key] != old_value) {
    								$field.trigger('click');
    							}
    							else {
    								miniShop2.Order.getcost();
    							}
    							break;
    						//default:
    					}
    					$field.val(response.data[key]).removeClass('error').closest(miniShop2.Order.inputParent).removeClass('error');
    				})(key, value, old_value);
    			}
    			callbacks.add.response.error = function(response) {
    				(function(key) {
    					var $field = $('[name="' + key + '"]', miniShop2.Order.order);
    					if ($field.attr('type') == 'checkbox' || $field.attr('type') == 'radio') {
    						$field.closest(miniShop2.Order.inputParent).addClass('error');
    					}
    					else {
    						$field.addClass('error');
    					}
    				})(key);
    			}
    
    			var data = {
    				key: key,
    				value: value
    			};
    			data[miniShop2.actionName] = 'order/add';
    			miniShop2.send(data, miniShop2.Order.callbacks.add, miniShop2.Callbacks.Order.add);
    		}
    Добавил строчку
    miniShop2.Order.getRequired(value);
      Василий Наумкин
      13 января 2014, 13:42
      0
      Круто!
      И всё нормально работает? Требуемые поля меняются в зависимости от метода доставки?

      Если да — может оформишь коммит на GitHub?
        Влад Дрямов
        13 января 2014, 13:44
        0
        Да, поля меняются. Сейчас попробую с гитхабом разобраться.
          Василий Наумкин
          13 января 2014, 13:49
          0
          Нужно просто создать аккаунт, зайти в файл, который хочешь изменить, и нажать «Edit».

          Дальше редактируешь, проверяешь и отправляешь в репозиторий. Я выгружу, погоняю у себя и добавлю в новую версию — всем будет радость!
            Влад Дрямов
            13 января 2014, 13:54
            0
            Сделано.
              Василий Наумкин
              13 января 2014, 13:56
              0
              Принято, буду тестить.

              Спасибо!
                Влад Дрямов
                13 января 2014, 14:11
                0
                Тебе спасибо, твой магазин выручает не первый раз. По поводу критики — она всегда будет, надо только изменить своё отношение к ней) Ты делаешь хорошие дела, это главное.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      26