Измените область действия правил проверки свойства атрибута клиента с глобального на веб-сайт


Как я могу изменить область действия свойства атрибута клиента "validation_rules". Этот атрибут существует в атрибуте customer_eav_attribute (содержащем min_text_length и max_text_length).

Добавление его на сайт customer_eav_attribute_website не работает. Сфера применения по-прежнему "глобальная". Где я должен настроить?

$installer->getConnection()->addColumn($installer->getTable('customer/eav_attribute_website'), 'validate_rules',
    'text DEFAULT NULL');

Есть идеи?

Author: David Manners, 2014-06-24

1 answers

В Magento есть только одна область для клиентов. Клиент либо уникален для каждого веб-сайта, либо глобален. Из-за этого для каждого клиента существует только 1 значение для каждого атрибута. Это отличается от продуктов, которые могут иметь значения уровня магазина и веб-сайта.

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

Вы можете подумать о создании новой модели и структурировать ее так же, как статическую блочную модель. Эта модель имеет идентификатор, который может быть одинаковым в разных экземплярах. Каждый экземпляр привязан к одному или нескольким представлениям хранилища. Затем вы можете сохранить значение "идентификатор" для своей модели в новом клиенте "validation_rule_identifier", который заменяет атрибут "validation_rules", который у вас есть сейчас. Когда вам нужна логика, которая ранее использовала атрибут validation_rules, вы должны загрузить новую модель и выполнить фильтрацию по текущему магазину и значению идентификатора validation_rule_identifier текущего клиента. Это должно позволить вам выполнить то, что вы надеетесь сделать прямо сейчас.

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

 0
Author: Jonathan Hodges, 2014-09-26 20:38:03