В данном разделе оставляются заявки для создания SQL запросов для обновления тех или иных полей при импорте и экспорте.
-
support
- Сообщения: 10553
- Зарегистрирован: 09 ноя 2008 21:37
19 янв 2012 14:33
Здесь будет список SQL запросов с описанием для чего они используются для движка HostCMS.
Импорт:Экспорт:Заменить артикул производителя на ID товара: Вкладка
До обновления.
Для обновления количества разных статусов наличия из Учетной Системы используются такие запросы:Есть в наличие - количество 1000
Код: Выделить всё
UPDATE shop_warehouse_items_table, etrade_products SET shop_warehouse_items_count=1000 WHERE etrade_products.tov_id=shop_warehouse_items_table.shop_items_catalog_item_id AND etrade_products.nalich_c='Есть'
Нет в наличие количество 100
Код: Выделить всё
UPDATE shop_warehouse_items_table, etrade_products SET shop_warehouse_items_count=100 WHERE etrade_products.tov_id=shop_warehouse_items_table.shop_items_catalog_item_id AND etrade_products.nalich_c='Нет'
Под заказ-количество 500
Код: Выделить всё
UPDATE shop_warehouse_items_table, etrade_products SET shop_warehouse_items_count=500 WHERE etrade_products.tov_id=shop_warehouse_items_table.shop_items_catalog_item_id AND etrade_products.nalich_c='Под заказ'
-
KimaRu
- Сообщения: 6
- Зарегистрирован: 14 фев 2012 17:26
12 июн 2012 14:31
Добрый день!
Можно составить такие же запросы как для SimplaCMS, только для HostCMS?
пример запросов:
Здесь будет список SQL запросов с описанием для чего они используются для движка Simpla CMS.
Для обновления количества разных статусов наличия из Учетной Системы используются такие запросы:
Есть в наличие - количество 1000
КОД: ВЫДЕЛИТЬ ВСЁ
UPDATE s_variants, etrade_products SET stock=1000 WHERE etrade_products.tov_id=s_variants.product_id AND etrade_products.nalich_c='Есть'
Нет в наличие количество 100
КОД: ВЫДЕЛИТЬ ВСЁ
UPDATE s_variants, etrade_products SET stock=100 WHERE etrade_products.tov_id=s_variants.product_id AND etrade_products.nalich_c='Нет'
Под заказ-количество 500
КОД: ВЫДЕЛИТЬ ВСЁ
UPDATE s_variants, etrade_products SET stock=500 WHERE etrade_products.tov_id=s_variants.product_id AND etrade_products.nalich_c='Под заказ'
-
TechAdmin
- Администратор
- Сообщения: 4286
- Зарегистрирован: 27 авг 2008 14:30
12 июн 2012 15:15
Есть в наличие - количество 1000
Код: Выделить всё
UPDATE shop_warehouse_items_table, etrade_products SET shop_warehouse_items_count=1000 WHERE etrade_products.tov_id=shop_warehouse_items_table.shop_items_catalog_item_id AND etrade_products.nalich_c='Есть'
Нет в наличие количество 100
Код: Выделить всё
UPDATE shop_warehouse_items_table, etrade_products SET shop_warehouse_items_count=100 WHERE etrade_products.tov_id=shop_warehouse_items_table.shop_items_catalog_item_id AND etrade_products.nalich_c='Нет'
Под заказ-количество 500
Код: Выделить всё
UPDATE shop_warehouse_items_table, etrade_products SET shop_warehouse_items_count=500 WHERE etrade_products.tov_id=shop_warehouse_items_table.shop_items_catalog_item_id AND etrade_products.nalich_c='Под заказ'
Каждый SQL запрос необходимо разделять тройной точкой с запятой - ;;;
-
Xsander
- Сообщения: 60
- Зарегистрирован: 09 авг 2012 18:08
09 авг 2012 18:20
Доброго дня!
В программе есть возможность выставлять флаги (спец. цена, распродажа) и прочие...
Как передать этот значение товару на сайте?
best_sale tinyint(1) Флаг товара "Л" - лучшая покупка
spec_price tinyint(1) Флаг товара "Р" - распродажа
tov_dissale tinyint(1) Флаг товара "СЦ" - специальная цена
tov_new tinyint(1) Флаг товара "Н" - новинка
На сайте HOSTCMS это решается путем создания таких же параметров, которые затем можно применить к товарам...
Например, создается property 22 (в xml выглядит так $element['property_id'] = 22; ) и оно означает что товар "Новинка". По умолчанию у товара значение property 22 = 0, т.е. статус "новинка" не назначен.
Как из программы передать товару значение этого property 22 = 1, что будет соответствовать статусу "Новинка"?
Вот само условие, которое потом отбирает новинки из всей массы товаров:
$element['type'] = 1; // 0 - основное св-во, 1 - дополнительное
$element['property_id'] = 22;
$element['prefix'] = 'and'; // префикс
$element['if'] = '='; // Условие
$element['value'] = '1'; //
-
TechAdmin
- Администратор
- Сообщения: 4286
- Зарегистрирован: 27 авг 2008 14:30
09 авг 2012 18:41
Попробуйте использовать такие SQL запросы:
Код: Выделить всё
INSERT INTO shop_properties_items_table (shop_items_catalog_item_id, shop_properties_items_id, shop_properties_items_value) SELECT tov_id, 22 as shop_properties_items_id, '1' FROM etrade_products WHERE tov_id NOT IN (SELECT shop_items_catalog_item_id FROM (SELECT shop_items_catalog_item_id FROM shop_properties_items_table) as t2 WHERE shop_properties_items_id=22);;;
UPDATE shop_properties_items_table, etrade_products SET shop_properties_items_table.shop_properties_items_value=IF(etrade_products.tov_new=1, '1', '0') WHERE shop_properties_items_table.shop_items_catalog_item_id=etrade_products.tov_id AND shop_properties_items_table.shop_properties_items_id=22;;;
Их необходимо скопировать в настройки туннеля, для выполнения после обновления каталога товаров.
-
Xsander
- Сообщения: 60
- Зарегистрирован: 09 авг 2012 18:08
09 авг 2012 18:58
Спасибо за быстрое реагирование и вообще за внимание...
Я выполнил этот запрос...
результатом обновления стала такая ошибка:
Ошибка обновления сайта!
Error: Неизвестный столбец 'shop_properties_items_id' в 'where
clause'
SQL: INSERT INTO shop_properties_items_table
(shop_items_catalog_item_id, shop_properties_items_id,
shop_properties_items_value) SELECT tov_id, 22 as
shop_properties_items_id, '1' FROM etrade_products WHERE tov_id
NOT IN (SELECT shop_items_catalog_item_id FROM (SELECT
shop_items_catalog_item_id FROM shop_properties_items_table) as 12
WHERE shop_properties_items_id=22)
-
TechAdmin
- Администратор
- Сообщения: 4286
- Зарегистрирован: 27 авг 2008 14:30
09 авг 2012 20:14
Попробуйте использовать такие SQL запросы:
Код: Выделить всё
INSERT INTO shop_properties_items_table (shop_items_catalog_item_id, shop_properties_items_id, shop_properties_items_value) SELECT tov_id, 22 as shop_properties_items_id, '1' FROM etrade_products WHERE tov_id NOT IN (SELECT shop_items_catalog_item_id FROM (SELECT shop_items_catalog_item_id, shop_properties_items_id FROM shop_properties_items_table) as t2 WHERE shop_properties_items_id=22);;;
UPDATE shop_properties_items_table, etrade_products SET shop_properties_items_table.shop_properties_items_value=IF(etrade_products.tov_new=1, '1', '0') WHERE shop_properties_items_table.shop_items_catalog_item_id=etrade_products.tov_id AND shop_properties_items_table.shop_properties_items_id=22;;;
-
Xsander
- Сообщения: 60
- Зарегистрирован: 09 авг 2012 18:08
09 авг 2012 21:37
Наверное мы приблизились на шаг..
Все равно ошибка но уже другого плана:
Error: Дублирующаяся запись '22' по ключу 'PRIMARY'
-
TechAdmin
- Администратор
- Сообщения: 4286
- Зарегистрирован: 27 авг 2008 14:30
10 авг 2012 09:29
Попробуйте использовать такие SQL запросы:
Код: Выделить всё
INSERT INTO shop_properties_items_table (shop_items_catalog_item_id, shop_list_of_properties_id, shop_properties_items_value) SELECT tov_id, 22 as shop_list_of_properties_id, '1' FROM etrade_products WHERE tov_id NOT IN (SELECT shop_items_catalog_item_id FROM (SELECT shop_items_catalog_item_id, shop_list_of_properties_id FROM shop_properties_items_table) as t2 WHERE shop_list_of_properties_id=22);;;
UPDATE shop_properties_items_table, etrade_products SET shop_properties_items_table.shop_properties_items_value=IF(etrade_products.tov_new=1, '1', '0') WHERE shop_properties_items_table.shop_items_catalog_item_id=etrade_products.tov_id AND shop_properties_items_table.shop_list_of_properties_id=22;;;
-
Xsander
- Сообщения: 60
- Зарегистрирован: 09 авг 2012 18:08
10 авг 2012 09:52
Да, так сработало!!!
Спасибо огромное! Остальные статусы по аналогии попробую. Еще раз спасибо!