Для того чтобы организовать торговлю в Интернет-магазине компании потребуется наличие всего одного Менеджера, контролирующего процесс автоматической работы магазина как из офиса компании, так и из любого места в Сети.
Каталог прайсов интернет магазинов - разместите свой прайс бесплатно
  Главная  |    О компании  |    Новости  |    Статьи  |    Форум  |    Клиенты  |    Обратная связь  |    Карта сайта
Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль.
Запомнить
Пароль
   
Форум
 Программа iNETsHOP » Работа с программой
        Помогите отредактировать запрос обмена данными
Помогите отредактировать запрос обмена данными

17.08.2016 08:06

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
Пользователь оффлайн Распечатать
 

17.08.2016 10:23

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
Пользователь оффлайн Распечатать
 

17.08.2016 12:23

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
За публикацию (видимость) товаров в аддоне Virturmart отвечает поле published таблицы jos_virtuemart_products, которое при обновлении товаров в вашей модификации всегда устанавливается в 1 (True).

У вас это поле в запросе для справки есть, но оно не используется
Цитата

# 1, /*published*/


Сделайте его активным в этом sql-запросе

Цитата

1, /*published*/


Если в результате этого товары не будут видны на сайте, то возможно вам нужно очистить кеш браузера или кеш CMS. Или как вариант, проверить влияют ли на видимость товаров дополнительные плагины, например тот который у вас отображает варианты товара.


Пользователь оффлайн Распечатать
 

Распечатать  |  Следующая тема  |  Предыдущая тема
Перейти
 

Статистика форума
Тем: 506, Сообщений: 3222, Пользователей: 2255
Приветствуем новичка по имени Gotit
Ближайшие дни рождения
Сегодня именинников нет


iNETsHOP - программа для формирования каталога товаров интернет-магазина и обработки прайсов Copyright 2007-2015 "Программа iNETsHOP - работа с прайс-листами поставщиков для интернет магазинов ®" iNETsHOP - обработка, объединение, анализ прайсов поставщиков и конкурентов