Настройка JS-события для Метрики через метод reachGoal

Подскажите как можно настроить JS-событие для оформленного заказа в Метрике через метод reachGoal? Если сделать событие для нажатия на кнопку «Оформить заказ»

<form action="">
    ...
    <input type="button" onclick="ym(XXXXXX, 'reachGoal', 'TARGET_NAME'); return true;" value="Заказать" />
</form>
то будет засчитываться клик по кнопке независимо от того заполнена форма заказа или нет.

Есть какой то способ сделать так чтобы событие нажатия на кнопку «Оформить заказ» засчитывалось только при условии что заполнены все поля?

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

</div>
        <button  name="ms2_action" value="order/submit"  class="ordering-confirm__submit btn btn--large btn--orange btn--center" type="submit">Оформить заказ <span class="btn-icon btn-icon--right icon-checkmark-circle"></span></button>
        <div class="actions-step clearfix"><ul class="pagination-in"><li class="prev"><a href="#previous">Назад</a></li></ul></div>
      </section>
    </form>
  </div>
но где именно его там разместить?
Олег
15 мая 2026, 11:23
modx.pro
367
0

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

Андрей Шевяков
16 мая 2026, 08:18
0
Под miniShop2 обычно так делаю:

<script>
    $(document).ready(function () {
	    miniShop2.Callbacks.add('Order.submit.response.success', 'order', function(response) {
	    	ym('XXXXXX','reachGoal','TARGET_NAME')
	    });
	});
</script>

При срабатывании события оформления заказа отработает скрипт.
    Олег
    18 мая 2026, 09:42
    0
    Спасибо, а куда нужно это вставить? В Чанк scripts?
      Олег
      18 мая 2026, 12:36
      0
      UPD. В чанк Scripts вставил, событие не работает и не фиксируется метрикой. И ещё момент, как сделать так чтобы был один заказ — одно событие? Не будет ли такого что пользователь будет обновлять по нескольку раз страницу успешного заказа и событие будет каждый раз засчитываться?
        Андрей Шевяков
        18 мая 2026, 14:54
        0
        Эту строчку:
        ym('XXXXXX','reachGoal','TARGET_NAME')
        Надо поменять на вашу из Яндекс метрики.

        Для MODX 2 и miniShop2 все должно работать.

        Не будет ли такого что пользователь будет обновлять по нескольку раз страницу успешного заказа и событие будет каждый раз засчитываться?
        Нет не будет, скрипт отправит цель в Метрику, один раз, при создании заказа и все.
          Олег
          19 мая 2026, 10:31
          0
          Помогло, спасибо
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5