Добавление товара в SQL-таблицы вручную

Главные вкладки

Аватар пользователя knyazevsergey knyazevsergey 7 декабря 2014 в 2:47

Просьба, подскажите, измучился с ручным добавлением товара в SQL-таблицы сайта под управлением CMS Drupal.
Цель - сделать выгрузку товаров из 1С напрямую в SQL-таблицы.
Создаю запись о товаре в таблицах
commerce_product
commerce_product_revision
field_data_field_product
field_revision_field_product
field_data_commerce_price
field_revision_commerce_price
и создаю ноду в таблице
node

Товар появляется, но:
1) у него не высвечивается цена, хотя, как видно, в таблицы (field_data_commerce_price и field_revision_commerce_price) я эти значения записываю.
2) в ноде не появляется ссылка на связанный товар, хотя в таблице field_data_field_product я эту связь между ID-шниками ноды и товара прописываю.

Вопрос. Может быть еще в какие-то таблицы нужно записать какие-то данные? Структура таблиц у Drupal очень сложная какая-то. Уже перепробовал все, но тщетно. Причем при перезаписи товара из админки, цена в нем появляется. Что я, заводя вручную в SQL, делаю не так?

Комментарии

Аватар пользователя Orion76 Orion76 7 декабря 2014 в 8:00

Если по простому, то писать на прямую в БД не хорошо (За нарушение религиозных догм, на костер.. однозначно-))), т.к. хуки Drupal не отрабатывают..

Отсюда, скорее всего проблемы сейчас, и скорее всего появятся еще в дальнейшем..

Или создавать объект сущности программно и сохранять в базу стандартными методами..
Или тоже самое, но при помощи модуля Feeds..
Скорее всего он сможет с Вашей задачей справиться, а при необходимости есть возможность дописать для него недостающий функционал..

Аватар пользователя dashiwa dashiwa 7 декабря 2014 в 9:54

Теоретически большая часть данных хранится в бд. Поэтому все возможно.. Данные там сериализованы. Структуру массивов можно просмотреть при отладке,когда будете добавлять стандартными методами.

Аватар пользователя knyazevsergey knyazevsergey 7 декабря 2014 в 10:50

Упс. Пока вопрос закрыт. Получилось.
Попробовал все-также создать товар в тех же таблицах повторно, и все получилось. Подозреваю, что зависит от последовательности. Сначала создал товар, затем ноду. До этого делал наоборот. Но пока не понял, почему это повлияло.

Аватар пользователя sas@drupal.org sas@drupal.org 7 декабря 2014 в 11:26

Я бы сделал запись напрямую в таблицу для импорта, а дернул trigger по которому уже создал товар через Drupal API и данных таблицы типа node_load() , node_save()

Аватар пользователя dashiwa dashiwa 7 декабря 2014 в 13:08

Не в последовательности создания таблиц дело. Там куча связанных таблиц. + Надо учитывать очередность чтения функциями данных . Может одна из них не прочитала нужный параметр и отработала в исключение,и все остальные застопорились..