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


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


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

#41 Stasya

Stasya

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

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

Отправлено 02 Сентябрь 2013 - 17:47

В файле 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();
});
и замените его на
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');

$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value).parent().parent().show();
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryZonePrice:visible').hide();
// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();
// ставим куки
setCookie('delivery_zone_id', $(this).find('option:selected').attr('value'));
});


// Если есть куки
if(getCookie('delivery_zone_id')){
// находим значение варианта оплаты по куки файлу
// устанавливаем в селект поле нужный пункт
// выполняем JS действие при изменении поля варианта оплаты
$('.orderInfo select > option[value="' + getCookie('delivery_zone_id') + '"]').parent().val(getCookie('delivery_zone_id')).change();
}

В самое начало main.js вставьте блок
function setCookie(name, value, expires, path, domain, secure) {
	if (!name || !value) return false;
	var str = name + '=' + encodeURIComponent(value);
   
	if (expires) str += '; expires=' + expires.toGMTString();
	if (path)	str += '; path=' + path;
	if (domain)  str += '; domain=' + domain;
	if (secure)  str += '; secure';
   
	document.cookie = str;
	return true;
}
function getCookie(name) {
	var pattern = "(?:; )?" + name + "=([^;]*);?";
	var regexp  = new RegExp(pattern);
   
	if (regexp.test(document.cookie))
	return decodeURIComponent(RegExp["$1"]);
   
	return false;
}


#42 Masacra

Masacra

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

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

Отправлено 02 Сентябрь 2013 - 19:50

Теперь заработало. Надеюсь :) Спасибо.

#43 Stasya

Stasya

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

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

Отправлено 02 Сентябрь 2013 - 23:24

Просмотр сообщенияMasacra (02 Сентябрь 2013 - 19:50) писал:

Теперь заработало. Надеюсь :) Спасибо.

Я немного изменила инструкцию написанную выше( дополнила). Поэтому прошу Вас еще раз посмотреть ее.

#44 Masacra

Masacra

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

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

Отправлено 08 Сентябрь 2013 - 00:45

Спасибо, вставил дополнительный блок.
Что это изменило, если не секрет?
И еще вопрос. Как сделать сортировку в выпадающем списке по алфавиту?
Возможно ли задать дополнительные правила доставки, например по весу?

#45 miyako

miyako

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

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

Отправлено 08 Сентябрь 2013 - 06:59

Просмотр сообщенияMasacra (08 Сентябрь 2013 - 00:45) писал:

Спасибо, вставил дополнительный блок.
Что это изменило, если не секрет?
И еще вопрос. Как сделать сортировку в выпадающем списке по алфавиту?
Возможно ли задать дополнительные правила доставки, например по весу?

Доставку по весу, к сожалению, пока сделать не получится. Вы можете проголосовать за эту задачу здесь - http://storeland.ref.../proj/?ia=93783

В разделе Настройки - Основные найдите "Поле сортировки товаров по умолчанию" и укажите "названию А-Я"

#46 velena168

velena168

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

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

Отправлено 08 Сентябрь 2013 - 08:21

Просмотр сообщенияMasacra (08 Сентябрь 2013 - 00:45) писал:

И еще вопрос. Как сделать сортировку в выпадающем списке по алфавиту?
Просто добавляйте зоны доставки в алфавитном порядке в редактировании варианта доставки.

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

  • Снимок.PNG


#47 Masacra

Masacra

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

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

Отправлено 08 Сентябрь 2013 - 08:35

Просмотр сообщенияmiyako (08 Сентябрь 2013 - 06:59) писал:

В разделе Настройки - Основные найдите "Поле сортировки товаров по умолчанию" и укажите "названию А-Я"
К сожалению совсем не вариант, на весь магазин не готов это правило распространить.

Просмотр сообщенияvelena168 (08 Сентябрь 2013 - 08:21) писал:

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

#48 Masacra

Masacra

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

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

Отправлено 08 Сентябрь 2013 - 08:53

И опять всё о том же, вопрос к самым умным.
Удалось вставить скрипт калькулятора с расчётом доставки курьерской службы. Пока поставил сюда:
http://geekzona.ru/page/dostavka
просто для ознакомления клиентов.
Зоны доставки приходится вручную заводить. с безумным количеством городов и пунктов выдачи. С 1 ноября изменятся цены, значит повторно...В общем вопрос в следующем: Бог с ним с API, но неужели невозможно написать скрипт, который будет использовать данные этого калькулятора для расчёта стоимости доставки на сайте?

#49 support 2.0

support 2.0

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

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

Отправлено 09 Сентябрь 2013 - 13:54

Просмотр сообщенияMasacra (08 Сентябрь 2013 - 08:53) писал:

И опять всё о том же, вопрос к самым умным.
Удалось вставить скрипт калькулятора с расчётом доставки курьерской службы. Пока поставил сюда:
http://geekzona.ru/page/dostavka
просто для ознакомления клиентов.
Зоны доставки приходится вручную заводить. с безумным количеством городов и пунктов выдачи. С 1 ноября изменятся цены, значит повторно...В общем вопрос в следующем: Бог с ним с API, но неужели невозможно написать скрипт, который будет использовать данные этого калькулятора для расчёта стоимости доставки на сайте?

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

#50 velena168

velena168

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

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

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

Еще проблемка появилась.
Добавила на шаге 2 еще один выпадающий список "Курьером в пригороды Санкт-Петербурга", вроде все нормально, выбираем зону - цена меняется, а в оформленном заказе как будто зона не выбрана:   
  Доставка       Курьером в пригороды Санкт-Петербурга 0,00

Первый добавленный список "Курьером по России" работает нормально.  Может конфликт какой-то? Как быть? Так красиво получилось.

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

  • Снимок.PNG


#51 Сake

Сake

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

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

Отправлено 17 Сентябрь 2013 - 00:37

Проблема вероятно в данном случае связана с дубликатом имени поля. Так как по умолчанию выпадающий список активен, то отправляется сразу 2 заполненных поля. Необходимо сделать блокировку неактивных списков, и делать их активными только когда выбирается способ доставки. Попробуйте добавить в ваш файл main.js следующий код

$(function() {
   $('.deliveryRadio').click(function() {
	   $('.deliveryZoneRadio').attr('disabled', 'disabled');
	   $(this).closest('tbody').find('.deliveryZoneRadio').removeAttr('disabled');
   });
   $('.deliveryRadio:checked').trigger('click');
});


#52 velena168

velena168

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

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

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

Просмотр сообщенияСake (17 Сентябрь 2013 - 00:37) писал:

Проблема вероятно в данном случае связана с дубликатом имени поля. Так как по умолчанию выпадающий список активен, то отправляется сразу 2 заполненных поля. Необходимо сделать блокировку неактивных списков, и делать их активными только когда выбирается способ доставки. Попробуйте добавить в ваш файл main.js следующий код

$(function() {
$('.deliveryRadio').click(function() {
	 $('.deliveryZoneRadio').attr('disabled', 'disabled');
	 $(this).closest('tbody').find('.deliveryZoneRadio').removeAttr('disabled');
});
$('.deliveryRadio:checked').trigger('click');
});
Спасибо! Теперь все хорошо.

#53 551

551

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

  • Пользователи
  • PipPipPipPip
  • 650 сообщений
  • ГородМосква

Отправлено 02 Октябрь 2013 - 16:44

Спасибо за тему!

#54 Cancerva

Cancerva

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

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

Отправлено 09 Октябрь 2013 - 21:08

Была такая же проблема, вроде исправилась после добавления кода

#55 Cancerva

Cancerva

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

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

Отправлено 11 Октябрь 2013 - 12:21

Рано обрадовался. Проблема появилась снова. Корректно работает только один из трех вариантов доставки с выпадающими списками зон доставки. При оформлении заказа в поле доставка вбивается не зона доставки из списка(выбранная покупателем), а название варианта доставки.

Может код надо вставить в опред место файла main.js? Помогите вообщем пожалуйста!!!

#56 Сake

Сake

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

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

Отправлено 12 Октябрь 2013 - 05:23

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

#57 velena168

velena168

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

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

Отправлено 12 Октябрь 2013 - 16:54

Помогите, пожалуйста кое-что еще подкорректировать:
1) На шаге 2, если не выбрана зона доставки не дает вернуться назад на первый шаг, а надо бы.
2) Выпадающие списки зон хорошо бы сделать одинаковые по размеру.
3) Всплывающее окно как-то можно сделать заметней, раньше хоть рамка какая-то была, сама не всегда замечаю.
Спасибо.

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

  • Снимок.PNG


#58 miyako

miyako

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

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

Отправлено 13 Октябрь 2013 - 08:58

Просмотр сообщенияvelena168 (12 Октябрь 2013 - 16:54) писал:

Помогите, пожалуйста кое-что еще подкорректировать:
1) На шаге 2, если не выбрана зона доставки не дает вернуться назад на первый шаг, а надо бы.
2) Выпадающие списки зон хорошо бы сделать одинаковые по размеру.
3) Всплывающее окно как-то можно сделать заметней, раньше хоть рамка какая-то была, сама не всегда замечаю.
Спасибо.

2) Добавьте в конец файла main.css -
.orderStageDeliveryListTable select{width:200px;}


#59 velena168

velena168

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

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

Отправлено 13 Октябрь 2013 - 10:27

Просмотр сообщенияmiyako (13 Октябрь 2013 - 08:58) писал:

2) Добавьте в конец файла main.css -
.orderStageDeliveryListTable select{width:200px;}
О, спасибо. Совсем другое дело. А с 1) и 3) можно что-то сделать?

#60 velena168

velena168

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

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

Отправлено 14 Октябрь 2013 - 08:51

Хотелось бы ответ услышать на 1) и 3). Спасибо.




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

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