PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/home/austenwhite.co.uk/www/dev/vendor/magento/module-customer/
Upload File :
Current File : /home/austenwhite.co.uk/www/dev/vendor/magento/module-customer/README.md
# Magento_Customer module

This module serves to handle the customer data (Customer, Customer Address and Customer Group entities) both in the admin panel and the storefront. 
For customer passwords, the module implements upgrading hashes. 

## Installation

The Magento_Customer module is one of the base Magento 2 modules. You cannot disable or uninstall this module.
This module is dependent on the following modules:

- `Magento_Eav`
- `Magento_Directory`

The following modules depend on this module:
- `Magento_Captcha`
- `Magento_Catalog`
- `Magento_CatalogCustomerGraphQl`
- `Magento_CatalogRule`
- `Magento_CompareListGraphQl`
- `Magento_CustomerAnalytics`
- `Magento_CustomerGraphQl`
- `Magento_EncryptionKey`
- `Magento_LoginAsCustomerGraphQl`
- `Magento_NewRelicReporting`
- `Magento_ProductAlert`
- `Magento_Reports`
- `Magento_Sales`
- `Magento_Swatches`
- `Magento_Tax`
- `Magento_Wishlist`
- `Magento_WishlistGraphQl`

The Magento_Customer module creates the following tables in the database:
- `customer_entity`
- `customer_entity_datetime`
- `customer_entity_decimal`
- `customer_entity_int`
- `customer_entity_text`
- `customer_entity_varchar`
- `customer_address_entity`
- `customer_address_entity_datetime`
- `customer_address_entity_decimal`
- `customer_address_entity_int`
- `customer_address_entity_text`
- `customer_address_entity_varchar`
- `customer_group`
- `customer_eav_attribute`
- `customer_form_attribute`
- `customer_eav_attribute_website`
- `customer_visitor`
- `customer_log`

For information about a module installation in Magento 2, see [Enable or disable modules](https://devdocs.magento.com/guides/v2.4/install-gde/install/cli/install-cli-subcommands-enable.html).

## Extensibility

Extension developers can interact with the Magento_Customer module. For more information about the Magento extension mechanism, see [Magento plugins](https://devdocs.magento.com/guides/v2.4/extension-dev-guide/plugins.html).

[The Magento dependency injection mechanism](https://devdocs.magento.com/guides/v2.4/extension-dev-guide/depend-inj.html) enables you to override the functionality of the Magento_Customer module.

A lot of functionality in the module is on JavaScript, use [mixins](https://devdocs.magento.com/guides/v2.4/javascript-dev-guide/javascript/js_mixins.html) to extend it.

### Events

The module dispatches the following events:

#### Block
- `adminhtml_block_html_before` event in the `\Magento\Customer\Block\Adminhtml\Edit\Tab\Carts::_toHtml` method. Parameters:
    - `block` is a `$this` object (`Magento\Customer\Block\Adminhtml\Edit\Tab\Carts` class)
    
#### Controller
- `customer_register_success` event in the `\Magento\Customer\Controller\Account\CreatePost::execute` method. Parameters:
    - `account_controller` is a `$this` object (`\Magento\Customer\Controller\Account\CreatePost` class)
    - `customer` is a customer object (`\Magento\Customer\Model\Data\Customer` class)
    
- `customer_account_edited` event in the `\Magento\Customer\Controller\Account\EditPost::dispatchSuccessEvent` method. Parameters:
    - `email` is a customer email (`string` type)
    
- `adminhtml_customer_prepare_save` event in the `\Magento\Customer\Controller\Adminhtml\Index\Save::execute` method. Parameters:
    - `customer` is a customer object to be saved (`\Magento\Customer\Model\Data\Customer` class)
    - `request` is a request object with the `\Magento\Framework\App\RequestInterface` interface.

- `adminhtml_customer_save_after` event in the `\Magento\Customer\Controller\Adminhtml\Index\Save::execute` method. Parameters:
    - `customer` is a customer object (`\Magento\Customer\Model\Data\Customer` class)
    - `request` is a request object with the `\Magento\Framework\App\RequestInterface` interface.
  
#### Model
- `customer_customer_authenticated` event in the `\Magento\Customer\Model\AccountManagement::authenticate` method. Parameters:
    - `model` is a customer object (`\Magento\Customer\Model\Customer` class)
    - `password` is a customer password (`string` type)

- `customer_data_object_login` event in the `\Magento\Customer\Model\AccountManagement::authenticate` method. Parameters:
    - `customer` is a customer object (`\Magento\Customer\Model\Data\Customer` class)

- `customer_address_format` event in the `\Magento\Customer\Model\Address\AbstractAddress::format` method. Parameters:
    - `type` is a address format type (`string` type)
    - `address` is a `$this` object (`\Magento\Customer\Model\Address\AbstractAddress` class)

- `customer_customer_authenticated` event in the `\Magento\Customer\Model\Customer::authenticate` method. Parameters:
    - `model` is a customer object (`\Magento\Customer\Model\Customer` class)
    - `password` is a customer password (`string` type)

- `customer_save_after_data_object` event in the `\Magento\Customer\Model\ResourceModel\CustomerRepository::save` method. Parameters:
    - `customer_data_object` is a saved customer object (`\Magento\Customer\Model\Data\Customer` class)
    - `orig_customer_data_object` is a previous customer object (`\Magento\Customer\Model\Data\Customer` class)
    - `delegate_data` is a customer additional data (`array` type)

- `customer_session_init` event in the `\Magento\Customer\Model\Session::__construct` method. Parameters:
    - `customer_session` is a `$this` object (`\Magento\Customer\Model\Session` class)
  
- `customer_login` event in the `\Magento\Customer\Model\Session::setCustomerAsLoggedIn` method. Parameters:
    - `customer` is a `$this` object (`\Magento\Customer\Model\Customer` class)

- `customer_data_object_login` event in the `\Magento\Customer\Model\Session::setCustomerAsLoggedIn` method. Parameters:
    - `customer` is a `$this` object (`\Magento\Customer\Model\Data\Customer` class)

- `customer_login` event in the `\Magento\Customer\Model\Session::setCustomerDataAsLoggedIn` method. Parameters:
    - `customer` is a `$this` object (`\Magento\Customer\Model\Customer` class)

- `customer_data_object_login` event in the `\Magento\Customer\Model\Session::setCustomerDataAsLoggedIn` method. Parameters:
    - `customer` is a `$this` object (`\Magento\Customer\Model\Data\Customer` class)

- `customer_logout` event in the `\Magento\Customer\Model\Session::logout` method. Parameters:
    - `customer` is a `$this` object (`\Magento\Customer\Model\Customer` class)

- `visitor_init` event in the `\Magento\Customer\Model\Visitor::logout` method. Parameters:
    - `visitor` is a `$this` object (`\Magento\Customer\Model\Visitor` class)

- `visitor_activity_save` event in the `\Magento\Customer\Model\Visitor::saveByRequest` method. Parameters:
    - `visitor` is a `$this` object (`\Magento\Customer\Model\Visitor` class)

For information about an event in Magento 2, see [Events and observers](http://devdocs.magento.com/guides/v2.4/extension-dev-guide/events-and-observers.html#events).

### Layouts

This module introduces the following layouts in the `view/frontend/layout` and `view/adminhtml/layout` directories:
- `view/adminhtml/layout`:
    - `customer_address_edit`
    - `customer_group_index`
    - `customer_index_cart`
    - `customer_index_carts`
    - `customer_index_edit`
    - `customer_index_index`
    - `customer_index_newsletter`
    - `customer_index_orders`
    - `customer_index_viewcart`
    - `customer_index_viewwishlist`
    - `customer_online_index`
    
- `view/frontend/layout`:
    - `customer_account`
    - `customer_account_confirmation`
    - `customer_account_create`
    - `customer_account_createpassword`
    - `customer_account_edit`
    - `customer_account_forgotpassword`
    - `customer_account_index`
    - `customer_account_login`
    - `customer_account_logoutsuccess`
    - `customer_address_index`
    - `default`

For more information about a layout in Magento 2, see the [Layout documentation](https://devdocs.magento.com/guides/v2.4/frontend-dev-guide/layouts/layout-overview.html).

### Public APIs

#### Data

- `\Magento\Customer\Api\Data\AddressInterface`:
    - customer address data

- `\Magento\Customer\Api\Data\AddressSearchResultsInterface`:
    - customer address search result data

- `\Magento\Customer\Api\Data\AttributeMetadataInterface`:
    - customer attribute metadata

- `\Magento\Customer\Api\Data\CustomerInterface`:
    - customer data

- `\Magento\Customer\Api\Data\CustomerSearchResultsInterface`:
    - customer search result data

- `\Magento\Customer\Api\Data\GroupInterface`:
    - customer group data

- `\Magento\Customer\Api\Data\GroupSearchResultsInterface`:
    - customer group search result data

- `\Magento\Customer\Api\Data\OptionInterface`:
    - option data

- `\Magento\Customer\Api\Data\RegionInterface`:
    - customer address region data

- `\Magento\Customer\Api\Data\ValidationResultsInterface`:
    - validation results data

- `\Magento\Customer\Api\Data\ValidationRuleInterface`:
    - validation rule data

#### Metadata

- `\Magento\Customer\Api\MetadataInterface`:
    - retrieve all attributes filtered by form code 
    - retrieve attribute metadata by attribute code
    - get all attribute metadata
    - get custom attributes metadata for the given data interface
    
- `\Magento\Customer\Api\MetadataManagementInterface`:
    - check whether attribute is searchable in admin grid and it is allowed
    - check whether attribute is filterable in admin grid and it is allowed
    
#### Customer address

- `\Magento\Customer\Api\AddressMetadataInterface`:
    - retrieve information about customer address attributes metadata
    - extends `Magento\Customer\MetadataInterface`
    
- `\Magento\Customer\Api\AddressMetadataManagementInterface`:
    - manage customer address attributes metadata
    - extends `Magento\Customer\Api\MetadataManagementInterface`
    
- `\Magento\Customer\Api\AddressRepositoryInterface`:
    - save customer address
    - get customer address by address ID
    - retrieve customers addresses matching the specified criteria
    - delete customer address
    - delete customer address by address ID

- `\Magento\Customer\Model\Address\AddressModelInterface`
    - get street line by number
    - create fields street1, street2, etc

- `\Magento\Customer\Model\Address\ValidatorInterface`
    - validate address instance

- `\Magento\Customer\Model\Address\CustomAttributeListInterface`
    - retrieve list of customer addresses custom attributes
    
#### Customer

- `\Magento\Customer\Api\AccountManagementInterface`:
    - create customer account
    - create customer account using provided hashed password
    - validate customer data
    - check if customer can be deleted
    - activate a customer account using customer EMAIL and key that was sent in a confirmation email
    - activate a customer account using customer ID and key that was sent in a confirmation email
    - authenticate a customer by username and password
    - change customer password by customer EMAIL
    - change customer password by customer ID
    - send an email to the customer with a password reset link
    - reset customer password
    - check if password reset token is valid
    - gets the account confirmation status
    - resend confirmation email
    - check if given email is associated with a customer account in given website
    - check store availability for customer given the customer ID
    - retrieve default billing address for the given customer ID
    - retrieve default shipping address for the given customer ID
    - get hashed password
    
- `\Magento\Customer\Api\CustomerManagementInterface`:
    - provide the number of customer count
    
- `\Magento\Customer\Api\CustomerMetadataInterface`:
    - retrieve information about customer attributes metadata
    - extends `Magento\Customer\MetadataInterface`
    
- `\Magento\Customer\Api\CustomerMetadataManagementInterface`:
    - manage customer attributes metadata
    - extends `Magento\Customer\Api\MetadataManagementInterface`
    
- `\Magento\Customer\Api\CustomerNameGenerationInterface`:
    - concatenate all customer name parts into full customer name
    
- `\Magento\Customer\Api\CustomerRepositoryInterface`:
    - create or update a customer
    - get customer by customer EMAIL
    - get customer by customer ID
    - retrieve customers which match a specified criteria
    - delete customer
    - delete customer by customer ID

- `\Magento\Customer\Model\AuthenticationInterface`:
    - process customer authentication failure by customer ID
    - unlock customer by customer ID
    - check if a customer is locked by customer ID
    - authenticate customer by customer ID and password

- `\Magento\Customer\Model\EmailNotificationInterface`:
    - send notification to customer when email and/or password changed
    - send email with new customer password
    - send email with reset password confirmation link
    - send email with new account related information
    
#### Customer group

- `\Magento\Customer\Api\CustomerGroupConfigInterface`:
    - set system default customer group
    
- `\Magento\Customer\Api\GroupManagementInterface`:
    - check if customer group can be deleted
    - get default customer group
    - get customer group representing customers not logged in
    - get all customer groups except group representing customers not logged in
    - get customer group representing all customers
    
- `\Magento\Customer\Api\GroupRepositoryInterface`:
    - save customer group
    - get customer group by group ID
    - retrieve customer groups which match a specified criteria
    - delete customer group
    - delete customer group by ID

- `\Magento\Customer\Model\Group\RetrieverInterface`
    - get current customer group id from session

- `\Magento\Customer\Model\Customer\Source\GroupSourceLoggedInOnlyInterface`
    - get customer group attribute source
    
For information about a public API in Magento 2, see [Public interfaces & APIs](http://devdocs.magento.com/guides/v2.4/extension-dev-guide/api-concepts.html).

### UI components

You can extend customer and customer address updates using the configuration files located in the `view/adminhtml/ui_component` and `view/base/ui_component` directories:
- `view/adminhtml/ui_component`:
    - `customer_address_form`
    - `customer_address_listing`
    - `customer_group_listing`
    - `customer_listing`
    - `customer_online_grid`

- `view/base/ui_component`:
    - `customer_form`
    
For information about a UI component in Magento 2, see [Overview of UI components](http://devdocs.magento.com/guides/v2.4/ui_comp_guide/bk-ui_comps.html).

## Additional information

More information can get at articles:
- [Customer Configurations](https://docs.magento.com/user-guide/configuration/customers/customer-configuration.html)
- [Customer Attributes](https://docs.magento.com/user-guide/stores/attributes-customer.html)
- [Customer Address Attributes](https://docs.magento.com/user-guide/stores/attributes-customer-address.html)
- [EAV And Extension Attributes](https://devdocs.magento.com/guides/v2.4/extension-dev-guide/attributes.html)
- [2.4.x Release information](https://devdocs.magento.com/guides/v2.4/release-notes/bk-release-notes.html)

### Console commands

Magento_Customer provides console commands:
- `bin/magento customer:hash:upgrade` - upgrades a customer password hash to the latest hash algorithm

### Cron options

Cron group configuration can be set at `etc/crontab.xml`:
- `visitor_clean` - clean visitor's outdated records

[Learn how to configure and run cron in Magento.](http://devdocs.magento.com/guides/v2.4/config-guide/cli/config-cli-subcommands-cron.html).

### Indexers

This module introduces the following indexers:
- `customer_grid` - customer grid indexer

[Learn how to manage the indexers](https://devdocs.magento.com/guides/v2.4/config-guide/cli/config-cli-subcommands-index.html).