Страница 4 из 11
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 13 ноя 2012 16:56
TechAdmin
Попробуйте использовать эти SQL запросы:
Код: Выделить всё
UPDATE b_iblock_element_property, b_iblock_element, etrade_products, etrade_contractor SET b_iblock_element_property.value=etrade_contractor.contractor_name WHERE etrade_products.supply_id=etrade_contractor.contractor_id AND b_iblock_element.id=b_iblock_element_property.iblock_element_id AND b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element_property.iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name='Поставщик' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID);;;
INSERT INTO b_iblock_element_property (iblock_property_id, iblock_element_id, value) SELECT (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'Поставщик' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name) as property_id, b_iblock_element.id, etrade_contractor.contractor_name FROM b_iblock_element, etrade_products, etrade_contractor WHERE etrade_products.supply_id=etrade_contractor.contractor_id AND b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element.id NOT IN (SELECT iblock_element_id FROM b_iblock_element_property WHERE iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'Поставщик' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name));;;
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 26 ноя 2012 06:37
Денис
Здравствуйте, не подскажите SQL запрос для битрикса для отображения keywords и description у товара и категорий.
Сгенирировал все в PLI, но почему-то не хочет заходить в битрикс
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 27 ноя 2012 09:22
support
В Битриксе разве есть поля в БД сайта где бы хранилась эта информация?
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 28 ноя 2012 10:02
Денис
у меня есть поля:
Keywords - Таблица b_iblock_element_property , поле где храниться текст ключевых слов VALUE, IBLOCK_PROPERTY_ID "64" это поле показывает, что это Keywords, цифра 64 как раз как ID поля Keywords
http://pix.am/GncE/
Для Description все те же поля, но только IBLOCK_PROPERTY_ID "65"
Так же есть поле IBLOCK_ELEMENT_ID, в котором есть ID товар присвоенный самим битриксом.
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 28 ноя 2012 10:21
support
Таблица b_iblock_element_property - это список характеристик для товаров.
Из этой темы:
TechAdmin писал(а):
В текущей версии ПЛИ уже доступно это поле ("Себестоимость") для экспорта данных, поэтому вы можете попробовать использовать эти SQL запросы:
Код: Выделить всё
UPDATE b_iblock_element_property, b_iblock_element, etrade_products SET b_iblock_element_property.value=etrade_products.price_cost WHERE b_iblock_element.id=b_iblock_element_property.iblock_element_id AND b_iblock_element_property.iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.code='zakup_price') AND b_iblock_element.xml_id=etrade_products.tov_guid;;;
INSERT INTO b_iblock_element_property (iblock_property_id, iblock_element_id, value) SELECT (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.iblock_id=5 AND b_iblock_property.code = 'zakup_price' GROUP BY b_iblock_property.code) as property_id, b_iblock_element.id, etrade_products.price_cost FROM b_iblock_element, etrade_products WHERE b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element.iblock_id=5 AND b_iblock_element.id NOT IN (SELECT iblock_element_id FROM b_iblock_element_property WHERE iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.iblock_id=5 AND b_iblock_property.code = 'zakup_price' GROUP BY b_iblock_property.code));;;
Вам нужно прописать не себестоимость (price_cost), а head_title, head_desc, head_keywords
согласно списка доступных полей
для таблицы etrade_products
вот как пример для поля обновления поля Keywords
Код: Выделить всё
UPDATE b_iblock_element_property, b_iblock_element, etrade_products SET b_iblock_element_property.value=etrade_products.head_title WHERE b_iblock_element.id=b_iblock_element_property.iblock_element_id AND b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element_property.iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name='Keywords' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID);;;
INSERT INTO b_iblock_element_property (iblock_property_id, iblock_element_id, value) SELECT (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'Keywords' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name) as property_id, b_iblock_element.id, etrade_products.head_title FROM b_iblock_element, etrade_products WHERE b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element.id NOT IN (SELECT iblock_element_id FROM b_iblock_element_property WHERE iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'Keywords' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name));;;
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 28 ноя 2012 12:36
Денис
Что-то не чего не зашло в поле(((
А нельзя сделать доп. поле в настройках при выгрузке из ПЛИ, как с полем "Производитель".
http://pix.am/roTb/ Там мы просто указывает название поля, а он на автомате туда ложит значения?
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 28 ноя 2012 12:50
TechAdmin
Проверьте название свойства товара, оно называется 'Keywords'?
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 29 ноя 2012 09:17
Денис
TechAdmin писал(а):Проверьте название свойства товара, оно называется 'Keywords'?
Заработало, неправильно было написано свойство, все подправил и все появилось.
Еще, такой вопрос. есть два места где мы можем настроит SEO в верхней вкладке
http://pix.am/GTeb/ и при экспорте, тоже есть такая же вкладка
http://pix.am/CjH8/ . Есть ли какое-то различение между ними?
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 29 ноя 2012 11:11
support
Да, есть. Если настраивается во вкладке экспорт то данные подставляются динамически при экспорте файла.
Если настраиваются в глобальных настройках то данные нужно обновлять для категорий и товаров, при этом настройки СЕО в экспорте должны быть неактивны.
Данный вопрос не имеет отношения к созданной теме. Тема закрыта.
Re: SQL запросы для движка 1С-Битрикс
Добавлено: 08 янв 2013 13:12
Денис
e-special писал(а):
вот как пример для поля обновления поля Keywords
У вас было чуть не правильно написано. Вот правильные SQL запросы для:
Keywords
Код: Выделить всё
UPDATE b_iblock_element_property, b_iblock_element, etrade_products SET b_iblock_element_property.value=etrade_products.head_keywords WHERE b_iblock_element.id=b_iblock_element_property.iblock_element_id AND b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element_property.iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name='Keywords' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID);;;
INSERT INTO b_iblock_element_property (iblock_property_id, iblock_element_id, value) SELECT (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'Keywords' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name) as property_id, b_iblock_element.id, etrade_products.head_keywords FROM b_iblock_element, etrade_products WHERE b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element.id NOT IN (SELECT iblock_element_id FROM b_iblock_element_property WHERE iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'Keywords' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name));;;
Description:
Код: Выделить всё
UPDATE b_iblock_element_property, b_iblock_element, etrade_products SET b_iblock_element_property.value=etrade_products.head_desc WHERE b_iblock_element.id=b_iblock_element_property.iblock_element_id AND b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element_property.iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name='description' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID);;;
INSERT INTO b_iblock_element_property (iblock_property_id, iblock_element_id, value) SELECT (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'description' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name) as property_id, b_iblock_element.id, etrade_products.head_desc FROM b_iblock_element, etrade_products WHERE b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element.id NOT IN (SELECT iblock_element_id FROM b_iblock_element_property WHERE iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'description' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name));;;
Title:
Код: Выделить всё
UPDATE b_iblock_element_property, b_iblock_element, etrade_products SET b_iblock_element_property.value=etrade_products.head_title WHERE b_iblock_element.id=b_iblock_element_property.iblock_element_id AND b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element_property.iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name='title' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID);;;
INSERT INTO b_iblock_element_property (iblock_property_id, iblock_element_id, value) SELECT (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'title' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name) as property_id, b_iblock_element.id, etrade_products.head_title FROM b_iblock_element, etrade_products WHERE b_iblock_element.xml_id=etrade_products.tov_guid AND b_iblock_element.id NOT IN (SELECT iblock_element_id FROM b_iblock_element_property WHERE iblock_property_id IN (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.active = 'Y' AND b_iblock_property.name = 'title' AND b_iblock_property.IBLOCK_ID=b_iblock_element.IBLOCK_ID GROUP BY b_iblock_property.name));;;