Страница 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 (15.97 КБ) 17424 просмотра
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