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

[Решено] Unknown column 'usd_price' in 'field list' (Error No: 1054)


Recommended Posts

Версия движка ocStore: 1.5.5.1.2
Шаблон дефолтный, модули не ставил. Допиливал сам некоторые вещи, но проблем нет кроме этой:

 

При попытке добавить акцию - выскакивает сообщение о неизвестном индексе usd_price.
Notice: Undefined index: usd_price in ПАПКА_САЙТА/admin/model/catalog/product.php on line 196

Notice: Undefined index: eur_price in ПАПКА_САЙТА/admin/model/catalog/product.php on line 196

Notice: Error: Unknown column 'usd_price' in 'field list'

Error No: 1054
INSERT INTO oc_product_special SET product_id = '3826', customer_group_id = '1', priority = '0', price = '38900', usd_price = '0', eur_price = '0', date_start = '2015-01-28', date_end = '' in ПАПКА_САЙТА/system/database/mysql.php on line 50
 
Поля usd_price и eur_price я добавлял сам, везде, где нужно было для работы админки. Все добавления и редактирования товаров работают, цены пересчитываются по заданному мной курсу.

Видимо, для добавления акции их тоже надо где-то прописать, но где?

 

Апдейт.

Добавил такие же поля в таблицу oc_product_special и вот, что получаю теперь:

 

Notice: Undefined index: usd_price in admin/model/catalog/product.php on line 196

Notice: Undefined index: eur_price in admin/model/catalog/product.php on line 196

Warning: Cannot modify header information - headers already sent by (output started at admin/index.php:82) in system/engine/controller.php on line 28

Warning: Cannot modify header information - headers already sent by (output started at admin/index.php:82) in system/engine/controller.php on line 29

 

При этом, данные сохраняются.

 

Кусок кода указанного файла, содержащий строку 196

		if (isset($data['product_special'])) {
			foreach ($data['product_special'] as $product_special) {
				$this->db->query("INSERT INTO " . DB_PREFIX . "product_special SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_special['customer_group_id'] . "', priority = '" . (int)$product_special['priority'] . "', price = '" . (float)$product_special['price'] . "', usd_price = '" . (float)$product_special['usd_price'] . "', eur_price = '" . (float)$product_special['eur_price'] . "', date_start = '" . $this->db->escape($product_special['date_start']) . "', date_end = '" . $this->db->escape($product_special['date_end']) . "'");
			}
		}
Надіслати
Поділитися на інших сайтах


Поборол удалением из этого куска кода лишних запросов:

Вырезал

, usd_price = '" . (float)$product_special['usd_price'] . "', eur_price = '" . (float)$product_special['eur_price'] . "'

Тоже самое сделал с кодом выше, где запрос к дискаунту идет.

тоже вырезал оттуда лишнее.

Все работает.

Естественно, таблицы oc_product_special и oc_product_discount вернул к исходному виду (убрал оттуда столбцы с валютами)

Пользуйтесь, если у кого подобная проблема :)

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


  • 3 months later...

Да, решено :)

в сообщении выше написано же, что поборол удалением лишних запросов  и не подробно, но все же поясняется, что при расчете дискаунта (или акции), обращений к валютам не требуется, там должно по прежнему оставаться только обращение к цене, установленной по умолчанию (то есть, к стандартному полю 'price')

Все работает как положено.

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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