SQL запросы для движка HostCMS

В данном разделе оставляются заявки для создания SQL запросов для обновления тех или иных полей при импорте и экспорте.
Аватара пользователя
support
Сообщения: 10545
Зарегистрирован: 09 ноя 2008 21:37

19 янв 2012 14:33

Здесь будет список SQL запросов с описанием для чего они используются для движка HostCMS.

Импорт:


Экспорт:

Заменить артикул производителя на ID товара:
Вкладка До обновления.

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

UPDATE etrade_products SET tov_art=tov_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='Под заказ'
C уважением, поддержка ElbuzGroup.
Документация E-Trade Jumper
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
Администратор
Сообщения: 3879
Зарегистрирован: 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 запрос необходимо разделять тройной точкой с запятой - ;;;
С уважением, поддержка ElbuzGroup.
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
Администратор
Сообщения: 3879
Зарегистрирован: 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;;;


Их необходимо скопировать в настройки туннеля, для выполнения после обновления каталога товаров.
С уважением, поддержка ElbuzGroup.
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
Администратор
Сообщения: 3879
Зарегистрирован: 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;;;
С уважением, поддержка ElbuzGroup.
Xsander
Сообщения: 60
Зарегистрирован: 09 авг 2012 18:08

09 авг 2012 21:37

Наверное мы приблизились на шаг..
Все равно ошибка но уже другого плана:

Error: Дублирующаяся запись '22' по ключу 'PRIMARY'
Аватара пользователя
TechAdmin
Администратор
Сообщения: 3879
Зарегистрирован: 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;;;
С уважением, поддержка ElbuzGroup.
Xsander
Сообщения: 60
Зарегистрирован: 09 авг 2012 18:08

10 авг 2012 09:52

Да, так сработало!!!
Спасибо огромное! Остальные статусы по аналогии попробую. Еще раз спасибо!
Ответить

Вернуться в «SQL запросы для E-Trade PriceList Importer»