Ошибка при работе с заказами


dremora
 Поделиться

Рекомендуемые сообщения

Здравствуйте!

При переводе магазина на https при просмотре заказа вылезает ошибка

[Exception... "<no message>"  nsresult: "0x805e0006 (<unknown>)"  location: "JS frame :: https://adresmagazina.ru/admin/view/javascript/jquery/jquery-2.1.1.min.js :: .send :: line 4"  data: no]

 

Что это такое и как побороть?

Ссылка на комментарий
Поделиться на других сайтах

Пишет, что на странице есть незащищенный контент. При просмотре исходного кода страницы у некоторых ajax запросов ссылки формата http, а не https. В исходнике там присутствует $store_url, почему-то она содержит http.

Ссылка на комментарий
Поделиться на других сайтах

Да. Все открывается и работает по https, проблема именно на странице с заказами, при их просмотре.

Ссылка на комментарий
Поделиться на других сайтах

так, еще раз

config.php

admin/config.php

HTTP_SERVER

HTTP_CATALOG

HTTPS_SERVER

HTTPS_CATALOG

 

в админке работаете по https

 

осталось последнее предположение и сдаюсь

настройки магазина - сервер - "Использовать SSL"

Ссылка на комментарий
Поделиться на других сайтах

потому что дальше надо лезть на сервер смотреть файлы, в частности сео, если включен, и хтаксесс

Ссылка на комментарий
Поделиться на других сайтах

Вот и я сдался и сюда написал, так как все везде прописано и включено. Сомнительно, что сео влияет на работу админки.

Ссылка на комментарий
Поделиться на других сайтах

отнюдь

запрос идет к api/login, который, как и любая другая ссылка фронта, может быть обработана сео-модулем

Ссылка на комментарий
Поделиться на других сайтах

ясно, посмотрю в эту сторону. Попробовал жестко прописать вместо <?php echo $store_url; ?> нужный адрес с https все заработало. Уфф, буду разбираться. Спасибо за содействие.

Ссылка на комментарий
Поделиться на других сайтах

Посмотрел базу. В таблице oc_order в поле store_url адрес попадает с http, видимо поэтому и ошибка. Интересно, как он туда попадает?

Ссылка на комментарий
Поделиться на других сайтах

в БД пишется адрес магазина на момент создания заказа

 

внесите эти правки

 

admin/controller/sale/order.php

 

находим

$data['store'] = HTTPS_CATALOG;

меняем на

$data['store'] = $this->config->get('config_secure')?HTTPS_CATALOG:HTTP_CATALOG;

 

находим

'href'     => HTTP_CATALOG

меняем на

'href'     => $this->config->get('config_secure')?HTTPS_CATALOG:HTTP_CATALOG

 

перед

 			$data['header'] = $this->load->controller('common/header');
 			$data['column_left'] = $this->load->controller('common/column_left');
 			$data['footer'] = $this->load->controller('common/footer');
 
 			$this->response->setOutput($this->load->view('sale/order_info.tpl', $data));

добавляем

$data['store'] = $this->config->get('config_secure')?HTTPS_CATALOG:HTTP_CATALOG;

 

 

admin/view/template/sale/order_info.tpl

 

находим

url: '<?php echo $store_url; ?>index.php?route=api/login',

меняем на

url: '<?php echo $store; ?>index.php?route=api/login',

 

находим

url: '<?php echo $store_url; ?>index.php?route=api/order/history&token=' + token + '&order_id=<?php echo $order_id; ?>',

меняем на

url: '<?php echo $store; ?>index.php?route=api/order/history&token=' + token + '&order_id=<?php echo $order_id; ?>',

 

надеюсь, в последующих версиях данная проблема будет устранена, файлы просто перезапишете с обновлением

Ссылка на комментарий
Поделиться на других сайтах

Проблему решил немного иначе. Докопался до того, что у меня была пуста таблица  "oc_store". И если там данных нет, то подставляется в заказе адрес с http. Добавил туда строку, где указал  адрес магазина с https и все новые заказы стали уже с правильным адресом.

Ссылка на комментарий
Поделиться на других сайтах

45 минуты назад, dremora сказал:

Проблему решил немного иначе. Докопался до того, что у меня была пуста таблица  "oc_store". И если там данных нет, то подставляется в заказе адрес с http. Добавил туда строку, где указал  адрес магазина с https и все новые заказы стали уже с правильным адресом.

для того, чтобы у новых заказов был адрес сайта правильный, у вас уже все сделано, т.е. в config.php явно задана константа HTTP_SERVER как https://вашмагазин

а сейчас у вас как бы два магазина :)

Ссылка на комментарий
Поделиться на других сайтах

  • 11 месяцев спустя...
В 09.12.2015 at 01:58, dremora сказал:

Проблему решил немного иначе. Докопался до того, что у меня была пуста таблица  "oc_store". И если там данных нет, то подставляется в заказе адрес с http. Добавил туда строку, где указал  адрес магазина с https и все новые заказы стали уже с правильным адресом.

 

Спасибо, друг!

Я пошел твоим путем и просто добавил один символ S в коде контроллера /catalog/controller/checkout/confirm.php

В строке 100 заменил

$order_data['store_url'] = HTTP_SERVER;

на

$order_data['store_url'] = HTTPS_SERVER;

 

Ошибка блокировки загрузки смешанного активного содержимого index.php?route=api/login пропала.

Поэтому добавлять запись в таблицу oc_store нет необходимости.

 

Небольшое пояснение.

Записи в базу данных делает функция public function addOrder($data), описанная в модели /catalog/model/checkout/order.php

Эта функция вызывается из вышеуказанного контроллера в строке 314

$this->session->data['order_id'] = $this->model_checkout_order->addOrder($order_data);

 

 

Еще раз спасибо!

 

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Показать вместо этого как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Нельзя вставлять изображения напрямую. Загрузите или вставьте изображения по URL.

 Поделиться