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

Проблема с распечаткой заказа !


Recommended Posts

Всем привет, есть проблемка при переходе на страницу распечатать список доставки пишет ошибку storage/modification/admin/controller/sale/order.php on line 1833

вот код который там выводиться!

 

if (!empty($product_option_value_info['weight_prefix'])) {
								if ($product_option_value_info['weight_prefix'] == '+') {
		1833 строчк >>			$option_weight += $product_option_value_info['weight'];
								} elseif ($product_option_value_info['weight_prefix'] == '-') {
									$option_weight -= $product_option_value_info['weight'];
								}
							}

так же даю скрин)
я не знаю на сколько критична ошибка, но любая ошибка как по  мне должна исправляться )
всем заранее спасибо за помощь)
 

Снимок экрана 2020-10-14 в 21.20.39.png

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


12 часов назад, Admiral1985 сказал:

вставил код точно как ты написал, ошибка так и осталась (

проверь, что у тебя в каком-то товаре в его опциях не указано в поле веса строка. (возможно это даже просто пробел, который на взгляд увидеть тяжеловато)

Ошибка говорит о том, что у тебя в поле веса находится не числовое значение, поэтому оно не может сложить число например 1 и строку "азаза" например.

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

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

так где стоят нули "0" было написаное "+" и "-".
просто в ручную указал цифровое значение

Снимок экрана 2020-10-15 в 19.28.23.png

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


  • 4 months later...

Упс, точно такая же проблема, при попытке сформировать транспортную накладную кидает ошибку:

 

Warning: A non-numeric value encountered in /my-site.com/admin/controller/sale/order.php on line 1977
Warning: A non-numeric value encountered in /my-site.com/admin/controller/sale/order.php on line 1977
Warning: A non-numeric value encountered in /my-site.com/admin/controller/sale/order.php on line 1977

 

В файле следующе:

 

1973        if ($product_option_value_info) {
1974		 if ($product_option_value_info['weight_prefix'] == '+') {
1975		 $option_weight += $product_option_value_info['weight'];
1976		 } elseif ($product_option_value_info['weight_prefix'] == '-') {
1977		 $option_weight -= $product_option_value_info['weight'];
1978	   }
1979     }

Как исправить глюк ?

 

Заранее благодарен

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


В этом поле веса в опции товара случайно не указан вес как "##,##" - с запятой? Тут должно быть число - целое или дробное с разделителем - точкой.

$product_option_value_info['weight']
Надіслати
Поділитися на інших сайтах

3 минуты назад, Prooksius сказал:

В этом поле веса в опции товара случайно не указан вес как "##,##" - с запятой? Тут должно быть число - целое или дробное с разделителем - точкой.


$product_option_value_info['weight']

 

Вес товара прилетает из 1С-ки, на сайте он в карточке товара 0.016 ( через точку ).

А вот в распечатке выводит так:

 

Спойлер

94be5cf498.jpg

 

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


6 минут назад, Prooksius сказал:

можете показать в phpmyadmin вот эту таблицу и вот это поле. Именно вкладки Структура (и Данные можно)

 

Спойлер

192fa2f1b8.jpg

 

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


Вроде бы все верно. Непонятно откуда там не число. Видно есть модификаторы, что-то меняющие в модели товара в функции выдачи опций.

Можно попробовать так сделать, чтобы долго не копаться в причинах:

$product_option_value_info['weight'] = floatval(str_replace(',', '.', $product_option_value_info['weight']));

if ($product_option_value_info) {
  if ($product_option_value_info['weight_prefix'] == '+') {
    $option_weight += $product_option_value_info['weight'];
  } elseif ($product_option_value_info['weight_prefix'] == '-') {
    $option_weight -= $product_option_value_info['weight'];
  }
}

 

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

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

Вроде бы все верно. Непонятно откуда там не число. Видно есть модификаторы, что-то меняющие в модели товара в функции выдачи опций.

Можно попробовать так сделать, чтобы долго не копаться в причинах:


$product_option_value_info['weight'] = floatval(str_replace(',', '.', $product_option_value_info['weight']));

if ($product_option_value_info) {
  if ($product_option_value_info['weight_prefix'] == '+') {
    $option_weight += $product_option_value_info['weight'];
  } elseif ($product_option_value_info['weight_prefix'] == '-') {
    $option_weight -= $product_option_value_info['weight'];
  }
}

 

 

Теперь кинуло ошибку на эту строку:

Warning: A non-numeric value encountered in

 

'weight'   => $this->weight->format(($product_info['weight'] + $option_weight) * $product['quantity'], $product_info['weight_class_id'], $this->language->get('decimal_point'), $this->language->get('thousand_point'))

 

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


2 минуты назад, Espresso.Doktor сказал:

 

Теперь кинуло ошибку на эту строку:

 


'weight'   => $this->weight->format(($product_info['weight'] + $option_weight) * $product['quantity'], $product_info['weight_class_id'], $this->language->get('decimal_point'), $this->language->get('thousand_point'))

 

откуда у вас там строки...

перед $product_data[] = array(

сделать аналогично и с $product_info['weight']:

$product_info['weight'] = floatval(str_replace(',', '.', $product_info['weight']));

$product_data[] = array(
....

 

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

admin/controller/sale/order.php

Найти

$option_weight = '';

заменить на

$option_weight = 0;

Сохранить. Обновить все кеши (в админке).

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

13 минут назад, Tom сказал:

admin/controller/sale/order.php

Найти


$option_weight = '';

заменить на


$option_weight = 0;

Сохранить. Обновить все кеши (в админке).

 

Благодарю :-o

 

 

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


да, точно, туда-то я и не посмотрел..
@Tom, так получается это не исправлено нигде, даже в трешке, даже в 2.3.0.2.4
Сделали костыль с (float) ниже, но при наличии опций все равно будет ошибка. Как и случилось в этой ветке.

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

13 минут назад, Prooksius сказал:

это не исправлено нигде

В новых версиях третьего опенкарт по-моему исправили. В 2.3 и первых версиях тройки не учли php  выше 7.

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

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

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

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

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

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

Вхід

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

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

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

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

Important Information

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