Удалите или отключите атрибут клиента, добавленный при переносе с 1.9.3.2 на 2.1.4
Я перенес сайт с 1.9.3.2 на 2.1.4, и есть атрибут клиента customerno
, который был добавлен из модуля под названием Fontis_Customer
. В старом модуле есть файл:
app/code/local/Fontis/Customer/Model/Entity/Setup.php
class Fontis_Customer_Model_Entity_Setup extends Mage_Customer_Model_Entity_Setup
{
'customerno' => array(
'label' => 'Customer Number',
'visible' => true,
'required' => true,
),
}
После миграции он перенес этот атрибут и предотвращает проверки. Когда я нажимаю кнопку для оформления заказа, я получаю сообщение об ошибке The value of attribute "customerno" must be set
Я запустил запрос:
mysql> select * from eav_attribute ea INNER JOIN customer_eav_attribute cea ON cea.attribute_id = ea.attribute_id WHERE ea.frontend_label LIKE '%Customer%' \G
*************************** 1. row ***************************
attribute_id: 140
entity_type_id: 1
attribute_code: customerno
attribute_model: NULL
backend_model: NULL
backend_type: varchar
backend_table: NULL
frontend_model: NULL
frontend_input: text
frontend_label: Customer Number
frontend_class: NULL
source_model: NULL
is_required: 0
is_user_defined: 0
default_value: NULL
is_unique: 0
note: NULL
attribute_id: 140
is_visible: 1
input_filter: NULL
multiline_count: 1
validate_rules: NULL
is_system: 0
sort_order: 0
data_model: NULL
is_used_in_grid: 0
is_visible_in_grid: 0
is_filterable_in_grid: 0
is_searchable_in_grid: 0
И я увидел, что поле is_required
было установлено на 1. Я установил его на 0, думая, что это решит проблему, но это не так. Является есть где-то еще, где это значение установлено в обязательное значение в базе данных?
РЕДАКТИРОВАТЬ: Я должен отметить, что я бы предпочел сделать это на уровне базы данных, а не создавать модуль, чтобы сделать это за меня.
1 answers
Взгляните : vendor/magento/module-eav/Model/Entity/Attribute/Backend/AbstractBackend.php::validate()
if ($attribute->getIsVisible()
&& $attribute->getIsRequired()
&& $attribute->isValueEmpty($value)
&& $attribute->isValueEmpty($attribute->getDefaultValue())
) {
throw new LocalizedException(__('The value of attribute "%1" must be set', $attrCode));
}
Как мы видим, это сообщение появляется, когда: (с использованием условий and
)
-
is_visible
установите значение 1. -
is_required
установите значение 1. - Этот атрибут не имеет значения.
В вашем случае, после изменения is_required
на 0, процесс оформления заказа должен работать. Следует повторить попытку с помощью:
Попробуйте еще раз переиндексировать базу данных.
Очистите кэш Magento.