Добавление клиентов в Magento в сыром SQL - PullRequest
0 голосов
/ 16 ноября 2010

Я новичок в Magento и хочу добавить информацию о клиенте в таблицу customer_entity Magento. У меня вопрос, если я выполню следующий запрос (через PHP):

INSERT INTO 
    `customer_entity` ('entity_type_id', attribute_set_id, foo, bar, baz)
    values ('some', 'placeholder', 'values')"
);

Этого достаточно для создания правильной записи о клиенте? Когда я смотрю на базу данных, я вижу множество таблиц, связанных с клиентами, таких как

  • customer_entity_datetime
  • customer_entity_decimal
  • customer_entity_int
  • customer_entity_text
  • customer_entity_varchar
  • customer_group

Я пытаюсь создать сценарий, который не связан с кодом Magento. Он должен быть независимым, но я хочу, чтобы он мог включать клиентов в таблицы Magento.

Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2010

В дополнение к пункту Clockworkgeek о последующих обновлениях системы вы также избегаете значительной сложности EAV-системы Magento, используя платформу.

Пользовательские данные в Magento располагаются между упомянутыми вами таблицами customer_entity_*, и добавление новых данных в систему потребует от вас получения каждого из определений столбцов (из eav_attribute) и размещения данных соответствующим образом. Это даже больше боли, чем кажется.

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

Надеюсь, это поможет!

Спасибо, Джо

2 голосов
/ 16 ноября 2010

Вы избавите себя от лишних хлопот, используя структуру Magento.

require PATH_TO_MAGENTO_FOLDER . '/app/Mage.php';
Mage::app();

$newCustomer = Mage::getModel('customer/customer');
$newCustomer->setFirstname('Foo')
            ->setLastname('Bar')
            ... // Set all the various details here
            ->save();

Попытка обработки таблиц различных сущностей - это путь к катастрофе, поскольку их можно значительно изменить, обновив / добавив новые расширенияв Magento, который затем нарушит ваш сценарий.

...