Перейти к содержанию
q000000000b

Ошибка в shipping.php с Illegal string offset 'tax_class_id' и 'cost'

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

Привет.


Столкнулся с такой ошибкой:

Цитата

Warning: Illegal string offset 'tax_class_id' in /home/g/getsplit/public_html/catalog/model/total/shipping.php on line 12Warning: Illegal string offset 'cost' in /home/g/getsplit/public_html/catalog/model/total/shipping.php on line 13Warning: Illegal string offset 'tax_class_id' in /home/g/getsplit/public_html/catalog/model/total/shipping.php on line 13Warning: Illegal string offset 'cost' in /home/g/getsplit/public_html/catalog/model/total/shipping.php on line 24

 

Код файла Shipping.php

<?php
class ModelTotalShipping extends Model {
	public function getTotal(&$total_data, &$total, &$taxes) {
		if ($this->cart->hasShipping() && isset($this->session->data['shipping_method'])) {
			$total_data[] = array(
				'code'       => 'shipping',
				'title'      => (isset($this->session->data['shipping_method']['title']) ? $this->session->data['shipping_method']['title'] : ''),
				'value'      => (isset($this->session->data['shipping_method']['cost']) ? $this->session->data['shipping_method']['cost'] : '0'),
				'sort_order' => $this->config->get('shipping_sort_order')
			);

			if ($this->session->data['shipping_method']['tax_class_id']) {
				$tax_rates = $this->tax->getRates($this->session->data['shipping_method']['cost'], $this->session->data['shipping_method']['tax_class_id']);

				foreach ($tax_rates as $tax_rate) {
					if (!isset($taxes[$tax_rate['tax_rate_id']])) {
						$taxes[$tax_rate['tax_rate_id']] = $tax_rate['amount'];
					} else {
						$taxes[$tax_rate['tax_rate_id']] += $tax_rate['amount'];
					}
				}
			}

			$total += $this->session->data['shipping_method']['cost'];
		}
	}
}

 

Предположительно, ошибка появилась 17.02.17. Возникает после попытка оформления заказа через корзину сайта.

После оформления, заказ не появляется в админке, а так же не приходит уведомление клиенту / админу (на почту).

Настройки магазине - не трогал, перед возникновением ошибки. Я так понимаю, что ошибка возникла спонтанно. 

 

Пожалуйста, помогите решить данную ошибку и объясните, почему она могла возникнуть и как можно избежать ее повторного возникновения. 

 

Заранее спасибо.

Изменено пользователем q000000000b

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
if (is_array($this->session->data['shipping_method']) && array_key_exists(tax_class_id,$this->session->data['shipping_method']))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, kJlukOo сказал:
17 минут назад, kJlukOo сказал:


if (is_array($this->session->data['shipping_method']) && array_key_exists(tax_class_id,$this->session->data['shipping_method']))

 

 

 

Спасибо за ответ.

 

Получается, что это будет заменой 12-ой строчки?

 

Не подскажите, а в чем суть проблемы?

 

Данный файл никто не трогал, ранее все работало (в течении года 490 заказов пришло нормально)

 

Поделиться сообщением


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

способ доставки отвалился или еще какая-то жуть но ошибка не тут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, nikifalex сказал:

способ доставки отвалился или еще какая-то жуть но ошибка не тут.

 

Ссылка на магзин поможет? 

 

Я не понимаю почему вообще могла возникнуть подобная ошибка. Настройки ИМ не трогали вообще.

Поделиться сообщением


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

у вас же вообще нет способа доставки в корзине.

Подозреваю что у товаров кто-то выставил "требуется доставка" и все сломал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, nikifalex сказал:

у вас же вообще нет способа доставки в корзине.

Подозреваю что у товаров кто-то выставил "требуется доставка" и все сломал.

 

В настройках ИМ или в самом товаре выбрал "требуется доставка" ?

 

Поделиться сообщением


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

В каких таких настройках магазина? Где вы это находите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, nikifalex сказал:

В каких таких настройках магазина? Где вы это находите?

 

Открыл последний товар, который был добавлен на сайт. В " Необходима доставка " стоит "да". Поменял на "Нет", попробовал оформить заказ на этот товар, в итоге та ошибка пропала, но появилась эта:

 

Цитата

Notice: Undefined index: order_id in /home/g/getsplit/public_html/catalog/controller/checkout/success.php on line 9Notice: Undefined index: order_id in /home/g/getsplit/public_html/catalog/controller/checkout/success.php on line 59

 

Все равно заказ не появился в списке заказов (в админке). А так же не пришли уведомления на почту. 

 

Появился в списке заказов.

 

Суть в том, что клиент заказывал товар, который был добавлен на сайт более полугода назад. И суть в том, что я во время теста тоже брал старые товары. Заказы не приходили.


 

Изменено пользователем q000000000b

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, nikifalex сказал:

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

 

Знаете какой нибудь способ, с помощью которого можно получить весь список товаров где значение этого атрибута "да" ?

 

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От splka
      Скачать/Купить дополнение


      Видео на странице товара для OCPro 2.3 Unishop
      За основу был взят vqmod_product_video_tab_1.5.4.1.zip 1.4 от stalker780.
      Код переделан под то, что имеется в наличии а именно Unishop+Opencart.Pro 2.3.0.2.5
      Как ставить - через установку модификаторов.
      После установки надо обновить кеш модификаторов.
      После этого в товаре появится вкладка - Видео(см. картинку)
      На youtube открываете нужное видео, под ним ищете "поделиться", выбираете "html код", выставляете размеры видео и копируете код из окошка.
      Должно получится что-то вроде:
      <iframe width="420" height="315" src="http://www.youtube.com/embed/gi3DHl1216U" frameborder="0" allowfullscreen></iframe> Примечание:
      Модуль создавался и проверялся на OpenCart 1.5.1.3 + vQmod 2.1.4 + default шаблон.
      был портирован и тестирован на связке OCPro 2.3, Unishop
      !!!Внимание!!! Каждый ролик должен быть внесен одной отдельной строкой.
      Иначе в закладке будет неправильно отображаться количество роликов.
      Модуль считает количество переносов "/n" в поле "youtube_code".
      В таком случае не важно в какой тег вы вставляете видео <iframe> <object> и пр.

      Модуль распространяется as is.
      Поддержку не оказываю.
      Если хотите отблагодарить - пишите в личку:)
      Добавил splka Добавлено 10.11.2018 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3  
    • От Bistore
      Добрый день помогите выбрать добить модуль личных количественных скидок на каждого пользователя отдельно в ограниченном виде!
      Получается
      1) Можно сравнить количество скидок на товар и количество купленных товаров пользователей(только авторизованные будут) сравнивая по айди товара и купленого товара минусовать количество скидок от купленного товара и выводить есть ли скидочный товар или же нет( или какое количество осталось).
       
      2) Я вывел sql  запросом уже в пользователе количество скидочных товаров минус количество купленного товара по айди ----- и теперь нужно по айди сравнить купленный товар и товар связать и по полю kolichestvo которое получилось в пользователе смотреть Kol=>0 ? или меньше и тд  
      Как лучше сделать?
      Как связать купленный товар(этим пользователем)  и товар на сайте?
      В файле который добавил в этот вопрос есть код корзины где осуществил все (jan - это количество скидок на товар) 
      cart.php
    • От shyn
      Скачать/Купить дополнение


      Basecart шаблон для OpenСart
      Описание
      Basecart - базовый, бесплатный шаблон для OpenCart 2.x и OpenCart 3.x со встроенными цветовыми схемами Bootswatch.
      Простота и лёгкость шаблона позволяют использовать его для разных типов интернет магазинов.
      Быстрая скорость загрузки страниц сделает магазин приятным в использовании для покупателей.
       
      Друзья, чтобы у Вас не возникло никаких проблем при использовании шаблона, внимательно читаем раздел Установка.
       
      Демо магазин
       
       
      Основные возможности
      - Простая установка
      - Адаптивный дизайн
      - 17 цветовых схем
      - 2 типа цвета шапки для каждой цветовой схемы
      - Шаблон построен с использованием Bootstrap 3
      - Удобное переключение цветовых схем
      - Хорошая отзывчивость и высокая скорость работы
       
       
      Совместимость
      - OpenCart 3.0.2.0
      - OpenCart 3.0.1.2
      - OpenCart 3.0.0.0
      - OpenCart 2.3.0.2
      - OpenCart 2.3.0.1
      - OpenCart 2.3.0.0
      - OpenCart 2.2.0.0
      - OpenCart 2.1.0.2
      - OpenCart 2.1.0.1
      - OpenCart 2.0.3.1
       
      Поддерживаются также соответствующие версии ocStore и OpenCart "Русская сборка"
       
       
      Изменения
      14.11.2018
      - Исправлено отображение списка подкатегорий (OpenCart 3)
       
      09.04.2018
      - Исправлено отображение опций товара в корзине (OpenCart 3)
      - Исправлен счетчик количества товаров (OpenCart 3)
       
      04.03.2018
      - Добавлена поддержка OpenCart 3.x
       
      10.01.2017
      - Незначительные улучшения
       
      02.01.2017
      - Изменен формат установки
       
      03.12.2016
      - Исправлен модуль управления темой (OpenCart 2.3.0.x)
       
      04.09.2016
      - Добавлена поддержка OpenCart 2.3.0.x
       
      16.06.2016
      - Добавлена поддержка OpenCart 2.2.0.0 и ocStore 2.1.0.2.1
       
      16.02.2016
      - Незначительные исправления
       
      10.01.2016
      - Исправлена ошибка с капчей на странице возврата товара (OpenCart 2.1.0.1)
       
      12.10.2015
      - Добавлена поддержка OpenCart 2.1.0.1
       
       
      Установка
      OpenCart 2
      1. Скачать zip архив.
      2. В архиве находятся файлы установщики, названия которых оканчиваются на *.ocmod.zip (Распаковка не требуется).
      3. Перед началом установки убедитесь, что в установленном OpenCart настроен доступ по FTP.
      Система -> Настройка -> [Редактировать] -> FTP
      Если OpenCart установлен локально или по каким-то причинам необходимо произвести установку шаблона без настройки FTP, скачайте и установите модуль QuickFix, который позволяет устанавливать дополнения без настроенного FTP доступа.
      4. Выбрать и установить файл темы для соответствующей версии OpenCart.
      Дополнения -> Установка дополнений -> [Загрузить]
      5. Обновить кеш модификаторов.
      Дополнения -> Менеджер дополнений -> [Сброс]/[Обновить]
      6. Выбрать установленную тему basecart из списка.
      Дополнения -> Дополнения -> Шаблоны -> [Редактировать] -> Папка шаблона -> basecart
      7. Сохранить
       
      OpenCart 3
      1. Скачать zip архив.
      2. В архиве находятся файлы установщики, названия которых оканчиваются на *.ocmod.zip (Распаковка не требуется).
      3. Выбрать и установить файл темы для соответствующей версии OpenCart.
      Модули/Расширения -> Установка расширений -> [Загрузить]
      4. Обновить кеш модификаторов.
      Модули/Расширения -> Модификаторы -> [Очистить]/[Обновить]
      5. Выбрать установленную тему basecart из списка.
      Модули/Расширения -> Модули/Расширения -> Темы -> [Редактировать] -> Директория темы -> basecart
      6. Сохранить
       
      Если, по каким-то причинам, шаблон был установлен путем простого копирования файлов, без использования установщика дополнений, нужно дополнительно установить модификатор шаблона (файл install.xml), найти его можно при распаковке архива, название которого оканчивается на *.ocmod.zip. Установка модификатора производится через: Дополнения -> Установка дополнений. Перед установкой install.xml необходимо переименовать в install.ocmod.xml. После установки - обновить кеш модификаторов.
       
      Переключение цветовых схем:
      OpenCart 2
      Дополнения -> Дополнения -> Модули -> Basecart -> [Установить] / [Редактировать]
       
      OpenCart 3
      Модули / Расширения -> Модули / Расширения -> Модули -> Basecart -> [Активировать] / [Редактировать]
      Добавил shyn Добавлено 21.07.2015 Категория Бесплатные шаблоны Системные требования Сайт разработчика http://themefiber.com Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От shyn
      Описание
      Basecart - базовый, бесплатный шаблон для OpenCart 2.x и OpenCart 3.x со встроенными цветовыми схемами Bootswatch.
      Простота и лёгкость шаблона позволяют использовать его для разных типов интернет магазинов.
      Быстрая скорость загрузки страниц сделает магазин приятным в использовании для покупателей.
       
      Друзья, чтобы у Вас не возникло никаких проблем при использовании шаблона, внимательно читаем раздел Установка.
       
      Демо магазин
       
       
      Основные возможности
      - Простая установка
      - Адаптивный дизайн
      - 17 цветовых схем
      - 2 типа цвета шапки для каждой цветовой схемы
      - Шаблон построен с использованием Bootstrap 3
      - Удобное переключение цветовых схем
      - Хорошая отзывчивость и высокая скорость работы
       
       
      Совместимость
      - OpenCart 3.0.2.0
      - OpenCart 3.0.1.2
      - OpenCart 3.0.0.0
      - OpenCart 2.3.0.2
      - OpenCart 2.3.0.1
      - OpenCart 2.3.0.0
      - OpenCart 2.2.0.0
      - OpenCart 2.1.0.2
      - OpenCart 2.1.0.1
      - OpenCart 2.0.3.1
       
      Поддерживаются также соответствующие версии ocStore и OpenCart "Русская сборка"
       
       
      Изменения
      14.11.2018
      - Исправлено отображение списка подкатегорий (OpenCart 3)
       
      09.04.2018
      - Исправлено отображение опций товара в корзине (OpenCart 3)
      - Исправлен счетчик количества товаров (OpenCart 3)
       
      04.03.2018
      - Добавлена поддержка OpenCart 3.x
       
      10.01.2017
      - Незначительные улучшения
       
      02.01.2017
      - Изменен формат установки
       
      03.12.2016
      - Исправлен модуль управления темой (OpenCart 2.3.0.x)
       
      04.09.2016
      - Добавлена поддержка OpenCart 2.3.0.x
       
      16.06.2016
      - Добавлена поддержка OpenCart 2.2.0.0 и ocStore 2.1.0.2.1
       
      16.02.2016
      - Незначительные исправления
       
      10.01.2016
      - Исправлена ошибка с капчей на странице возврата товара (OpenCart 2.1.0.1)
       
      12.10.2015
      - Добавлена поддержка OpenCart 2.1.0.1
       
       
      Установка
      OpenCart 2
      1. Скачать zip архив.
      2. В архиве находятся файлы установщики, названия которых оканчиваются на *.ocmod.zip (Распаковка не требуется).
      3. Перед началом установки убедитесь, что в установленном OpenCart настроен доступ по FTP.
      Система -> Настройка -> [Редактировать] -> FTP
      Если OpenCart установлен локально или по каким-то причинам необходимо произвести установку шаблона без настройки FTP, скачайте и установите модуль QuickFix, который позволяет устанавливать дополнения без настроенного FTP доступа.
      4. Выбрать и установить файл темы для соответствующей версии OpenCart.
      Дополнения -> Установка дополнений -> [Загрузить]
      5. Обновить кеш модификаторов.
      Дополнения -> Менеджер дополнений -> [Сброс]/[Обновить]
      6. Выбрать установленную тему basecart из списка.
      Дополнения -> Дополнения -> Шаблоны -> [Редактировать] -> Папка шаблона -> basecart
      7. Сохранить
       
      OpenCart 3
      1. Скачать zip архив.
      2. В архиве находятся файлы установщики, названия которых оканчиваются на *.ocmod.zip (Распаковка не требуется).
      3. Выбрать и установить файл темы для соответствующей версии OpenCart.
      Модули/Расширения -> Установка расширений -> [Загрузить]
      4. Обновить кеш модификаторов.
      Модули/Расширения -> Модификаторы -> [Очистить]/[Обновить]
      5. Выбрать установленную тему basecart из списка.
      Модули/Расширения -> Модули/Расширения -> Темы -> [Редактировать] -> Директория темы -> basecart
      6. Сохранить
       
      Если, по каким-то причинам, шаблон был установлен путем простого копирования файлов, без использования установщика дополнений, нужно дополнительно установить модификатор шаблона (файл install.xml), найти его можно при распаковке архива, название которого оканчивается на *.ocmod.zip. Установка модификатора производится через: Дополнения -> Установка дополнений. Перед установкой install.xml необходимо переименовать в install.ocmod.xml. После установки - обновить кеш модификаторов.
       
      Переключение цветовых схем:
      OpenCart 2
      Дополнения -> Дополнения -> Модули -> Basecart -> [Установить] / [Редактировать]
       
      OpenCart 3
      Модули / Расширения -> Модули / Расширения -> Модули -> Basecart -> [Активировать] / [Редактировать]
    • От TCHProgrammer
      Здравствуйте! У меня вопрос следующего характера. В админке в карточке редактирования каждого товара есть вкладка "Данные". В ней есть поле SEO URL. Именно по ней определяется ссылка на товар в браузере. Я делаю выгрузку из 1с, читается xml-файл с товарами. Как мне программно задать SEO URL для каждого выгружаемого товара? 
      Заранее спасибо за ответы.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.