8

I Want To Set Minimum Length Value For Street Address Field On Admin Side

enter image description here

I want to set min_text_length = 5 For Street Address Field In Customer Address Form

I am Trying To Update Attribute but Not Working

public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
 {
 if (version_compare($context->getVersion(), '1.0.1', '<')) {
 $customerSetup = $this->customerSetup->create(['setup' => $setup]);
 $customerSetup->addAttribute(
 'customer_address',
 'street',
 [
 'type' => 'static',
 'label' => 'Street Address',
 'input' => 'multiline',
 'backend' => \Magento\Eav\Model\Entity\Attribute\Backend\DefaultBackend::class,
 'sort_order' => 70,
 'multiline_count' => 4,
 'validate_rules' => '{"max_text_length":255,"min_text_length":5}',
 'position' => 70,
 ]
 );
 }
 }

In Database Already Set {"max_text_length":255,"min_text_length":5} But Validation not Working

enter image description here

Note :- Admin Side Not Frontend Side.

asked Jun 14, 2019 at 11:29
8
  • you can update attribute and add validation by setup script(can add manually from DB),For front checkout remove validation by changing LayoutProcessor.php and do same thing in register and update address section by removing validation class Commented Jun 19, 2019 at 6:56
  • i know about address form and checkout page but in admin side not find any reference or solution Commented Jun 19, 2019 at 7:00
  • What is your magento version? Commented Jun 19, 2019 at 7:03
  • v 2.2.8 @Sohel Rana Commented Jun 19, 2019 at 7:03
  • Please post your code/ mention clearly which form you want to customize in question. Commented Jun 19, 2019 at 7:11

4 Answers 4

11
+100

You Can do it by Script and update validation within it.You have to change

'validate_rules' => '{"max_text_length":255,"min_text_length":5}',

You can change it directly from DB you have to do it carefully.

  • Open table eav_attribute and find attribute_code street and get attribute_id from it (generally attribute_id is 28).

enter image description here

  • Open table customer_eav_attribute and find that attribute_id (28 in my case). update in validate_rules column {"max_text_length":255,"min_text_length":5}

enter image description here

Note: You have to remove if it occurs in front

answered Jun 19, 2019 at 7:32
7
  • let me check and replay soon Commented Jun 19, 2019 at 7:35
  • no bro its not working i have already try to update attribute Commented Jun 19, 2019 at 7:40
  • but in data base already set {"max_text_length":255,"min_text_length":5} but validation is not working Commented Jun 19, 2019 at 7:40
  • 1+ for response Commented Jun 19, 2019 at 7:49
  • may any other extension conflicts or js error,otherwise you can check it working for me Commented Jun 19, 2019 at 8:39
5

i am not sure if this works

<rule name="required-entry" xsi:type="boolean">true</rule>

Example from first name

<field name="city" formElement="input">
 <argument name="data" xsi:type="array">
 <item name="config" xsi:type="array">
 <item name="source" xsi:type="string">address</item>
 </item>
 </argument>
 <settings>

remove this validation

 <validation>
 <rule name="required-entry" xsi:type="boolean">true</rule>
 </validation>

up to here

 <dataType>text</dataType>
 </settings>
 </field>
Ronak Rathod
6,58020 silver badges46 bronze badges
answered Jun 14, 2019 at 15:51
7
  • its not working Commented Jun 17, 2019 at 5:56
  • @RkRathod hi sorry i thought you wanted to remove the validation. i will let you know if i find something. sorry again Commented Jun 17, 2019 at 7:25
  • @RkRathod try this : <item name="max_text_length" xsi:type="number">5</item> Commented Jun 17, 2019 at 7:34
  • @RkRathod did it work? or was it something new you found Commented Jun 17, 2019 at 8:05
  • @RkRathod if you dont mind will you share the answer? Commented Jun 17, 2019 at 8:39
1

update column validate_rules = {"min_text_length":"1","max_text_length":"10","input_validation":"length"} in table customer_eav_attribute with attribute_id = 28. it's working for me for first fied in address enter image description here

Step 2: In ui_component/customer_address_form.xml enter image description here

Step 3: Create Observer enter image description here

enter image description here

Step 4: override file Magento\Customer\Model\Address\DataProvider.php enter image description here

enter image description here

answered Sep 30, 2021 at 8:19
1
  • because the first validate rules updated in db is worked for the first street view only, and not worked for 2 last street view, so the idea is create 2 new dummy fields and hide 2 last street fields. then when we save the 2 new dummy field, we will set 2 last street fields by that 2 dummy field. Commented Oct 1, 2021 at 7:19
0

You can do this from the admin (Magento 2.3.3):

Admin address validation

answered Dec 6, 2019 at 14:38
3
  • 1
    Where can i find this in admin? Commented Feb 5, 2020 at 5:35
  • @Nayem Stores -> Attributes -> Customer Address, and select "Street Address" from the list. Commented Feb 6, 2020 at 8:04
  • It looks like Adobe have removed access to editing customer attributes from 2.4.x Community/Open Source edition. Adobe Commerce only :( docs.magento.com/user-guide/stores/attributes-customer.html Commented Jan 21, 2022 at 9:41

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.