Jump to content
Sign in to follow this  
mesateri

[Решено] Загадка с 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

Edited by mesateri

Share this post


Link to post
Share on other sites
8 минут назад, mesateri сказал:

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

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

 

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

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

  • +1 1

Share this post


Link to post
Share on other sites
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));
  	}

 

Share this post


Link to post
Share on other sites

а в

vq2-admin_controller_sale_order.php

есть 

public function addReward() ?

  • +1 1

Share this post


Link to post
Share on other sites
16 минут назад, mesateri сказал:

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

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

 

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

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

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

Share this post


Link to post
Share on other sites
42 минуты назад, crapic сказал:

а в

vq2-admin_controller_sale_order.php

есть 

public function addReward() ?

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

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

Share this post


Link to post
Share on other sites
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));
      }

 

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

Edited by mesateri

Share this post


Link to post
Share on other sites
1 час назад, mesateri сказал:

addReward

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

 

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

Share this post


Link to post
Share on other sites
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=номер
 
Или не это имеется ввиду?

Share this post


Link to post
Share on other sites
30 минут назад, mesateri сказал:

addreward

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

Share this post


Link to post
Share on other sites
17 минут назад, chukcha сказал:

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

ndex.php?route=sale/order/addreward

ndex.php?route=sale/order/addReward

 

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

 

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

Share this post


Link to post
Share on other sites
42 минуты назад, chukcha сказал:

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

Не перегревайся, ещё рано :) В пыхе названия методов регистронезависимы.

Share this post


Link to post
Share on other sites

Та ладно :(

Упс...  (во поперло!) :(

 

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

 

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

 

Edited by mesateri

Share this post


Link to post
Share on other sites

Гы..

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites
1 минуту назад, chukcha сказал:

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.