Как Ограничить Время Доставки?
#161
Отправлено 26 Февраль 2015 - 06:51
#162
Отправлено 21 Август 2015 - 09:48
Сake (12 Август 2014 - 03:12) писал:
firstDay : 1
и замените её на
firstDay : 1, beforeShowDay : function(date) {return([date.getDay() != 0, ''])}
далее в самый конец файла добавьте код
$(function () { $('[name="form[delivery][convenient_date]"]').attr('readonly', true); $('[name="form[delivery][convenient_time_from]"]').change(function () { var timeFrom = $(this).val(); var timeInterval = 2; $('[name="form[delivery][convenient_time_to]"] option').each(function () { $(this).removeAttr('disabled'); if (parseInt($(this).val()) < (parseInt(timeFrom) + timeInterval)) { $(this).attr('disabled', true); } }).filter(':first').attr('selected', true); }); });
В быстром заказе работает. В пошаговом оформлении НЕ работает.
#163
Отправлено 25 Август 2015 - 02:11
#164
Отправлено 25 Август 2015 - 08:20
#165
Отправлено 12 Сентябрь 2015 - 18:57
#166
Отправлено 15 Сентябрь 2015 - 16:20
#168
Отправлено 16 Сентябрь 2015 - 03:46
nrisimhi (12 Сентябрь 2015 - 18:57) писал:
var timeFrom = $(this).val(); var timeInterval = 2;замените на:
var timeFrom = $(this).val(); var timeInterval = 3;
mariteks (15 Сентябрь 2015 - 22:30) писал:
И нужно убрать Удобная дата доставки.
Дизайн снег. Аккаунт SL-231289
В разделе Настройки - Основные напротив "Удобное время доставки" поставьте галочку "Не обязательно", далее зайдите в раздел Сайт - Редактор шаблонов - Быстрый заказ - найдите и замените необходимый текст
#169
Отправлено 18 Сентябрь 2015 - 09:02
#170
Отправлено 18 Сентябрь 2015 - 14:12
#171
Отправлено 19 Сентябрь 2015 - 01:42
Необходимо прописывать условие в коде после:
minDate : new Date(), firstDay : 1
Пример реализации:
http://forum.storela...120#entry169816
#172
Отправлено 20 Октябрь 2015 - 16:23
#173
Отправлено 20 Октябрь 2015 - 16:49
nrisimhi (20 Октябрь 2015 - 16:23) писал:
Мы передадим данное предложение разработчикам, но в блийшее время решений по этому вопросу врят ли можно ожидать.
#174
Отправлено 13 Февраль 2016 - 14:58
Раз все вопросы пишутся тут. То у меня такой (Перечитал все конкретно именно такого не нашел)
Вопрос 1
Сделал 2 дня доставки (Вт, и ПТ)
Но как сделать так - чтобы если человек заказывает в Понедельник после 12.00 - то ему уже не отображался ближайший Вторник, и в чт после 12.00 - то ему отображалась ближайшая Пятница.
Вопрос 2
А Также как оперативно исключать 1 из дней доставки, например у нас вот на следующей неделе небудет возможным доставка во вторник это исключение бывающие раз в год пол года - но тем не менее такие ситуации случаются - как можно убрать исключительно один из дней?
Вопрос 3
Не нашел вопроса где конкретно спрашивали как просто уменьшить интервал доставки
То есть нужно текущий который с 01:00-24:00 сократить до с 08.00 до 22.00
Вопрос 4
я так понимаю новое поле добавить нельзя, Но можно переименовать.
Тогда такой момент как переименовать "почтовый индекс" в поле где будет выбор из нескольких галочек\квадратиков\кружочков.
"Со скольки вам можно звонить ?" и там было бы несколько пунктов на выбор - с 7.00 \ 8.00 \ 9.00 \ 10.00 \ 11.00 \ 12.00
и человек мог бы предпочтительно поставить галочку./
#175
Отправлено 16 Февраль 2016 - 15:57
#176
Отправлено 17 Февраль 2016 - 05:32
$("#deliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : new Date(), firstDay : 1 });
перед ним вставьте:
var date = new Date(); if(date.getHours() > 12 || date.getHours() < 23) { date.setDate(date.getDate() + 1); }2. В коде быстрого заказа:
$("#deliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : new Date(), firstDay : 1 });
кусок кода:
firstDay : 1 });
замените на:
firstDay : 1, beforeShowDay: function(date) { var day = date.getDay(); return [(day != 1)]; } });в данном изменении:
day != 11 является днем недели, вместо единицы можете установить любое другое число дня недели.
3.
support 2.0 (22 Ноябрь 2012 - 11:14) писал:
Найдите блок
<!-- Если запрашивается поле удобного времени доставки --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %} <tr> <td width="10%"> <label for="deliveryConvenientDate">Удобное время доставки:{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<span class="red">*</span>{% ENDIF %}</label> </td> <td width="90%"> <input id="deliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %} /> c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select> </td> </tr> {% ENDIF %}и замените на
<!-- Если запрашивается поле удобного времени доставки --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %} <tr> <td width="10%"> <label for="deliveryConvenientDate">Удобное время доставки:{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<span class="red">*</span>{% ENDIF %}</label> </td> <td width="90%"> <input id="deliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %} /> c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} {% IF convenient_time_from_list.HOUR_INT=9 %}<option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option>{% ENDIF %} {% IF convenient_time_from_list.HOUR_INT=14 %}<option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option>{% ENDIF %} {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} {%IF convenient_time_to_list.HOUR_INT=14%}<option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option>{%ENDIF%} {%IF convenient_time_to_list.HOUR_INT=20%}<option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option>{%ENDIF%} {% ENDFOR %} </select> </td> </tr> {% ENDIF %}
#177
Отправлено 17 Февраль 2016 - 13:41
#178
Отправлено 17 Февраль 2016 - 13:57
Vaccina (17 Февраль 2016 - 05:32) писал:
перед ним вставьте:[code] var date = new Date(); if(date.getHours() > 12 || date.getHours() < 23) { date.setDate(date.getDate() + 1); } [/code] [/quote] - вот понять бы что значат разные переменные в 3х местах, я вроде попробовал поменять 12 на 50, а 23 на 60. но ничего не произошло. просто по идее сегодня 17.02 13.00 в моем понимании значение 12 и 23 значили что если времени осталось 12 дол следующего дня - то поидее +1 день то есть следующий а следующий неактивный значит вт. ок так как (как я понял) это универсальный код) ок я не против но не уверен пока что он работает. Хотя надеюсь что он работает а может я просто не понял что значат те значения мои "игры" с цифрами были бесполезными.. тем не менее когда я подставлял те большие числа - я все равно мог сделать заказ 19 го числа... [i]P.S. Возможно если вы распишите - то другим будет полезно понять принцип раз все в одной ветке.[/i] [quote name='Vaccina' timestamp='1455676354' post='227214'] 2. В коде быстрого заказа:[code] кусок кода:[code] firstDay : 1 });
замените на:
firstDay : 1, beforeShowDay: function(date) { var day = date.getDay(); return [(day != 1)]; } });в данном изменении:
day != 11 является днем недели, вместо единицы можете установить любое другое число дня недели.
Мы наверное что то не так поняли но мы в этих строчках делали все ниже приведенные варианты и все равно у нас была доступна пятница
мы вместо еденичек тут
замените на:
firstDay : 1, beforeShowDay: function(date) { var day = date.getDay(); return [(day != 1)]; } });
подставляли цифры 1 и 5
, 5 и 1, 5 и 5, 6 и 1 , 1 и 6, 6 и 6, 19 и 1, 1 и 19, 19 и 19, 1 и 4, 4 и 1, 4 и 4.. но всеравно ничего не поменялось наверное мы неправильно поняли что нужно менять чтобы конкретный день исчез из доставки.
3.
Vaccina (17 Февраль 2016 - 05:32) писал:
Найдите блок
<!-- Если запрашивается поле удобного времени доставки -->
Возможно у нас бы все получилось если бы у нас такой блок существовал и мы бы там могли и заменить как вы сказали, но его нету..
Но мы не сидим на месте и попытались добавить код который вы сказали заменить "на" вставить ну раз его нет. вставили гдето в 269 строчку.. Но увы .. у нас ничего не поменялось.
. но зато честно попытались.
Vaccina (17 Февраль 2016 - 05:32) писал:
Вполне возмно, я не очень понял насчет склейки но понял что это будет прикрепленно к комментарию. какойто новый код.
Давайте попробуем. я это вижу так:
( сразу скажу картинка с интернета пределана в пэйнте) не принимать строго на веру)
Тоесть у человека появлеться ещё одно поле (если будет привязанно к комментариям ничего страшного.
Тоесть если можно то сделать что то типа кнопочек если ваозможно - на которую человек может нажать чтобы нам было понятнее со скольки нам можно ему звонить чтобы согласовать доставку.в тотже день.
если есть возможноть было бы хорошо если бы человек нажал на кнопочку и это зафиксировалось в системе.
Ну думаю поняли - если не поняли могу ещё более подробно описать.
#179
Отправлено 18 Февраль 2016 - 06:12
1. Код вставьте в шаблоне main.js вместо:
var minDate = new Date(); if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() <= 16 && minDate.getDay() == 5)) { minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2)); }2. Чтобы не была доступна пятница, необходимо в main.js найти:
beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])}изменить цифру 5, для конкретного же дня необходимо указать условие с месяцем и числом
замените строку на:
beforeShowDay: function(date) { var day = date.getDate(); return [(((date.getMonth() == 2 && day != 8) || date.getMonth() != 2) && date.getDay() != 1 && date.getDay() != 3 && date.getDay() != 4 && date.getDay() != 6 && date.getDay() != 0)]; }
после изменения для заказов будут доступны только вторник и пятница и отключена дата 8 марта.
3. Шаблон Оформление заказа найдите и измените по примеру в инструкции следующий блок:
<div class="field"> <label for="deliveryConvenientDate" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %}>Удобное время доставки</label>{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<em>*</em>{% ENDIF %} <div class="input-box"> c <select style="width:95px;margin-right:3px;" name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select style="width:95px;" name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select> </div> </div>4. в шаблоне Оформление заказа найдите:
<!-- Если поле адреса доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_ADDRESS<3 %} <div class="field"> <label for="deliveryAddress" {% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}class="required"{% ENDIF %}>Адрес доставки</label>{% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}<em>*</em>{% ENDIF %} <div class="input-box"> <textarea col="7" id="deliveryAddress" name="form[delivery][address]" {% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}class="required"{% ENDIF %}>{ORDER_FORM_DELIVERY_ADDRESS}</textarea> </div> </div> {% ENDIF %}
перед ним вставьте:
<!-- Запрос удобного времени --> <div class="field"> <label for="deliveryTime">Со скольки вам удобно звонить?</label> <div id="deliveryTime" class="input-box"> <input type="radio" name="browser" value="c 07:00"> c 07:00 <br/> <input type="radio" name="browser" value="c 08:00"> c 08:00 <br/> <input type="radio" name="browser" value="c 09:00"> c 09:00 <br/> <input type="radio" name="browser" value="c 10:00"> c 10:00 <br/> <input type="radio" name="browser" value="позже 10:00"> позже 10:00 <br/> </div> </div>
далее найдите:
{% ELSEIF ORDER_STAGE_NUM=2 %} action="{ORDER_STAGE_DELIVERY_URL}"
замените на:
{% ELSEIF ORDER_STAGE_NUM=2 %} action="{ORDER_STAGE_DELIVERY_URL}" onsubmit="$('#deliveryComment').val($('#deliveryComment').val() + ' ' + $('#deliveryTime input:checked').val());"
Данные изменения должны работать в 4х шаговой системе оформления заказа.
#180
Отправлено 18 Февраль 2016 - 15:29
Vaccina (18 Февраль 2016 - 06:12) писал:
1. Код вставьте в шаблоне main.js вместо:
var minDate = new Date(); if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() <= 16 && minDate.getDay() == 5)) { minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2)); }
от быстрого заказа да отказались.
если честно сейчас не понял что на что заменить, я тут что то попробовал заменить - но понял что не то.
(я пробовал старые выши инструкции применить - но там ошибка JS начала появляться) наверное я просто не то начал менять.
Кстати сейчас идеальное время чтобы протестировать правильность кода) если успеем.
Vaccina (18 Февраль 2016 - 06:12) писал:
beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])}изменить цифру 5, для конкретного же дня необходимо указать условие с месяцем и числом
замените строку на:
beforeShowDay: function(date) { var day = date.getDate(); return [(((date.getMonth() == 2 && day != 8) || date.getMonth() != 2) && date.getDay() != 1 && date.getDay() != 3 && date.getDay() != 4 && date.getDay() != 6 && date.getDay() != 0)]; }
после изменения для заказов будут доступны только вторник и пятница и отключена дата 8 марта.
думаю заменять
beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])}на
beforeShowDay: function(date) { var day = date.getDate(); return [(((date.getMonth() == 2 && day != 8) || date.getMonth() != 2) && date.getDay() != 1 && date.getDay() != 3 && date.getDay() != 4 && date.getDay() != 6 && date.getDay() != 0)]; } неправильно потому что удаляеться правило вторника и пятница, даже если заменить будет ошибка. поставить после правило тоже ошибка JS Я попробовал интегрировать его.. но у меня наверное кривовато получилось [CODE] beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, || (((date.getMonth() == 2 && day != 8) || date.getMonth() != 2) && date.getDay() != 1 && date.getDay() != 3 && date.getDay() != 4 && date.getDay() != 6 && date.getDay() != 0)])}
Vaccina (18 Февраль 2016 - 06:12) писал:
<div class="field"> <label for="deliveryConvenientDate" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %}>Удобное время доставки</label>{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<em>*</em>{% ENDIF %} <div class="input-box"> c <select style="width:95px;margin-right:3px;" name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select style="width:95px;" name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select> </div> </div>
тоесть вместо этого кода я должен вставить этот ?
<!-- Если запрашивается поле удобного времени доставки --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %} <tr> <td width="10%"> <label for="deliveryConvenientDate">Удобное время доставки:{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<span class="red">*</span>{% ENDIF %}</label> </td> <td width="90%"> <input id="deliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %} /> c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} {% IF convenient_time_from_list.HOUR_INT=9 %}<option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option>{% ENDIF %} {% IF convenient_time_from_list.HOUR_INT=14 %}<option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option>{% ENDIF %} {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} {%IF convenient_time_to_list.HOUR_INT=14%}<option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option>{%ENDIF%} {%IF convenient_time_to_list.HOUR_INT=20%}<option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option>{%ENDIF%} {% ENDFOR %} </select> </td> </tr> {% ENDIF %}
Верно?
Если да, то вот что получаеться
Во первых лишняя строчка, во вторых нету выбора времени только два варианта.
А нужно чтобы если в колонке с выбрано 8.00 то в колонке до было время от 9.00-22.00 (все промежутки)
Vaccina (18 Февраль 2016 - 06:12) писал:
<!-- Если поле адреса доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_ADDRESS<3 %} <div class="field"> <label for="deliveryAddress" {% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}class="required"{% ENDIF %}>Адрес доставки</label>{% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}<em>*</em>{% ENDIF %} <div class="input-box"> <textarea col="7" id="deliveryAddress" name="form[delivery][address]" {% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}class="required"{% ENDIF %}>{ORDER_FORM_DELIVERY_ADDRESS}</textarea> </div> </div> {% ENDIF %}перед ним вставьте:
<!-- Запрос удобного времени --> <div class="field"> <label for="deliveryTime">Со скольки вам удобно звонить?</label> <div id="deliveryTime" class="input-box"> <input type="radio" name="browser" value="c 07:00"> c 07:00 <br/> <input type="radio" name="browser" value="c 08:00"> c 08:00 <br/> <input type="radio" name="browser" value="c 09:00"> c 09:00 <br/> <input type="radio" name="browser" value="c 10:00"> c 10:00 <br/> <input type="radio" name="browser" value="позже 10:00"> позже 10:00 <br/> </div> </div>далее найдите:
{% ELSEIF ORDER_STAGE_NUM=2 %}action="{ORDER_STAGE_DELIVERY_URL}"замените на:
{% ELSEIF ORDER_STAGE_NUM=2 %}action="{ORDER_STAGE_DELIVERY_URL}" onsubmit="$('#deliveryComment').val($('#deliveryComment').val() + ' ' + $('#deliveryTime input:checked').val());"Данные изменения должны работать в 4х шаговой системе оформления заказа.
.. да что то такое.
А можно поробовать это сделать строчкой а не столбиком?
и оформить это всеже в виде кнопок которые при нажатии меняют цвет.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных