Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Допил модуля СДЭК - нужно кеширование


Recommended Posts

Добрый день!

 

На сайте установлен модуль доставки СДЭК: 

 

 

 

Сейчас модуль в процессе оформления заказа клиентом "на лету" подтягивает данные с серверов сдэка

 

Проблема в том, что сдэк часто висит или глючит. И, соответственно, подвисает оформление доставки. Иногда жестко.

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

 

Нужно решение, которое позволит модулю работать быстро и независимо от работоспособности севера сдэка (или хотя бы сильно снизит эту зависимость).

 

Сайт на ngnix +PHPFM. Хостинг VPS. PHP 5.6

окстор 2.1

 

Саму реализацию готов обсудить.

Надіслати
Поділитися на інших сайтах


Если кешировать данные могут быть не актуальными и вы даже знать об этом не будите
Мало ли что у них там измениться и за какое время, может раз в сутки,  раз в 100 лет, а может измениться и через полчаса
Какое время жизни кеш файла ставить
Как часто обновляются данные сервера СДЕК?

Надіслати
Поділитися на інших сайтах

Я это понимаю, поэтому и говорю то, что реализацию стоит обсудить сначала.

 

Там 3 вида данных:

1) тариф - обновляется крайне редко (работаем второй год - пока тьфу-тьфу вообще не обновлялось)

2) пункты выдачи в конкретном городе - обновляется... чаще чем тариф, но зависит от физического открытия/закрытия пунктов выдачи. 

3) сроки доставки - примерно также, как пункты выдачи. Логистику докрутили - поменялось...

 

То есть нормального срока я вам сказать не могу к сожалению, т.к. этого никто не знает. Только логику обновления объяснить.

 

Как вариант - а что если парсить сдэковские данные с их сервера и у себя локально сохранять? часа в 4 утра, например... И делать это раз в сутки.

Надіслати
Поділитися на інших сайтах


Мне кажется вообще модуль сдэка вывод надо делать на ajax.
В блоке доставок, и модуле .tpl выводится сразу прелоадер, который дёргает функцию javascript которая выполняет запрос. Под прилоадером типа надпись ждём загрузку доставки СДЭК.
А тем временем у пользователя все остальные способы уже загружены и видны. Некая асинхронность и возможность дать пользователю взаимодействовать пока с сайтом и даёт ему полную прозрачность действий от сайта.

Отправлено с моего ZB631KL через Tapatalk

Надіслати
Поділитися на інших сайтах


Но это допилка view части и переделка контроллера частично. С внедрением функции приема запроса от сайта.

Отправлено с моего ZB631KL через Tapatalk

Надіслати
Поділитися на інших сайтах


Плюс ещё надо предусмотреть при плохом ответе, дать пользователю понять что СДЭК не хочет работать, можете выбрать другую доставку или связаться с менеджером для оформления в ручном режиме. Либо вывести инпут что СДЭК не загрузился, оформление СДЭК доставки будет произведенна менеджером в ручную впишите свой адрес на который хотели бы получить доставку если это сдэк.

Отправлено с моего ZB631KL через Tapatalk

Надіслати
Поділитися на інших сайтах


15 minutes ago, pimur said:

Мне кажется вообще модуль сдэка вывод надо делать на ajax.

поддержу. Наиболее разумно обращение к серверу СДЭКа делать асинхронно \ параллельно, что бы поскорее отдать страницу чекаута, не дожидаясь ответа апи.

 

Если поглядеть на документации по интеграции, то можно сделать вывод о том, что кэшировать нужные данные для выполнения расчетов без участия сервера СДЭКа практически нереально - это over 9000 обращений нужно сделать: не только к каждому городу, но и с разными характеристиками отправлений (габариты, вес, тариф и тп). А там еще ведь разного рода ограничения в некоторых пунктах выдачи... В качестве единственного разумного варианта для кэширования остается разве что определить ограниченный перечень топовых\популярных направлений для отправки и заблаговременно готовить результаты только для них. Ну или кэшировать только те запросы, которые делали пользователи - так несколько проще - просто не запрашивать одни и те же данные повторно

Змінено користувачем 100napb
Надіслати
Поділитися на інших сайтах

Сроки и стоимость нужно знать точно.

Пользователь на основании этого решение принимает.

 

Просто по европейской части доставка стоит 220-280 рублей, а вот за Урал и дальше может переваливать за полторы тысячи.

 

 

По весу и объему -  у меня вес не считает. Стоит один вес в модуле - "по умолчанию". Т.к. 97% посылок в него укладываются.

 

По тарифам - их всего 2 у меня используется, запрос по всем делать не нужно.

 

То есть к каждому городу 2 запроса всего (по 1 для каждого тарифа).

Надіслати
Поділитися на інших сайтах


1 час назад, gregoro сказал:

Я это понимаю, поэтому и говорю то, что реализацию стоит обсудить сначала.

 

Там 3 вида данных:

1) тариф - обновляется крайне редко (работаем второй год - пока тьфу-тьфу вообще не обновлялось)

2) пункты выдачи в конкретном городе - обновляется... чаще чем тариф, но зависит от физического открытия/закрытия пунктов выдачи. 

3) сроки доставки - примерно также, как пункты выдачи. Логистику докрутили - поменялось...

 

То есть нормального срока я вам сказать не могу к сожалению, т.к. этого никто не знает. Только логику обновления объяснить.

 

Как вариант - а что если парсить сдэковские данные с их сервера и у себя локально сохранять? часа в 4 утра, например... И делать это раз в сутки.

Тоже считаю что лучше сделать таблицу в котором будет храниться все данные по СДЭК и эту таблицу заполнять раз в сутки.

Для магазина лучше потерять часть прибыль из-за доставки, чем потерять весь заказ из за того что клиент ждал 10-15 минут пока сервис "родит". 

Можно предусмотреть вариант что если доставка больше 1000 рублей тогда эту направление нужно парсить более 1 раза в сутки.

 

 

Змінено користувачем Asmadian
Надіслати
Поділитися на інших сайтах


10 минут назад, Asmadian сказал:

Тоже считаю что лучше сделать таблицу в котором будет храниться все данные по СДЭК и эту таблицу заполнять раз в сутки.

Для магазина лучше потерять часть прибыль из-за доставки, чем потерять весь заказ из за того что клиент ждал 10-15 минут пока сервис "родит". 

Можно предусмотреть вариант что если доставка больше 1000 рублей тогда эту направление нужно парсить более 1 раза в сутки.

Да и не нужно больше 1 раза в сутки)

 

Ведь цена вдруг резко не упадет и не вырастет :-) 

Надіслати
Поділитися на інших сайтах


1 час назад, pimur сказал:

не кажется вообще модуль сдэка вывод надо делать на ajax.
В блоке доставок, и модуле .tpl выводится сразу прелоадер, который дёргает функцию javascript которая выполняет запрос. Под прилоадером типа надпись ждём загрузку доставки СДЭК.
А тем временем у пользователя все остальные способы уже загружены и видны. Некая асинхронность и возможность дать пользователю взаимодействовать пока с сайтом и даёт ему полную прозрачность действий от сайта.

Хорошая идея, но есть проблема "рост" магазина не стоит на месте. и сегодня выгодна доставлять через СДЭК завтра уже через другие транспортные компании. Сейчас популярные СДЭК, деловая линия, ПЭК  и т.д. если делать запросы по каждой ТК тогда корзина будет "лежать".

Надіслати
Поділитися на інших сайтах


18 минут назад, gregoro сказал:

Еще 5 копеек могу добавить - проблема не новая, и сделав решение 1 раз, его можно будет не единожды продать ;-) 

 

Согласен идея для модуля хорошая можно продать по 1000 рублей т.к. для магазина эта проблема очень фатальна. 

Надіслати
Поділитися на інших сайтах


3 минуты назад, Asmadian сказал:

Хорошая идея, но есть проблема "рост" магазина не стоит на месте. и сегодня выгодна доставлять через СДЭК завтра уже через другие транспортные компании. Сейчас популярные СДЭК, деловая линия, ПЭК  и т.д. если делать запросы по каждой ТК тогда корзина будет "лежать".

специфика у всех ТК разная.

СДЭК - это "посылочки". Небольшие, легкие.

 

Деловые и ПЭК - это крупные тяжелые заказы.

Все одновременно обсчиывать - нужды точно нет.

Надіслати
Поділитися на інших сайтах


7 минут назад, gregoro сказал:

специфика у всех ТК разная.

СДЭК - это "посылочки". Небольшие, легкие.

 

Деловые и ПЭК - это крупные тяжелые заказы.

Все одновременно обсчиывать - нужды точно нет.

не со всем верно. Если посылка больше 29 кг (все зависит от тарифа ) тогда СДЭК отваливается, но если посылка 5 кг клиент должен видеть цены и сроки  доставки через все ТК ( которые есть в корзины), есть места в России где СДЭКом дорого доставлять, а значит корзина должно обсчитывать все варианты.

Потому что для клиента важно срок и стоимость, кто готова ждать месяц но цена доставки 3 копейки а кому то нужно завтра и готов платить за срочность. 

Надіслати
Поділитися на інших сайтах


В 20.08.2019 в 00:03, Shkip сказал:

по опыту - сдэк фиксированая доставка, и не париться. +/-  20 руб на доставке погоды не сделают

вы ветку читали?

Как только наземная невозможна и начинается авиа - стоимость переваливает за тысячу рублей.

 

по евро-части России разница почти 100 рублей бывает. Тоже погода - и для клиента, и для компании.

Надіслати
Поділитися на інших сайтах


17 минут назад, gregoro сказал:

вы ветку читали?

Как только наземная невозможна и начинается авиа - стоимость переваливает за тысячу рублей.

 

по евро-части России разница почти 100 рублей бывает. Тоже погода - и для клиента, и для компании.

 

ага, до первого заказа килограмм на 50 в Нижневартовск

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.