Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль. |
|
Помогите отредактировать запрос обмена данными |
|
|
deniska312
Пользователь iNETsHOP
Количество сообщений
17
Зарегистрирован:
17-05-2016, 23:32:49
|
Иммем Виртуемарт 3, и настроена система обмена данными напрямую в базу. прайсы обновляются ежедневно, и количества наличия у меня нет, поставщик не предоставляет. Поэтому система есть товар или нету настроена так:
Если товар есть у поставщика, то в программе ставится галочка наличия, и с помощью наличия этой галочки запрос определяет, публиковать ли товар или снять с публикации. Если он товар публикует то ставит ему кол-во наличия 100 шт.
Мне нужно сделать так, чтобы публиковались все товары, но в зависимости от того стоит ли галочка или нет менялось кол-во наличия. То есть, если галочка стоит то товар публикуется и его количество пишем 100, если товара нет в наличии, то товар публикуем и количество ставим 0.
product_in_stock - количество наличия товаров
published - 1 активный 0 неактивный
Вот сам код на это дело
Код
UPDATE jos_virtuemart_products p, TBL_GOODS g
SET
# 1, /*virtuemart_vendor_id*/
p.product_parent_id = IFNULL(G_G_ID, 0),
# G_ID, /*product_sku*/
# '', /*product_gtin*/
# NULL, /*product_mpn*/
# 0, /*product_weight*/
# 'KG', /*product_weight_uom*/
# 0, /*product_length*/
# 0, /*product_width*/
# 0, /*product_height*/
# 'M', /*product_lwh_uom*/
# '', /*product_url*/
p.product_in_stock = CASE WHEN G_PRESENT> 0 THEN 100 ELSE 0 END,
# 1, /*product_ordered*/
# 0, /*low_stock_notification*/
# '0000-00-00 00:00:00', /*product_available_date*/
# '', /*product_availability*/
# 0, /*product_special*/
# 0, /*product_sales*/
# 'KG', /*product_unit*/
# 0, /*product_packaging*/
# 'min_order_level="0"|max_order_level="0"|step_order_level=null|product_box="0"|', /*product_params*/
# 0, /*hits*/
# '', /*intnotes*/
# '', /*metarobot*/
# '', /*metaauthor*/
# 0, /*layout*/
p.published = CASE WHEN g.g_ID IN (SELECT G_G_ID FROM TBL_GOODS WHERE G_G_ID > 0) OR G_PRESENT > 0 THEN 1 ELSE 0 END,
# 0, /*pordering*/
# now(), /*created_on*/
# 0, /*created_by*/
p.modified_on = now(),
p.modified_by = 0
WHERE p.virtuemart_product_id = g.G_ID
|
Распечатать
|
|
deniska312
Пользователь iNETsHOP
Тема начата
Количество сообщений
17
Зарегистрирован:
17-05-2016, 23:32:49
|
Поменял немного код, теперь он записывает товарам которые в наличии кол-во 500, а товарам у которых наличия нет он пишет 0. Но почему то не публикует он все товары.
Код UPDATE jos_virtuemart_products p, TBL_GOODS g
SET
# 1, /*virtuemart_vendor_id*/
p.product_parent_id = IFNULL(G_G_ID, 0),
# G_ID, /*product_sku*/
# '', /*product_gtin*/
# NULL, /*product_mpn*/
# 0, /*product_weight*/
# 'KG', /*product_weight_uom*/
# 0, /*product_length*/
# 0, /*product_width*/
# 0, /*product_height*/
# 'M', /*product_lwh_uom*/
# '', /*product_url*/
p.product_in_stock = CASE WHEN g.g_ID IN (SELECT G_G_ID FROM TBL_GOODS WHERE G_G_ID > 0) OR G_PRESENT > 0 THEN 500 ELSE 0 END,
# 1, /*product_ordered*/
# 0, /*low_stock_notification*/
# '0000-00-00 00:00:00', /*product_available_date*/
# '', /*product_availability*/
# 0, /*product_special*/
# 0, /*product_sales*/
# 'KG', /*product_unit*/
# 0, /*product_packaging*/
# 'min_order_level="0"|max_order_level="0"|step_order_level=null|product_box="0"|', /*product_params*/
# 0, /*hits*/
# '', /*intnotes*/
# '', /*metarobot*/
# '', /*metaauthor*/
# 0, /*layout*/
# 1, /*published*/
# 0, /*pordering*/
# now(), /*created_on*/
# 0, /*created_by*/
p.modified_on = now(),
p.modified_by = 0
WHERE p.virtuemart_product_id = g.G_ID
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
За публикацию (видимость) товаров в аддоне Virturmart отвечает поле published таблицы jos_virtuemart_products, которое при обновлении товаров в вашей модификации всегда устанавливается в 1 (True).
У вас это поле в запросе для справки есть, но оно не используется
Цитата
# 1, /*published*/
Сделайте его активным в этом sql-запросе
Цитата
1, /*published*/
Если в результате этого товары не будут видны на сайте, то возможно вам нужно очистить кеш браузера или кеш CMS. Или как вариант, проверить влияют ли на видимость товаров дополнительные плагины, например тот который у вас отображает варианты товара.
|
Распечатать
|
|
Статистика форума |
 |
Тем: 506, Сообщений: 3222, Пользователей: 2258
Приветствуем новичка по имени ololuev |
Ближайшие дни рождения |
 |
Сегодня именинников нет |
|