Русская поддержка интернет-магазина PrestaShop
русская поддержка PrestaShop.
Регистрация
Забыли пароль?
Главная
Возможности
Демо
Скачать
Каталог магазинов
Форум
Модули и шаблоны
Администрирование
Реклама и маркетинг
Аналитика и статистика
Оплата и платежные системы
Управление контентом
Экспорт
Фронт-офис
Локализация
Торговые площадки
Управление товарами
Средства миграции
Оформление заказа
Поиск и фильтры
Доставка и логистика
Слайд-шоу
Социальные сети
Модификаторы
Шаблоны PrestaShop
Работа
Главная
Форум
Общие форумы (prestashop v1.5.x)
Общий форум
Отслеживание посылок
Отслеживание посылок
Dmit84
Cпециалист
Сообщений: 226
Регистрация: 16-07-2012
# 1
15-11-2012 22:23
Подскажите можно как нибудь автоматизировать процесс смена статуса заказа по отслеживанию посылки (по шпи). Есть вот такой скрипт который парсер шпи в массивы забитые вручную, можно как нибудь привязать этот скрипт к престе чтоб автоматом парсер и менял статус заказа?
<?
// Массив с трек-номерами посылок
// заполняйте его по аналогии трек-номерами своих посылок
$codes=array('RA111111111CN', 'RA222222222CN', 'RA33333333CN');
// Массив с результатами отслеживания
$status=array();
$link='
http://www.russianpost.ru/resp_engine.aspx?Path='
.
'rp/servise/ru/home/postuslug/trackingpo';
foreach ($codes as $code) {
// Подготовка запроса cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'entryBarCode='.$code.
'&BarCode='.$code.'&searchsign=1');
// Отправка POST-запроса на сервер и получение страницы результата
$grab=curl_exec($ch);
if (eregi('value="([0-9]+)"',$grab,$pocket)) {
// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'key='.$pocket[1]);
// загрузка страницы
$grab=curl_exec($ch);
// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'entryBarCode='.$code.
'&BarCode='.$code.'&searchsign=1');
// загрузка страницы
$grab=curl_exec($ch);
}
// Фикс кодировки полученной страницы
$grab=mb_convert_encoding($grab, 'Windows-1251', 'UTF-8');
// Небольшой фикс для упрощения парсинга страницы
$grab=eregi_replace('<a href=javascript\:Wind\([^\(]*\)>','',$grab);
preg_match_all('/<tr align="center"><td>([^<]+)<\/td><td>([^<]+)'.
'<\/td><td>[^<]*<\/td><td>([^<]+)<\/td><td>([^<]*)<\/td>/',$grab,$matches);
$st=array();
$st['code']=$code;
// Если получен какой-то результат
if (count($matches[1])) {
// Последнее действие
if ($matches[4][count($matches[1])-1]) {
$st['action']=$matches[4][count($matches[1])-1];
}
else {
$st['action']=$matches[1][count($matches[1])-1];
}
// Дата последнего действия
$st['date']=$matches[2][count($matches[1])-1];
// Местонахождение посылки
$st['where']=$matches[3][count($matches[1])-1];
}
// Ошибка на сервере или статус посылки еще не определен
else {
$st['action']='Неизвестно';
$st['date']='--';
$st['where']='--';
}
// Записать результат в массив
$status[]=$st;
curl_close($ch);
}
// Теперь в массиве $status содержится информация по всем посылкам
var_dump($status);
?>
На Главную форума
Найти
FaQ
Панель управления
Кто он-лайн
Общие форумы (prestashop v1.7.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Модули, плагины
-- Дизайн, шаблоны
-- Песочница
Общие форумы (prestashop v1.6.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Модули, плагины
-- Дизайн, шаблоны
-- Песочница
Общие форумы (prestashop v1.5.x)
-- Общий форум
Общие форумы (prestashop v1.4.x)
-- Новости и объявления
-- Общий форум
-- Установка, Настройка, Обновление
-- Дизайн, шаблоны
-- Модули, плагины
-- Песочница
-- Прочее
Общие форумы (prestashop v1.3.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Дизайн, шаблоны
-- Модули, плагины
---- Платные модули и хаки
-- Песочница
Другое
-- Корзина
---- Хостинг
---- Каталог магазинов
---- Общий форум
---- Прием багов