Jump to content

PVL

Пользователи
  • Content Count

    278
  • Joined

  • Last visited

Community Reputation

21 Очень хороший

About PVL

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

Recent Profile Visitors

3,498 profile views
  1. Замечен еще один баг. Объемный вес. Уже не знаем, это наш баг, или модуля. Если есть большие и легкие товары - обязательно проверьте! У СДЭК расчет что 1м/2 = 200кг. Например, объем 0,3. Физический вес товара 5кг, а объемный 0,3 *200 = 60 кг. СДЭК будет рассчитывать тариф исходя из 60кг. Да, еще это другой тариф, так как тариф посылка только до 30 кг. Если баг у всех - есть решение.
  2. Всем привет! 1. Внедрена база город СДЭК с их ID (нужно для тарифов) + autocomplete для симплы. Города в которых есть ПВЗ - при вводе первых символов появляется выпадающий список с городами. При выборе нужного города - меняется регион. Если город не выбран и введен вручную (без autocomplete) или не найден в нашей базе - идет обычный поиск по API. Кэширование всех запросов. т.е. даже если будут обращение к API сдэк - запрос будет один раз. Потом из кэша будет браться. 2. В тестовом режиме удалось создать базу тарифов и расчет стоимости доставки без обращения к API. Если не удается рассчитать - запрашиваются тарифу у сдэк. Дальше эти запросы кэшируются. Решение очень индивидуальное. Бюджетного, готового решения для всех не будет. Кому интересно и кто хочет посмотреть работу (когда СДЭК будет лежать) - пишите в ЛС.
  3. У меня верно определяется этот город. Что-то намудрили вы с индексами/Geo IP pro/Simple так как модуль делает запрос к: https://api.cdek.ru/city/getListByTerm/json.php?q=Киров и он верно определяет id":415, это айди города Киров.
  4. У кого не верно считает негабарит, цитирую СДЭК: Можно поправить баг так: /catalog/model/shipping/cdek.php Находим: $volume += $product['quantity'] * (float)$product_volume; ниже добавим: //проверка товара не негабарит if($product['length']>2500 or $product['width']>2500 or $product['height']>2500){ $negabarit = 1; //добавим 1000% к стоимости }elseif($product['length']>1600 or $product['width']>1600 or $product['height']>1600){ $negabarit = 0.6; //добавим 60% к стоимости } Все размеры товара у меня в мм. Имейте ввиду. Проверяем размеры товара. Если одна из сторон больше 2501мм - добавляем 100% к стоимости доставки. Если больше 1601 - добавляем 60%. Находим: if ($this->config->get('cdek_insurance')) { Выше добавляем: //добавим процент к стоимости, если негабарит if(isset($negabarit)){ $price += $shipping_info['priceByCurrency'] * $negabarit; } т.е. если скрипт находит негабаритный товар - добавляем к стоимости процент, который указали выше.
  5. Добавлено кэширование запросов: 1. К https://api.cdek.ru/city/getListByTerm/json.php?q= - который определяет ID города по названию. 2. К API https://api.cdek.ru/calculator/calculate_price_by_json.php - который отдает стоимость доставки. Тестируем.
  6. Продолжаю разбираться с кэшированием. Список ПВЗ. Проверьте У вас создается кэш каждое открытие корзины в папке /system/cache с подобным названием cache.cdek.shipping.pvz.1571390470 ? Сделайте не рабочие ссылки на сервера СДЭК в массиве $servers = array, и попробуйте открыть корзину - выводятся ПВЗ? Т.е. кэш у вас вообще работает? )) так как изначально предполагалось кэширование списка ПВЗ. Верните обратно ссылки на сервера сдэк. Найдите: file_put_contents(DIR_CACHE . 'cache.cdek.shipping.pvz.' . (time() + (3600 * 24 * 7)), serialize($pvz_list)); Замените на: $this->cache->set('cdek.shipping.pvz', $pvz_list); Откройте корзину. Сделайте не рабочие ссылки на сервера СДЭК в массиве $servers = array, и попробуйте открыть корзину - выводятся ПВЗ? т.е. заработал КЭШ списка ПВЗ?
  7. Начинаю думать/пилить по поводу кэширования СДЭКа. Кому интересно - черканите в ЛС. С программистом думаем как лучше. Если есть идеи - тоже пишите. Смотря сколько будет человек, по цене думаю будет 1-5 тысяч с каждого + по необходимости индивидуальное допиливание. Я начал с этого: 1. cdek.php Меняем на: Отдельный скрипт копирует каждую ночь список ПВЗ в папку download, т.е. никакого обращения к СДЭКу. 2. CalculatePriceDeliveryCdek.php У нас ПВЗ по Москве бесплатные. Смысл делать запрос к сдэку? находим Вставляем туда: Находим: Заменить: В папке catalog создаем php файл с таким содержанием: Если регион 44 (Москва) запрос идет к файлу, который на нашем сайте https://site.ru/catalog/cdek-tarif-msk.php он отдает всегда один и тот-же текст/стоимость. Нам такое подходит. Костыль. Буду тестить.
  8. И так. Для теста берем город Рязань. Тариф Посылка склад-дверь. Параметры товара: "weight":"6", "length":"275", "width":"8", "height":"8" Запрос: Ответ: Т.е. цена доставки 910. Наценка за крупногабарит - 455 руб. Не понимаю почему модуль в Opencart получает 455 руб. Такое ощущение что указано брать данные из "price", а тут два "price". Проверьте, какую сумму выдает ваш модуль Москва-Рязань, тариф "Посылка склад-дверь" все 6 кг, размеры 275х8х8 см. Дополню. Нашел странный баг. Жду ответе от сдэка.
  9. Меня просят сделать: Кто может с этим помочь? Как посмотреть? Или может кто скинуть пример запроса, например если товар 151х10х10 см и 221х10х10 см.
  10. Не прошло и 3 лет, мы заметили что СДЭК через апи не отдает наценку(X2) за "крупногабаритный товар", который от 150 см. Думаю нужно умножать стоимость доставки на 2, если одна из сторон товара больше 150 см. Точнее так: Компания СДЭК осуществляет доставку негабаритных грузов. При доставке негабаритного Отправления, размер одной из сторон которого превышает 1,5 м тариф увеличивается на 60 % (если отправление рассчитывается не по объемному весу). При доставке негабаритного Отправления, размер одной из сторон которого превышает 2,2 м тариф увеличивается на 100% (если отправление рассчитывается не по объемному весу) https://www.cdek.ru/services/dopolnitelnye_uslugi_i_sbory/index.html Есть идеи? p.s. разбираюсь со СДЭКом, почему они по апи отдают не верную информацию.
  11. Здравствуйте! Не было добавлено такое условие? Очень надо (
  12. У всех работает модуль? Вчера начал выдавать "Lightning disabled: Real domain required".
  13. У СДЭК один адрес для возвратов, который менеджер указывает в вашем договоре. Адрес отправителя актуален только для тарифов от "Двери".
×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.