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

isbesedin
Сообщения: 78
Зарегистрирован: 09 окт 2018 13:53

09 окт 2018 14:16

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

Сейчас передается только количество товаров, но нужно еще и статус наличия менять.
Используется CMS ocStore Версия 1.5.5.1.2
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

10 окт 2018 12:30

В Opencart ведь нет явных статусов наличия, можно указать статус наличия для товаров отсутствующих на складе (если кол-во товара ноль), вы хотите менять этот статус?
2018-10-10_12-29-01.png
2018-10-10_12-29-01.png (15.97 КБ) 17415 просмотров
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;;;
С уважением, поддержка ElbuzGroup.
isbesedin
Сообщения: 78
Зарегистрирован: 09 окт 2018 13:53

10 окт 2018 16:24

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

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

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

Скриншот настроек: https://yadi.sk/i/WGIrNaJVLZTGcA
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

10 окт 2018 17:03

Вкладка "После обновления". Проверьте товары выгружаются на сайт, чтобы можно было их обновить. Может стоять флаг "Выгружать только новые данные".
С уважением, поддержка ElbuzGroup.
isbesedin
Сообщения: 78
Зарегистрирован: 09 окт 2018 13:53

11 окт 2018 03:22

Проверил. Например, наименование товара и количество выгружаются правильно.
В 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

Что еще я мог упустить?
isbesedin
Сообщения: 78
Зарегистрирован: 09 окт 2018 13:53

11 окт 2018 03:25

Еще при каждой выгрузке в логе вылезают ошибки:

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 запроса.
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

11 окт 2018 09:21

Почему ранее об ошибке не сообщили?
Теперь понятно, нужно указать префикс таблиц вашей базы данных 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;;;
Если будут еще ошибки, сразу сообщайте, это ускорит решение проблем.
С уважением, поддержка ElbuzGroup.
isbesedin
Сообщения: 78
Зарегистрирован: 09 окт 2018 13:53

11 окт 2018 13:14

Добрый день.
Запрос исправил. Ошибки не ушли, данные в поле STOCK_STATUS_ID по прежнему не обновляются.
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

11 окт 2018 13:32

Какая ошибка сейчас?
С уважением, поддержка ElbuzGroup.
isbesedin
Сообщения: 78
Зарегистрирован: 09 окт 2018 13:53

11 окт 2018 14:03

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
Ответить

Вернуться в «SQL запросы для обновления сайта из E-Trade Jumper»