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

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


q000000000b

Recommended Posts

Привет.


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

Цитата

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
Надіслати
Поділитися на інших сайтах


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 сказал:

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

 

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

 

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


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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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