From 95d32065dbeba97643770f18616bca559159e670 Mon Sep 17 00:00:00 2001 From: Vitor Luiz Cavalcanti Date: Thu, 5 May 2022 02:04:35 -0300 Subject: [PATCH 01/10] docs: add Asciinema component --- docs/.vuepress/components/Asciinema.vue | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/.vuepress/components/Asciinema.vue diff --git a/docs/.vuepress/components/Asciinema.vue b/docs/.vuepress/components/Asciinema.vue new file mode 100644 index 000000000..20e401191 --- /dev/null +++ b/docs/.vuepress/components/Asciinema.vue @@ -0,0 +1,31 @@ + + + From 3d11b00f1eeed8f9b1b5953b42f17276f306b8f2 Mon Sep 17 00:00:00 2001 From: Vitor Luiz Cavalcanti Date: Tue, 10 May 2022 02:47:31 -0300 Subject: [PATCH 02/10] docs: refactor Creating a Store docs --- .../magento-marketplace-access-key-form.jpg | Bin 0 -> 27038 bytes .../magento-marketplace-access-keys-link.jpg | Bin 0 -> 20668 bytes .../magento-marketplace-access-keys.jpg | Bin 0 -> 21995 bytes ...o-marketplace-create-access-key-button.jpg | Bin 0 -> 14206 bytes .../images/magento-marketplace-link.jpg | Bin 0 -> 21088 bytes .../magento-marketplace-my-profile-link.jpg | Bin 0 -> 20019 bytes .../magento-marketplace-signin-form.jpg | Bin 0 -> 26312 bytes docs/guide/creating-a-store.md | 117 ++++++++++++------ 8 files changed, 82 insertions(+), 35 deletions(-) create mode 100644 docs/assets/images/magento-marketplace-access-key-form.jpg create mode 100644 docs/assets/images/magento-marketplace-access-keys-link.jpg create mode 100644 docs/assets/images/magento-marketplace-access-keys.jpg create mode 100644 docs/assets/images/magento-marketplace-create-access-key-button.jpg create mode 100644 docs/assets/images/magento-marketplace-link.jpg create mode 100644 docs/assets/images/magento-marketplace-my-profile-link.jpg create mode 100644 docs/assets/images/magento-marketplace-signin-form.jpg diff --git a/docs/assets/images/magento-marketplace-access-key-form.jpg b/docs/assets/images/magento-marketplace-access-key-form.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53222f8027c9ed2883aaf461e20c2226c2287154 GIT binary patch literal 27038 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/magento-marketplace-access-keys-link.jpg b/docs/assets/images/magento-marketplace-access-keys-link.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6dfbafce5df9904dd391bc822c217279e9b2748b GIT binary patch literal 20668 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 IA9?nF0ppU2;s5{u literal 0 HcmV?d00001 diff --git a/docs/assets/images/magento-marketplace-access-keys.jpg b/docs/assets/images/magento-marketplace-access-keys.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1cb6f6e8b3a53c874e1d40b9d38d318f8cd6ca65 GIT binary patch literal 21995 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 Ilri*w0K^;wz5oCK literal 0 HcmV?d00001 diff --git a/docs/assets/images/magento-marketplace-link.jpg b/docs/assets/images/magento-marketplace-link.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c1d3276696614bfb344894489a6a2f44db7ab98 GIT binary patch literal 21088 zcmeIa2V7I%moFNm34$on5uySDBA_TBH7e3Y1f`d#fHWb3lmLM!3P@KFP*5TQ(m_h- zB+>;`dJ82Gnv_UF2?0X#j`QxF`}_az%)I;Fy!W4ZpF1bn$vN5QWUsZ)E^B?)cOS+W zV+M50NY79Y#Kgn|x(B>Kj9JhbUAX&05Xi&?bPfap9R~7vLCnA&6Y%<{jWGez0Ucsu z`t$y88#62OpN)-$g_)I|jh+2ZI?Qo|-wfBxjp z<$taM-du;-5C1vi|K7&<3Oat6>CPc1W~MWsL&uqzk25jaKwv;tRzRaaO8vKu=@2su zD;ppZ=Mmrp^f5quX68eHu&gXBz}cZdK8WQwEAQ!x*Vs;&-Df}J!>9D@b=F~t>*dY- z=KUneOAma*IXDFbg@i?<&PvP3p1Z89qIyM5UFU|bp1y&h(Ve>%mR8m_wocA24_)2d zJ)Zda2L!@{f}g*Lh>Us}9g~#&CM7lP?Ys0(**UqN^YRM{D=Mqd)it$s^)0P!?H!%p zy1EAjhlWQ+$HsB9gt_^J#id`%E98yMt!>H zUrknTX{^+UV)!5-uj7a6oyL8Wv=<0>ubkzJy9Ov{H1g=Lnt1WMhjwclYD0h8V1wd_ z79i%q{7*3;nSW4{n@3GV(K&4xAg+BvlW}vH;6T_oA@<7Lz6tRc1EgE2q?e@7#;#P| z$^N16sP@hoOm$f|m@4ze7((Ma(nkJP_-jY~LB*GE_a2q_9xi)E2CH?rjN5zM%k7c< zp?6^JlN_+NWqW`_6~ZB{bz!g%KT}XK=RA8gW!J=M>jTWbc(U(CZI%KSJ9{f^?2t5`JbqDkt{tpghf~ z$l>~fx~AdNN1q-KKNFjhIJPmjKRgyTf)qo}CWnD0sn3o3iHagW4T_7`Hs>eW?1|>r z6YFb#4tMy(C1gJbO7)v*S7f~a-l%a`$dezy%*47CiU z)5#l-;4a_E0ily7WTCn|Y1yJ2^r&4?12Skg``4A&*ei)wy3Rd>E7&U>dh>BkPLlzXH0TG|Ob zJS&dMb^XQZcNQj>W2H8A#7CKz;+3@ZSZ3~B0CE08&Q$JcWl^0T3JKgz=>!bo8-zRH_YVP~`MB17}!f!NvCD^RYl@3dUA6~aX9;1ck(Bw$sXo6QT@sS^tXWS$oZ?BZPaWDEv!@Wbd z_)S5)rl1p02q2OSUCtxy;z61ODKI*NE@%2eJ&w*X(jPtP_P6n5~84C&J{Z{g0?H&86SNZH$Tj9MP6rN12Ig01O zX9RfPmUbbwL!5m`dZNh?>*G6gj^r|G zQJbLIa+nzDC$@NU@|)m+z54|wi;(gw7G_$lB`e3p#$yr5d zdfG5lFwG~g>Sot@-VPIewf!^kb))rKabo=^CN3rMa>FjHx1i4I;75Op z2KgTu=W_IIs_2z46fJx!a>hmsDrKwk^P+u1^u8a$fI8~rQ-+YB3J1-BnIrwbj4Gq} zuFYJ)r3YH@u(s<`e~{sE1o79 z#y>r^UO(gf$LXYG>;F7qi67(K%Xpu&gr-EoczE(n^1)p&=$knE$@v!RaCaKGk%-% zZqzv%zVyw_7ObTEB%W>zQZt{H0`9vRHDj)U0g6hmjtU}mue7#Q!n5rfP;GgRl}Q?& z*^g~Xw7=*5d{C0I2^#Zx-3|&R>LQxJG(PrrsBq)`VjBbx)!3h`c#TAyPY-2)qRVL4 z*rIZNJOSfl`lqBq-iJ=DWHFtZFEF11Hz!VnnZ~G>#WaeQ!d0zF?Cpu1%bn&Kts=1{ zJ2+y(b$gr%$3)=K^*3v{3A+7JZcxZJ9J^M>07cc5PEDg@s(KI3pv#84X=6ZFPNes0D-J?Dnshp$W21uN{KLN= zaRpN5ei(2)zIKG;>LTRb(IfXx#_{^HFNU3)T^a6nuQ&5uC=ggHbLo)^9Cs)|^o}=j zcihfGSy(J)_v)F&2%Ym`sH7WHUfB#rO?3K@^1#(7i9-7fI4n+&wKW%K&{L zGe84y&tgD|N@UkZN936KAOmz=xeFMLgs}53;Cb}cP6o(uw%7-};b6`Hm6-y~OZ@_J zcf&8-A-o2ancWMqpX z+j6~0{9rVaIp4w5^k&gJ~Bp1wd7%s%2Jwca|wT zQEplue8$31u~?yp2Rl(TKEc_V2%*FjTI30jOJz>=v*E?D!@hO9p8eRFEN}&;Xy1n3 zJEu>=t42ft8N8-Tw)zS=jGTFeksJz> zbdw|W9(90s(0}-WE9HAutxSU>r>7)fDQ~|OPHr8xLx-y6!aFHB)M$6E5p52t4r!nR zKKe*xu{@{*j|L%wi4v^n@~NYgmiLohwJ zTXr_5vMNca-&xD*=j-r!UQwZsJTFU}>XB5*#pImTz2|thQSeDCQ?gX^OMR{pDDKhV zCF$=4qDK6b4JL__uv&eQc9Fuu!u+qGdrVLsg!DnYJjA7JY@dK_1;^u1k!Pu3Wm=7T zK%?SA`rt;Xx1iG$TcYz5ed$*^pJ%a27nDMfM-VIrd5srmJ)s=SNRdY70=VOq8v+<< z4C#9%H9-!+1U>|-=$_@->trdv-6<6hLX47e3=sWz*;5GVwwk7N%}%C7RSdGSoO!2z zLW=&F2hvzOsTIhTkiA^?A`M*iGm(_ns*=tViFNhsBl=}n`z=6^uTbq=B3Q0I_?B2J zn5Db~I3*^?r`r6(okXo!8K*`v&(m!fUrp3vBL+p}^;F7@(M3ua)66gb{QbR_3ANAx z5({jFM4+mA*WS&_A(`Rk&?qopBRIQF-j7?qO+DggT9G@Yr|q%*OG1)bs#HtSY0J|= z%+Ic##8mF9A#6yWYxZ>!W@HjIFwcfMF`L`*K`ScKU$iG%ez>ISlPtcs=B3XObyvxR ziyfXg$jn<26HF{HyKGY-+{Lmiu-RC{ajUGP8=GR7;T zn}{}+{A5nxwaSN(5HG&ey;~{A&`C$^G#=|1oQnHqtR{+AJN0F07~*XD!Zz(Ics%5* zHpj@>^15M!d=_pw&3C*(t1(Ge$ns*U#e8h*%no@OF(%FzJHd0CjS7SKt*LapobT$o;LW|DRnseUM zQ!!Fr!FjBfjc|8US~|J+{f6`2o?qz^N`1JN9Gw%nFN6M7#Wp`ojhYfij9{@nWik%oms@F@08n~YBcQkWuktoxM!Ltd?`WA z($oLpL(!)`Nop%0JmWi*JLHtn&i%wVs1Q1y-I6>R?CFLRPyU#btxx)qanYT{ONQ4( zGiu$ayH?mNr30iLQzm$j2AQu78vs+xydc}Wq=gXOe`%(cVaENVT+u(}$X4i8baZzY z7hkw0%yK9HBaiF>F!{Lltm8aqOm-r+rmm0P!UPfO!;N1&jK(P$=*e|IM>R5aW|jT0 zo9K;0eu2G&RXy`Bf!|n(`PQLTVT0##`X2q#ZTzXk67<89#5ZK<7k(>?zBTmNtnsRb zU3*Q6YqV>$^YL$uMWr*3Tgy+zP{X8W(t~p0bC0)k^%^bSq)F{!G!_DPhO*)!Miy35`lQFDmU81K{Vi~@VtZ`$H>8v1i_c7p@KIDx80OK zqwY?Q)>n2aeSiF7efQgih&xDMJ68RmKmnAyeA|ZPg_cM|v7h{WTuG)M z`K91k;&_Qi8iWNq%T3x+*>RMlz6;J2{8E!nB=Q<8SS69u?;47qN;Pv(eVgBIz#@Bv zeVHdw%d}bhNC#wMh>2s6MWy`%=mBp>xlgAt`3#=grlD0o+=33a*j&dEA-!fh6 z^im8*1d?4_O-ej*sZp~{0b|QccEfo?dF3%)N&`U>`?{@-KZIV--;)fOsC{~U2E=o- ziW>b9PhHt;A+3t|Va^N^&G(i}Y=)+;F((zs>3?W8WMPiGL(`x8px9#D@hope5bD}M z*4=kccMiK#gYy;`38}uBf7*w&cs=zL;_XkuM;es0X-m$GpIhfbAcizmXZOLJ)WNn5 z(IyN3uK8ifzHL~g^>UZ|yGm<9JU1rg61b|?-e|(=yH}N_=p2e_f{{X;8&cFX%l8C} z71JC_waaETh+%$-x_A4whoY^FHU)%AhT|)w#$ulo_v|n7ZZJ{O+NlUt)fN;lvc<*A zJ#hBQR!_A5%hHk`ZHjK?mB#fKIPQNr@s#7rj4S`v)8#oy}?-)QNR>CW1@h^jGBEz^>(x8WE_X#{g%hgD( z#simxIv;|liJ;Zyqa+E>%khuS6n>>hS4ObkXh7IJkJ&b#7Twd zmXiS2W2;Km%f%zZOv(4VVb{Y4h7TXuL`x>!@>Fa?Rnj_^gHw%3hgBF`A>9e#pq(aZVtEjzrEXzj)T;Wa4d`-k`+$uj zHPNiD;dOTX3j-YosjqG^njxgzJMmdp*@yV7S{R^17XrB?z+_ zxPOT!{kUR`h^F@O*gNG7bPFFV^zyghRL757 zLCI;+ValyD4lr{vUmuODrm=i@z0`ZbiC|Nj!)%o5Iz@lglP6~^6N<-Vs{CAFd#auD zpJ_$`{35E6yp|$_bQDHEoA{UgrvwLEM2$2`Aow@RgxAVL|12ijBwbjS~eO1F!(;L_aC8|U0OhKpu2Lcos%eI# zPJ(#EtQh!4W9^7MO*G&Aw!Mx#t=?-wSM!AM!`HT^(!7XgS8=zr@3H?nekGUViFt%e zRm$k+qAd=0^SgWP<9iYOyPNx$k>tkfqh z7cF#MN$%Zhb z@L5}98B!_ul}C_vb!3cNwI$dd_agee@VMZ7G!hqxdp;EbPowb`QI^RNVgV_mO^$p* zXMiS0mTRv6G`^~?8|SObciWWH-u5Q1p`<_W4eG*ATNO<|R+T*2>l*E64@4_y*Td$W zWJ5m>Y#XhUv~&L^ocqt=-3{nCl2SQ{^nmapOsfVSS&Aw~($8nKpgiqRS3JyhSQO7^ z1(c-<7>aAUR4)AP{qa=al2BvB07(we<}nP=?O+90G;z}%+XboJE|mH7l=B~)AVQa6 zY#uo1nl52IK2x~n61<24r|yql$K09-=@+JA#3};JOm&~iS05hV4Z)2R^QbI zAjlSVRnvv<3qR)je}Ru+T{Xbt00L3De-5EB*yf_CNXoubU7Nzj`lCyg$47N| z(H%@@b&Mx*jw2sHspq8=>Eg*07#qD`#D`oHH8=Yp%DUzoHUf$BpOU2#{}OIUxZz9z1K-Wc6U6Oieyq3qIEucb<0Q*8CB z-<0#Kcz;Uswz0_1*op;^ZQ_KRlZf`V$FX5Lu@igQ{f_67yc2RAqLXw`K};k9C={zD zRh|@Z!5a|!^AzSRJomy)n0if0UJIVczFVDHAiEl~UyT89@o;swOEhRXHFsa%W28c- z0P%z@StD}$-9>p!)I(cb_oc3m>vdOVW=(TL3pAI#j&w>PH93hjUh(vKjR$f_}# z8nZ|)YOAg33F^S6%}`c3+CjWMF8a}i(F%6?#MxotpAYs%*k1yX&)x_m2V~}p_91fM zQ~DVyd)u@)bpZhSTLcMqUhHiGf%peQUgNhi{3RcMYlE@aMM{8NGd*=EoK*f9z^0WI z>_En0tEAhIhpDiRX>qau5coOV`>X{0LrHEw#7p|t6c~5L=5EAh&Ur)T(CRc^Hvk-N=*k^d5-1AI(BqUGI_rvlZgar zMMh$eZU;50&hf-gpRXYms}F(6=O(~T(iBI$G|fV0_b=@euVo#KWV;{hxEXE`Z2`U{qoH&0cBp4FgyaBy8m2K) zh2ubpUHaRjbnYOj{t8;u(bakY+kd zC8-K?nT-A!<>%$k?Res1xaeu6jn}C-d*rcKd-B29HQ+*)II6_HB+cOqxvcevV4L{K z;kCI`H7C_h;}?BBL)g z&5EWaD{hhD!4%wtiS?Z8S%S@+?oA@@Vv_Z^YK?rYjx31!h~`%h?N!%=Pz% z48Rn=E0oE3OSpc&02X6ngTygF>}$Xf8ix`KJ4Vfzy;VTq)|gdHq?y5HdQVUl7$D2q zq01AN^<9yBqrCy}-0KO}zcrpRKQ*zYBFRP&sst7&@)Mq5nMja>hBH9?i0kxAeKe=M zJF202j>Qe_blNFYmYQ;&AeNZEP=)&g@}-u3I<4w&O>#Y)k`Lb-I)bHZM*}U zQ{;n>>=>d<2famxRFhr2C@=I=_0KmyHLLN>y!t?z1I^=#t?Q+R+(ObakP6TWO}*`= zyq#Sn*tG|UNfJwGxJf`87|-s_yfs$_$esp-*m4Y^*MUJ_4?F)gOc^BN*;5AV^n z0FXhb=klI0K#zFFY6z|`!kFx+*#yg`B6t9W`+A588>OZ5YSo5tscT(rU5q5xX|H2Tk$ zMbcG<5MnMtg^oRx{gO*5$9mM2>N-Z6xeoJG-M{{94ni_kq)L^2HI2iZqLNjkG2+%M zNpJ}Qrs$Jf++M^y@?Pch?h9=VXGO!4f*zIsHVFx&9q*+Z?+^jN)+P9l<##=J6FRO# z86ug|PUuh)53)3w$>r!?Ry@3wAio|%Q-%8(PpmqG4Xk_jo-QH0N);7U1G!W$`F=S` z4RS0|!zSF#b{+27F+on?x=QOYYrop=81cKehm;pddG|Nz?jU5hCcYi0Sd4u<`uv%$ ziYo7?ih~j1lXvo!EUTXZ=GcXQ*~a=iD&0TZUjP2z%Yb&}m6(X)hj?o-x1j)-y%q8t zDWEAneF_tLq)l9n?D(qQG1@h^xWQXNUUE}tio?m$!UESW`BMqLPl$=WWA1Khz3o8h z-}Un>bkXxxZ`JRoY;6)3pI{GT1eYN!7y)=-^WI5_Yd`Jc=jP8gc|Lp>3l&1Y*(XmX zJMi;aR=x)aRNmW{UhtjC5=#Xt;qIG%R9OH2x}3Y3rpVAdw`AkbINUUTf%mY2w=GUs z?5zy8&Rz6Pido&DImRwRKh>5IAu-@BX{sOqjjoo_E&C7h$U1bO zEd%!AtOI~zbmQje{kb?O74SB8PYlqz%4mJSaPbB>x`h5;x*k&H9*{<7g3xb3Dm)pW z%Mg+agnpCgRw}n|N{Bk(ptAzTMExqz4XcpuwA&0&7UV0IYUP03s7@q`IOH-wPk~|T zHP0GgoBrUT2?Gbo8n$vV^g(JC&HMQmT1oc4UYa{{ z<^%&Yud{y^yQu?=8h3z$pCd5@Y!zJw*@v2e(&S39yLS2%R6Eb!3EB|`D8he~0g`k3 zA37iVe^KRP6#I&L`@xG=`@yX#)!Q|1J4j>rrZtU#qC=AK2WqG5M6Yz-u^k@gkkvKx z|D8?~&)+P(^EmlAdh}uX{_x-~;0NBlYNpEv`j1E!UUv>|Lbf;A>G4LD7HHG$3ji(S zJ9tl7hB+Wc=HsD%A#qt_=j98Kqb&e|;_Zq@q~h)o59l@tyLVPS{U7c+{f(w zqGRqcK>Y=l9@Pc(&)~h?=M0cuF37uImyb!mt^Q5AYLxPkZz;CMcJ61dwk}BBeU0*# zTS_~qMBKnuNWd%iFX@VF8shqkRg50h6zh>NQ}loA0?s`)w)j4r;QdZFV!Q zCQiXsiBpxnDL*ylwB*`z4x&q(Gnau5cIu6M?+eJR=mw^9A6>8VX=p_V-}9FL&O5A8?sJwaQaGmF6L8{gpN} z9>k1YG3c3bsb8ulqt@_(@e1h33`_Xw5ls>LaX;hx^->S!e{wu>UD|(3+$nUjQ%ez; zy3%1^);qmW07DNLrEe|<7im1PY$1J@^BpWPH^c0^y$|+vB&zxMmo{jmCjurQQP5y; zU9lAH2_ee4HYMOpcz1}8zeaIi{&G0(^$i|zr^2iip#;ymL1m3lPm`L)%1pT;SxqcecOb;|lo2{P)c`$&^jCJLI!!0|x_WI*h>%I5Rgr-MQH*e-C!uZlm zn;4*A2l>$A3FCJmo$=}SH@=z2HsAIAFf~$Q=SYf5K_hxBKOPJ^#>kY;wO)JxG^lD| zFoyzz>?fy!LV)x2m!Sb9;}r2JTuIi5(#I3a06D>^GRT-Pb(%RTGckV^e*|$~FnSFw zS7K#CN+~9LgaN?M4iYvM=qqG|3}BYzZi*bf|4M71hq6d@^7#l)Gp`?2mIp$30)2Q7 z{6sKYc8;+p5FO;RI-`*<5p>E`|Il5_#06N!b8|R51qwS9_ALn^S3{QHZtTsTS~f0o zCmkfMu)Q~6ZS$ z0pne?>Y?rUOO##G(K@nc3x>PAhCIBOH76(fLFZOoVsm|d<;KU_n5j%dk;zAKjfFSb zf=;Vc8hkQ{OKW7>_eaQ6QFA7cYyAjAt#(QoCFM)1*O|SM?p}_%+>(PCOm_BnF%HCe$d{zF?7DnFA^Jj=SxH8fV;Vh&FqDn zB0mm&L$os`IC;!%DUPY&Z<0(~nvTx3#ru1a@HWF}n|FQ;kjzRE(ldXeN@pjpOGf$7 z1Rb$!{dFp(PR;jh%}#0K`tMcT2zI%__DL0`VsxQ!f6GCA&oAAIh$mHA_oIL4L3r(3 z^M0w{*rSbF*(x7Ysiyl0DNWlnzABvl+K{Yd`_5|VR+!6=gFs5^06+p9ujz2qCfVb0 zsdVtb`tP-+#=+lSM3_rWjk`tickAzzwd(}yXnhvqlOeckD}*XJl1A#CS&D1qcl9B4 zjNseEPc)EH5}H0EuG9=R>Ylummnwy6jF}TG=99fw{#DXta&i-DjJQg@hf$+~OW^V_ z*7Q}8lY24^$6&`ePPrj^6(9e+^r0aV;NhdMjot?H!?o4CfMJa1<~q7+ z^~;Wxk!y!dK=;WP_nd^yLxU$MB&wD4GylZnQ*eNqVN5z0{_y#;@(1yKqxwPIZ;P1m zh3dLUwEvRtuQ!O}ri0B=?QQufjg<+FZDH{pVu-u6^r6^^7g&RwlG^kW4Vrpu5JHSxh z%4Jq@BC%OpmD-gH2j8k7udd*JzEO@1S|mLz@_P76Sp0%Zs z!mfl(<9H&&jw7yNNU_t9Sej_IaZxi6@jtp^>umKpCssIJu}YsEcmHU!@z=GF6|`0f zEz>sB@lkuSB9R?77thm9`gLIn?oYc^G_L)|+qJf4)6seXU28M9fBD~)~6;bs%myUqGuS2qm?rl{*Oi?K7Dr<$+YvT9)o75-w)ur*gH9Jo)uRL;J=qNhq zkMTFV*n|eGkMMB7MB>7VdYV&V&FPrzLmh+GHYQI*zHyj;i~D-=n9u967?PJOrH#y= zxP}6z+#A8(iNM#;6H`y+SjosA;)gR=tR@<@TiwBL>%1$@nwDXxWq?`x0@Z>`%~;$8 z;{+-uf-(YwLi$SAoLz-~D#?9An~t@Nn$?ZWi)@w0JGCUvF1*BfCrmF8lSTk8d0eFq zpKPTB6VH!LpUvI&^DRcmJ22~Uj}%nndYJ>C)%)ae6%00V)wwT`c23IwN|(E|U)4gu zzQRr#G@$26~SN-~+*vrAdQEv0r}S&!E}BcsLV1p*o@OI)r#_Wv>xbI)UxQ{CuS|IK zn4D0_(us06im(}eGc~hVJY?QzUp3!g_(V=R&`Uf|H;6piQf=$MJ>lV{+!Vn8QS8u7 zIh*f(H#CE8oDE_-EO*Q|*ZL&?Dd*|1A#J{zAx#L3V^ndX&FTcMnPMWc@~|f97^3YR zOURsy1gmhMg6~(E^J>^*VV$Y%ZvwRKi|Vn?@AGkR~n<3Cjc-we&ISgiT9vUcO~d-ZIjm&&@l*l?PJk9S}2rf;6-gvGjK z&Q28s2WiGgkZ-7KeJ+uko}Bt||9Hrew=+qLyaWT5A3`s`X;y2fdY^JWbXXev6Mh49 zOw1h>xeOBWE4SV3=*#o4%a9Yctz793KYaG+b8vS=PFVinlxt~m*|2&2R;=afl`G#C z6PtO))jMYrUlMAopqvi2HoGkYGjI6M*+&wlTqlnX(e+2&?t(#rhZ=$%|wzk_z?4<$wQBg?;APT;ASWr4v-`u`2f9fA#i3y? z=!U=$c6AoHb<${(aQia*)c!~W(SE#1_+Xh zq;leEzUcgqT&T4W00^N0NYqzg&A{B7ala$uEs>2?8V>fzPc;_zTIsgI&+Pbavw|gn zdO6*ol2x1Qe}Wn77hI;&1Jic0b>F`r0$KV*53Qx%| zn~$mYuL8UMjjE$Mx}Ycczo{$8UsP4@>%V$(=P#9&_?Ig7yZrxc!9vHVPIqH09*$UE zRWGtB<(a=$1o=nw9;6eV0qR{q(GS%C9izlUhFSVQpb!85L<;_rzh6@37_x6gox4kQ z-&cW8w24TKj-kCI3^G>+kn)lnITqd3qpY{I4xfoAeeu)iqHieA^-ma&p^wyeWF7*n z!$GGNh)(%qd4S%{T-@rC^^14e)}rJ26%hqgu;m)MY{Et|eevp|M(voasL>qCipoL8 zK@u>6gWEEGVo!`>_H_o8b23+$C~EC%Y-W6y4&5jbxOf)CX`}u-k8cvTAh?m_4GGPh zu(NY;Tv0HT!89O}V4Kh^yczT|95T1l>19gEAnV13lCU~xQn1}*^CxHz;RxAFlj3II zQ|A}@O+kEdT5%fFC!Yt`?h{=4PE`fsJ@6qqAMN@`qcJJ618>>a=P4qPp@7aWPDd9r zKurl#DsIgwbFqFQoLZgf87?u$el4mECaO=QWi0duHVo&EtKznntB6amWuo&|C@Q;V z_^#DAUs~uvZq(Yx25ljCC4{MiZli{bL)fgd(zz%31zzAajNP%HkcG&BLMeCCWLvNh z*26SW-8Dj6Y=tgN)yZ>2dfJ^umyLIpcz7zmICM>PLcQygu#x~=>Rf(}$-=GIUkOUz z*8|;F3vIm$>%%;7)nzVASw|ciRChG&y70Oop07yivKEO}`z61DH>R?hQmF<>xnZ@A`ReT1Xiyaq4!Db|fAVXubBK_DvLr9!jD zsg82Sud}9l%J2uNLB%_4rz7LUZfuxv(#e=LbFKQxbLB4Iu^fRtf{XE8NRPLjtJri5fX z{gSS{z3`BSFLG{ebyI+vL5VrYeuQ*^9d%sBa&E0MKrio18-HF=DJq@Pf6V=m;loA5)WkL*g7SmQ8AN>vllb64X^d$*y!9o{kBlUjtHo)SymBgE`F z5k`p@$*Trr!Pc%uHByE?X2Ac5fwERmvcu4@JiSl1!q%W9t7?VU_+_4y#ECO@#*6Ko zT-CqJ$h~vAdBhB-*)hz?rQNaVHLlbVm)&)mBuANxIjF#2(< zF~RINZnp$H_bCM0rBdm;qc&16y@8xZdxiw(&|?7eO6DKA%;fLOlFOu)lW?7Lf~^j) z7To*M$L@RE+2i(x9^I8^t~AToSTk?4gjnh59(r@f()A_45tFJRkH%{{An?cOlFQm) z^7f=^*eTM;JDYY!=Td7`j(-}xUjIZ2g%xm{H=R8v*yoa2XCSX3(g7+E|!)IGE? z6tD#b2E^o-*i8p{ryQ)-`avu%t?^Xpz|;>H9a#C~`P0%Ss~uxME%*6)o2dEGvASUt ztFgZq{XfI8Tn4q3e1y&qX_*RX!#dIX=&cn=n`_gsl%+?)6Aj!o+O-g)Wx3bX-5HJb z7%*$2+3b{xv31#YiMpq8U|oQL#khfJchNCSj;wY^DN0d&5x4jD!3SME@3eMTn4LQ{ zBU7H7nK&bM)WptuwmBvW#ia&j^4F$o%_sg}1Y5*4SZ z=#=9zzR$hgQN&_7`hfuol(=98n5)V5WiJ7S%DTX`Tkvp4^vtRQv}I@giTgdwsoL5q zjNz#yLB)#|dJ%nwbp|mvXi9AZBrFdEsks0EHPKrdOVM)%5zrQeEIvohR}%q$Na z#_iSa$!Mr%*T-tdlA}7bq+78^CCFz{l3{1im?Y6qWxw&c6o0k6*AF5jk^|E=4Z2kY zaB7ld8+AyBnA3Ig19xD>jvtJ>WGZfyl18x|gxV-IKUX)}Xl9BYwy{SP=jwd;TFPyQ zV(lS6rv#IR0#pFgJ>Em0+#Oe%!TKvCx4gF6Z82K1%j&h#GeZsg0!gB#rE6RmFT8cm zKG2KcOqza12^C?0ZVeLsCYI4sA+fcM**@nht})$?uDjt8XZp77%U5&XJBjL{Cu^oh zb^?N{e}5<&bScOwdLVty_j!O%Y`@zCES*@?E;C+KTT?h(B>rp;7LzGT^~srnde$$d z<>JOCV(ZdFBFtY4;K1I#*I;jssc9bdG;Yn58f?7($!^8=R+dYldyOaNNRiqI{H*=! z6n`me=i{$JtP)qT?3(^$fr+*gp2w)B`b`*8gPWy~&5EjEzwnF92R#z#M%~-V;f2L_ zxfUv)t%;vRnb-Hr&kvV8D)v8X-^==8(BYb>GpXXTPbHUAQtZ~c%~0OqW}B()Q7?xk znCGs)`h~G{w1=mtUiWCMNt0p`?g#FN!|%+v23;R6ab-`=3~TyPJPpzt4c{=f_l{>kQCd zpnwJY0Yzs8TszV1eIV#TM*x%?k}Q@w1@bhrflLSjUg#3wg+2o~D;>Y+V_3j1)PT@9 zVRY52B14v@ly<-i-5m$K&^t(SJ)~L@@IZe89_XPA1}MId4gJ5f7%0Qx&zOcx;g1Od z5yzViZ$5i2AU1>y-2QlE>mT%h1%4DEahD}=j|#+!^`+b_kui{YUdSqe=iuZUfZl%l z7AuI)N{pm27m!TeZ#F6Y)wd!rQWPj(mJ%Y;d6Dy4g1y{@jm79s>6hNWU5tB`lOhH< z%nVRizWPKpDj@EkrpC`*XWB(CDHY~-NzO0<50glw%l<-fV}w>5FASBox~V%Pd+?e* z(qw>CPBlD>QwU7`Hjz-r=T|Gn&;N}kMNKY7=vOpm00cC`I;g3#u>EM0Pww}fd*Q~? zV=#rgtQ|);qFz4@>NL~Ng?R?TVDfDjd;P3+M6X!A&F}FNyTvXo#>#U|7HaMxr(i0y zysD5{Zm3LHNmH`bk^fMYc01=~#iiW}z2aB-8y^AH^~XVnK>TBEfi_ zo!$l!L^~)g8f)p8k^+jfs+QyXzEvls+|QiZ)aCC1h9KfxFAn#C-F^Z3<0 zY04w2+{_d+q0n>B>gYzCNX1;@v>Z%{KZlhCo%>z#?r;LO+GR0{mf9&qakAV;`i zUlOv%5P=QK%jz{Zx%+%GW0$@Ty|cMQ=iDYowE+Z0@Y*Ulu!VkNqzpR?CanWcs^Cva zsK%3C-8kJ?(~wG-HYM_C{_yVQgGV~_f4o{)*l4j%m5@(O+qb9pf;qN(UrvjXkTGa( z!8Xk4SYtu)lV1|>1_lIl3h&6_S?iKv=iQdJ7-qy+?`1Qah3U<9HP4473nj{VUFc0| zu}`gbMJY7kIW*Ww%-pZuNa$frX;MZjio>b}BS>10v@$1uZjzrFs2Y0|F_;^P7P*{h zTe^{7`0@ShRpw{*Tv*mdSyD1kBiLxfrH{*dJTDvdNiYlbjsh2Oa!7G`d3mz`Q0r3d zz43DcsV#uvYLuEAqlwOd zqo%=?wPa|xyuu?dntWb{=$N;{P4iBzhU@p=83f#u)Z;iiF8C;>7^2$e`+U5PbXf!&`&tUE*-GsEL!2@~ s?JCv|e2O_2|2IsajBEzzTks~mX%=`M46rH#H1h8SrvHuWnHl5%2TTYxs{jB1 literal 0 HcmV?d00001 diff --git a/docs/assets/images/magento-marketplace-my-profile-link.jpg b/docs/assets/images/magento-marketplace-my-profile-link.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffc35b4d8462819ca8e7639079de9212f2bf8b48 GIT binary patch literal 20019 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/magento-marketplace-signin-form.jpg b/docs/assets/images/magento-marketplace-signin-form.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4f61f6dda3284d85cee3eec5e943182fbb2835e GIT binary patch literal 26312 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 literal 0 HcmV?d00001 diff --git a/docs/guide/creating-a-store.md b/docs/guide/creating-a-store.md index c035aa121..a60455d6f 100644 --- a/docs/guide/creating-a-store.md +++ b/docs/guide/creating-a-store.md @@ -1,60 +1,107 @@ -# Creating a new store +# Creating a Store + +In this guide we explain step-by-step how you can create a store with Vue Storefront 2 and Magento 2. + +> ℹ️ We're gonna use `my-store` as the project name and the folder structure below as its initial structure for this guide. +> +> ``` +> ./ +> ├─ my-store/ +> │ ├─ client/ +> │ │ ├─ … +> │ ├─ server/ +> │ │ ├─ … +> ``` +> +> So be sure to create the `my-store` folder.. +> +> ```sh +> mkdir my-store +> cd my-store +> ``` -To create a new Vue Storefront Magento 2 store, there are two available options: +## Requirements -1. [Using the Vue Storefront CLI](#using-the-vue-storefront-cli) -2. [Cloning the template store](#cloning-the-template-store) +- NodeJS version 16+ +- Docker Desktop + - It's only required to setup Magento 2 locally +- Magento Marketplace account + - You can use your account of create a new one in [here](https://account.magento.com/customer/account/create/) -## Requirements +## Creating the Magento 2 store -- Node.Js 16+ -- Magento 2.4.3+ instance for GraphQL endpoint -- Change Magento GraphQL Query Complexity and Depth values +We're going to create the Magento 2 store inside `server` folder to let explicit that we're just using it as backend layer for our store. -::: warning Don't forget to change the Magento GraphQL Query Complexity and Depth values -Magento 2 by default has a lower value for the complexity of 300, and a higher value for the depth of 20. [Magento 2 - Issue #32427](https://github.com/magento/magento2/issues/32427#issuecomment-860478483) +```sh +mkdir server +cd server +``` -The changes are required, due to the size of the queries and mutations in the `api-client` implementation. +### Getting access keys for Magento -To do this changes, you can use the [Magento 2 module](https://github.com/caravelx/module-graphql-config), which adds a configuration panel to your admin, or do this changes manually. -::: +Magento and other third-party packages used by Composer are stored in a repository that requires authentication. So in order to install Magento we'll need to generate access keys in the Magento Marketplace. **That's why the Magento Marketplace account is a requirement.** -To install the Magento 2 GraphQL Config module, on your Magento installation execute: +[Sign in](https://account.magento.com/customer/account/login) into Magento Marketplace, open your profile in the Marketplace and create a new access key on "Access Keys" page. -```bash -composer require caravelx/module-graphql-config +![Magento Marketplace generated access keys](../assets/images/magento-marketplace-access-keys.jpg) -php bin/magento module:enable Caravel_GraphQlConfig +> ℹ️ In Magento's Dev Docs you can get more information about authentication keys. +> +> -php bin/magento setup:upgrade +
+ 🧵 Here's a step-by-step version of how to create access keys -php bin/magento setup:di:compile +1. [Sign in](https://account.magento.com/customer/account/login) into Magento Marketplace; -php bin/magento setup:static-content:deploy -``` + ![Magento Marketplace sign-in form](../assets/images/magento-marketplace-signin-form.jpg) -Find more information about the module [GraphQl Custom Config](https://github.com/caravelx/module-graphql-config) +2. In your Magento Account page, click in the "Marketplace" tab; -## Using the Vue Storefront CLI + ![Magento Marketplace link](../assets/images/magento-marketplace-link.jpg) -To create a new store using the Vue Storefront CLI, first you need to install the CLI +3. In your user's menu, click in the "My Profile" item; -```bash -npm i -g @vue-storefront/cli -``` + ![Magento Marketplace link](../assets/images/magento-marketplace-my-profile-link.jpg) + +4. Click in the "Access Keys" link; + + ![Magento Marketplace Access Keys link](../assets/images/magento-marketplace-access-keys-link.jpg) + +5. Click in the "Create a new access key" button; + + ![Magento Marketplace create access key button](../assets/images/magento-marketplace-create-access-key-button.jpg) -Then you must create the new store using the newly installed CLI +6. Type in a name for these access keys and click in the "OK" button; -```bash -vsf init -# And choose Magento 2 + ![Magento Marketplace create access key button](../assets/images/magento-marketplace-access-key-form.jpg) + +
+ +### Setting up the Magento 2 store + +To reduce the complexity we're will use the one-line setup command of [`markshust/docker-magento`](https://github.com/markshust/docker-magento). So you just have to run the command below to create the store. After running it will ask for the Username and Password, use your public access key as username and your private access key as password. + +```sh +curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/onelinesetup | bash -s -- magento.test 2.4.4 ``` -## Cloning the template store +Here's a recording of these steps: + + -To create a new store cloning the template store, you need to clone the Magento base template store. +## Creating the Vue Storefront for Magento 2 -```bash -git clone https://github.com/vuestorefront/template-magento +That's the easy part, you just need to execute the `init` command of Vue Storefront CLI in the project root folder. It will ask you for the project name and the integration. Keep in mind that the project name will also be used as the project folder name, and be sure to select the Magento 2 integration. + +```sh +npx @vue-storefront/cli init ``` +Here's a recording of these steps: + + + +## How to start if you want to contribute? + +Want to contribute? Ping us on `magento2-vsf2` channel on [our Discord](https://discord.vuestorefront.io)! From 94be3504d293a507fd19e2b2debad43f437f43a8 Mon Sep 17 00:00:00 2001 From: Vitor Luiz Cavalcanti Date: Tue, 10 May 2022 03:37:05 -0300 Subject: [PATCH 03/10] docs: add more sections to Creating a Store --- docs/guide/creating-a-store.md | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/docs/guide/creating-a-store.md b/docs/guide/creating-a-store.md index a60455d6f..5f387df34 100644 --- a/docs/guide/creating-a-store.md +++ b/docs/guide/creating-a-store.md @@ -90,6 +90,87 @@ Here's a recording of these steps: +### Setting up the authentication + +In the Magento 2 folder, copy the `src/auth.json.sample` file to `src/auth.json`. + +```sh +cp src/auth.json.sample src/auth.json +``` + +Update the username and password values with your Magento public and private keys, respectively. + +```json +{ + "http-basic": { + "repo.magento.com": { + "username": "a1c69cb…", + "password": "af041560…" + } + } +} +``` + +Finally, copy the file to the container by running `bin/copytocontainer auth.json`. + +```sh +bin/copytocontainer auth.json +``` + +### Populating with sample data + +In the Magento 2 folder, execute the the commands below to add deploy sample data to your store. + +```sh +bin/magento sampledata:deploy +``` + +And make sure the configuration was correctly registered. + +```sh +bin/magento setup:upgrade +``` + +### Enabling CORS + +In order to accept requests from other domains, e.g. `magento.dev`, you may need to enable CORS origins in your Magento store. + +In the Magento 2 folder, add the package `graycore/magento2-cors` by running the command below. + +```sh +bin/composer require graycore/magento2-cors +``` + +Add the following configuration at the end of `src/app/etc/env.php`. + +```php + 'system' => [ + 'default' => [ + 'web' => [ + 'graphql' => [ + 'cors_max_age' => 86400, + 'cors_allow_credentials' => 0, + 'cors_allowed_methods' => 'POST, OPTIONS, GET', + 'cors_allowed_headers' => 'Content-Currency, Store, X-Magento-Cache-Id, X-Captcha, Content-Type, Authorization, DNT, TE', + 'cors_allowed_origins' => '*' + ] + ] + ] + ] +``` + +Enable the graycore cors. + +```sh +bin/magento module:enable Graycore_Cors +``` + +Make sure the configuration was correctly registered. + +```sh +bin/magento setup:upgrade +``` + ## Creating the Vue Storefront for Magento 2 That's the easy part, you just need to execute the `init` command of Vue Storefront CLI in the project root folder. It will ask you for the project name and the integration. Keep in mind that the project name will also be used as the project folder name, and be sure to select the Magento 2 integration. From 45938aeb86fd8ddb42eee289965dd9f3297625ae Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Fri, 13 May 2022 11:38:54 +0200 Subject: [PATCH 04/10] docs: update the 'Configuring Magento' and 'Configuring Vue Storefront' documents --- docs/.vuepress/config.js | 21 +- docs/getting-started/configure-integration.md | 158 +++++++++++++++ docs/getting-started/configure-magento.md | 120 +++++++++++ docs/guide/about.md | 6 +- docs/guide/configuration.md | 166 ---------------- docs/guide/creating-a-store.md | 188 ------------------ docs/guide/roadmap.md | 32 --- docs/guide/supported-features.md | 2 +- 8 files changed, 290 insertions(+), 403 deletions(-) create mode 100644 docs/getting-started/configure-integration.md create mode 100644 docs/getting-started/configure-magento.md delete mode 100644 docs/guide/configuration.md delete mode 100644 docs/guide/creating-a-store.md delete mode 100644 docs/guide/roadmap.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 6c2542e83..72d1a7396 100755 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -46,10 +46,6 @@ module.exports = { nav: [ { text: 'Vue Storefront', link: 'https://vuestorefront.io/' }, { text: 'Core Documentation', link: 'https://docs.vuestorefront.io/v2/' }, - { text: 'Demo', link: 'https://demo-magento2.europe-west1.gcp.storefrontcloud.io/' }, - { text: 'GitHub', link: 'https://github.com/vuestorefront/magento2' }, - { text: 'Roadmap', link: 'https://docs.vuestorefront.io/magento/guide/roadmap.html' }, - { text: 'Environments', link: 'https://docs.vuestorefront.io/magento/guide/environments.html' }, ], sidebar: [ { @@ -60,26 +56,23 @@ module.exports = { ['/guide/environments', 'Demo environments'], ['/guide/supported-features', 'Supported features'], ['/guide/about', 'About'], - ['/guide/roadmap', 'Roadmap'], ], }, { - title: 'Creating a Storefront', + title: 'Getting started', collapsable: false, children: [ - ['/guide/creating-a-store', 'Creating a Store'], - ['/guide/configuration', 'Configuration'], - ['/guide/override-queries', 'Override queries'], - ['/guide/testing', 'Testing'], - ['/guide/recaptcha', 'ReCaptcha'], + ['/getting-started/configure-magento', 'Configuring Magento'], + ['/getting-started/configure-integration', 'Configuring Vue Storefront'], ], }, { - title: 'Performance', + title: 'Guides', collapsable: false, children: [ - ['/guide/graphql-get', 'Varnish & GET for GraphQL Queries'], - ['/guide/ssr', 'Server Side Rendering Cache'], + ['/guide/override-queries', 'Override queries'], + ['/guide/testing', 'Testing'], + ['/guide/recaptcha', 'ReCaptcha'], ], }, { diff --git a/docs/getting-started/configure-integration.md b/docs/getting-started/configure-integration.md new file mode 100644 index 000000000..a83018607 --- /dev/null +++ b/docs/getting-started/configure-integration.md @@ -0,0 +1,158 @@ +# Configuring Vue Storefront for Magento 2 + +This guide explains the steps needed to install and set up Vue Storefront for Magento 2. + +## Prerequisites + +Before you can get started, you need the following: + +- **Node.js 16** installed, +- Magento 2 server configured following the [Configuring Magento store](/getting-started/configure-magento.html) guide. + +## Creating the Vue Storefront for Magento 2 + +To install Vue Storefront, run the command below. It will ask you for the project name and the integration of your choice. Keep in mind that the project name will also be used as the folder name, and be sure to select the Magento 2 integration. + +```sh +npx @vue-storefront/cli init +``` + +Here's a recording of these steps: + + + +## Setting environment variables + +After installation, the first step is to configure the integration using the environment variables. + +1. Go to the root folder of your project. +2. Make a copy of the `.env.example` file and rename it to `.env`. You can do it manually or use the following command: + + ```sh + cp .env.example .env + ``` + +3. Update values in the `.env` file. + +## Populating store configuration + +The `plugins/storeConfigPlugin.ts` plugin loads store configuration data from Magento and saves it into the Pinia store under the `$state.storeConfig` property. By default, the amount of data loaded from Magento is minimal to avoid over-fetching, but as your application grows, you might need to pull more data. + +This plugin loads the store configuration data based on a query in the `plugins/query/StoreConfig.gql.ts` file. You can modify this file to change what data is loaded. + +## Configuring multistore and localization + +Each Magento store view needs a corresponding locale configuration object in the `i18n` object in the `nuxt.config.js` file. + +### `i18n.locales` + +The `i18n.locales` array contains all supported locales. Each item in this array is an object containing the following properties: + +- `code` - unique identifier of the locale corresponding to Magento store view code. +- `file` - the name of the file containing translations for this locale in the `lang` folder. +- `iso` - corresponding ISO country code. + +For other properties please follow official [nuxt-i18n documentation](https://i18n.nuxtjs.org/options-reference#locales). + +In the example configuration below, you need to have two Magento store views with corresponding store codes: `default` and `german`. + +```json +locales: [ + { + code: 'default', + file: 'en.js', + iso: 'en_US', + }, + { + code: 'german', + file: 'de.js', + iso: 'de_DE', + } +] +``` + +### Translations + +When working with translation in your application, you need to: + +1. Add translations in Magento for products and categories. +2. Update the `i18n.locales` array in the `nuxt.config.js` file and add translations to the corresponding files in the `lang` directory. + +## Optimizing images + +You can use external image providers to optimize your images thanks to the [nuxt-img](https://image.nuxtjs.org/) module. + +By default, Vue Storefront uses the `ipx` provider, an open-source, self-hosted image optimizer. + +### Configuring external image provider + +If you decide to use an external image provider, you have to update the following environment variables inside the `.env` file: + +1. `VSF_MAGENTO_BASE_URL` - base URL of Magento shop. The `useImage` composable uses it to extract the image path from the full Magento URL. +2. `VSF_IMAGE_PROVIDER` - name of the external provider, e.g. `cloudinary`. See the [Providers](https://image.nuxtjs.org/getting-started/providers) page for more information. +3. `VSF_IMAGE_PROVIDER_DOMAIN` - domain of the image provider. +4. `VSF_IMAGE_PROVIDER_BASE_URL` - base URL of the image provider to upload images. + +See the `image` property in the `nuxt.config.js` to learn how these environment variables are used and to configure any [other options](https://image.nuxtjs.org/api/options) supported by the [nuxt-img](https://image.nuxtjs.org/) plugin. + +### Synchronize Magento images with an external provider + +You need to synchronize all your images from the two folders below manually or create a script to do so: + +- `media` folder in Magento. We recommend using the same path as in Magento. For example, if your image path is `{MAGENTO_BASE_URL}/media/catalog/product/{IMAGE_PATH}`, you should have the corresponding image in your external provider with the same path, e.g. `media/catalog/product/{IMAGE_PATH}`. +- `static` folder in Vue Storefront. + +### The `useImage()` composable + +Magento GraphQL API returns an URL to cached images, e.g. `{MAGENTO_BASE_URL}/media/catalog/product/cache/{IMAGE_PATH}`. When you download all images from your server's `media` directory, paths don't include the `cache/***/` part. + +Because of that, we created the `useImage()` hook, which provides the `getMagentoImage(fullImageUrl: string)` method. This method returns an URL to the image without the Magento base URL and cache part. You can use it to get images from external providers. + +Here's an example of how to use the `useImage()` composable: + +```vue + + + +``` + +### ImageSizes enum + +There is a helper object in the `enums/imageEnums.js` file that export configuration for various image types: + +```javascript +module.exports = { + productCard: { + width: 216, + height: 268, + }, + productCardHorizontal: { + width: 140, + height: 200, + }, + cartItem: { + width: 100, + height: 100, + }, +}; +``` diff --git a/docs/getting-started/configure-magento.md b/docs/getting-started/configure-magento.md new file mode 100644 index 000000000..83ae6bac6 --- /dev/null +++ b/docs/getting-started/configure-magento.md @@ -0,0 +1,120 @@ +# Configuring Magento store + +This guide explains the step needed to install and set up Magento 2 store for Vue Storefront. + +## Prerequisites + +Before you can get started, you need the following: + +- **Docker Desktop** to setup Magento 2 locally, +- **Magento Marketplace account** to download Magento 2. To create it, visit [this page](https://account.magento.com/customer/account/create/). + +## Creating the Magento 2 store + +We're going to install Magento 2 inside the `server` folder. Run the following commands to create a `server` folder first: + +```sh +mkdir server +cd server +``` + +### Getting access keys for Magento + +Registry that stores Magento and other third-party packages requires authentication. You'll need to generate access keys in the Magento Marketplace to install them. + +Follow the [Get your authentication keys](https://devdocs.magento.com/guides/v2.4/install-gde/prereq/connect-auth.html) guide to generate new access keys. + +![Access keys generated in Magento Marketplace](../assets/images/magento-marketplace-access-keys.jpg) + +### Setting up the Magento 2 store + +To simplify the setup, let's use the [`markshust/docker-magento`](https://github.com/markshust/docker-magento) script. + +Run the command below to create the store. It will ask you for the Username and Password. Use your public access key as a username and your private access key as a password from the previous step. + +```sh +curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/onelinesetup | bash -s -- magento.test 2.4.4 +``` + +Here's a recording of these steps: + + + +### Setting up the authentication + +In the Magento 2 folder, copy the `src/auth.json.sample` file and rename it to `src/auth.json`. You can do it manually or use the following command: + +```sh +cp src/auth.json.sample src/auth.json +``` + +Update the username and password values with your Magento public and private keys. + +```json +{ + "http-basic": { + "repo.magento.com": { + "username": "a1c69cb…", + "password": "af041560…" + } + } +} +``` + +Finally, copy the file to the container by running the following command: + +```sh +bin/copytocontainer auth.json +``` + +### Populating with sample data + +In the Magento 2 folder, execute the commands below to add sample data to your store. + +```sh +bin/magento sampledata:deploy +``` + +Then update the configuration: + +```sh +bin/magento setup:upgrade +``` + +### Enabling CORS + +You may need to enable CORS origins in your Magento store to accept requests from other domains, e.g., `magento.dev`. In the Magento 2 folder, add the package `graycore/magento2-cors` by running the command below: + +```sh +bin/composer require graycore/magento2-cors +``` + +Then, add the following configuration at the end of `src/app/etc/env.php`: + +```php + 'system' => [ + 'default' => [ + 'web' => [ + 'graphql' => [ + 'cors_max_age' => 86400, + 'cors_allow_credentials' => 0, + 'cors_allowed_methods' => 'POST, OPTIONS, GET', + 'cors_allowed_headers' => 'Content-Currency, Store, X-Magento-Cache-Id, X-Captcha, Content-Type, Authorization, DNT, TE', + 'cors_allowed_origins' => '*' + ] + ] + ] + ] +``` + +Enable the graycore cors. + +```sh +bin/magento module:enable Graycore_Cors +``` + +Then update the configuration: + +```sh +bin/magento setup:upgrade +``` diff --git a/docs/guide/about.md b/docs/guide/about.md index abf9b9115..44de0c09e 100644 --- a/docs/guide/about.md +++ b/docs/guide/about.md @@ -2,8 +2,9 @@ ## Resources -- [Vue Storefront Documentation](https://docs.vuestorefront.io/v2/) -- [Magento 2 integration Documentation (WIP)](https://docs.vuestorefront.io/magento) +- [GitHub repository](https://github.com/vuestorefront/magento2/) +- [Vue Storefront website](https://www.vuestorefront.io/) +- [Core Documentation](https://docs.vuestorefront.io/v2/) - [Community Chat](https://discord.vuestorefront.io) ## Support @@ -13,6 +14,7 @@ If you have any questions about this integration we will be happy to answer them ## Contributors ✨ ### Honorable Mentions + - [Cyberfuze](https://cyberfuze.com/) - [Leonex](https://www.leonex.de/) diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md deleted file mode 100644 index 88023878e..000000000 --- a/docs/guide/configuration.md +++ /dev/null @@ -1,166 +0,0 @@ -# Configuration the Magento Integration - -After the creation of the store, you must configure the Magento integration. You can configure the integration using the `environment variables` or using a `configuration file`. - -## Environment Variables - -For configure the integration using `environment variables`, you can have a `.env` file in the root folder, or define those in the server `environment`. - -```dotenv -# Example environment configuration -STORE_ENV=dev # Store environment (Usage for file configuration) -NUXT_APP_ENV=development # Define nuxt application environment -NUXT_APP_PORT=3000 # Define nuxt port -MAGENTO_GRAPHQL_URL=https://{YOUR_SITE_FRONT_URL}/graphql # Define Magento GraphQL endpoint -MAGENTO_EXTERNAL_CHECKOUT_ENABLED=false # Flag if VSF will use External Checkout -MAGENTO_EXTERNAL_CHECKOUT_URL=https://{YOUR_SITE_FRONT_URL} # External checkout URL -MAGENTO_EXTERNAL_CHECKOUT_SYNC_PATH=/vue/cart/sync # External Checkout synchronization path -MAGENTO_BASE_URL={YOUR_SITE_FRONT_URL} # base url of your Magento instance -IMAGE_PROVIDER={YOUR_IMAGE_PROVIDER} # your image provider, for example cloudinary, default is ipx -IMAGE_PROVIDER_BASE_URL={YOUR_IMAGE_PROVIDER_BASE_URL} # base url provided from your image provider. It's used by nuxt-img to fetch images -``` - -## Configuration file - -To use the configuration file in your application, first you need to define an `environment variables` called `STORE_ENV` which will be used to attribute what file the application will use to load the configuration from. You can create an `.env` file and add the following configuration. - -```dotenv -# .env file example -STORE_ENV=dev # Store environment (Usage for file configuration) -``` - -Then on the `config` folder create a file `dev.json` with your configurations. - -```json5 -{ - "magentoGraphQl": "https://{YOUR_SITE_FRONT_URL}/graphql", // Define Magento GraphQL endpoint - "enableMagentoExternalCheckout": false, // Flag if VSF will use External Checkout - "externalCheckoutUrl": "https://{YOUR_SITE_FRONT_URL}", // External checkout URL - "externalCheckoutSyncPath": "/vue/cart/sync", // External Checkout synchronization path - "nuxtAppEnvironment": "development", // Define nuxt application environment - "nuxtAppPort": 3000, // Define nuxt port - "imageProvider": "ipx", // define image provider - "magentoBaseUrl": "https://magento2-instance.vuestorefront.io/", // define your Magento base URL - "imageProviderBaseUrl": "https://res-4.cloudinary.com/{YOUR_CLOUD_ID}/image/upload/" // define image provider base url - this is example from cloudinary -} -``` - - -## Store Config -This type contains information about the Magento's Store Configuration which is stored in Pinia `$state.storeConfig`. To avoid over fetch, by default, the amount of data pulled from Magento is minimal but as your application grows you might want to pull more config data for different purposes. - -Plugin `plugins/storeConfigPlugin.ts` is responsible for initial population of the Store Config data based on query in `plugins/query/StoreConfig.gql.ts`. To modify the initial Store Configuration state simply adjust the query to your needs. - -## Multistore and localization - -Each Magento Store View need to have corresponding locale configuration object in `i18n.locales` array in `nuxt.config.js`. - -### Locale configuration object reference - -`code` (required) - unique identifier of the locale - corresponding to Magento store view code -For other properties please follow official [nuxt-i18n docs](https://i18n.nuxtjs.org/options-reference#locales) - -### Sample configuration - -```json -locales: [ - { - code: 'default', - file: 'en.js', - iso: 'en_US', - }, - { - code: 'german', - file: 'de.js', - iso: 'de_DE', - }, -], - ``` -So for this configuration you need to have two Magento store views with corresponding store codes: `default` and `german` - -## Translations - -There are two steps to translate whole storefront: -1. Add translations in Magento for products and categories if necessary -2. Add translations to files in the `lang` directory - - -## Image Providers -Thanks to the [nuxt-img](https://image.nuxtjs.org/) you can use external image providers. - -By default, we use the `ipx` provider. that means the images are fetched from Magento, and from `static` directory. - -### How to configure external image provider - -1. Configure ENV variables - 1. `MAGENTO_BASE_URL` - base URL of Magento shop. It's used by the `useImage` composable to extract image's path from full Magento URL. - 2. `IMAGE_PROVIDER` - for example: `cloudinary`. List of available providers is [here](https://image.nuxtjs.org/getting-started/providers) - 3. `IMAGE_PROVIDER_BASE_URL` - the base url of your project in for example cloudinary or other image providers -2. Configure your provider in `nuxt.config.js`. Here is the example: -```javascript -image: { - provider: process.env.VSF_IMAGE_PROVIDER - magekit: { - baseURL: process.env.VSF_IMAGE_PROVIDER_BASE_URL - } -}, -``` -3. Sync your Magento images with external provider - 1. For example if you have anb image in Magento with path `{YOUR_MAGENTO_BASE_URL}o/media/catalog/product/w/g/wg02-bk-0.jpg` - you should have corresponding image in your external provider: `media/catalog/product/w/g/wg02-bk-0.jpg` -4. Sync your local images with external provider - 1. Upload content of `static` directory to your external media library - -### The useImage composable - -Magento GraphQL API returns an URL to cached images, for example: `https://magento2-instance.vuestorefront.io/media/catalog/product/cache/d3f55929541f2d022ca06067148d0eae/w/g/wg02-bk-0.jpg`. -When you basically download all images from your server (from media) directory, paths are different, they does not include `cache/***/` part. - -Because of that, we created the `useImage` hook, which provides `getMagentoImage(fullImageUrl: string)` method. -That methods returns an URL to image, without magento base url, and cache part. Then you can use it to get images from external providers. - - -When you want to use this composable you need to: - -1. import it in component - `import { useImage } from '~/composables';` -2. Export `getMagentoImage to a template -```javascript -// component body (typically a setup() function) -const { getMagentoImage } = useImage(); - -return { - ... // other things like computed properties, methods and so on - getMagentoImage -} -``` -3. Use the `getMagentoImage` method in template like this: -```vue - -``` - -### ImageSizes enum -There is helper object in `enums/imageEnums.js` file that export configuration for various image types: -```javascript -module.exports = { - productCard: { - width: 216, - height: 268, - }, - productCardHorizontal: { - width: 140, - height: 200, - }, - cartItem: { - width: 100, - height: 100, - }, -}; - -``` diff --git a/docs/guide/creating-a-store.md b/docs/guide/creating-a-store.md deleted file mode 100644 index 5f387df34..000000000 --- a/docs/guide/creating-a-store.md +++ /dev/null @@ -1,188 +0,0 @@ -# Creating a Store - -In this guide we explain step-by-step how you can create a store with Vue Storefront 2 and Magento 2. - -> ℹ️ We're gonna use `my-store` as the project name and the folder structure below as its initial structure for this guide. -> -> ``` -> ./ -> ├─ my-store/ -> │ ├─ client/ -> │ │ ├─ … -> │ ├─ server/ -> │ │ ├─ … -> ``` -> -> So be sure to create the `my-store` folder.. -> -> ```sh -> mkdir my-store -> cd my-store -> ``` - -## Requirements - -- NodeJS version 16+ -- Docker Desktop - - It's only required to setup Magento 2 locally -- Magento Marketplace account - - You can use your account of create a new one in [here](https://account.magento.com/customer/account/create/) - -## Creating the Magento 2 store - -We're going to create the Magento 2 store inside `server` folder to let explicit that we're just using it as backend layer for our store. - -```sh -mkdir server -cd server -``` - -### Getting access keys for Magento - -Magento and other third-party packages used by Composer are stored in a repository that requires authentication. So in order to install Magento we'll need to generate access keys in the Magento Marketplace. **That's why the Magento Marketplace account is a requirement.** - -[Sign in](https://account.magento.com/customer/account/login) into Magento Marketplace, open your profile in the Marketplace and create a new access key on "Access Keys" page. - -![Magento Marketplace generated access keys](../assets/images/magento-marketplace-access-keys.jpg) - -> ℹ️ In Magento's Dev Docs you can get more information about authentication keys. -> -> - -
- 🧵 Here's a step-by-step version of how to create access keys - -1. [Sign in](https://account.magento.com/customer/account/login) into Magento Marketplace; - - ![Magento Marketplace sign-in form](../assets/images/magento-marketplace-signin-form.jpg) - -2. In your Magento Account page, click in the "Marketplace" tab; - - ![Magento Marketplace link](../assets/images/magento-marketplace-link.jpg) - -3. In your user's menu, click in the "My Profile" item; - - ![Magento Marketplace link](../assets/images/magento-marketplace-my-profile-link.jpg) - -4. Click in the "Access Keys" link; - - ![Magento Marketplace Access Keys link](../assets/images/magento-marketplace-access-keys-link.jpg) - -5. Click in the "Create a new access key" button; - - ![Magento Marketplace create access key button](../assets/images/magento-marketplace-create-access-key-button.jpg) - -6. Type in a name for these access keys and click in the "OK" button; - - ![Magento Marketplace create access key button](../assets/images/magento-marketplace-access-key-form.jpg) - -
- -### Setting up the Magento 2 store - -To reduce the complexity we're will use the one-line setup command of [`markshust/docker-magento`](https://github.com/markshust/docker-magento). So you just have to run the command below to create the store. After running it will ask for the Username and Password, use your public access key as username and your private access key as password. - -```sh -curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/onelinesetup | bash -s -- magento.test 2.4.4 -``` - -Here's a recording of these steps: - - - -### Setting up the authentication - -In the Magento 2 folder, copy the `src/auth.json.sample` file to `src/auth.json`. - -```sh -cp src/auth.json.sample src/auth.json -``` - -Update the username and password values with your Magento public and private keys, respectively. - -```json -{ - "http-basic": { - "repo.magento.com": { - "username": "a1c69cb…", - "password": "af041560…" - } - } -} -``` - -Finally, copy the file to the container by running `bin/copytocontainer auth.json`. - -```sh -bin/copytocontainer auth.json -``` - -### Populating with sample data - -In the Magento 2 folder, execute the the commands below to add deploy sample data to your store. - -```sh -bin/magento sampledata:deploy -``` - -And make sure the configuration was correctly registered. - -```sh -bin/magento setup:upgrade -``` - -### Enabling CORS - -In order to accept requests from other domains, e.g. `magento.dev`, you may need to enable CORS origins in your Magento store. - -In the Magento 2 folder, add the package `graycore/magento2-cors` by running the command below. - -```sh -bin/composer require graycore/magento2-cors -``` - -Add the following configuration at the end of `src/app/etc/env.php`. - -```php - 'system' => [ - 'default' => [ - 'web' => [ - 'graphql' => [ - 'cors_max_age' => 86400, - 'cors_allow_credentials' => 0, - 'cors_allowed_methods' => 'POST, OPTIONS, GET', - 'cors_allowed_headers' => 'Content-Currency, Store, X-Magento-Cache-Id, X-Captcha, Content-Type, Authorization, DNT, TE', - 'cors_allowed_origins' => '*' - ] - ] - ] - ] -``` - -Enable the graycore cors. - -```sh -bin/magento module:enable Graycore_Cors -``` - -Make sure the configuration was correctly registered. - -```sh -bin/magento setup:upgrade -``` - -## Creating the Vue Storefront for Magento 2 - -That's the easy part, you just need to execute the `init` command of Vue Storefront CLI in the project root folder. It will ask you for the project name and the integration. Keep in mind that the project name will also be used as the project folder name, and be sure to select the Magento 2 integration. - -```sh -npx @vue-storefront/cli init -``` - -Here's a recording of these steps: - - - -## How to start if you want to contribute? - -Want to contribute? Ping us on `magento2-vsf2` channel on [our Discord](https://discord.vuestorefront.io)! diff --git a/docs/guide/roadmap.md b/docs/guide/roadmap.md deleted file mode 100644 index 52c29ff42..000000000 --- a/docs/guide/roadmap.md +++ /dev/null @@ -1,32 +0,0 @@ -# Roadmap - -The current goal is to release a stable 1.0.0 version by the end of February. Details below. - -## January 2022 - -- finish multi-store functionality [done] -- performance improvements - - analysis [done] - - improve the speed of communication with Magento [in progress] - - Redis Caching [done] - - CDNs [done] -- Design QA & improvements [done] - -## February 2022 - -- performance improvements - - meet web core vitals or at least 80 score -- quality assurance -- user acceptance tests - -### Milestone: Release stable 1.0.0 version by the end of February - -## March 2022 - -- Load tests -- Accessibility tests & improvements -- extensibility - - improve docs - - add the possibility to add plugins - - add the possibility to install external extensions - - theming diff --git a/docs/guide/supported-features.md b/docs/guide/supported-features.md index b02db5176..d63c72793 100644 --- a/docs/guide/supported-features.md +++ b/docs/guide/supported-features.md @@ -1,6 +1,6 @@ # Supported features -This page shows the Magento 2 features supported by this integration. If the feature you need is not supported, check out our [Roadmap](./roadmap.html) or reach out to us on [our Discord server](https://discord.vuestorefront.io/). +This page shows the Magento 2 features supported by this integration. If the feature you need is not supported, reach out to us on [our Discord server](https://discord.vuestorefront.io/). ## Product types From ab0e1b088a2476a6c1aad7dada66ce1f66cdebeb Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Fri, 13 May 2022 11:45:33 +0200 Subject: [PATCH 05/10] docs: remove unused images --- .../magento-marketplace-access-key-form.jpg | Bin 27038 -> 0 bytes .../magento-marketplace-access-keys-link.jpg | Bin 20668 -> 0 bytes ...nto-marketplace-create-access-key-button.jpg | Bin 14206 -> 0 bytes docs/assets/images/magento-marketplace-link.jpg | Bin 21088 -> 0 bytes .../magento-marketplace-my-profile-link.jpg | Bin 20019 -> 0 bytes .../images/magento-marketplace-signin-form.jpg | Bin 26312 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/assets/images/magento-marketplace-access-key-form.jpg delete mode 100644 docs/assets/images/magento-marketplace-access-keys-link.jpg delete mode 100644 docs/assets/images/magento-marketplace-create-access-key-button.jpg delete mode 100644 docs/assets/images/magento-marketplace-link.jpg delete mode 100644 docs/assets/images/magento-marketplace-my-profile-link.jpg delete mode 100644 docs/assets/images/magento-marketplace-signin-form.jpg diff --git a/docs/assets/images/magento-marketplace-access-key-form.jpg b/docs/assets/images/magento-marketplace-access-key-form.jpg deleted file mode 100644 index 53222f8027c9ed2883aaf461e20c2226c2287154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27038 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 diff --git a/docs/assets/images/magento-marketplace-access-keys-link.jpg b/docs/assets/images/magento-marketplace-access-keys-link.jpg deleted file mode 100644 index 6dfbafce5df9904dd391bc822c217279e9b2748b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20668 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 IA9?nF0ppU2;s5{u diff --git a/docs/assets/images/magento-marketplace-create-access-key-button.jpg b/docs/assets/images/magento-marketplace-create-access-key-button.jpg deleted file mode 100644 index d5c499a5ab1e3f5e572b65bff409a48d24102524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14206 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 Ilri*w0K^;wz5oCK diff --git a/docs/assets/images/magento-marketplace-link.jpg b/docs/assets/images/magento-marketplace-link.jpg deleted file mode 100644 index 4c1d3276696614bfb344894489a6a2f44db7ab98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21088 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 diff --git a/docs/assets/images/magento-marketplace-my-profile-link.jpg b/docs/assets/images/magento-marketplace-my-profile-link.jpg deleted file mode 100644 index ffc35b4d8462819ca8e7639079de9212f2bf8b48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20019 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 diff --git a/docs/assets/images/magento-marketplace-signin-form.jpg b/docs/assets/images/magento-marketplace-signin-form.jpg deleted file mode 100644 index b4f61f6dda3284d85cee3eec5e943182fbb2835e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26312 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 From a7185c8f213a038b1968669c99bfe71dcc267e28 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Fri, 13 May 2022 11:45:50 +0200 Subject: [PATCH 06/10] docs: update code example --- docs/getting-started/configure-integration.md | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/docs/getting-started/configure-integration.md b/docs/getting-started/configure-integration.md index a83018607..2b73b8dad 100644 --- a/docs/getting-started/configure-integration.md +++ b/docs/getting-started/configure-integration.md @@ -56,19 +56,23 @@ For other properties please follow official [nuxt-i18n documentation](https://i1 In the example configuration below, you need to have two Magento store views with corresponding store codes: `default` and `german`. -```json -locales: [ - { - code: 'default', - file: 'en.js', - iso: 'en_US', - }, - { - code: 'german', - file: 'de.js', - iso: 'de_DE', - } -] +```javascript +// nuxt.config.js + +export default { + locales: [ + { + code: 'default', + file: 'en.js', + iso: 'en_US', + }, + { + code: 'german', + file: 'de.js', + iso: 'de_DE', + } + ] +}; ``` ### Translations From cde43e59f64754fbb3eec4d00c73fb6a8d9fcfa0 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Fri, 13 May 2022 13:20:48 +0200 Subject: [PATCH 07/10] docs: improve landing page --- docs/.vuepress/config.js | 3 ++- docs/getting-started/configure-integration.md | 2 +- docs/index.md | 22 +++++++++++++++---- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 72d1a7396..107b67d44 100755 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -37,6 +37,7 @@ module.exports = { '@vuepress/search', ], themeConfig: { + sidebarDepth: 0, repo: 'https://github.com/vuestorefront/magento2/', editLinks: true, docsDir: 'docs', @@ -49,7 +50,7 @@ module.exports = { ], sidebar: [ { - title: 'Essentials', + title: '', collapsable: false, children: [ ['/', 'Introduction'], diff --git a/docs/getting-started/configure-integration.md b/docs/getting-started/configure-integration.md index 2b73b8dad..53dff7d0b 100644 --- a/docs/getting-started/configure-integration.md +++ b/docs/getting-started/configure-integration.md @@ -7,7 +7,7 @@ This guide explains the steps needed to install and set up Vue Storefront for Ma Before you can get started, you need the following: - **Node.js 16** installed, -- Magento 2 server configured following the [Configuring Magento store](/getting-started/configure-magento.html) guide. +- Magento 2 server configured following the [Configuring Magento](/getting-started/configure-magento.html) guide. ## Creating the Vue Storefront for Magento 2 diff --git a/docs/index.md b/docs/index.md index f336ed2ff..13dd1e2ce 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,21 @@ - + -# Vue Storefront 2 integration with Magento 2 +# Vue Storefront 2 for Magento [BETA] -This project is a Magento 2 integration for Vue Storefront 2. +Welcome to the documentation of Vue Storefront 2 integration for Magento 2. -This integration is currently a **Beta** and not ready for production usage. You can help us to make the integration production-ready faster by reporting bugs and contributing to the code at the [repository issues page](https://github.com/vuestorefront/magento2/issues). +It's part of our ecosystem of integrations and extensions, which you can learn more about in our [core documentation](https://docs.vuestorefront.io/v2/). + +## Demo + +If you want to see the integration in action, check out our [demo environments](/guide/environments.html). + +## Where to start? + +To get started, see the following guides: + +- [Configuring Magento](/getting-started/configure-magento.html) to install the Magento server and configure it for Vue Storefront. +- [Configuring Vue Storefront](/getting-started/configure-integration.html) to install Vue Storefront and configure it. From 77d502b3a195063a096fc2bace609f241e2afff1 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Mon, 16 May 2022 09:58:11 +0200 Subject: [PATCH 08/10] docs: remove Asciinema recordings --- docs/.vuepress/components/Asciinema.vue | 31 ------------------- docs/getting-started/configure-integration.md | 4 --- docs/getting-started/configure-magento.md | 4 --- 3 files changed, 39 deletions(-) delete mode 100644 docs/.vuepress/components/Asciinema.vue diff --git a/docs/.vuepress/components/Asciinema.vue b/docs/.vuepress/components/Asciinema.vue deleted file mode 100644 index 20e401191..000000000 --- a/docs/.vuepress/components/Asciinema.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/docs/getting-started/configure-integration.md b/docs/getting-started/configure-integration.md index 53dff7d0b..aa5b64f0a 100644 --- a/docs/getting-started/configure-integration.md +++ b/docs/getting-started/configure-integration.md @@ -17,10 +17,6 @@ To install Vue Storefront, run the command below. It will ask you for the projec npx @vue-storefront/cli init ``` -Here's a recording of these steps: - - - ## Setting environment variables After installation, the first step is to configure the integration using the environment variables. diff --git a/docs/getting-started/configure-magento.md b/docs/getting-started/configure-magento.md index 83ae6bac6..773b934f9 100644 --- a/docs/getting-started/configure-magento.md +++ b/docs/getting-started/configure-magento.md @@ -36,10 +36,6 @@ Run the command below to create the store. It will ask you for the Username and curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/onelinesetup | bash -s -- magento.test 2.4.4 ``` -Here's a recording of these steps: - - - ### Setting up the authentication In the Magento 2 folder, copy the `src/auth.json.sample` file and rename it to `src/auth.json`. You can do it manually or use the following command: From c97e6de2533f29b310770ba70acfb20ecf141aa1 Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Mon, 16 May 2022 11:13:21 +0200 Subject: [PATCH 09/10] docs: update installation guide based on PR feedback --- docs/.vuepress/config.js | 1 + docs/getting-started/configure-integration.md | 95 +++---------------- docs/getting-started/configure-magento.md | 43 ++++++--- docs/guide/image-optimization.md | 78 +++++++++++++++ docs/guide/supported-features.md | 6 +- 5 files changed, 124 insertions(+), 99 deletions(-) create mode 100644 docs/guide/image-optimization.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 107b67d44..0cb318d47 100755 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -71,6 +71,7 @@ module.exports = { title: 'Guides', collapsable: false, children: [ + ['/guide/image-optimization', 'Image optimization'], ['/guide/override-queries', 'Override queries'], ['/guide/testing', 'Testing'], ['/guide/recaptcha', 'ReCaptcha'], diff --git a/docs/getting-started/configure-integration.md b/docs/getting-started/configure-integration.md index aa5b64f0a..2ce2233a0 100644 --- a/docs/getting-started/configure-integration.md +++ b/docs/getting-started/configure-integration.md @@ -9,6 +9,12 @@ Before you can get started, you need the following: - **Node.js 16** installed, - Magento 2 server configured following the [Configuring Magento](/getting-started/configure-magento.html) guide. +To check the Node version you are using, run the following command: + +```bash +node -v +``` + ## Creating the Vue Storefront for Magento 2 To install Vue Storefront, run the command below. It will ask you for the project name and the integration of your choice. Keep in mind that the project name will also be used as the folder name, and be sure to select the Magento 2 integration. @@ -17,7 +23,7 @@ To install Vue Storefront, run the command below. It will ask you for the projec npx @vue-storefront/cli init ``` -## Setting environment variables +### 1. Configure environment variables After installation, the first step is to configure the integration using the environment variables. @@ -30,17 +36,17 @@ After installation, the first step is to configure the integration using the env 3. Update values in the `.env` file. -## Populating store configuration +### 2. Setup store configuration The `plugins/storeConfigPlugin.ts` plugin loads store configuration data from Magento and saves it into the Pinia store under the `$state.storeConfig` property. By default, the amount of data loaded from Magento is minimal to avoid over-fetching, but as your application grows, you might need to pull more data. This plugin loads the store configuration data based on a query in the `plugins/query/StoreConfig.gql.ts` file. You can modify this file to change what data is loaded. -## Configuring multistore and localization +### 3. Configure multistore and localization Each Magento store view needs a corresponding locale configuration object in the `i18n` object in the `nuxt.config.js` file. -### `i18n.locales` +#### 3.1 `i18n.locales` The `i18n.locales` array contains all supported locales. Each item in this array is an object containing the following properties: @@ -71,88 +77,9 @@ export default { }; ``` -### Translations +#### 3.2 Translations When working with translation in your application, you need to: 1. Add translations in Magento for products and categories. 2. Update the `i18n.locales` array in the `nuxt.config.js` file and add translations to the corresponding files in the `lang` directory. - -## Optimizing images - -You can use external image providers to optimize your images thanks to the [nuxt-img](https://image.nuxtjs.org/) module. - -By default, Vue Storefront uses the `ipx` provider, an open-source, self-hosted image optimizer. - -### Configuring external image provider - -If you decide to use an external image provider, you have to update the following environment variables inside the `.env` file: - -1. `VSF_MAGENTO_BASE_URL` - base URL of Magento shop. The `useImage` composable uses it to extract the image path from the full Magento URL. -2. `VSF_IMAGE_PROVIDER` - name of the external provider, e.g. `cloudinary`. See the [Providers](https://image.nuxtjs.org/getting-started/providers) page for more information. -3. `VSF_IMAGE_PROVIDER_DOMAIN` - domain of the image provider. -4. `VSF_IMAGE_PROVIDER_BASE_URL` - base URL of the image provider to upload images. - -See the `image` property in the `nuxt.config.js` to learn how these environment variables are used and to configure any [other options](https://image.nuxtjs.org/api/options) supported by the [nuxt-img](https://image.nuxtjs.org/) plugin. - -### Synchronize Magento images with an external provider - -You need to synchronize all your images from the two folders below manually or create a script to do so: - -- `media` folder in Magento. We recommend using the same path as in Magento. For example, if your image path is `{MAGENTO_BASE_URL}/media/catalog/product/{IMAGE_PATH}`, you should have the corresponding image in your external provider with the same path, e.g. `media/catalog/product/{IMAGE_PATH}`. -- `static` folder in Vue Storefront. - -### The `useImage()` composable - -Magento GraphQL API returns an URL to cached images, e.g. `{MAGENTO_BASE_URL}/media/catalog/product/cache/{IMAGE_PATH}`. When you download all images from your server's `media` directory, paths don't include the `cache/***/` part. - -Because of that, we created the `useImage()` hook, which provides the `getMagentoImage(fullImageUrl: string)` method. This method returns an URL to the image without the Magento base URL and cache part. You can use it to get images from external providers. - -Here's an example of how to use the `useImage()` composable: - -```vue - - - -``` - -### ImageSizes enum - -There is a helper object in the `enums/imageEnums.js` file that export configuration for various image types: - -```javascript -module.exports = { - productCard: { - width: 216, - height: 268, - }, - productCardHorizontal: { - width: 140, - height: 200, - }, - cartItem: { - width: 100, - height: 100, - }, -}; -``` diff --git a/docs/getting-started/configure-magento.md b/docs/getting-started/configure-magento.md index 773b934f9..d0a894fec 100644 --- a/docs/getting-started/configure-magento.md +++ b/docs/getting-started/configure-magento.md @@ -18,7 +18,7 @@ mkdir server cd server ``` -### Getting access keys for Magento +### 1. Get Magento Marketplace access keys Registry that stores Magento and other third-party packages requires authentication. You'll need to generate access keys in the Magento Marketplace to install them. @@ -26,7 +26,7 @@ Follow the [Get your authentication keys](https://devdocs.magento.com/guides/v2. ![Access keys generated in Magento Marketplace](../assets/images/magento-marketplace-access-keys.jpg) -### Setting up the Magento 2 store +### 2. Install Magento 2 store To simplify the setup, let's use the [`markshust/docker-magento`](https://github.com/markshust/docker-magento) script. @@ -36,7 +36,7 @@ Run the command below to create the store. It will ask you for the Username and curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/onelinesetup | bash -s -- magento.test 2.4.4 ``` -### Setting up the authentication +### 3. Setup authentication In the Magento 2 folder, copy the `src/auth.json.sample` file and rename it to `src/auth.json`. You can do it manually or use the following command: @@ -63,21 +63,26 @@ Finally, copy the file to the container by running the following command: bin/copytocontainer auth.json ``` -### Populating with sample data +### 4. Increse default GraphQL query complexity -In the Magento 2 folder, execute the commands below to add sample data to your store. +By default, Magento 2 allows maximum GraphQL query complexity of 300 and depth of 20 (see [#32427](https://github.com/magento/magento2/issues/32427#issuecomment-860478483)). You need to change these values using the [GraphQL CustomConfig module](https://github.com/caravelx/module-graphql-config), which allows configuring these values in the admin panel. -```sh -bin/magento sampledata:deploy +To install the Magento 2 GraphQL Config module, run the following commands on your Magento installation: + +```bash +composer require caravelx/module-graphql-config +php bin/magento module:enable Caravel_GraphQlConfig +php bin/magento setup:upgrade +php bin/magento setup:di:compile +php bin/magento setup:static-content:deploy ``` -Then update the configuration: +Then go to the admin panel, find the configuration panel of the `GraphQL CustomConfig` module and set: -```sh -bin/magento setup:upgrade -``` +- **complexity** to 1500, +- **depth** to 20. -### Enabling CORS +### 5. Enable CORS You may need to enable CORS origins in your Magento store to accept requests from other domains, e.g., `magento.dev`. In the Magento 2 folder, add the package `graycore/magento2-cors` by running the command below: @@ -114,3 +119,17 @@ Then update the configuration: ```sh bin/magento setup:upgrade ``` + +### 6. Populate store with sample data (optional) + +In the Magento 2 folder, execute the commands below to add sample data to your store. + +```sh +bin/magento sampledata:deploy +``` + +Then update the configuration: + +```sh +bin/magento setup:upgrade +``` diff --git a/docs/guide/image-optimization.md b/docs/guide/image-optimization.md new file mode 100644 index 000000000..914f191c6 --- /dev/null +++ b/docs/guide/image-optimization.md @@ -0,0 +1,78 @@ +# Image optimization + +You can use external image providers to optimize your images thanks to the [nuxt-img](https://image.nuxtjs.org/) module. + +By default, Vue Storefront uses the `ipx` provider, an open-source, self-hosted image optimizer. + +## Configure external image provider + +If you decide to use an external image provider, you have to update the following environment variables inside the `.env` file: + +1. `VSF_MAGENTO_BASE_URL` - base URL of Magento shop. The `useImage` composable uses it to extract the image path from the full Magento URL. +2. `VSF_IMAGE_PROVIDER` - name of the external provider, e.g. `cloudinary`. See the [Providers](https://image.nuxtjs.org/getting-started/providers) page for more information. +3. `VSF_IMAGE_PROVIDER_DOMAIN` - domain of the image provider. +4. `VSF_IMAGE_PROVIDER_BASE_URL` - base URL of the image provider to upload images. + +See the `image` property in the `nuxt.config.js` to learn how these environment variables are used and to configure any [other options](https://image.nuxtjs.org/api/options) supported by the [nuxt-img](https://image.nuxtjs.org/) plugin. + +## Synchronize Magento images with an external provider + +You need to synchronize all your images from the two folders below manually or create a script to do so: + +- `media` folder in Magento. We recommend using the same path as in Magento. For example, if your image path is `{MAGENTO_BASE_URL}/media/catalog/product/{IMAGE_PATH}`, you should have the corresponding image in your external provider with the same path, e.g. `media/catalog/product/{IMAGE_PATH}`. +- `static` folder in Vue Storefront. + +## The `useImage()` composable + +Magento GraphQL API returns an URL to cached images, e.g. `{MAGENTO_BASE_URL}/media/catalog/product/cache/{IMAGE_PATH}`. When you download all images from your server's `media` directory, paths don't include the `cache/***/` part. + +Because of that, we created the `useImage()` hook, which provides the `getMagentoImage(fullImageUrl: string)` method. This method returns an URL to the image without the Magento base URL and cache part. You can use it to get images from external providers. + +Here's an example of how to use the `useImage()` composable: + +```vue + + + +``` + +## Configure `ImageSizes` enum + +There is a helper object in the `enums/imageEnums.js` file that export configuration for various image types: + +```javascript +module.exports = { + productCard: { + width: 216, + height: 268, + }, + productCardHorizontal: { + width: 140, + height: 200, + }, + cartItem: { + width: 100, + height: 100, + }, +}; +``` diff --git a/docs/guide/supported-features.md b/docs/guide/supported-features.md index d63c72793..bb4feaf67 100644 --- a/docs/guide/supported-features.md +++ b/docs/guide/supported-features.md @@ -30,11 +30,11 @@ This page shows the Magento 2 features supported by this integration. If the fea | Grid/list mode | ✅ | | Adding product to cart | ✅ | | Adding product to wishlist | ✅ | -| Configurable product swatches | ❌ | +| Configurable product swatches | ✅ | | Filtering | ✅ | | Sorting | ✅ | -| Breadcrumb | ❌ | -| Category Landing Pages | ❌ | +| Breadcrumb | ✅ | +| Category Landing Pages | ✅ | ## Product page From cbccdbf34bb6b752d4c1124bec3090bd3913322a Mon Sep 17 00:00:00 2001 From: Filip Sobol Date: Mon, 16 May 2022 11:20:53 +0200 Subject: [PATCH 10/10] docs: fix typos in installation guides --- docs/getting-started/configure-integration.md | 2 +- docs/getting-started/configure-magento.md | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/getting-started/configure-integration.md b/docs/getting-started/configure-integration.md index 2ce2233a0..a6799cd81 100644 --- a/docs/getting-started/configure-integration.md +++ b/docs/getting-started/configure-integration.md @@ -25,7 +25,7 @@ npx @vue-storefront/cli init ### 1. Configure environment variables -After installation, the first step is to configure the integration using the environment variables. +After installation, the first step is configuring the integration using the environment variables. 1. Go to the root folder of your project. 2. Make a copy of the `.env.example` file and rename it to `.env`. You can do it manually or use the following command: diff --git a/docs/getting-started/configure-magento.md b/docs/getting-started/configure-magento.md index d0a894fec..122c92853 100644 --- a/docs/getting-started/configure-magento.md +++ b/docs/getting-started/configure-magento.md @@ -20,7 +20,7 @@ cd server ### 1. Get Magento Marketplace access keys -Registry that stores Magento and other third-party packages requires authentication. You'll need to generate access keys in the Magento Marketplace to install them. +Registry that stores Magento and other third-party packages require authentication. You'll need to generate access keys in the Magento Marketplace to install them. Follow the [Get your authentication keys](https://devdocs.magento.com/guides/v2.4/install-gde/prereq/connect-auth.html) guide to generate new access keys. @@ -63,9 +63,9 @@ Finally, copy the file to the container by running the following command: bin/copytocontainer auth.json ``` -### 4. Increse default GraphQL query complexity +### 4. Increase default GraphQL query complexity -By default, Magento 2 allows maximum GraphQL query complexity of 300 and depth of 20 (see [#32427](https://github.com/magento/magento2/issues/32427#issuecomment-860478483)). You need to change these values using the [GraphQL CustomConfig module](https://github.com/caravelx/module-graphql-config), which allows configuring these values in the admin panel. +For security reasons, Magento 2, by default, allows maximum GraphQL query complexity of 300 and depth of 20. You need to change these values using the [GraphQL CustomConfig module](https://github.com/caravelx/module-graphql-config), which allows configuring these values in the admin panel. To install the Magento 2 GraphQL Config module, run the following commands on your Magento installation: @@ -77,11 +77,13 @@ php bin/magento setup:di:compile php bin/magento setup:static-content:deploy ``` -Then go to the admin panel, find the configuration panel of the `GraphQL CustomConfig` module and set: +Then go to the admin panel, find the configuration panel of the `GraphQL CustomConfig` module, and set: - **complexity** to 1500, - **depth** to 20. +For more information, see the [GraphQL security configuration](https://devdocs.magento.com/guides/v2.4/graphql/security-configuration.html) page. + ### 5. Enable CORS You may need to enable CORS origins in your Magento store to accept requests from other domains, e.g., `magento.dev`. In the Magento 2 folder, add the package `graycore/magento2-cors` by running the command below: