Автор Тема: status zakaza  (Прочитано 272 раз)

24 Июня 2015, 16:46:31
  • Фрилансер
  • *
  • Сообщений: 118
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Privet,

Napisal script dlya izmeneniya statusa zakaza. vrode vse normalno, status menyaetsa, no poluchayu nijeukazannayu oshibku:

Warning: touch() [function.touch]: Unable to create file /home/p96606/www/domains.az/prestashop/cache/push/trends because No such file or directory in /home/p96606/www/domains.az/prestashop/classes/Tools.php on line 2995

ispolzoval sleduyushiy kod:

$objOrder = new Order($id_ORDER2);
$history = new OrderHistory();
$history->id_order = (int)$objOrder->id;
$history->changeIdOrderState(20, (int)($objOrder->id));
24 Июня 2015, 17:04:45
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1195
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Кеш очистить нужно. Если в модули используете кеширование шаблона, то добавить очистку кеша при изменении.
29 Июня 2015, 21:55:15
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 118
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Кеш очистить нужно. Если в модули используете кеширование шаблона, то добавить очистку кеша при изменении.

kak budet kod?
30 Июня 2015, 09:52:10
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Tools::clearSmartyCache();
30 Июня 2015, 10:10:05
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 118
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Tools::clearSmartyCache();
no on u mena otkluchen po defoltu. udalil ves cache papki ot smarty, no opyat vishli te oshibki.
30 Июня 2015, 10:22:52
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 85953
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это предупреждение означает, что какой-то модуль прикрепленный к хуку actionOrderStatusUpdate не может получить доступ к файлу.
Нужно найти все модули, которые запускаются в этом хуке и отключить не нужные.
30 Июня 2015, 10:25:23
Ответ #6
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 20838
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Модуль свой отключите, проверьте. Если ошибка остлась, значит что-то не правльно в модуле. Если исчезнет, значить ищите в других (как написал DarinSr).
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Июня 2015, 10:39:56
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 118
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это предупреждение означает, что какой-то модуль прикрепленный к хуку actionOrderStatusUpdate не может получить доступ к файлу.
Нужно найти все модули, которые запускаются в этом хуке и отключить не нужные.

actionOrderStatusUpdate  ? qde lejit method?
30 Июня 2015, 10:47:40
Ответ #8
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 20838
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Нигде он лежит. Методы определены в классах.
Включите режим отладки так сможете определить что вызывает ошибку.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Июня 2015, 10:49:15
Ответ #9
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 20838
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Можете зайти в админке в расположение блоков, включить показ не позиционируемые хуки, найти хук actionOrderStatusUpdate и посмотреть какие модули висят на этом хуке.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Июня 2015, 11:05:33
Ответ #10
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Была такая тема по смене статуса чарез actionOrderStatusUpdate. Писали что применение этого хука вызывало ошибку. В prestashop советывали использовать Dynamic Hook. Для смены стататуса в истории заказов hookActionObjectOrderHistoryAddAfter
public function hookActionObjectOrderHistoryAddAfter($params)
{
        $orderHistory = $params['object'];
        $order = new Order($orderHistory->id_order);
        if ($order->getCurrentState() == $this->old_state)
        {
                $orderHistory->changeIdOrderState($this->new_state, $order);
                $orderHistory->add();
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
30 Июня 2015, 11:35:20
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 2169
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Была такая тема по смене статуса чарез actionOrderStatusUpdate. Писали что применение этого хука вызывало ошибку. В prestashop советывали использовать Dynamic Hook. Для смены стататуса в истории заказов hookActionObjectOrderHistoryAddAfter
public function hookActionObjectOrderHistoryAddAfter($params)
{
        $orderHistory = $params['object'];
        $order = new Order($orderHistory->id_order);
        if ($order->getCurrentState() == $this->old_state)
        {
                $orderHistory->changeIdOrderState($this->new_state, $order);
                $orderHistory->add();
Уважаемый, можно подробнее про дин.хуки. Очень нужно, а информации почти нет. Заранее спасибо.
30 Июня 2015, 11:35:47
Ответ #12
  • Фрилансер
  • *
  • Сообщений: 118
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Posmotrite pojaluysta cto tam takogo. Vot moy kod:
<?
class MyCheckoutBackUrlModuleFrontController extends ModuleFrontController
{
public function postProcess()
{
$authorized = false;
foreach (Module::getPaymentModules() as $module)
if ($module['name'] == 'mycheckout')
{
$authorized = true;
break;
}
if (!$authorized)
die($this->module->l('This payment method is not available.', 'backurl'));

$insideReference = Tools::getValue('reference');

$sql_select = "SELECT * FROM ps_paymenthere WHERE reference='{$insideReference}' AND used=0";


if ($row = Db::getInstance()->getRow($sql_select))
{
$data = "mid=".$row['mid']."&reference=".$row['reference']."";

$myCurl = curl_init();
curl_setopt_array($myCurl, array(
CURLOPT_URL => 'http://test.paymenthere.az:8848/gateway/payment/status?',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $data
));

$response = curl_exec($myCurl);
curl_close($myCurl); 

$xml = simplexml_load_string($response);

$status_zakaza = "";

if ($xml->rc==000 && $xml->code==0)
{
$id_ORDER2 = $row['id_order'];

$objOrder = new Order($id_ORDER2); //order with id=1
$history = new OrderHistory();
$history->id_order = (int)$objOrder->id;
$history->changeIdOrderState(20, (int)($objOrder->id)); //order status=3

$status_zakaza = "OK";
}
else
{

}

}
}
}
?>
30 Июня 2015, 13:29:43
Ответ #13
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 20838
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
По одному файлу не понять логики работы. Разбираться что и как должно работать никто не будет.
Для разработки модулей используйте github.com. Это же социальная сеть для разработчиков. Создайте репозитарий для своего модуля, выложите ссылку на форуме. 
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Июня 2015, 13:47:34
Ответ #14
  • Фрилансер
  • *
  • Сообщений: 118
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
По одному файлу не понять логики работы. Разбираться что и как должно работать никто не будет.
Для разработки модулей используйте github.com. Это же социальная сеть для разработчиков. Создайте репозитарий для своего модуля, выложите ссылку на форуме.

ya ponimayu, budu tam zaregistrovatsa.  no xotya bi skajite dlya validatsii podxodit etot kod,  hook pravilno vibran  ili net?