vanina200988 0 Опубликовано 1 августа, 2015 Жалоба Share Опубликовано 1 августа, 2015 Не считает модуль сколько будет доставка в чем может быть проблема? модуль почты росии считает только вот этот RussianPostCalc но в него нельзя добавить дополнительную сумму Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 августа, 2015 Жалоба Share Опубликовано 1 августа, 2015 Вес указан у товара?! Регион выбирается при оформлении заказа?! Модуль всё равно точно считать не будет, так что я б за точностью подсчёт не глался, а использовать тот же RussianPostCalc Ссылка на сообщение Поделиться на другие сайты
vanina200988 0 Опубликовано 1 августа, 2015 Автор Жалоба Share Опубликовано 1 августа, 2015 RussianPostCalc я рад его использовать он точно считает но не добавить к сумме 130 рублей или както можно вписать чтобы он добовлял, по поводу модуля почты росии то вес указан регионы забиты и выбираются зоны тоже выбираются и забиты но не читает . Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 августа, 2015 Жалоба Share Опубликовано 1 августа, 2015 Почему не добавить?! Откройте файл /app/Plugin/Shipping/Controller/RussianPostCalController.php и поменяйте строку: return $shipping_cost; на: return $shipping_cost+130; Ссылка на сообщение Поделиться на другие сайты
vanina200988 0 Опубликовано 1 августа, 2015 Автор Жалоба Share Опубликовано 1 августа, 2015 спасибо Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 августа, 2015 Жалоба Share Опубликовано 1 августа, 2015 Не за что, я правда не пробовал этот код, но, по идее, должно работать, т.е. к той стоимости, что рассчитывает сервис russianpostcal.ru добваляется 130 Ссылка на сообщение Поделиться на другие сайты
vanina200988 0 Опубликовано 1 августа, 2015 Автор Жалоба Share Опубликовано 1 августа, 2015 не могу найти <?php /* ----------------------------------------------------------------------------------------- VamShop - http://vamshop.com ----------------------------------------------------------------------------------------- Copyright (c) 2014 VamSoft Ltd. License - http://vamshop.com/license.html ---------------------------------------------------------------------------------------*/App::uses('ShippingAppController', 'Shipping.Controller'); class RussianPostCalcController extends ShippingAppController { public $uses = array('ShippingMethod'); public $module_name = 'RussianPostCalc'; public $icon = 'russianpost.png'; public function settings () { $this->set('data', $this->ShippingMethod->findByCode($this->module_name)); } public function install() { $new_module = array(); $new_module['ShippingMethod']['active'] = '1'; $new_module['ShippingMethod']['default'] = '0'; $new_module['ShippingMethod']['name'] = Inflector::humanize($this->module_name); $new_module['ShippingMethod']['icon'] = $this->icon; $new_module['ShippingMethod']['code'] = $this->module_name; $new_module['ShippingMethodValue'][0]['shipping_method_id'] = $this->ShippingMethod->id; $new_module['ShippingMethodValue'][0]['key'] = 'api_key'; $new_module['ShippingMethodValue'][0]['value'] = 'russianpostcalc.ru'; $new_module['ShippingMethodValue'][1]['shipping_method_id'] = $this->ShippingMethod->id; $new_module['ShippingMethodValue'][1]['key'] = 'api_password'; $new_module['ShippingMethodValue'][1]['value'] = 'russianpostcalc.ru'; $new_module['ShippingMethodValue'][2]['shipping_method_id'] = $this->ShippingMethod->id; $new_module['ShippingMethodValue'][2]['key'] = 'store_zip_code'; $new_module['ShippingMethodValue'][2]['value'] = '101000'; $this->ShippingMethod->saveAll($new_module); $this->Session->setFlash(__('Module Installed')); $this->redirect('/shipping_methods/admin/'); } public function uninstall() { $module_id = $this->ShippingMethod->findByCode($this->module_name); $this->ShippingMethod->delete($module_id['ShippingMethod']['id'], true); $this->Session->setFlash(__('Module Uninstalled')); $this->redirect('/shipping_methods/admin/'); } public function calculate () { global $order; $api_key = $this->ShippingMethod->ShippingMethodValue->find('first', array('conditions' => array('key' => 'api_key'))); $api_key = $api_key['ShippingMethodValue']['value']; $api_password = $this->ShippingMethod->ShippingMethodValue->find('first', array('conditions' => array('key' => 'api_password'))); $api_password = $api_password['ShippingMethodValue']['value']; $store_zip_code = $this->ShippingMethod->ShippingMethodValue->find('first', array('conditions' => array('key' => 'store_zip_code'))); $store_zip_code = $store_zip_code['ShippingMethodValue']['value']; $total_weight = 0; foreach($order['OrderProduct'] AS $products) { $total_weight += (int) $products['weight']*$products['quantity']; } //запрос расчета стоимости отправления из 101000 МОСКВА во ВЛАДИМИР 600000. $ret = $this->russianpostcalc_api_calc($api_key, $api_password, $store_zip_code, $order['Order']['bill_zip'], $total_weight, $order['Order']['total']); //if (isset($ret['msg']['type']) && $ret['msg']['type'] == "done") //{ //echo "success! codepage: UTF-8 <br/>"; //print_r($ret); //echo "<br/>"; //}else //{ //echo "error! codepage: UTF-8 <br/>"; //print_r($ret); //echo "<br/>"; //} return $ret['calc'][1]['cost']; } public function before_process() { } private function _russianpostcalc_api_communicate($request){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://russianpostcalc.ru/api_v1.php"); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $request); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($curl); curl_close($curl); if($data === false) { return "10000 server error"; } $js = json_decode($data, $assoc=true); return $js;} private function russianpostcalc_api_calc($apikey, $password, $from_index, $to_index, $weight, $ob_cennost_rub){ $request = array("apikey"=>$apikey, "method"=>"calc", "from_index"=>$from_index, "to_index"=>$to_index, "weight"=>$weight, "ob_cennost_rub"=>$ob_cennost_rub ); if ($password != "") { //если пароль указан, аутентификация по методу API ключ + API пароль. $all_to_md5 = $request; $all_to_md5[] = $password; $hash = md5(implode("|", $all_to_md5)); $request["hash"] = $hash; } $ret = $this->_russianpostcalc_api_communicate($request); return $ret;} } ?> Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 августа, 2015 Жалоба Share Опубликовано 1 августа, 2015 У меня вот такой файл, используйте его. RussianPostCalcController.php Ссылка на сообщение Поделиться на другие сайты
vanina200988 0 Опубликовано 2 августа, 2015 Автор Жалоба Share Опубликовано 2 августа, 2015 спасибо заработало Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 августа, 2015 Жалоба Share Опубликовано 2 августа, 2015 Не за что Ссылка на сообщение Поделиться на другие сайты
vanina200988 0 Опубликовано 27 августа, 2015 Автор Жалоба Share Опубликовано 27 августа, 2015 Александр как вписать паспортные данные ? API. Метод print_f116. Печать сопроводительного бланка ф.116 Доступ с аутентификацией по API ключу + API паролю. Все аргументы запроса обязательны. Аргументы запроса [in] apikey API ключ Вашего аккаунта. [in] method print_f116 [in] f116_onepage Значение 1 или 0. Если 1, то форма 116 печатается на 1 листе А4, иначе на двух листах А5 [in] print0 Значение 1 или 0. Если 1, то нулевая объявленная ценность и наложенный платеж печатается как 0 руб., иначе остается пустое место [in] list Массив данных о почтовых отправлениях закодированный JSON. Данные параметры печатаются без проверки. Что введено, то будет напечатано. Указывайте телефонный номер для отправления уведомлений по СМС, по факту прихода отправления в почтовое отделение (в разработке) 'from_country' - страна места отправления 'from_index' - почтовый индекс места отправления 'from_state' - область/регион 'from_city' - город/населенный пункт 'from_addr' - обратный адрес отправителя (улица, дом, квартира/офис) 'from_fio' - ФИО или наименование организации отправителя 'p_seriya' - серия паспорта 'p_nomer' - номер паспорта 'p_vidan' - дата выдачи (формат: ДД.ММ.ГГГГ) 'p_vidal' - наименования учреждения выдавшего паспорт 'to_country' - страна места получения 'to_index' - почтовый индекс получателя 'to_state' - область/регион 'to_city' - город/населенный пункт 'to_addr' - адрес получателя (улица, дом, квартира/офис) 'to_fio' - ФИО или наименование организации получателя 'to_tel' - телефонный номер получателя (формат: +7XXXXXXXXXX, 8XXXXXXXXXX, 7XXXXXXXXXX) 'order_id' - номер заказа (в Вашей системе учета) 'ob_cennost_rub' - сумма объявленной ценности 'nalogka_rub' - сумма наложенного платежа [in] hash Обязательный аргумент Аргументы ответа В случае успеха, будет возвращена ссылка на сгенерированный PDF файл печати бланка. Все отправления из массива list будут распечатаны в одном PDF файле. Ссылка действительна 24 часа. [out] msg Сообщение о выполнении действия в виде массива с ключами. 'type' - тип сообщения (error - ошибка, done - успешно). 'text' - текстовое сообщение. [out] link Ссылка на PDF файл. PHP скрипт - пример, вызова метода print_f116 Будет доступен после регистрации. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 27 августа, 2015 Жалоба Share Опубликовано 27 августа, 2015 (изменено) Александр как вписать паспортные данные ? API. Метод print_f116. Печать сопроводительного бланка ф.116 Доступ с аутентификацией по API ключу + API паролю. Все аргументы запроса обязательны. Аргументы запроса [in] apikey API ключ Вашего аккаунта. [in] method print_f116 [in] f116_onepage Значение 1 или 0. Если 1, то форма 116 печатается на 1 листе А4, иначе на двух листах А5 [in] print0 Значение 1 или 0. Если 1, то нулевая объявленная ценность и наложенный платеж печатается как 0 руб., иначе остается пустое место [in] list Массив данных о почтовых отправлениях закодированный JSON. Данные параметры печатаются без проверки. Что введено, то будет напечатано. Указывайте телефонный номер для отправления уведомлений по СМС, по факту прихода отправления в почтовое отделение (в разработке) 'from_country' - страна места отправления 'from_index' - почтовый индекс места отправления 'from_state' - область/регион 'from_city' - город/населенный пункт 'from_addr' - обратный адрес отправителя (улица, дом, квартира/офис) 'from_fio' - ФИО или наименование организации отправителя 'p_seriya' - серия паспорта 'p_nomer' - номер паспорта 'p_vidan' - дата выдачи (формат: ДД.ММ.ГГГГ) 'p_vidal' - наименования учреждения выдавшего паспорт 'to_country' - страна места получения 'to_index' - почтовый индекс получателя 'to_state' - область/регион 'to_city' - город/населенный пункт 'to_addr' - адрес получателя (улица, дом, квартира/офис) 'to_fio' - ФИО или наименование организации получателя 'to_tel' - телефонный номер получателя (формат: +7XXXXXXXXXX, 8XXXXXXXXXX, 7XXXXXXXXXX) 'order_id' - номер заказа (в Вашей системе учета) 'ob_cennost_rub' - сумма объявленной ценности 'nalogka_rub' - сумма наложенного платежа [in] hash Обязательный аргумент Аргументы ответа В случае успеха, будет возвращена ссылка на сгенерированный PDF файл печати бланка. Все отправления из массива list будут распечатаны в одном PDF файле. Ссылка действительна 24 часа. [out] msg Сообщение о выполнении действия в виде массива с ключами. 'type' - тип сообщения (error - ошибка, done - успешно). 'text' - текстовое сообщение. [out] link Ссылка на PDF файл. PHP скрипт - пример, вызова метода print_f116 Будет доступен после регистрации. Добавил. Вот исправленный файл /app/View/Helpers/PrintFormsHelper.php PrintFormsHelper.php Изменено 27 августа, 2015 пользователем VaM Ссылка на сообщение Поделиться на другие сайты
vanina200988 0 Опубликовано 27 августа, 2015 Автор Жалоба Share Опубликовано 27 августа, 2015 спасибо большое !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 27 августа, 2015 Жалоба Share Опубликовано 27 августа, 2015 Не за что. Вроде ведь не было раньше паспорта у russianpostcalc.ru, во всяком случае когда модуль делал. Ссылка на сообщение Поделиться на другие сайты
vanina200988 0 Опубликовано 27 августа, 2015 Автор Жалоба Share Опубликовано 27 августа, 2015 нет было я помню обращал внимание но вы не в писали в модуль. Спасибо большое все работает Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 27 августа, 2015 Жалоба Share Опубликовано 27 августа, 2015 (изменено) Понятно, может проспустил этот момент. PrintFormsHelper.php Изменено 27 августа, 2015 пользователем VaM Ссылка на сообщение Поделиться на другие сайты
Алексей Павлов 0 Опубликовано 24 сентября, 2015 Жалоба Share Опубликовано 24 сентября, 2015 На сайте RussianPostCalc есть рассвет обычной посылки и посылки 1 класса. Есть ли возможность реализовать эту функцию в VamShop? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 сентября, 2015 Жалоба Share Опубликовано 24 сентября, 2015 На сайте RussianPostCalc есть рассвет обычной посылки и посылки 1 класса. Есть ли возможность реализовать эту функцию в VamShop? В /app/Plugin/Shipping/Controller/RussianPostCalcController.php поменяйте: return $ret['calc'][0]['cost']; на: return $ret['calc'][1]['cost']; или наоборот, 1 на 0 Ссылка на сообщение Поделиться на другие сайты
Алексей Павлов 0 Опубликовано 24 сентября, 2015 Жалоба Share Опубликовано 24 сентября, 2015 А можно как то сделать второй способ доставки RussianPostCalc, чтобы было в магазине оба: обычная посылка и посылка 1 класса? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 сентября, 2015 Жалоба Share Опубликовано 24 сентября, 2015 Можно, делайте клон модуля, в одному пишите return $ret['calc'][0]['cost']; в другом return $ret['calc'][1]['cost']; Ссылка на сообщение Поделиться на другие сайты
Алексей Павлов 0 Опубликовано 24 сентября, 2015 Жалоба Share Опубликовано 24 сентября, 2015 Не подскажете как клон сделать? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 сентября, 2015 Жалоба Share Опубликовано 24 сентября, 2015 Делать копию файлов в /app/Plugin/Shipping/ В папках Controller и View например копируя RussianPostCalc в RussianPostCalca и внутри файла меняя RussianPostCalc на RussianPostCalca Ссылка на сообщение Поделиться на другие сайты
Алексей Павлов 0 Опубликовано 24 сентября, 2015 Жалоба Share Опубликовано 24 сентября, 2015 Пишет ошибку: Not Found Error: The requested address '/shipping/RussianPostCalca/install/' was not found on this server. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 сентября, 2015 Жалоба Share Опубликовано 24 сентября, 2015 Значит не создали файл RussianPostCalcaController.php файл, либо внутри файла не исправили код названия класса на RussianPostCalca Ссылка на сообщение Поделиться на другие сайты
Алексей Павлов 0 Опубликовано 9 октября, 2015 Жалоба Share Опубликовано 9 октября, 2015 В /app/Plugin/Shipping/Controller/RussianPostCalcController.php поменяйте: return $ret['calc'][0]['cost']; на: return $ret['calc'][1]['cost']; или наоборот, 1 на 0 Установил себе файл, который вы выкладывали выше и не нашел такую строчку. Нашел if (isset($ret['calc']) && $ret['calc'][1]['cost'] > 0) { $shipping_cost = $ret['calc'][1]['cost']; Поменял нули на единицы, и теперь у меня разница в обычной отправке и отправке 1 классом всего 2 рубля, хотя на их сайте считает по-другому. Подскажите что не так делаю? Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения