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


Интеграция С Сервисом Доставки


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

#21 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 18 Август 2013 - 15:18

Просмотр сообщенияsupport (18 Август 2013 - 13:39) писал:

Пока голова разработчиков занята немного другой проблемой, стабильности
Спасибо за подробный ответ.
Конечно, стабильность работы сайтов превыше всего. И ни в какой степени не хочу Вас отвлекать.
Просто мне казалось, что решение не до такой степени сложное.
Значит есть только 2 варианта?

1) Курьером по России   
Точная стоимость доставки в списке ниже.

И длинный-длинный метровый список из 80-100 зон доставки.

2) Курьером по России   
Точная стоимость доставки уточняется при подтверждении заказа

И, даже не спрятать зоны в раскрывающийся список? Хотя, вряд ли, пробовала.

#22 support

support

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

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 18 Август 2013 - 15:27

Просмотр сообщенияvelena168 (18 Август 2013 - 15:18) писал:


Спасибо за подробный ответ.
Конечно, стабильность работы сайтов превыше всего. И ни в какой степени не хочу Вас отвлекать.
Просто мне казалось, что решение не до такой степени сложное.
Просто требует времени, иногда бывает ожидаем завершения работы других разработчиков, в этот момент можно отвлечься на небольшие задачи, но в основном всё такое время съедают ошибки. Так то там действительно не долго...

Просмотр сообщенияvelena168 (18 Август 2013 - 15:18) писал:

Значит есть только 2 варианта?

1) Курьером по России                                                                      
Точная стоимость доставки в списке ниже.

И длинный-длинный метровый список из 80-100 зон доставки.

2) Курьером по России                                                                      
Точная стоимость доставки уточняется при подтверждении заказа

И, даже не спрятать зоны в раскрывающийся список? Хотя, вряд ли, пробовала.
Не совсем, есть ещё варианты:
3) модернизировать шаблон, сделать select поле вместо метрового списка.
4) вставить JS подборщик цены доставки, в том числе сторонними сервисами производящими рассчёт сразу в нескольких службах доставки, а саму доставку назвать например товар "Доставка туда-то" и добавлять его в JS скрипте, через ajax, там можно будет поставить любую цену и любые условия, другой вопрос что зачастую трудоёмко... Попрошу не забыть про эту тему и расписать-таки третий вариант... Простите за задержку.


#23 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 18 Август 2013 - 15:38

Просмотр сообщенияsupport (18 Август 2013 - 15:27) писал:


Не совсем, есть ещё варианты:
3) модернизировать шаблон, сделать select поле вместо метрового списка.
. Попрошу не забыть про эту тему и расписать-таки третий вариант...

Так, третий вариант - это все что пока нужно для полного счастья, но как его "расписать"?

#24 Stasya

Stasya

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

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

Отправлено 18 Август 2013 - 21:04

В шаблоне Оформление заказа найдите блок
<!-- Шаг 2. Доставка -->
	 {% IF ORDER_STAGE_NUM=2%}
	 <div class="orderStageDelivery">
		 <h3>Выберите удобный для вас способ доставки</h3>
		 <div class="orderInfo">
		
		 <table class="orderStageDeliveryListTable">
			 {% FOR order_delivery %}
			 <tbody rel="{order_delivery.ID}">
				 <tr>
				 <td class="cell1" rowspan="2">
					 <input type="radio" id="deliveryId{order_delivery.ID}" name="form[delivery][id]" value="{order_delivery.ID}" class="required deliveryRadio"

					 {% IFNOT ORDER_FORM_DELIVERY_ID %}
						 {% IF order_delivery.first %}
						 checked="checked"
						 {% ENDIF %}
					 {% ELSEIF order_delivery.ID = ORDER_FORM_DELIVERY_ID %}
						 checked="checked"
					 {% ENDIF %}
					 />
				 </td>
				 <td class="cell2">
					 <label for="deliveryId{order_delivery.ID}">{order_delivery.NAME}</label>
				 </td>
				 <td rowspan="2" class="cell3 num">
					 + <span class="orderStageDeliveryDefaultPrice" {% IF order_delivery.ZONE_ID>0 %}style="display:none;"{% ENDIF%}>{order_delivery.END_PRICE | money_format}</span>
					 <span class="orderStageDeliveryZonePrice" {% IF order_delivery.ZONE_ID<1 %}style="display:none;"{% ENDIF%}>{order_delivery.ZONE_END_PRICE | money_format}</span>
				 </td>
				 </tr>
				 <tr>
				 <td class="cell4">{order_delivery.DESC}</td>
				 </tr>
				 {% IFNOT order_delivery.zone_list_empty %}
				 {% FOR zone_list %}
				 <tr>
					 <td></td>
					 <td class="cell5">
					
					 <!-- Заголовок внутри метода доставки, появляется только один раз-->
					 {% IF order_delivery.zone_list.index=1 %}
						 <label class="orderStageDeliveryZoneHeader" for="deliveryId{order_delivery.ID}">Зоны доставки</label>
					 {% ENDIF %}
					
					 <input
						 type="radio"
						 class="deliveryZoneRadio"
						 deliveryid="{order_delivery.ID}"
						 id="deliveryZoneId{order_delivery.zone_list.ID}"
						 name="form[delivery][zone_id]"
						 value="{order_delivery.zone_list.ID}"
						 {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %}
						 checked="checked" rel="true"
						 {% ENDIF %}
					 />
					 <label class="orderStageDeliveryZoneLabel" for="deliveryZoneId{order_delivery.zone_list.ID}">
						 {order_delivery.zone_list.NAME}
						 <span class="deliveryZonePrice">{order_delivery.zone_list.END_PRICE | money_format}</span>
					 </label>
					 </td>

				 </tr>
				 {% ENDFOR %}
				 {% ENDIF %}
			 </tbody>
			 {% ENDFOR %}
		 </table>
		 </div>
и замените его на
<!-- Шаг 2. Доставка -->
	 {% IF ORDER_STAGE_NUM=2%}
	 <div class="orderStageDelivery">
		 <h3>Выберите удобный для вас способ доставки</h3>
		 <div class="orderInfo">
		
		 <table class="orderStageDeliveryListTable">
			 {% FOR order_delivery %}
			 <tbody rel="{order_delivery.ID}">
				 <tr>
				 <td class="cell1" rowspan="2">
					
					
					 <input type="radio" id="deliveryId{order_delivery.ID}" name="form[delivery][id]" value="{order_delivery.ID}" class="required deliveryRadio"

					 {% IFNOT ORDER_FORM_DELIVERY_ID %}
						 {% IF order_delivery.first %}
						 checked="checked"
						 {% ENDIF %}
					 {% ELSEIF order_delivery.ID = ORDER_FORM_DELIVERY_ID %}
						 checked="checked"
					 {% ENDIF %}
					 />
					
					
				 </td>
				 <td class="cell2">
					 <label for="deliveryId{order_delivery.ID}">{order_delivery.NAME}</label>
				 </td>
				 <td rowspan="2" class="cell3 num">
					 + <span class="orderStageDeliveryDefaultPrice" {% IF order_delivery.ZONE_ID>0 %}style="display:none;"{% ENDIF%}>{order_delivery.END_PRICE | money_format}</span>
					 <span class="orderStageDeliveryZonePrice" {% IF order_delivery.ZONE_ID<1 %}style="display:none;"{% ENDIF%}>{order_delivery.ZONE_END_PRICE | money_format}</span>
				 </td>
				 </tr>
				 <tr>
				 <td class="cell4">{order_delivery.DESC}</td>
				 </tr>
				 {% IFNOT order_delivery.zone_list_empty %}
				 <tr>
					 <td></td>
					 <td class="cell5">
					 <select style="margin-left:0;" class="deliveryZoneRadio" data-deliveryid="{order_delivery.ID}" name="form[delivery][zone_id]" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %}class="required"{% ENDIF %}>
						 <option value="0" data-price="{order_delivery.END_PRICE | number_format("0", ",", " ")}"> - выберите зону доставки - </option>
						 {% FOR zone_list %}
						 <option value="{order_delivery.zone_list.ID}" data-price="{order_delivery.zone_list.END_PRICE | number_format("0", ",", " ")}" {% IF order_delivery.zone_list.ID=ORDER_FORM_DELIVERY_ZONE_ID %}selected="selected"{% ENDIF %}>
							 {order_delivery.zone_list.NAME}
						 </option>
						 {%ENDFOR%}
					 </select>
					 </td>
				 </tr>
				 {% ENDIF %}
			 </tbody>
			 {% ENDFOR %}
		 </table>
		 </div>
		

Теперь в  файле main.js вставьте блок
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value);

// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();

});
после блока
// Действия при выборе варианта доставки на этапе оформления заказа
$('.deliveryRadio').click(function(){

// Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки
if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) {
	 $('.deliveryZoneRadio:checked').click().attr('checked', false);
}
});


#25 Masacra

Masacra

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

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

Отправлено 18 Август 2013 - 22:27

Вот уже больше похоже на правду. Вроде работает, только шарика нету, и стоимость доставки обновляется только после обновления страницы. Т.е. покупатель не увидит во сколько обойдётся ему доставка до 4го шага.

Прикрепленные изображения

  • ScreenShot 34.png


#26 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 18 Август 2013 - 22:34

Просмотр сообщенияStasya (18 Август 2013 - 21:04) писал:

В шаблоне Оформление заказа найдите блок
<!-- Шаг 2. Доставка -->


Теперь в конец файла main.js вставьте блок
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value);

// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();

});

Спасибо. Уже гораздо лучше. Выпадающий список появился, но цену правильную на шаге 2 не подставляет, зато самое главное, правильно выставляеся цена в Просмотре заказа. Еще бы улучшить самую малость и будет супер.

Прикрепленные изображения

  • Снимок.PNG
  • Снимок1.png


#27 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 19 Август 2013 - 00:25

А, еще убрала предустановку галочки на 2 шаге http://forum.storela...и-3/#entry69379, т. к.
покупатель может выбрать из раскрывающегося списка зону доставки, но случайно не поставить галку на самом способе доставки и заказ будет оформлен неверно. И теперь, если он захочет вернуться назад на первый шаг, то выдает сообщение
Это поле необходимо для заполнения
Как бы это убрать, только при нажатии кнопки Вернуться?

#28 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 19 Август 2013 - 16:23

Stasya, очень ждем еще Вашей помощи, чтобы довести дело до конца. Спасибо.

#29 Stasya

Stasya

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

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

Отправлено 19 Август 2013 - 21:17

Просмотр сообщенияvelena168 (19 Август 2013 - 16:23) писал:

Stasya, очень ждем еще Вашей помощи, чтобы довести дело до конца. Спасибо.

Из-за того что Вы там что-то убрали код работает не совсем правильно. Сделайте бекап за 17 число.  Так же блок
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value);
// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();
});
в файле main.js вставьте после блока
// Действия при выборе варианта доставки на этапе оформления заказа
$('.deliveryRadio').click(function(){

// Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки
if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) {
	 $('.deliveryZoneRadio:checked').click().attr('checked', false);
}
});

По поводу перестановки галочек, то здесь уже прописан код, который выполняет данную функцию .То есть как только пользователь нажимает на стрелочку для выбора зоны, то галочка автоматически переставляется на этот способ доставки.

Просмотр сообщенияMasacra (18 Август 2013 - 22:27) писал:

Вот уже больше похоже на правду. Вроде работает, только шарика нету, и стоимость доставки обновляется только после обновления страницы. Т.е. покупатель не увидит во сколько обойдётся ему доставка до 4го шага.

Я изменила инструкцию выше, поэтому подправьте свой код, пожалуйста.

#30 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 19 Август 2013 - 21:59

Просмотр сообщенияStasya (19 Август 2013 - 21:17) писал:

Из-за того что Вы там что-то убрали код работает не совсем правильно. Сделайте бекап за 17 число.  Так же блок
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value);
// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();
});
в файле main.js вставьте после блока
// Действия при выборе варианта доставки на этапе оформления заказа
$('.deliveryRadio').click(function(){

// Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки
if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) {
	 $('.deliveryZoneRadio:checked').click().attr('checked', false);
}
});

По поводу перестановки галочек, то здесь уже прописан код, который выполняет данную функцию .То есть как только пользователь нажимает на стрелочку для выбора зоны, то галочка автоматически переставляется на этот способ доставки.



Я изменила инструкцию выше, поэтому подправьте свой код, пожалуйста.

Ура!!! Все супер! Stasya,  Вы замечательный модератор. Одни эмоции. Спасибо! Спасибо! Спасибо!

Изображение



#31 Masacra

Masacra

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

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

Отправлено 19 Август 2013 - 23:14

Да, спасибо большое! Очистка куков как всегда спасла ситуацию :) Только осталось одно "но". Если не выбирать зону, он спокойно даёт пройти на следующий шаг с нулевой стоимостью.

Прикрепленные изображения

  • ScreenShot 35.jpeg


#32 Сake

Сake

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

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

Отправлено 20 Август 2013 - 00:56

Просмотр сообщенияMasacra (18 Август 2013 - 08:26) писал:

Да, то же ничего совсем не изменилось :( Что-то не так в коде.

Не заметили вы изменений вероятно по той причине, что у вас было мало пунктов, тем самым максимальная высота не была превышена для появления скролла. Был задан стиль max-height: 200px;

Цитата

а, спасибо большое! Очистка куков как всегда спасла ситуацию Только осталось одно "но". Если не выбирать зону, он спокойно даёт пройти на следующий шаг с нулевой стоимостью.

Добавьте в main.js

$(function() {
  if($('.deliveryRadio').length) {
	 $('.deliveryRadio:checked').closest('form').submit(function() {
	   var tbody = $('.deliveryRadio:checked').closest('tbody');
	   if(!tbody.find('select').length || parseInt(tbody.find('select').val())) {
		  return(true);
	   }
	   alert('Пожалуйста, выберите зону доставки');
	   return(false);
	 });
  }
});


#33 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 20 Август 2013 - 03:10

Просмотр сообщенияСake (20 Август 2013 - 00:56) писал:

Не заметили вы изменений вероятно по той причине, что у вас было мало пунктов, тем самым максимальная высота не была превышена для появления скролла. Был задан стиль max-height: 200px;



Добавьте в main.js

$(function() {
if($('.deliveryRadio').length) {
	 $('.deliveryRadio:checked').closest('form').submit(function() {
	 var tbody = $('.deliveryRadio:checked').closest('tbody');
	 if(!tbody.find('select').length || parseInt(tbody.find('select').val())) {
		 return(true);
	 }
	 alert('Пожалуйста, выберите зону доставки');
	 return(false);
	 });
}
});

Спасибо! Теперь все идеально.

#34 Masacra

Masacra

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

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

Отправлено 20 Август 2013 - 22:48

Да, вроде сработало. Спасибо большое.

#35 Masacra

Masacra

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

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

Отправлено 30 Август 2013 - 00:00

А проблемы всё-таки есть. Не меняется цена доставки при смене городов, лечится только очисткой куков. Как вылечить раз и навсегда?
И повторюсь с вопросом о возможности подключить API интеграцию. За не бесплатно может кто-нибудь сделать?

#36 Vaccina

Vaccina

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

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

Отправлено 30 Август 2013 - 01:50

Пожалуйста, сообщите номер вашего аккаунта, где данная проблема наблюдается.

Цитата

И повторюсь с вопросом о возможности подключить API интеграцию. За не бесплатно может кто-нибудь сделать?

Как говорилось ранее - к сожалению, этого сделать без разработчиков нельзя. Информация по данному вопросу уже ранее была им передана.

#37 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 30 Август 2013 - 06:28

Просмотр сообщенияMasacra (30 Август 2013 - 00:00) писал:

А проблемы всё-таки есть. Не меняется цена доставки при смене городов, лечится только очисткой куков. Как вылечить раз и навсегда?
И повторюсь с вопросом о возможности подключить API интеграцию. За не бесплатно может кто-нибудь сделать?
У меня меняется. Заказы приходят с правильной ценой. Проверила у Вас, тоже меняется. Можете у меня проверить?

#38 Masacra

Masacra

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

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

Отправлено 31 Август 2013 - 16:58

Просмотр сообщенияVaccina (30 Август 2013 - 01:50) писал:

Пожалуйста, сообщите номер вашего аккаунта, где данная проблема наблюдается.
Аккаунт SL-135891
geekzona.ru

Просмотр сообщенияvelena168 (30 Август 2013 - 06:28) писал:

У меня меняется. Заказы приходят с правильной ценой. Проверила у Вас, тоже меняется. Можете у меня проверить?
Да, на вашем сайте всё правильно работает, не придраться :)

#39 Stasya

Stasya

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

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

Отправлено 31 Август 2013 - 20:46

На Вашем сайте все прекрасно работает: стоимость в зависимости от зоны доставки меняется.

Прикрепленные изображения

  • Барнаул.png
  • Магнитогорск.png
  • Ростов.png


#40 Masacra

Masacra

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

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

Отправлено 01 Сентябрь 2013 - 14:55

На нашем сайте всё не прекрасно работает:
Попробуйте откатиться назад после 3го шага. Или еще раз создать заказ. Только очистка куков возвращает работоспособность. Пробовал на двух компах, но только в Хроме.

Прикрепленные изображения

  • ScreenShot 1.jpeg
  • ScreenShot 2.jpeg
  • ScreenShot 3.jpeg





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

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