Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Загадка с sale/order/addreward


Recommended Posts

Добрый день друзья, помогите узнать в чем может быть дело.

 

Работало.. работало добавление баллов с заказа и в один прекрасный момент перестало работать.

 

Конкретно, в информации о заказе (admin/index.php?route=sale/order/info), при нажатии на Добавить баллы (удалить баллы), не происходит ничего.

При открытии страницы через просмотр кода элемента(скрины прикрепил),  видна ошибка 404 Not Found POST запроса на admin/index.php?route=sale/order/addreward

 

А теперь загадка:

1. Перезалил файл шаблона/order_list.tpl

2. Перезалил контроллер/sale/order.php

3. Перезалил model/sale/order.php

4. Удалил файлы system/cach

5. Удалил файлы vqmod/vqcach/

 

И чуда не произошло.

 

Важно: 

В день начала проблем (и день до этого), никаких изменений на хостинге не производилось.

На локалхосте все работает. Паралельно на тестовом сервере все работает исправно и никаких проблем нет.

Подскажите, отгадать загадку?)

Версия 1.5.5.1.2

 

 

2017-04-09_20-12-29.png

2017-04-09_20-13-44.png

Змінено користувачем mesateri
Надіслати
Поділитися на інших сайтах


8 минут назад, mesateri сказал:

Паралельно на тестовом сервере все работает исправно и никаких проблем нет.

Этот сервер отдельно от основного или речь идёт о двух установках ОК рядом на одном сервере?

 

Посмотрите тело ответа, чтоб понять, 404 приходит от сервера или от ОК.

Ну, и проверьте на всякий случай, что метод addReward в /admin/controller/sale/order.php никуда не делся.

  • +1 1
Надіслати
Поділитися на інших сайтах


1 минуту назад, Dotrox сказал:

Этот сервер отдельно от основного или речь идёт о двух установках ОК рядом на одном сервере?

 

Посмотрите тело ответа, чтоб понять, 404 приходит от сервера или от ОК.

Ну, и проверьте на всякий случай, что метод addReward в /admin/controller/sale/order.php никуда не делся.

 

Да, сервер отдельно от основного находится.

 

Ответ приходит:

<!DOCTYPE html>
<html dir="ltr" lang="ru">
<head>
<meta charset="UTF-8" />

<meta name="format-detection" content = "telephone=no" />
<meta name="HandheldFriendly" content="True" />

<title>Запрашиваемая страница не найдена!</title>..........

 

Код присутствует:

	public function addReward() {
		$this->language->load('sale/order');
		
		$json = array();
    	
     	if (!$this->user->hasPermission('modify', 'sale/order')) {
      		$json['error'] = $this->language->get('error_permission'); 
    	} elseif (isset($this->request->get['order_id'])) {
			$this->load->model('sale/order');
						
			$order_info = $this->model_sale_order->getOrder($this->request->get['order_id']);
			
			if ($order_info && $order_info['customer_id']) {
				$this->load->model('sale/customer');

				$reward_total = $this->model_sale_customer->getTotalCustomerRewardsByOrderId($this->request->get['order_id']);
				
				if (!$reward_total) {
					$this->model_sale_customer->addReward($order_info['customer_id'], $this->language->get('text_order_id') . ' #' . $this->request->get['order_id'], $order_info['reward'], $this->request->get['order_id']);
					
					$json['success'] = $this->language->get('text_reward_added');
				} else {
					$json['error'] = $this->language->get('error_action'); 
				}
			} else {
				$json['error'] = $this->language->get('error_action');
			}
		}
		
		$this->response->setOutput(json_encode($json));
  	}

 

Надіслати
Поділитися на інших сайтах


16 минут назад, mesateri сказал:

Ответ приходит:

Ну, это ответ ОК, значит проблема таки в нём, а не в сервере.

 

17 минут назад, mesateri сказал:

Код присутствует:

Это оригинальный файл или из кеша vQmod?

Надіслати
Поділитися на інших сайтах


42 минуты назад, crapic сказал:

а в

vq2-admin_controller_sale_order.php

есть 

public function addReward() ?

Ух.. вот тут я обрадовался, так как этот пункт я не перепроверил. И подумал.. вот оно скорее всего решение проблемы, но не тут-то было)

В vq2-admin_controller_sale_order.php есть addReward... Сейчас сравню построчно, отличаются ли они, но думаю они будут идентичны.

Надіслати
Поділитися на інших сайтах


48 минут назад, Dotrox сказал:

Ну, это ответ ОК, значит проблема таки в нём, а не в сервере.

 

Это оригинальный файл или из кеша vQmod?

оригинальный, из кеша сравнил, они аналогичны. Пример из кеша:

 

Скрытый текст

    public function addReward() {
        $this->language->load('sale/order');
        
        $json = array();
        
         if (!$this->user->hasPermission('modify', 'sale/order')) {
              $json['error'] = $this->language->get('error_permission'); 
        } elseif (isset($this->request->get['order_id'])) {
            $this->load->model('sale/order');
                        
            $order_info = $this->model_sale_order->getOrder($this->request->get['order_id']);
            
            if ($order_info && $order_info['customer_id']) {
                $this->load->model('sale/customer');

                $reward_total = $this->model_sale_customer->getTotalCustomerRewardsByOrderId($this->request->get['order_id']);
                
                if (!$reward_total) {
                    $this->model_sale_customer->addReward($order_info['customer_id'], $this->language->get('text_order_id') . ' #' . $this->request->get['order_id'], $order_info['reward'], $this->request->get['order_id']);
                    
                    $json['success'] = $this->language->get('text_reward_added');
                } else {
                    $json['error'] = $this->language->get('error_action'); 
                }
            } else {
                $json['error'] = $this->language->get('error_action');
            }
        }
        
        $this->response->setOutput(json_encode($json));
      }

 

АПД. Перезалил оригинальные файлы контроллера и файл шаблона. Ошибка осталась..

Змінено користувачем mesateri
Надіслати
Поділитися на інших сайтах


10 минут назад, chukcha сказал:

Печалько!!!!!!

 

а куда обращается?

 

Код  с шаблона

 

function addreward(oid) {
    $.ajax({
        url: 'index.php?route=sale/order/addreward&token=<?php echo $token; ?>&order_id='+oid,
        type: 'post',

 

Обращение идет как и положено к папке админ

Request URL:
https://сайт/admin/index.php?route=sale/order/addreward&token=e8e3ded9715574cf0d44ddb8c0b26b9b&order_id=номер
 
Или не это имеется ввиду?
Надіслати
Поділитися на інших сайтах


17 минут назад, chukcha сказал:

Вторая печалька

 

Ребус с пичальками так и не отгадал :lol:

 

Что не так ? addreward с большой написать (addReward) надо в шаблоне? (function addReward(oid) {)  пробовал, не помогло или путь запроса url: https://сайт/admin/index.php?route=sale/order/addReward ?(не понял особого смысла, но тоже не помогло)

 

Можно подсказку в виде еще одной печальки? :unsure:

Надіслати
Поділитися на інших сайтах


ndex.php?route=sale/order/addreward

ndex.php?route=sale/order/addReward

 

не ищите проблему, там где ее нет

 

Обновите модификаторы
 

Надіслати
Поділитися на інших сайтах

Ответ пришел пришел оттуда, откуда совсем не ждали.

 

Хостер (втихаря) включил mod_security для аккаунта. После этого перестали работать бонусные баллы. 

Также (по моему мнению, не факт) при попытках начислить баллы (а кнопка нажималась достаточно часто), мой IP сервером был заблокирован (Ответ хостераВ логах, комментарий к записи о блокировке, как о множественных попытках авторизации с неверными данными.  )

 

Когда mod_security  для аккаунта (сервера) отключили, бонусные баллы стали начисляться как и положено.

 

Всем огромная благодарность за помощь. Натолкнули на идеи и не оставили в беде).

 

Змінено користувачем mesateri
Надіслати
Поділитися на інших сайтах


Гы..

Не...
Я думаю из-за ленивости хостера настроить правильно фильтры мода

например 1=1 - для него это fail

Надіслати
Поділитися на інших сайтах

В принципе, ответ был дан чуть ранее, когда был показан ответ сервера

 

Где в html шапке не было ничего опенкартовского

Надіслати
Поділитися на інших сайтах

1 минуту назад, chukcha сказал:

Где в html шапке не было ничего опенкартовского

Мне как раз наоборот показалось, что это именно ответ ОК. Хотя этого куска и было мало, чтоб что-то понять, но эти мета-теги и русский тайтл.

Я рассчитывал, что если там ошибка сервера, то будет что-то стандартное от nginx или Apache.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.