Страница 1 из 2

Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 09 окт 2018 14:16
isbesedin
Добрый день.
Совсем не силен в SQL, может быть кто-то подскажет как сделать запрос, чтобы на основании статуса наличия в БК на сайт выгружались данные в поле STOCK_STATUS_ID по следующей схеме:
В наличии = 7
Нет в наличии = 5

Сейчас передается только количество товаров, но нужно еще и статус наличия менять.
Используется CMS ocStore Версия 1.5.5.1.2

Re: Выгрузка STOCK_STATUS_ID

Добавлено: 10 окт 2018 12:30
TechAdmin
В Opencart ведь нет явных статусов наличия, можно указать статус наличия для товаров отсутствующих на складе (если кол-во товара ноль), вы хотите менять этот статус?
2018-10-10_12-29-01.png
2018-10-10_12-29-01.png (15.97 КБ) 17425 просмотров
SQL запрос ниже

Код: Выделить всё

UPDATE product t1, etrade_product_temp t2 
SET t1.stock_status_id = IF(t2.stock_status_name = 'В наличии', 7, 5) 
WHERE t2.uuid = product.uuid;;;

Re: Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 10 окт 2018 16:24
isbesedin
Спасибо. Да, именно это поле я и хочу поменять. Так как у нас немного изменена стандартная логика и наличие на сайте отображается исходя из данных в этом поле.

К сожалению, значение в БД не обновилось.

Я просто в настройках туннеля в разделе выгрузка во вкладке настройка SQL запросов пишу данный запрос (до или после обновления?) и должно все заработать или еще какие-то дополнительные настройки нужны?

Скриншот настроек: https://yadi.sk/i/WGIrNaJVLZTGcA

Re: Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 10 окт 2018 17:03
TechAdmin
Вкладка "После обновления". Проверьте товары выгружаются на сайт, чтобы можно было их обновить. Может стоять флаг "Выгружать только новые данные".

Re: Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 11 окт 2018 03:22
isbesedin
Проверил. Например, наименование товара и количество выгружаются правильно.
В Jumper https://yadi.sk/d/NUludL-rkEb3Ew
В админке CMS https://yadi.sk/d/OH5mIUwhrWNWsA

Флаг выгружать только новые данные не стоит https://yadi.sk/d/-s8hqH5n0RYt1g
Настройки выгрузки полей https://yadi.sk/d/sNxEPoFnPIFbyw
Настройки SQL запросов https://yadi.sk/d/7K6S7I4ZLsQ6Gg

Что еще я мог упустить?

Re: Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 11 окт 2018 03:25
isbesedin
Еще при каждой выгрузке в логе вылезают ошибки:

Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'Table 'u3271847_fox.product' doesn't exist' in /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel.php:763 Stack trace: #0 /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel.php(763): mysqli->query('UPDATE product ...', 1) #1 /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel.php(806): sql_query_run('UPDATE product ...', 1) #2 /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel.php(679): run_sql_commands('VVBEQVRFIHByb2R...', 'SELECT', Object(mysqli), 1, '', '0') #3 {main} thrown in /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel.php on line 763 24567Error: Unknown error type File: /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel.php Message: Uncaught exception 'mysqli_sql_exception' with message 'Table 'u3271847_fox.product' doesn't exist' in /var/www/u3271847/data/www/vpoxode.ru/

Не обращал на это внимания, так как данные все равно выгружались, но может быть есть связь?
Хотелось бы понять что за ошибки и как сделать так, чтобы они не появлялись.

Ошибки были и до добавления SQL запроса.

Re: Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 11 окт 2018 09:21
TechAdmin
Почему ранее об ошибке не сообщили?
Теперь понятно, нужно указать префикс таблиц вашей базы данных oc_, то есть запрос для вас будет такой

Код: Выделить всё

UPDATE oc_product t1, etrade_product_temp t2 
SET t1.stock_status_id = IF(t2.stock_status_name = 'В наличии', 7, 5) 
WHERE t1.uuid = t2.uuid;;;
Если будут еще ошибки, сразу сообщайте, это ускорит решение проблем.

Re: Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 11 окт 2018 13:14
isbesedin
Добрый день.
Запрос исправил. Ошибки не ушли, данные в поле STOCK_STATUS_ID по прежнему не обновляются.

Re: Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 11 окт 2018 13:32
TechAdmin
Какая ошибка сейчас?

Re: Opencart, ocStore обновление наличия для поля STOCK_STATUS_ID

Добавлено: 11 окт 2018 14:03
isbesedin
Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'Table 'u3271847_fox.etrade_category_temp' doesn't exist' in /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel_ifunc.php:1873 Stack trace: #0 /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel_ifunc.php(1873): mysqli->query('UPDATE oc_categ...') #1 [internal function]: opencart_CreateCategoriesPath('oc_', '0') #2 /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel.php(443): call_user_func_array('opencart_Create...', Array) #3 {main} thrown in /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel_ifunc.php on line 1873 24567Error: Unknown error type File: /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel_ifunc.php Message: Uncaught exception 'mysqli_sql_exception' with message 'Table 'u3271847_fox.etrade_category_temp' doesn't exist' in /var/www/u3271847/data/www/vpoxode.ru/etrade_http_tunnel2/etrade_http_tunnel_i