Magento: для чего используется тип сущности "платеж клиента"?


Краткая версия:

В нашей базе данных Magento у нас есть 40 записей в нашей таблице customer_entity, в которой есть entity_type_id, которая сопоставляется с entity_type_code "customer_payment" в таблице eav_entity_type. Они мешают нам перейти на глобальный обмен учетными записями между нашими магазинами. Для чего они нужны и можно ли их безопасно удалить?

Длинная версия:

Мы готовимся к запуску нашего второго магазина на Magento Enterprise Edition v1.12.0.2, и мы недавно решил включить глобальный обмен учетными записями клиентов перед запуском новой витрины магазина. Все, что для этого требуется, - убедиться в отсутствии конфликтов адресов электронной почты между учетными записями двух магазинов, поэтому я удалил тестовые учетные записи для новой витрины магазина, ожидая, что мы будем настроены, но это не так.
После проверки записей в таблице customer_entity я обнаружил 40 записей, как описано в "краткой версии" выше. Все они создаются в быстрой последовательности друг за другом- всего несколько секунд, чтобы создать их все - что наводит меня на мысль, что они должны быть сгенерированы автоматически. Большинство полей имеют значение null или равны нулю, включая store_id, website_id, и email.
Я искал в каждой таблице, в которой была ссылка на внешний ключ в поле entity_id таблицы customer_entity, вхождения идентификаторов-нарушителей, но они, похоже, не связаны ни с какими другими записями в других таблицах, по крайней мере, с теми, которые обеспечивают связь внешнего ключа. Похоже, что даже если бы они были связанные отношениями внешнего ключа, схема базы данных будет изящно каскадировать удаления и при необходимости устанавливать значения равными нулю.
Поиск в Google по Magento и customer_payment дает очень мало результатов и не приносит никакой реальной пользы. Все, что я смог определить, это то, что "customer_payment", по-видимому, является типом сущности по умолчанию для Magento. Я даже зашел так далеко, что сделал новую установку, чтобы посмотреть, могут ли записи клиентов автоматически создаваться во время установки, но это не так.
Итак почему они присутствуют? Какой цели они служат, что их породило, и, самое главное, могу ли я безопасно удалить их?

 6
Author: joelmdev, 2013-03-04

1 answers

Пожалуйста, обратите внимание, что мои ответы ниже ссылаются на Magento CE, но я считаю, что они по-прежнему применимы и к Enterprise Edition.

  • Что их породило? Скорее всего, образец SQL данных (http://www.magentocommerce.com/download ). Вы использовали образцы данных?
  • Какой цели они служат? В текущих версиях Magento - нет.
  • Почему они присутствуют? Вы никогда не поверите, но они остались от бета-версии Magento. Они даже не используются в Magento версии 1.0. Я нашел последнюю ссылку на них в версии 0.7. Даже классы моделей, на которые ссылается таблица eav_entity_type, больше не существуют. Mage_Customer_Model_Entity_Payment - это пример класса, который не существовал с версии 0.7
  • Могу ли я безопасно удалить их? Да! К сожалению, я не могу дать вам волшебный сценарий для запуска. Я исправил ситуацию, создав резервную копию базы данных, удалив ее и снова запустив установщик, чтобы создайте новые таблицы. Затем я скопировал таблицы core_config_data и cms_* обратно. Это был очень простой сайт, хотя, возможно, вам придется быть более внимательным к тому, что вы копируете, если ваша установка более сложная.

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

 3
Author: jharrison.au, 2013-03-06 00:07:36