status zakaza

Автор dragonaze, 24 июня 2015, 16:46:31

« назад - далее »

dragonaze

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));

Mr.Sen

Кеш очистить нужно. Если в модули используете кеширование шаблона, то добавить очистку кеша при изменении.

dragonaze

Цитата: Mr.Sen от 24 июня 2015, 17:04:45
Кеш очистить нужно. Если в модули используете кеширование шаблона, то добавить очистку кеша при изменении.

kak budet kod?

mistral


dragonaze

Цитата: mistral от 30 июня 2015, 09:52:10
Tools::clearSmartyCache();
no on u mena otkluchen po defoltu. udalil ves cache papki ot smarty, no opyat vishli te oshibki.

DarinSr

Это предупреждение означает, что какой-то модуль прикрепленный к хуку actionOrderStatusUpdate не может получить доступ к файлу.
Нужно найти все модули, которые запускаются в этом хуке и отключить не нужные.

PrestaMan

Модуль свой отключите, проверьте. Если ошибка остлась, значит что-то не правльно в модуле. Если исчезнет, значить ищите в других (как написал DarinSr).
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

dragonaze

Цитата: DarinSr от 30 июня 2015, 10:22:52
Это предупреждение означает, что какой-то модуль прикрепленный к хуку actionOrderStatusUpdate не может получить доступ к файлу.
Нужно найти все модули, которые запускаются в этом хуке и отключить не нужные.

actionOrderStatusUpdate  ? qde lejit method?

PrestaMan

Нигде он лежит. Методы определены в классах.
Включите режим отладки так сможете определить что вызывает ошибку.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

PrestaMan

Можете зайти в админке в расположение блоков, включить показ не позиционируемые хуки, найти хук actionOrderStatusUpdate и посмотреть какие модули висят на этом хуке.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

mAgency

Была такая тема по смене статуса чарез 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 ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Миколас

Цитата: mAgency от 30 июня 2015, 11:05:33
Была такая тема по смене статуса чарез 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();

Уважаемый, можно подробнее про дин.хуки. Очень нужно, а информации почти нет. Заранее спасибо.

dragonaze

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
{

}

}
}
}
?>

PrestaMan

По одному файлу не понять логики работы. Разбираться что и как должно работать никто не будет.
Для разработки модулей используйте github.com. Это же социальная сеть для разработчиков. Создайте репозитарий для своего модуля, выложите ссылку на форуме. 
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

dragonaze

Цитата: PrestaMan от 30 июня 2015, 13:29:43
По одному файлу не понять логики работы. Разбираться что и как должно работать никто не будет.
Для разработки модулей используйте github.com. Это же социальная сеть для разработчиков. Создайте репозитарий для своего модуля, выложите ссылку на форуме.

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