Приветствую! Вот сейчас я в плотную занялся этим вопросом. Всё оказалось не так просто на практике.
Дело в том, что как только мы практически начинаем реализовывать механизм "покупка на Маркете" то попадаем в круг связей:
1. Реальные даты доставки заказа
2. Информация о сроках, которую мы публикуем на сайте для клиента
3. Информация о сроках, которую мы передаём по API.
Пункты 2 и 3 технически не связаны, поскольку пункт 3 мы задаём вручную, а пункт 2 может быть рассчитан автоматически (Сдэк, например).
Служба контроля качества маркета звонит, прикидывается дурачком и проверяет соответствие пунктов 3 и 2. Затем делает контрольный заказ и проверяет фактически соответствие всех трёх пунктов. Так что тут у них не проскочишь.
Далее трудность - они (Маркет) не учитывают выходные в сроках. Если бы им отдавать сроки с момента отгрузки в службу доставки - то пол-беды - там выходных в контрольных сроках нет. Но фактически - мы не можем объявить сроки исполнения заказа равными контрольным срокам служб доставки. Фактически - нам нужно прибавить 2 дня на комплектацию заказа. А эти два дня могут попасть на выходные и праздники. То есть могут превратится в 4 дня. А могут восьмого марта превратится в 7 дней.
В автоматических методах у нас нет возможности прибавить на обработку диапазон. Есть возможность прибавить только одно число. Соответственно на сайте срок станет либо недостоверно коротким, либо отталкивающе длинным.
Ладно. В ручных методах можем попробовать жёстко прибавить минимум 2 дня, максимум 4 дня. На сайте срок станет растянутым, но достоверным.
Теперь проблема в API. По документации диапазон FromDate - ToDate не может быть больше 3-х дней. А у нас, например, реально с Почтой России и нашими выходными получится 5-12.
Я пока настроил API именно так и вроде, пока не ругались на диапазон. Может просто не заметили. Поскольку раньше бвыало, что ругались. Пока не разобрался. Может что-то поменялось.
Короче. в идеале формула должна быть такая (рабочие дни на обработку заказа)+(контрольные сроки службы) = общий диапазон. При этом хорошо бы чтобы он выводился в датах а не днях.
И вообще - мыслить в датах - как-то больше дисциплинирует в этой задаче.