Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Поддержка] DPD - служба доставки http://dpd.ru + Наложенный платеж


kin208
 Поделиться

Рекомендованные сообщения


Когда модуль будет адаптирован под 2.3.0.2 версию ОС ?

Уже сделано, там есть версия для 2.3

Ссылка на комментарий
Поделиться на других сайтах

Что бы корректно работала предварительная оценка стоимости заказа по введенному индексу я написал себе костыль. Работает только для РФ, может кому пригодится.

В файле /catalog/controller/extension/total/shipping.php найти сроку

$this->session->data['shipping_address'] = array(

и добавить перед ней

//  === узнать город по индексу ====
			$this->load->model('extension/shipping/dpdregions');
			$convert_region = $this->model_extension_shipping_dpdregions->getRegions($this->request->post['zone_id']);
			
			$find_city = array('',0,999999);
			$file_city = @fopen(DIR_SYSTEM."storage/download/dpd_cities.txt", "r");
			if ($file_city !== false && $convert_region !== false) {		
				
				$post_code = $this->request->post['postcode'];
				$zone_code_id = $this->request->post['zone_id'];
				
				while (!feof($file_city)) {
					$line = explode('|',fgets($file_city));
					
					// отбросить чужие  
					if ($line[3] != 'г') continue;
					if ($line[1] != $convert_region) continue;
					if ($line[0] != $iso_code_2) continue;
					if ($line[5] > $post_code) continue;
					if ($line[6] < $post_code) continue;
					
					// выбрать ближайший город					
					if ($find_city[1] <= $line[5] && $find_city[2] >= $line[6])						
						$find_city = array($line[4],$line[5],$line[6]);
									
				}
				fclose($file_city);			
			}

а чуть ниже после нее найти строку 

'city' => '',

и заменить на 

'city' => $find_city[0],

Далее в папке /catalog/model/extension/shipping/ добавить файл dpdregions.php с содержимым 

<?php
class ModelExtensionShippingDpdRegions extends Model {

	public function getRegions ($id){		
		
		$query = $this->db->query("SELECT `dpd_code` FROM `" . DB_PREFIX . "dpd_regions` where `id_oc` = ".(int)$id." limit 1");		
		
		if ($query->row)
			return $query->row['dpd_code'];
		else
			return false;
		}
}
?>

Не забудьте файлу /catalog/model/extension/shipping/dpdregions.php дать соответствующие chown и chmod (например, www-data:www-data и 550).

В принципе, автору модуля нет проблем дописать это для всех остальных стран и добавить это в файл dpd_modification.ocmod.xml в своих будущих сборках, чтоб народ не лазил в коде, а то мне лениво и денег не плотють :-) 

Ссылка на комментарий
Поделиться на других сайтах


Прислали письмо из DPD:
 

Цитата

Просим Вас донести информацию до Ваших коллег ответственных за взаимодействие с DPD в России.

Информируем Вас, о том что  в целях повышения качества и стабильности работы веб сервисов,  06.03.2017 будут отключены все методы которые работают по адресу
http://ws.dpd.ru:80/services/geography.

Просим внести изменения до указанного срока и указать новый адрес
http://ws.dpd.ru:80/services/geography2

Так же если Вы используете метод getCitiesCashPay, то в новой версии необходимо запрос обернуть в <request>. Это связанно с тем, что теперь во входящих параметрах добавился новый параметр <countryCode>. С помощью которого можно указать код страны.

Это повлияет на модуль? Нужно будет обновлять?

Ссылка на комментарий
Поделиться на других сайтах


15 минут назад, ditex сказал:

Прислали письмо из DPD:
 

Это повлияет на модуль? Нужно будет обновлять?

Я это всё исправлял несколько месяцев назад.

Зайдите в настройки модуля, во вкладку Синхронизация и нажмите на кнопку "Загрузить список городов".

Если загрузка пройдет, то можно ничего не делать. Если будет ошибка - то скачайте последнюю версию модуля и перезалейте файлы из папки Upload в корень сайта.

Ссылка на модуль:

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Здравствуйте.

Зашел спор с тех.поддержкой DPD о неверной обработке запроса модуля по стоимости доставки за дату 25.01.2017 года (разночтение в ответе по API и по расчету через их личный кабинет достигло 200% с лишним). Выяснилась эта гигантская разница только сейчас, когда покупатель пришел на терминал получать заказ, а ему выкатили огромную сумму за доставку. Дошло до желания обеих сторон посмотреть ПОЛНЫЙ массив запроса и ответ по API по одному конкретному заказу от этого числа. Подскажите, я могу как-нибудь выудить у себя это полный массив запроса и ответа? Из БД или еще как?

В БД в таблице oc_dpd_cache данные только за последние сутки. А нужно за дату двухнедельной давности

Изменено пользователем globaltrading
Ссылка на комментарий
Поделиться на других сайтах


В 10.02.2017 в 21:47, globaltrading сказал:

Здравствуйте.

Зашел спор с тех.поддержкой DPD о неверной обработке запроса модуля по стоимости доставки за дату 25.01.2017 года (разночтение в ответе по API и по расчету через их личный кабинет достигло 200% с лишним). Выяснилась эта гигантская разница только сейчас, когда покупатель пришел на терминал получать заказ, а ему выкатили огромную сумму за доставку. Дошло до желания обеих сторон посмотреть ПОЛНЫЙ массив запроса и ответ по API по одному конкретному заказу от этого числа. Подскажите, я могу как-нибудь выудить у себя это полный массив запроса и ответа? Из БД или еще как?

В БД в таблице oc_dpd_cache данные только за последние сутки. А нужно за дату двухнедельной давности

Здравствуйте, ответил в личку.

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

Цены на доставку, который рассчитывает Ваш модуль, в несколько раз выше цен в калькуляторе на их сайте. Кто вводит в заблуждение - их сайт или Ваш модуль?

Ссылка на комментарий
Поделиться на других сайтах


On 12.03.2017 at 3:31 AM, hunter14 said:

Цены на доставку, который рассчитывает Ваш модуль, в несколько раз выше цен в калькуляторе на их сайте. Кто вводит в заблуждение - их сайт или Ваш модуль?

 

Здравствуйте,

Цены должны совпадать.

 

Если цены не совпадают, то скорее всего Вы сравниваете разные тарифы. В одном случае ClassicParcel а в другом случае какой-то дорогой тариф, например Domestic. 90% вероятности - что в этом причина различий.

 

(Кроме этого, цены в калькуляторе на сайте dpd.ru нужно смотреть после того как Вы авторизуетесь на сайте, потому что тариф у отдельных клиентов DPD могут отличаться в меньшую сторону от стандартного тарифа. Но это отклонение не в разы.)

 

Для проверки сделайте следующее:

Включите в настройках модуля Режим отладки. После этого на странице оформления заказа будет выводиться отладочный текст, типа:

 

"request" => array(
        "auth" => Array(
            "clientNumber" => '11111',
            "clientKey" => 'gfgdfgdfg'
        ), 
        "pickup" => Array(
            "countryCode" => "RU",
            "cityName" => "Пенза",
            "regionCode" => 58,
            "cityId" => 195841995 
        ),
        "delivery" => Array(
            "cityName" => "Новый Уренгой", 
            "countryCode" => "RU",
            "regionCode" => 89,
            "cityId" => 195912233
        ),
        "weight" => 0.9,
        "selfPickup" => 0,
        "selfDelivery" => 0,
        "declaredValue"    => 2600
    )

Обратите внимание на следующие параметры:

"weight" - вес в кг. Он должен совпадать с весом который Вы указываете в калькуляторе на сайте dpd.ru

"selfPickup" => 0, - (0 - означает что у Вас заказ забирает курьер DPD, 1 - означает что Вы сами доставляете груз к DPD)
"selfDelivery" => 0, - (0 - означает груз клиенту доставляет курьер DPD, 1 - означает что клиент сам забирает груз в отделении DPD)
"declaredValue"    => 2600 - объявленная ценность в рублях.

 

И еще может быть параметр:

'volume' => 0.111 - это объем груза в метрах квадратных 

 

Все эти параметры должны совпадать с тем что Вы указываете в калькуляторе.

--------

Если Вы сопоставили данные модуля и данные калькулятора и не смогли определить причину расхождения цены - то напишите мне в скайп kin154 после обеда.

 

 

Ссылка на комментарий
Поделиться на других сайтах

Проверял я для одного и того же метода доставки - DPD CLASSIC Parcel.

На сайте dpd из личного кабинета - после авторизации, разумеется - по ссылке калькулятор расчёта доставки.

Там для одних и тех же контрольных данных (забор от двери курьером DPD, доставка до двери) выдал в Вашем модуле 3369 с доставкой, 3180р с забором со склада DPD.

А на сайте dpd для этого метода показал калькулятор стоимость доставки до двери получателя чуть меньше 900 руб плюс примечание, что забор груза около 300 руб (насколько я помню - 298 руб было указано), т.е. в сумме около 1200 руб (чуть меньше). Довольно ощутимая разница с рассчитанной Вашим модулем 3369 руб.

Ссылка на комментарий
Поделиться на других сайтах


19 minutes ago, hunter14 said:

Проверял я для одного и того же метода доставки - DPD CLASSIC Parcel.

На сайте dpd из личного кабинета - после авторизации, разумеется - по ссылке калькулятор расчёта доставки.

Там для одних и тех же контрольных данных (забор от двери курьером DPD, доставка до двери) выдал в Вашем модуле 3369 с доставкой, 3180р с забором со склада DPD.

А на сайте dpd для этого метода показал калькулятор стоимость доставки до двери получателя чуть меньше 900 руб плюс примечание, что забор груза около 300 руб (насколько я помню - 298 руб было указано), т.е. в сумме около 1200 руб (чуть меньше). Довольно ощутимая разница с рассчитанной Вашим модулем 3369 руб.

 

В Система -> Локализация -> Валюты

Курс валюты по-умолчанию равен 1.0000 ?

 

Если да, то напишите мне в скайп (kin154), будем разбираться.

Ссылка на комментарий
Поделиться на других сайтах

24 minutes ago, hunter14 said:

Да, 1.00000000

И других валют, кроме рубля, нет в магазине.

 

Если у Вас есть возможность, то откройте в PhpMyAdmin таблицу dpd_cache, найдите там этот заказ (по городу доставки в колонке params) и скопируйте сюда то что в этой строке в колонках params и result

Ссылка на комментарий
Поделиться на других сайтах

Похоже, что Ваш модуль конфликтовал с подсказками заполнения адреса DaData - когда я их отключил, расчёт цен стал адекватных. Хотя подсказки отключать жалко - но, похоже , сырой модуль не Ваш, а именно подсказок.

Ссылка на комментарий
Поделиться на других сайтах


Приветствую.

версия 3.5

При отправке заявки на забор груза в DPD не подхватывается изменение доп. услуг - отправляется те, которые установлены по умолчанию.

Например: по умолчанию в настройках стоит "Ожидание на адресе - проверка на соответствие" - Перед отправкой заявки в селекте вручную выбираю "Отключено" - отправляю заявку на забор груза - выводится уведомление, что данная услуга не доступна при отправке в Казахстан, заказ на рассмотрении.

1. Почему не подхватилось в отправляемом массиве ОТКЛЮЧЕННАЯ доп. услуга "Ожидание на адресе"?

2. Изменение плательщика (кто оплачивает доставку) тоже не подхватывается - почему?

 

Из значений, установленных по умолчанию в настройках модуля не передается при отправке заявки на забор груза (отсутствует в данных заказа в личном кабинете DPD):

1. Объявленная ценность посылки.

2. Дополнительная информация (Инструкция для курьера)

3. Кто разместил заказ (вместо Фамилии пишет WS, вместо номера телефона пишет 00000000

4. Форма оплаты (в строке заказа отсутствует "Безналичный расчет" или "Наличный расчет" - строка пустая)

Изменено пользователем globaltrading
Ссылка на комментарий
Поделиться на других сайтах


13 minutes ago, kamar87 said:

Для Беларуси подойдет или нет?

 

Для Беларуси - подойдет.

API DPD который используется модулем считает доставку для четырех стран: Армения, Беларусь, Казахстан, Россия.

 

 

Ссылка на комментарий
Поделиться на других сайтах

2 часа назад, kin208 сказал:

 

Для Беларуси - подойдет.

API DPD который используется модулем считает доставку для четырех стран: Армения, Беларусь, Казахстан, Россия.

 

 

На демо сайте если выбрать Беларусь только фиксированная доставка...

Ссылка на комментарий
Поделиться на других сайтах


22 minutes ago, kamar87 said:

На демо сайте если выбрать Беларусь только фиксированная доставка...

 

Нужно корректно указывать название города и индекс.

Должно быть: https://yadi.sk/i/0A2mkoiu3Fxwic

Тогда отобразится: https://yadi.sk/i/JmyrXe0E3Fxws9

 

Ссылка на комментарий
Поделиться на других сайтах

6 минут назад, kin208 сказал:

 

Нужно корректно указывать название города и индекс.

Должно быть: https://yadi.sk/i/0A2mkoiu3Fxwic

Тогда отобразится: https://yadi.sk/i/JmyrXe0E3Fxws9

 

Обязательно должен быть указан вес товара в админке (габариты)?

Ссылка на комментарий
Поделиться на других сайтах


12 minutes ago, kamar87 said:

Обязательно должен быть указан вес товара в админке (габариты)?

 

Можно не указывать, если вот эти настройки прописаны в модуле https://yadi.sk/i/xTO0J3f13Fy4zg

Ссылка на комментарий
Поделиться на других сайтах

1 minute ago, juri79 said:

Ключ через сколько дней ждать ?

 

Ключ можно подключать сразу и ничего не ждать.

Там пост-проверка.

Ссылка на комментарий
Поделиться на других сайтах

10 hours ago, globaltrading said:

Приветствую.

версия 3.5

При отправке заявки на забор груза в DPD не подхватывается изменение доп. услуг - отправляется те, которые установлены по умолчанию.

Например: по умолчанию в настройках стоит "Ожидание на адресе - проверка на соответствие" - Перед отправкой заявки в селекте вручную выбираю "Отключено" - отправляю заявку на забор груза - выводится уведомление, что данная услуга не доступна при отправке в Казахстан, заказ на рассмотрении.

1. Почему не подхватилось в отправляемом массиве ОТКЛЮЧЕННАЯ доп. услуга "Ожидание на адресе"?

2. Изменение плательщика (кто оплачивает доставку) тоже не подхватывается - почему?

 

Из значений, установленных по умолчанию в настройках модуля не передается при отправке заявки на забор груза (отсутствует в данных заказа в личном кабинете DPD):

1. Объявленная ценность посылки.

2. Дополнительная информация (Инструкция для курьера)

3. Кто разместил заказ (вместо Фамилии пишет WS, вместо номера телефона пишет 00000000

4. Форма оплаты (в строке заказа отсутствует "Безналичный расчет" или "Наличный расчет" - строка пустая)

 

Добрый день,

 

вроде все починил.

 

Скачайте последнюю версию модуля (3.56) и перезалейте файлы из папки upload в корень сайта.

 

И проверяйте.

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.