Перейти к содержимому


Вставка Виджетов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 50

#1 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 25 Июнь 2016 - 10:40

Помогите, пожалуйста, вставить на сайт виджеты! Сервисы, предоставляющие коды виджетов (например, яндекс метрика и проч.) рекомендуют вставлять их просто в скрипт страницы, но тут ругается система, говорит:
   В тексте найдена загрузка скрипта с удалённого хостинга.
    Обычно таким образом распространяют вирусы. Если Вы не добавляли данный код вручную в HTML коде, то вероятно ваш компьютер заражён вирусом,
    который вставляет подобные коды в отправляемые Вами формы. Настоятельно рекомендуем пройти проверку компьютера антивирусом.
    Если же данный код был добавлен самостоятельно, сначала закачайте данный скрипт в раздел «Сайт» > «Редактор шаблонов» и затем укажите загрузку скрипта с вашего сайта.


Подскажите как правильно реализовать их работу!

Помимо общего вопроса по этой теме, у меня более конкретная задача:

Необходимо добавить виджет курьерской службы Грастин, генератор кода виждета находится тут.

Сам код виджета имеет вид:
<div id="gWidget" style="height:500px;"></div>
<script src="[url="http://grastin.ru/js/gWidget.js"]http://grastin.ru/js/gWidget.js"[/url] async></script>

При этом при выборе варианта доставки или точки самовывоза клиентом данные приходят в функцию
window.grastinPvzWidgetCallback
которая имеет параметры, например:
{"deliveryType":"pvz",
"partnerId":"grastin","currentId":"705d8597-0b36-11e4-b6f4-00155d030401",
"pvzData":{"title":"МСК-1 Волгоградский проспект",
"name":"г. Москва, м. Волгоградский проспект, ТЦ «ТЕХНОХОЛЛ Волгоградский», ул. Волгоградский проспект, д. 32 корп. 8, 2 этаж, павильон D54",
"timetable":"Ежедневно с 11:00 до 20:00"},"cityTo":"МОСКВА","cityFrom":"МОСКВА","cost":80}
которые необходимо подставить в соответствующие поля данных по доставке при оформлении заказа.

#2 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 25 Июнь 2016 - 16:57

ну, или, хотя бы, просто встроить эту форму без возврата параметров функции.. ((

#3 MikDark

MikDark

    Активный участник

  • Модераторы
  • 6 468 сообщений

Отправлено 25 Июнь 2016 - 17:07

Просмотр сообщенияAna (25 Июнь 2016 - 10:40) писал:

Помогите, пожалуйста, вставить на сайт виджеты! Сервисы, предоставляющие коды виджетов (например, яндекс метрика и проч.) рекомендуют вставлять их просто в скрипт страницы, но тут ругается система, говорит:
   В тексте найдена загрузка скрипта с удалённого хостинга.
Обычно таким образом распространяют вирусы. Если Вы не добавляли данный код вручную в HTML коде, то вероятно ваш компьютер заражён вирусом,
который вставляет подобные коды в отправляемые Вами формы. Настоятельно рекомендуем пройти проверку компьютера антивирусом.
Если же данный код был добавлен самостоятельно, сначала закачайте данный скрипт в раздел «Сайт» > «Редактор шаблонов» и затем укажите загрузку скрипта с вашего сайта.


Подскажите как правильно реализовать их работу!

Помимо общего вопроса по этой теме, у меня более конкретная задача:

Необходимо добавить виджет курьерской службы Грастин, генератор кода виждета находится тут.

Сам код виджета имеет вид:
<div id="gWidget" style="height:500px;"></div>
<script src="[url="http://grastin.ru/js/gWidget.js"]http://grastin.ru/js/gWidget.js"[/url] async></script>

При этом при выборе варианта доставки или точки самовывоза клиентом данные приходят в функцию
window.grastinPvzWidgetCallback
которая имеет параметры, например:
{"deliveryType":"pvz",
"partnerId":"grastin","currentId":"705d8597-0b36-11e4-b6f4-00155d030401",
"pvzData":{"title":"МСК-1 Волгоградский проспект",
"name":"г. Москва, м. Волгоградский проспект, ТЦ «ТЕХНОХОЛЛ Волгоградский», ул. Волгоградский проспект, д. 32 корп. 8, 2 этаж, павильон D54",
"timetable":"Ежедневно с 11:00 до 20:00"},"cityTo":"МОСКВА","cityFrom":"МОСКВА","cost":80}
которые необходимо подставить в соответствующие поля данных по доставке при оформлении заказа.

Если Вам нужен виджет, который необходимо вставить на все страницы сайт, такие как метрика и т.п., то его код добавьте в раздел: Настройки - Основные в поле: Код для вывода на всех страницах магазина.

#4 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 25 Июнь 2016 - 18:42

Просмотр сообщенияMikDark (25 Июнь 2016 - 17:07) писал:

Если Вам нужен виджет, который необходимо вставить на все страницы сайт, такие как метрика и т.п., то его код добавьте в раздел: Настройки - Основные в поле: Код для вывода на всех страницах магазина.

Шикардос))) Виджет вставила, спасибо огромное!!


Но как теперь всё же реализовать подстановку возвращаемых параметров функции?
Мне, собственно, не нужно их особо разносить.. Часть их мне вообще без надобности, какие-то скинуть в кучу, скажем, в поле Город и Адрес доставки..
Но основная задача - стоимость доставки. Про неё хотела вообще заводить отдельную тему, но, тк для меня это всё-таки единое смысловое целое, позволю себе пооффтопить тут)
Итак:

1. Во вкладке "Условия доставки" в карточке товара в строку "стоимость доставки" возвращать параметр "cost" из функции window.grastinPvzWidgetCallback или, как вариант, вообще эту строку скрыть, тк это абсолютный бред отображать для всех единое статичное число..
доставка.jpg

2. При оформлении заказа этот виджет вообще, увы, не отображается (вместо него пустое место), а надо :(
При этом, опять же, необходимо возвратить с него параметр "cost" в стоимость доставки вместо того, чтобы плодить тысячу зон доставки..
А ещё значение параметра "cityTo" подставить в поле Город,
"deliveryType", "partnerId",  "pvzData" :{"title", "name"} - в поле Адрес доставки

#5 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 30 Июнь 2016 - 01:33

вопрос актуален

Vaccina, где Вы? вся надежда только на Вас! :rolleyes:

#6 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 30 Июнь 2016 - 02:56

Уточните пожалуйста, на счет карточки товара вопрос еще актуален? Так как вы вставили виджет всплывающим окном.

#7 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 30 Июнь 2016 - 03:19

Просмотр сообщенияVaccina (30 Июнь 2016 - 02:56) писал:

Уточните пожалуйста, на счет карточки товара вопрос еще актуален? Так как вы вставили виджет всплывающим окном.

Да! Но.. согласна из вкладки Доставка в карточке товара, как я уже говорила, просто скрыть отображение статичной цены. Там она, в принципе, нужна только для информации.
А вот при оформлении заказа работа этого виджета важна очень-очень!) Там он тоже во всплывающем окне. Но, если бы заработала подстановка параметров из функции, я бы его, наоборот с радостью разместила бы на самой странице!

#8 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 30 Июнь 2016 - 05:08

Уточните пожалуйста, куда вы установили виджет(шаблон), не смогла найти по "gWidget" ?

#9 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 30 Июнь 2016 - 05:20

Просмотр сообщенияVaccina (30 Июнь 2016 - 05:08) писал:

Уточните пожалуйста, куда вы установили виджет(шаблон), не смогла найти по "gWidget" ?
Ссылку на скрипт в Основные настройки, вывод виджета в Описание вида доставки..

#10 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 30 Июнь 2016 - 06:46

Благодарю =)

В шаблоне Товар найдите и удалите:
{% IF goods_delivery.rules_empty %}
			  {% IF goods_delivery.PRICE=0 %}
				<span>Стоимость доставки: <strong>{goods_delivery.PRICE | money_format}</strong></span>
			  {% ELSE %}
				<span>Стоимость доставки: <strong>{goods_delivery.PRICE | money_format}</strong></span>
			  {% ENDIF %}
			{% ELSE %}
			  <h6>Стоимость доставки зависит от суммы заказа</h6>
			  {% FOR rules %}
				<div>Для заказов больше <strong>{goods_delivery.rules.SUM_MORE_PRICE | money_format}</strong> - доставка <strong>{goods_delivery.rules.PRICE | money_format}</strong></div>
			  {% ENDFOR %}
				<div>Для заказов меньше <strong>{goods_delivery.SUM_LESS_PRICE | money_format}</strong> - доставка <strong>{goods_delivery.PRICE | money_format}</strong></div>
			{% ENDIF %}

По самому виджету, если брать информацию из вашего первого сообщения, до достаточно в main,js добавить и использовать подобного вида конструкцию:
$(document).ready(function() {
  window.grastinPvzWidgetCallback = function(name){
   $("#quickDeliveryCity").text(data.name);
  }
});

Но без ее добавление, при выборе города в виджете в консоли уже всплывает ошибка связанная с файлом gWidget.js, который подгружается с их стороны. Напишите им по данному вопросу и могут ли они выслать более подробную документацию или указать ссылку на нее.

#11 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 30 Июнь 2016 - 07:09

Просмотр сообщенияVaccina (30 Июнь 2016 - 06:46) писал:

По самому виджету, если брать информацию из вашего первого сообщения, до достаточно в main,js добавить и использовать подобного вида конструкцию:
$(document).ready(function() {
  window.grastinPvzWidgetCallback = function(name){
   $("#quickDeliveryCity").text(data.name);
  }
});
Но без ее добавление, при выборе города в виджете в консоли уже всплывает ошибка связанная с файлом gWidget.js, который подгружается с их стороны. Напишите им по данному вопросу и могут ли они выслать более подробную документацию или указать ссылку на нее.

не совсем поняла..
мне не видно никакой ошибки. как мне им объяснить?

#12 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 30 Июнь 2016 - 07:16

Про консоль я имела ввиду панель разработки, в ней имеется консоль на проверку ошибок или вывода необходимой информации.
При изменении города появляется следующая ошибка:
23.png

#13 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 30 Июнь 2016 - 07:20

и правильно ли я понимаю? -
конструкция
$(document).ready(function() {
  window.grastinPvzWidgetCallback = function(name){
   $("#quickDeliveryCity").text(data.name);
  }
});
описывает город доставки?

город доставки по их функции это параметр cityTo и тогда его возвращение из функции будет такое? -
$(document).ready(function() {
  window.grastinPvzWidgetCallback = function(cityTo){
   $("#quickDeliveryCity").text(data.cityTo);
  }
});


#14 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 30 Июнь 2016 - 07:26

В моей конструкции указанный в виджете адрес должен подставлять в поле город при оформлении доставки, это как пример, если хотите использовать иные данные для добавление в форму, то следующий пример:
$(document).ready(function() {
  window.grastinPvzWidgetCallback = function(cityTo){
   $("#quickDeliveryCity").text(data.cityTo);
  }
});


#15 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 30 Июнь 2016 - 07:44

Это я уточнила у Вас просто куда подставлять параметры функции) я совсем не разбираюсь в данном вопросе..
А как это сделать в комплексе с Адресом и Ценой доставки? (в адрес нужно вставить "deliveryType", "partnerId",  "pvzData" :{"title", "name"}, а параметр цены это "cost")
И, да.. почему не отображается виджет при оформлении заказа? Он просто не появляется и всё.. Хотя на других страницах сайта он работает.
Это тоже баг его авторов или проблема сторленда?
Относительно ошибки при выборе города увидела и запомнила - обращусь с этим вопросом к их разрабам.

#16 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 07 Июль 2016 - 01:46

Разрабы модуля ответили так:
Добрый день! 
Нужно использовать function (data) { console.log(data) }

Попробовала написать
$(document).ready(function() {
  window.grastinPvzWidgetCallback = function(cityTo){
   $("#DeliveryCity").console.log(cityTo);
  }
});
Ничего не изменилось (( Я неверно поняла куда это подставить?

И осталась актуальна проблема - не отображается виджет на странице оформления заказа.
На всех других его видно, а там нет. Страница оформления заказа чем-то особенная?)

#17 MikDark

MikDark

    Активный участник

  • Модераторы
  • 6 468 сообщений

Отправлено 07 Июль 2016 - 09:38

Просмотр сообщенияAna (07 Июль 2016 - 01:46) писал:

Разрабы модуля ответили так:
Добрый день!
Нужно использовать function (data) { console.log(data) }

Попробовала написать
$(document).ready(function() {
window.grastinPvzWidgetCallback = function(cityTo){
$("#DeliveryCity").console.log(cityTo);
}
});
Ничего не изменилось (( Я неверно поняла куда это подставить?

И осталась актуальна проблема - не отображается виджет на странице оформления заказа.
На всех других его видно, а там нет. Страница оформления заказа чем-то особенная?)

console log выводит только информацию об ошибке в консоль браузера. Вам нужно дальше по этому вопросу написать разработчикам.

#18 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 14 Июль 2016 - 00:23

ну ок.. Кто возьмется платно доработать?)
B)

#19 Stasya

Stasya

    Активный участник

  • Модератоpы
  • 4 007 сообщений

Отправлено 18 Июль 2016 - 13:40

Просмотр сообщенияAna (07 Июль 2016 - 01:46) писал:

Разрабы модуля ответили так:
Добрый день!
Нужно использовать function (data) { console.log(data) }

Попробовала написать
$(document).ready(function() {
window.grastinPvzWidgetCallback = function(cityTo){
$("#DeliveryCity").console.log(cityTo);
}
});
Ничего не изменилось (( Я неверно поняла куда это подставить?

И осталась актуальна проблема - не отображается виджет на странице оформления заказа.
На всех других его видно, а там нет. Страница оформления заказа чем-то особенная?)

Насколько я понимаю Вы хотите, чтобы данный виджет отображался в поле выбора доставки у соответствующего пункта?
Если я Вас правильно поняла, то Вам необходимо в шаблоне Быстрый заказ найти блок
<td class="cell2">
				 <label for="deliveryId{order_delivery.ID}">{order_delivery.NAME}</label>
				 <p>{order_delivery.DESC}</p>
и заменить его на
<td class="cell2">
				 <label for="deliveryId{order_delivery.ID}">{order_delivery.NAME}</label>
				 <p>{order_delivery.DESC}</p>
					 {% IF order_delivery.ID=номер пункта доставки %}
						 <div id="gWidget"
						 data-from-city="Москва"
						 data-from-hide="1"style="height:500px;"></div>
						 <script src="http://grastin.ru/js/gWidget.js" async></script>
						 {% ENDIF %}
"номер пункта доставки" Вы сможете взять в админке в редактировании данного пункта доставки в адресной строке последние цифры. Например в строке admin/settings_delivery_edit/155943 номер доставки 155943.

Чтобы выбранный город автоматически подставлялся в поле Город, то Вам в файл main.js вставить код
$(document).ready(function(){
  window.grastinPvzWidgetCallback = function(data){
			   $("#quickDeliveryCity").text(data.cityTo);
  }
});


#20 лиса

лиса

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений

Отправлено 19 Декабрь 2016 - 02:11

Просмотр сообщенияStasya (18 Июль 2016 - 13:40) писал:

Насколько я понимаю Вы хотите, чтобы данный виджет отображался в поле выбора доставки у соответствующего пункта?
Если я Вас правильно поняла, то Вам необходимо в шаблоне Быстрый заказ найти блок
<td class="cell2">
				 <label for="deliveryId{order_delivery.ID}">{order_delivery.NAME}</label>
				 <p>{order_delivery.DESC}</p>
и заменить его на
<td class="cell2">
				 <label for="deliveryId{order_delivery.ID}">{order_delivery.NAME}</label>
				 <p>{order_delivery.DESC}</p>
					 {% IF order_delivery.ID=номер пункта доставки %}
						 <div id="gWidget"
						 data-from-city="Москва"
						 data-from-hide="1"style="height:500px;"></div>
						 <script src="http://grastin.ru/js/gWidget.js" async></script>
						 {% ENDIF %}
"номер пункта доставки" Вы сможете взять в админке в редактировании данного пункта доставки в адресной строке последние цифры. Например в строке admin/settings_delivery_edit/155943 номер доставки 155943.

Чтобы выбранный город автоматически подставлялся в поле Город, то Вам в файл main.js вставить код
$(document).ready(function(){
window.grastinPvzWidgetCallback = function(data){
			 $("#quickDeliveryCity").text(data.cityTo);
}
});

Всё сделала как описано. Но

Просмотр сообщенияAna (07 Июль 2016 - 01:46) писал:

И осталась актуальна проблема - не отображается виджет на странице оформления заказа.
На всех других его видно, а там нет. Страница оформления заказа чем-то особенная?)
не видно виджет.jpg       на месте виджета пустота




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных