Jump to content
Sign in to follow this  
Helloween

[Решено] 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']) . "'");
			}
		}

Share this post


Link to post
Share on other sites

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

Вырезал

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Да, решено :)

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.