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


Возможная Дата Доставки


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

#61 tega4

tega4

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

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

Отправлено 15 Апрель 2014 - 14:22

Просмотр сообщенияСake (15 Апрель 2014 - 06:39) писал:

В условие закралась ошибка. Замените строку

} elseif(current.getDay() === (date.getDay() - 1)) {

на

} else if(current.getDay() === (date.getDay() - 1)) {

или просто elseif на else if (т.е с пробелом).
Спасибо. а не подскажите что необходимо сделать чтобы в "быстром просмотре" также отображалось как в обычной карточке товара, а то там только текст "Дата доставки", а самой даты нет?

#62 Сake

Сake

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

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

Отправлено 16 Апрель 2014 - 01:41

Вам необходимо код

<script type="text/javascript">
$(function() {
  var pd = 0;
  var month = ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"];
  var date = new Date();
  date.setDate(date.getDate() + pd);
  if(date.getDay() === 0 || date.getDay() === 6) {
		date.setDate(date.getDate() + (date.getDay() === 0 ? 1 : 2));
  } else if(date.getHours() >= 14) {
		date.setDate(date.getDate() + (date.getDay() === 5 ? 3 : 1));
  }
  var current = new Date();
  if(current.getDay() === date.getDay()) {
		$(".date").text('Сегодня');
  } else if(current.getDay() === (date.getDay() - 1)) {
		$(".date").text('Завтра');
  } else {
		$(".date").text(date.getDate() + " " + (month[date.getMonth()]));
  }
});																																	 
</script>

из шаблона "HTML" переместить в шаблон "Товар" (можно разместить в начале или конце шаблона).

#63 tega4

tega4

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

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

Отправлено 17 Апрель 2014 - 08:19

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

#64 Сake

Сake

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

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

Отправлено 18 Апрель 2014 - 01:45

При вставке кода по всей видимости удаляется исполняемый javascript. Попробуйте сделать следующее - удалите перемещенный javascript код из шаблона "Товар". После в файле main.js найдите код

function QuickLook(url)
{
jQuery.ajax({
  type : 'POST',
  cache: false,
  url: url,
		data: {only_body : 1},
  success: function(data)
  {
		  var c = $('<div class="box-modal" />');
		  c.html(data);
		  c.prepend('<div class="box-modal_close arcticmodal-close">X</div>');
		
		  $.arcticmodal({content: c});
		
   }
  });

}

и замените его на

function insertDateOrder(children)
{
  var pd = 0;
  var month = ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"];
  var date = new Date();
  date.setDate(date.getDate() + pd);
  if(date.getDay() === 0 || date.getDay() === 6) {
				date.setDate(date.getDate() + (date.getDay() === 0 ? 1 : 2));
  } else if(date.getHours() >= 14) {
				date.setDate(date.getDate() + (date.getDay() === 5 ? 3 : 1));
  }
  var current = new Date();
  if(current.getDay() === date.getDay()) {
				$(children).find(".date").text('Сегодня');
  } else if(current.getDay() === (date.getDay() - 1)) {
				$(children).find(".date").text('Завтра');
  } else {
				$(children).find(".date").text(date.getDate() + " " + (month[date.getMonth()]));
  }
}
function QuickLook(url)
{
jQuery.ajax({
  type : 'POST',
  cache: false,
  url: url,
		data: {only_body : 1},
  success: function(data)
  {
		  var c = $('<div class="box-modal" />');
		  c.html(data);
		  c.prepend('<div class="box-modal_close arcticmodal-close">X</div>');
		  insertDateOrder(c);
		  $.arcticmodal({content: c});
		
   }
  });
}
$(function() {
  insertDateOrder($('body'));
});


#65 tega4

tega4

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

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

Отправлено 18 Апрель 2014 - 08:19

Просмотр сообщенияСake (18 Апрель 2014 - 01:45) писал:

При вставке кода по всей видимости удаляется исполняемый javascript. Попробуйте сделать следующее - удалите перемещенный javascript код из шаблона "Товар". После в файле main.js найдите код

function QuickLook(url)
{
jQuery.ajax({
type : 'POST',
cache: false,
url: url,
	 data: {only_body : 1},
success: function(data)
{
		 var c = $('<div class="box-modal" />');
		 c.html(data);
		 c.prepend('<div class="box-modal_close arcticmodal-close">X</div>');
		
		 $.arcticmodal({content: c});
		
}
});

}

и замените его на

function insertDateOrder(children)
{
var pd = 0;
var month = ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"];
var date = new Date();
date.setDate(date.getDate() + pd);
if(date.getDay() === 0 || date.getDay() === 6) {
			 date.setDate(date.getDate() + (date.getDay() === 0 ? 1 : 2));
} else if(date.getHours() >= 14) {
			 date.setDate(date.getDate() + (date.getDay() === 5 ? 3 : 1));
}
var current = new Date();
if(current.getDay() === date.getDay()) {
			 $(children).find(".date").text('Сегодня');
} else if(current.getDay() === (date.getDay() - 1)) {
			 $(children).find(".date").text('Завтра');
} else {
			 $(children).find(".date").text(date.getDate() + " " + (month[date.getMonth()]));
}
}
function QuickLook(url)
{
jQuery.ajax({
type : 'POST',
cache: false,
url: url,
	 data: {only_body : 1},
success: function(data)
{
		 var c = $('<div class="box-modal" />');
		 c.html(data);
		 c.prepend('<div class="box-modal_close arcticmodal-close">X</div>');
		 insertDateOrder(c);
		 $.arcticmodal({content: c});
		
}
});
}
$(function() {
insertDateOrder($('body'));
});
все прекрасно работает, огромнейшее спасибо!

#66 Авто-гаджет

Авто-гаджет

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

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

Отправлено 18 Сентябрь 2014 - 15:52

Просмотр сообщенияRuslanJ (09 Июнь 2013 - 20:56) писал:

Присоединяюсь к вопросу. И еще вопрос - как сделать так, чтобы параметр "pd" передавать в функцию извне. Нужно для разных регионов доставки. Например если определился регион Москва, то параметр передается "pd=0", а если Новосибирск, то "pd=10".

И еще в хотелки, если не сложно, указывать вместо числа, например Сегодня! или Завтра! если доставка получается на сегодня с учетом текущего времени.

Вобщем сам спросил - сам ответил)


Что делает данная доработка
1. Определяет с помощью Яндекса город посетителя (смотрите соответствующую тему по добавлению геотаргеттинга Яндекса) - поэтому составляем список городов со сроками доставки - например Москва pd=0 , СПБ pd=3 и так далее
2. Если определен родной город т.е. если выбралось pd=0, то если текущее время меньше чем 14 часов (условие if (hour_new<14) { ) - то в дате доставки будет написно Сегодня! если условие не выполняется т.е. уже время например 14-10 то в поле ближайшей доставки будет написано Завтра! . При остальных условиях pd больше 0 указывается срок доставки числами как в исходном скрипте
3. Вставляется данная доработка также как и исходный скрипт - в шапку шаблона Товары
4. Еще конечно есть поле для доработки такие как текущий часовой пояс пользователя итд

<script>
$(function() {

if ( !YMaps.location )
var pd = 10; // если геотаргеттинг не стоит то прибавляется 10 дней к текущей дате
else if (YMaps.location.city == 'Москва')
var pd = 0; // если определилась Москва то не прибавляется дней к текущей дате
else if (YMaps.location.city == 'Санкт-Петербург')
var pd = 3; //если определился СПБ то прибавляется три дня к текущей дате
else
var pd = 15; // если яндекс не смог определить регион посетителя прибавляется 15 дней к текущей дате

var month = new Array(12);
month[0] = "января";
month[1] = "февраля";
month[2] = "марта";
month[3] = "апреля";
month[4] = "мая";
month[5] = "июня";
month[6] = "июля";
month[7] = "августа";
month[8] = "сентября";
month[9] = "октября";
month[10] = "ноября";
month[11] = "декабря";
var date_curr = new Date();
var date_next = new Date();
var date_new = new Date();
var hour_new = date_new.getHours();
date_curr.setDate(date_next.getDate()+pd);
var day_curr = date_curr.getDate();
date_next.setDate(date_next.getDate()+(pd + 1));
var day_next = date_next.getDate();
if (pd==0) {
if (hour_new<14) {
$(".date").text("Сегодня!");
}
else
{
$(".date").text("Завтра!");
}
}
else {
$(".date").text(day_curr +" "+ (month[date_curr.getMonth()]) + " - " + (day_next) +" "+(month[date_next.getMonth()]));
}

});
</script>

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

Опишу шаги моих действий, может, что-то упустил или ошибся:

1. Зарегился на Яше и получил ключ, но в новой версии я так понял он не нужен, поэтому в HTML прописал

<script src="http://api-maps.yand...bug&lang=ru-RU" type="text/javascript"></script>

2. В файле main.js  прописал код:

// Дата доставки в карточке товара
$(function() {

if ( !ymaps.location )
var pd = 10; // если геотаргеттинг не стоит то прибавляется 10 дней к текущей дате
else if (ymaps.location.city == 'Волгодонск')
var pd = 0; // если определился Волгодонск то не прибавляется дней к текущей дате
else if (ymaps.location.city == 'Москва')
var pd = 8; // если определилась Москва то не прибавляется дней к текущей дате
else if (ymaps.location.city == 'Санкт-Петербург')
var pd = 9; //если определился СПБ то прибавляется три дня к текущей дате
else
var pd = 15; // если яндекс не смог определить регион посетителя прибавляется 15 дней к текущей дате

var month = ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"];
  var date = new Date();
  date.setDate(date.getDate() + pd);
  if(date.getDay() === 0 || date.getDay() === 6) {
                date.setDate(date.getDate() + (date.getDay() === 0 ? 1 : 2));
  } else if(date.getHours() >= 18) {
                date.setDate(date.getDate() + (date.getDay() === 5 ? 3 : 1));
  }
  var current = new Date();
  if(current.getDay() === date.getDay()) {
                $(".date").text('Сегодня');
  } else if(current.getDay() === (date.getDay() - 1)) {
                $(".date").text('Завтра');
  } else {
                $(".date").text(date.getDate() + " " + (month[date.getMonth()]));
  }
});      

И, в карточке товара выводятся данные var pd=10

Помогите пожалуйста с решением данной проблемы.

Спасибо.

#67 Авто-гаджет

Авто-гаджет

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

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

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

Вопрос снят, разобрался сам, у меня др. вопрос, какой переменной вывести нас. пункт в карточке товара? Например:

Дата доставки в Москву:  29 сентября

#68 Сake

Сake

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

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

Отправлено 19 Сентябрь 2014 - 03:03

Ваш вопрос относится к коду в сообщении выше? Если да, то аналогично другим шаблонам.

<div class="date"></div>

в необходимое место шаблона "Товар".

#69 Авто-гаджет

Авто-гаджет

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

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

Отправлено 19 Сентябрь 2014 - 12:46

Все, спасибо огромное!

#70 sofgtteam86

sofgtteam86

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

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

Отправлено 02 Январь 2015 - 21:35

Аккаунт SL-217350
страница товара
Хм.....

У меня не определяется город в расчете доставки... ставит по умолчанию +10 дней доставки....

и так пробовал и сяк.....


Отдельно город определяет, а срок доставки к городу не привязывает....

Нужно, чтобы было так:
1. Определялся город - отдельная строка
2. Срабатывало определение города и расчет срока доставки. - отдельная строка


Изображение


помогите пожалуйста.....

Ваш город:

&lt;script src="http://api-maps.yandex.ru/2.0-stable/?load=package.standard&amp;lang=ru-RU" type="text/javascript"></script>
<span id="user-city"></span>
&lt;script type="text/javascript">
window.onload = function () {
jQuery("#user-city").text(ymaps.geolocation.city);
}
</script>
<br>

Доставим: <span class="date"></span>


&lt;script type="text/javascript" src="http://api-maps.yandex.ru/1.1/index.xml?key=ABfIplQBAAAANZ2eKwIA4QnN6zWlqYf6QfbDOBGIFxT8a2gAAAAAAAAAAACGN_S_tg_u-b-4Y4o5-00EkubO8A=="></script>
&lt;script>
$(function() {
if ( !ymaps.location )
var pd = 10; // если геотаргеттинг не стоит то прибавляется 10 дней к текущей дате
else if (ymaps.location.city == 'Москва')
var pd = 2; // если определилась Москва то не прибавляется дней к текущей дате
else if (ymaps.location.city == 'Королев')
var pd = 5; // если определился Королев то не прибавляется дней к текущей дате
else if (ymaps.location.city == 'Волгодонск')
var pd = 0; // если определился Волгодонск то не прибавляется дней к текущей дате
else if (ymaps.location.city == 'Санкт-Петербург')
var pd = 4; //если определился СПБ то прибавляется три дня к текущей дате
else
var pd = 15; // если яндекс не смог определить регион посетителя прибавляется 15 дней к текущей дате

var month = new Array(12);
month[0] = ".01.15";
month[1] = ".02.15";
month[2] = ".03.15";
month[3] = ".04.15";
month[4] = ".05.15";
month[5] = ".06.15";
month[6] = ".07.15";
month[7] = ".08.15";
month[8] = ".09.15";
month[9] = ".10.15";
month[10] = ".11.15";
month[11] = ".12.15";

var date_curr = new Date();
var date_next = new Date();
date_curr.setDate(date_next.getDate()+pd+(date_curr.getHours() >= 17 ? 0 : 1));
var day_curr = date_curr.getDate();
date_next.setDate(date_next.getDate()+(pd + 1));
var day_next = date_next.getDate();
$(".date").text(day_curr +" "+ (month[date_curr.getMonth()]) + " - " + (day_next) +" "+(month[date_next.getMonth()]));
});
</script>

</div>
</div>



#71 Vaccina

Vaccina

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

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

Отправлено 15 Январь 2015 - 04:02

Попробуйте использовать следующий код в замен вашему

<div>Ваш город: <span id="user-city"></span></div>
<div>Доставим: <span id="date-delivery"></span></div>
<script src="http://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU" type="text/javascript"></script>
<script >
$(function() {
  $("#user-city").text(ymaps.geolocation.city);
  var pd = 15; // если яндекс не смог определить регион посетителя прибавляется 15 дней к текущей дате
  if( !ymaps.location )
	pd = 10; // если геотаргеттинг не стоит то прибавляется 10 дней к текущей дате
  else if (ymaps.location.city == 'Москва')
	pd = 2; // если определилась Москва то не прибавляется дней к текущей дате
  else if (ymaps.location.city == 'Королев')
	pd = 5; // если определился Королев то не прибавляется дней к текущей дате
  else if (ymaps.location.city == 'Волгодонск')
	pd = 0; // если определился Волгодонск то не прибавляется дней к текущей дате
  else if (ymaps.location.city == 'Санкт-Петербург')
	pd = 4; //если определился СПБ то прибавляется три дня к текущей дате
  var month = [
	".01.15", ".02.15", ".03.15", ".04.15", ".05.15", ".06.15",
".07.15", ".08.15", ".09.15", ".10.15", ".11.15", ".12.15"];
  var date_curr = new Date();
  var date_next = new Date();
  date_curr.setDate(date_next.getDate() + pd + (date_curr.getHours() >= 17 ? 0 : 1));
 
  var day_curr = date_curr.getDate();
  date_next.setDate(date_next.getDate() + (pd + 1));
  var day_next = date_next.getDate();
  $("#date-delivery").text(day_curr + " " + (month[date_curr.getMonth()])
	+ " - " + (day_next) + " " + (month[date_next.getMonth()]));
});
</script>


#72 sofgtteam86

sofgtteam86

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

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

Отправлено 15 Январь 2015 - 17:57

Не работает (

Город отображается правильно, а геотаргетинг нет.
Присваивается значение "если геотаргетинг не стоит"...

#73 Vaccina

Vaccina

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

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

Отправлено 16 Январь 2015 - 05:29

Пожалуйста, приведите пример работы кода на вашей странице магазина. Укажите ссылку товара или его имя, если товар относится к номеру аккаунта указанного в вашем профиле.

#74 aleff

aleff

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

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

Отправлено 04 Апрель 2016 - 10:10

Просмотр сообщенияVaccina (29 Июнь 2013 - 03:40) писал:

Попробуйте использовать следующий код

$(function() {
var pd = 0;
var month = ["января", "февраля", "марта",
						 "апреля", "мая", "июня",
						 "июля", "августа", "сентября",
						 "октября", "ноября", "декабря"];
var date = new Date();
date.setDate(date.getDate() + pd);
if(date.getDay() === 0 || date.getDay() === 6) {
date.setDate(date.getDate() + (date.getDay() === 0 ? 1 : 2));
}
if(date.getHours() >= 11 && (date.getDay() !== 0 && date.getDay() !== 6)) {
		 date.setDate(date.getDate() + (date.getDay() === 5 ? 3 : 1));
}
$(".date").text(date.getDate() + " " + (month[date.getMonth()]));
});

Добрый день!
Вставляю этот код, появляется дата доставки на сегодняшнее число, как сделать дату на следующий день, кроме воскресения

#75 RedHead

RedHead

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

  • Модераторы
  • 1 052 сообщений

Отправлено 04 Апрель 2016 - 11:15

Просмотр сообщенияaleff (04 Апрель 2016 - 10:10) писал:

Добрый день!
Вставляю этот код, появляется дата доставки на сегодняшнее число, как сделать дату на следующий день, кроме воскресения

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

#76 aleff

aleff

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

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

Отправлено 04 Апрель 2016 - 11:20

На стр товара, после пункта наличии, я вставил курьерская доставка на и число,нужно сделать сегодня +1 день т.е на завтра итд кроме воскресения
Аккаунт SL-211250

#77 aleff

aleff

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

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

Отправлено 04 Апрель 2016 - 15:33

Есть мысли по моему вопросу?

#78 RedHead

RedHead

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

  • Модераторы
  • 1 052 сообщений

Отправлено 04 Апрель 2016 - 15:50

Просмотр сообщенияaleff (04 Апрель 2016 - 11:20) писал:

На стр товара, после пункта наличии, я вставил курьерская доставка на и число,нужно сделать сегодня +1 день т.е на завтра итд кроме воскресения
Аккаунт SL-211250

Здравствуйте. Попробуйте в редакторе шаблонов, в шаблоне ТОВАР заменить блок кода:

<script type="text/javascript">
$(function() {
var pd = 0;
var month = ["января", "февраля", "марта",
												 "апреля", "мая", "июня",
												 "июля", "августа", "сентября",
												 "октября", "ноября", "декабря"];
var date = new Date();
date.setDate(date.getDate() + pd);
if(date.getDay() === 0 || date.getDay() === 6) {
		date.setDate(date.getDate() + (date.getDay() === 0 ? 1 : 2));
}
if(date.getHours() >= 11 && (date.getDay() !== 0 && date.getDay() !== 6)) {
				 date.setDate(date.getDate() + (date.getDay() === 5 ? 3 : 1));
}
$(".date").text(date.getDate() + " " + (month[date.getMonth()]));
});																																																															
</script>

на:

<script type="text/javascript">
$(function() {
var pd = 0;
var month = ["января", "февраля", "марта",
												 "апреля", "мая", "июня",
												 "июля", "августа", "сентября",
												 "октября", "ноября", "декабря"];
var date = new Date();
date.setDate(date.getDate() + pd);
if(date.getDay() === 6) {
  date.setDate(date.getDate() + 2);
}
else {
  date.setDate(date.getDate() + 1);
}
$(".date").text(date.getDate() + " " + (month[date.getMonth()]));
});																																																															
</script>





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

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