From 1c5743260e255fe3c818ec0acd704982db3b574b Mon Sep 17 00:00:00 2001 From: Tiago Vasconcelos Date: Fri, 29 May 2026 16:17:39 +0100 Subject: [PATCH 1/2] feat: add merchant stack docs --- docs/.vitepress/config.mjs | 19 ++++ docs/.vitepress/theme/components/HomePage.vue | 3 + docs/.vitepress/theme/components/MegaMenu.vue | 1 + .../.vitepress/theme/components/NavSwitch.vue | 1 + docs/guide/index.md | 2 + docs/merchant-stack/advisors.md | 89 ++++++++++++++++++ docs/merchant-stack/bookkeeping.md | 53 +++++++++++ docs/merchant-stack/hardware.md | 90 ++++++++++++++++++ docs/merchant-stack/index.md | 87 +++++++++++++++++ docs/merchant-stack/inventory.md | 79 ++++++++++++++++ docs/merchant-stack/orders.md | 62 +++++++++++++ docs/merchant-stack/quick-start.md | 93 +++++++++++++++++++ docs/merchant-stack/tabs.md | 71 ++++++++++++++ docs/merchant-stack/tpos.md | 92 ++++++++++++++++++ docs/merchant-stack/troubleshooting.md | 87 +++++++++++++++++ docs/merchant-stack/webshop.md | 79 ++++++++++++++++ 16 files changed, 908 insertions(+) create mode 100644 docs/merchant-stack/advisors.md create mode 100644 docs/merchant-stack/bookkeeping.md create mode 100644 docs/merchant-stack/hardware.md create mode 100644 docs/merchant-stack/index.md create mode 100644 docs/merchant-stack/inventory.md create mode 100644 docs/merchant-stack/orders.md create mode 100644 docs/merchant-stack/quick-start.md create mode 100644 docs/merchant-stack/tabs.md create mode 100644 docs/merchant-stack/tpos.md create mode 100644 docs/merchant-stack/troubleshooting.md create mode 100644 docs/merchant-stack/webshop.md diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index ebffac9..d824e56 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -101,6 +101,7 @@ export default withMermaid(defineConfig({ }, ], }, + { text: 'Merchant Stack', link: '/merchant-stack/' }, { text: 'API', items: [ @@ -280,6 +281,24 @@ export default withMermaid(defineConfig({ ], }, ], + '/merchant-stack/': [ + { + text: 'Merchant Stack', + items: [ + { text: 'Overview', link: '/merchant-stack/' }, + { text: 'Quick Start with SaaS', link: '/merchant-stack/quick-start' }, + { text: 'Set up TPoS', link: '/merchant-stack/tpos' }, + { text: 'Set up Inventory', link: '/merchant-stack/inventory' }, + { text: 'Capture Orders', link: '/merchant-stack/orders' }, + { text: 'Sell Online with WebShop', link: '/merchant-stack/webshop' }, + { text: 'Use Tabs', link: '/merchant-stack/tabs' }, + { text: 'Hardware and Printing', link: '/merchant-stack/hardware' }, + { text: 'Bookkeeping', link: '/merchant-stack/bookkeeping' }, + { text: 'Merchant Advisors', link: '/merchant-stack/advisors' }, + { text: 'Troubleshooting', link: '/merchant-stack/troubleshooting' }, + ], + }, + ], '/api/': [ { text: 'API Reference', diff --git a/docs/.vitepress/theme/components/HomePage.vue b/docs/.vitepress/theme/components/HomePage.vue index a622519..664b5df 100644 --- a/docs/.vitepress/theme/components/HomePage.vue +++ b/docs/.vitepress/theme/components/HomePage.vue @@ -123,6 +123,7 @@ const quickLinks = [ { title: 'Installation', desc: 'uv, Poetry, Docker, Nix, Fly.io', link: '/guide/installation/', icon: 'download' }, { title: 'Wallet Backends', desc: '20+ funding sources', link: '/guide/wallets/', icon: 'wallet' }, { title: 'Extensions', desc: '60+ plugins ready to use', link: '/guide/using-extensions', icon: 'puzzle' }, + { title: 'Merchant Stack', desc: 'POS, inventory, orders, WebShop', link: '/merchant-stack/', icon: 'store' }, { title: 'Admin Dashboard', desc: 'Server config & user management', link: '/guide/admin-dashboard', icon: 'shield' }, { title: 'Super User', desc: 'Full control & first-run setup', link: '/guide/core/super-user', icon: 'star' }, { title: 'FAQ', desc: 'Common questions answered', link: '/guide/faq/', icon: 'help' }, @@ -267,6 +268,8 @@ const quickLinks = [ + + + +
+
+
+ For Merchants & Entrepreneurs +

The LNbits Merchant Stack

+

+ Everything you need to accept Lightning payments in the real world: + point of sale, inventory, orders, and a full web shop. Built for + merchants, ambassadors, and everyone bringing Bitcoin to their community. +

+
    +
  • Point of sale & card terminals
  • +
  • Inventory & order management
  • +
  • Hosted WebShop
  • +
  • Tap-to-pay with Boltcards
  • +
  • Fiat payments: tap to pay with credit card
  • +
  • Hardware receipt printing
  • +
+
+ + + Explore the Merchant Stack + + +
+
+
+
+ LNbits Merchant Stack hardware: mobile wallet, point of sale tablet, card terminal, and the LNbits box +
+
+
+ + + +
+
+ +
+ +
+
+
+
+
{{ toast }}
@@ -816,6 +892,219 @@ const quickLinks = [ transform: translateX(0); } +/* ═══════════════════════════════════ + Merchant Stack + ═══════════════════════════════════ */ +.mstack { + margin-bottom: 56px; +} + +.mstack-inner { + display: grid; + grid-template-columns: 1.1fr 0.9fr; + gap: 36px; + align-items: center; + border: 1px solid var(--vp-c-divider); + border-radius: 16px; + background: var(--vp-c-bg-elv); + padding: 36px 40px; + overflow: hidden; +} + +.mstack-copy { + display: flex; + flex-direction: column; + gap: 10px; +} + +.mstack-eyebrow { + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 1px; + color: var(--vp-c-brand-1); +} + +.mstack-title { + font-size: 24px; + font-weight: 800; + letter-spacing: -0.02em; + color: var(--vp-c-text-1); + margin: 0; + line-height: 1.2; +} + +.mstack-desc { + font-size: 14px; + color: var(--vp-c-text-2); + line-height: 1.6; + margin: 2px 0 4px; +} + +.mstack-features { + list-style: none; + padding: 0; + margin: 0 0 6px; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 6px 18px; +} + +.mstack-features li { + font-size: 13px; + color: var(--vp-c-text-2); + padding-left: 20px; + position: relative; +} + +.mstack-features li::before { + content: '✓'; + position: absolute; + left: 0; + color: var(--vp-c-brand-1); + font-weight: 700; + font-size: 13px; +} + +.mstack-actions { + display: flex; + gap: 10px; + margin-top: 6px; +} + +.mstack-btn { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 10px 20px; + border-radius: 10px; + font-size: 14px; + font-weight: 600; + text-decoration: none; + border: 1px solid var(--vp-c-divider); + color: var(--vp-c-text-1); + background: var(--vp-c-bg); + transition: border-color 0.2s, background 0.2s, transform 0.2s; +} + +.mstack-btn:hover { + border-color: var(--vp-c-brand-1); + transform: translateY(-1px); +} + +.mstack-btn--primary { + background: var(--vp-c-brand-1); + border-color: var(--vp-c-brand-1); + color: #fff; +} + +.mstack-btn--primary:hover { + opacity: 0.9; + border-color: var(--vp-c-brand-1); +} + +.mstack-visual { + position: relative; + display: flex; + align-items: center; + justify-content: center; +} + +.mstack-glow { + position: absolute; + inset: 0; + margin: auto; + width: 72%; + height: 72%; + background: radial-gradient(circle, rgba(149, 117, 205, 0.22), transparent 70%); + filter: blur(44px); + z-index: 0; +} + +.mstack-img { + position: relative; + z-index: 1; + width: 100%; + max-width: 460px; + height: auto; + display: block; +} + +/* ═══════════════════════════════════ + Video Modal (lightbox) + ═══════════════════════════════════ */ +.video-modal { + position: fixed; + inset: 0; + z-index: 100; + display: flex; + align-items: center; + justify-content: center; + padding: 24px; + background: rgba(0, 0, 0, 0.75); + backdrop-filter: blur(4px); +} + +.video-modal-inner { + position: relative; + width: 100%; + max-width: 880px; +} + +.video-modal-frame { + position: relative; + width: 100%; + aspect-ratio: 16 / 9; + border-radius: 14px; + overflow: hidden; + background: #000; + box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5); +} + +.video-modal-frame iframe { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + border: 0; +} + +.video-modal-close { + position: absolute; + top: -44px; + right: 0; + display: inline-flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + border: 0; + border-radius: 50%; + background: rgba(255, 255, 255, 0.12); + color: #fff; + cursor: pointer; + transition: background 0.2s; +} + +.video-modal-close:hover { + background: rgba(255, 255, 255, 0.24); +} + +.video-modal-close svg { + width: 20px; + height: 20px; +} + +.vmodal-enter-active, +.vmodal-leave-active { + transition: opacity 0.2s ease; +} + +.vmodal-enter-from, +.vmodal-leave-to { + opacity: 0; +} + /* ═══════════════════════════════════ Quick Links (2x3 grid) ═══════════════════════════════════ */ @@ -1241,6 +1530,12 @@ const quickLinks = [ .contrib-roles { grid-template-columns: 1fr; } + + .video-modal-close { + top: 8px; + right: 8px; + background: rgba(0, 0, 0, 0.5); + } } /* ═══════════════════════════════════ @@ -1354,6 +1649,20 @@ const quickLinks = [ gap: 10px; } + .mstack-inner { + grid-template-columns: 1fr; + gap: 24px; + padding: 24px; + } + + .mstack-visual { + order: -1; + } + + .mstack-img { + max-width: 360px; + } + .mcard { flex-direction: row; align-items: center; diff --git a/docs/.vitepress/theme/components/MegaMenu.vue b/docs/.vitepress/theme/components/MegaMenu.vue index f106bfa..4c61ba1 100644 --- a/docs/.vitepress/theme/components/MegaMenu.vue +++ b/docs/.vitepress/theme/components/MegaMenu.vue @@ -125,10 +125,16 @@ const columns = [ { name: 'Browse Extensions', desc: '60+ extensions ready to use', link: '/extensions/', icon: 'puzzle' }, ], }, + { + heading: 'Merchant Stack', + items: [ + { name: 'Merchant Stack', desc: 'POS, inventory, orders, WebShop', link: '/merchant-stack/', icon: 'store' }, + ], + }, { heading: 'Companion Apps', items: [ - { name: 'Browse Apps', desc: 'Standalone apps for LNbits', link: '/apps/', icon: 'zap' }, + { name: 'Browse Apps', desc: 'Standalone apps for LNbits', link: '/apps/', icon: 'apps' }, ], }, { @@ -205,6 +211,8 @@ const columns = [ + + diff --git a/docs/public/merchant_stack/lnbitsbox_small.png b/docs/public/merchant_stack/lnbitsbox_small.png new file mode 100644 index 0000000000000000000000000000000000000000..3b8d6dd20844cdc912a99c01fd617e192dc71b61 GIT binary patch literal 29178 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 Ot`7_k2%82i6tRs% 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

$ z*G>eIPj;-o$ZjW5?yB20u7zD$Wqzu$LE_bE5o!uERBbqAAhxLg9_l#7;-JTxp&iG# zqufdZASKQa;>iDQ&^5u7^ER1uNn}<>c%1{5ZME)(@BE<-=tug6WE~$2PO{r9RUr017 zcsd9vcB;@vqex0v7rnMyQb-Bz{Hf+jfK${el zH!yd12*67t)$#r5eqp-b@UyESdz`b=MGJ?YO=RVAylJc9ZrIRLeDD=ZChG|A&ksr- zTkkcHep2LHNRzh|!ULyGWR~D{q0}Y(%S-E84_4JAOXO)3e;7jNF&5!@ll4s>2N^gA zq|J(|2JlaKeXXX$o+pHvR!ME6>YlX^ztohZtxXS_Y^a#8#N{5_%tQ*fRNt{9){nxh zIXks>@v7(@)<`H##hABFeMNlB-c6UshUJK#vHpmD1dLzm!4>lqee~8)I%W0$YO(n)Jdg_P&$*lLMGgr#I9;v_}BZ;l9o=6V)wYxS4 zcb{?Q;{>h}4dY;k8Z>wXn-;w0t=P7Os(@%{zHFP@*?WQVROJZmxe*G{~ ziMla>OcyA3!=&A7bOfI`3xANNmdj2(UbZ zA`v9+t{7HbN5HL%${OtCd0iZlg)1ivRP=keLvzH73wIvEQaU8lIi4p0b|du_yeNYg z7(%yOK$8#|F7G`~QBStoRo91`v!L_NX z10{i>{Ynw);HB&jBa;%Gpz7)+uhZj39es<%G8(ZQpjmRBhmU{l)vu5=Y}DQ{cD|kZ z)+N9#dy98fCQO&FqPxnU<`VD3h}=!zquz-!ahN^@x*=`>5UF)ED?WRkWhYLVVD-*| zPWQN8sx$x6b8j$S?lb-|mK-JV^Q~v8m)zx>FLXpI3frDtE{(_f(g~$f3vRaMGBuu1 z`R8k7?e()D;&UKBvi!t_|7H5AtE>i@b@MsMJ&(7ue^rIC1bQ>wag78b6pCF-yTCiJ=u!6cXol5`u;jbf-2DrnK_L2YtF z4RLCKK^05Iric|KDRHBdG%SoSk5=7KDQ`}9=V5;Q7NL)Xip{UcaPje>EdNo;7F;Xd z^XNL;k<<=qsp5m!{?`_L&)!F+iTZIPCyDL%;2r`%k)@1|cz)^Ip63_r3a>fV z{w1w2)AgnBcJJBAmZRO;yxCmoR05@^LU+CcW2a1PUWAt;X*6c0n#_)UX9La(#ypm= zS@O{Ag5g*1XRkAcTv=eGr_&DtLnV=-P%x5C?1{#;G_`w^du>lgGL$o_7Qz$?d+0FZ zY_7W18EdQxi*PXl2CF2>UGy+E=6gG(#s?eh7R~b$_df4{+Q-2U%Zl0YZaS`Mvpa`S1*Kh^lkhXkmD!1OuIJru3W%BBO+W=qra3cIeben+FcVEGaGc@(x z)#m_$5wg2Gi%Ku#Bu~?|l$~ddr=N19L_M+1I0|M1@NmqH(<1~eI^@Px>{vps-n(DY z%It9)nB&lRP;7Wa(yl4p2@sXh2z`0XPG&*e_Cd6x26w}j*qb)}Z zk@xDx)v1y+pJFPj!-@~tF%C#Znjg@uJ1`v1z;cigUy0gCyk%hD+-8#r>+-ch@xxl> z3lX=fkSlT20cVQ@-bP znH3T0eYN5pH5#`5;6#1S0Av<`$vjcGPEIl5Jf|7If%Us(JJ(}zkhv_b=jwWi|-D+y0@b8P6~YTW-8zfXF_8MKFkd0j!(MPVGFQr zf06sRn1qMi}!FA5lT8^N-T49SK*`nb7V$Zi7&m4#p zB1Lj@XX&Fn;w-P+nC0L9*iywJrV^vvzz|8W?QfueTq-f(lz!u)NvxiB>bUCZv&SI) zN`frz`Vx!9is#udr95hv5tOzH_@UH7sV>8r>$(^T|5YZ5yLc8RM&yUM7`p4exZc-; zmx`f`8=K2s9F#{Au(wpD$Kc>hi*@cmaPF#SU(rhnqzW?bBUC+?a>ngkXg`vNtY8R| zy}5;CY~skN%46!UnnHadpZyj_iW(UX>MIUu9rU{71HY>62!XtE=lNI4LsZ z3gl%&?3>b%;?ORd;fO;4=7>W%Rrb3mh9Gf+(^p&_@i-U3XU^814|*xCFMe=g{ zM}T7B#I+87-r}+5X7y)bQ*bej540!?!J(K5TNo1=B4{?j>YH}8Tf)MgsJ7l}OIvQ9 zbT30fnx2=_%qh7E8O}2l4GSfP3xC+f7w`F|-!g1${h9jJZtxwEno`R`AXVGe9-JIB zg38l$7E+Oxgd**@q$T(;4dnGYupj!VW;T_W$} zNnPdd>2nvF_Hu`mb|rryDK@glP2fsJd%>@AJc%UFy;enmdtH1NvdoFW#`8jpI9jGI zet)64@n>l35x^}+W5bMRpHK3Z zUChghVa!Sz;i7StCg|+DG%<{9Y9mIoi}eJ?z9A=(!_6^Qx(Zjmr~)QmE`x3!zi)IR zsi*aPHT5y~ewiBNxDh}lb4{>qEbBQiPJdF^1@o6Y z!VC`ce)~)bki}f}wzut+B*H+qls>bVTuA5V+&C{t`|K(`_Bt+Ac2AtkW=1hH_r}c( zp54;J25avWQHTu_g30|duy7(+=so>TrQTE2Rk9AWHw!IX91kC-w%j9lEe&KB4JM6_ z4d!x$5sSNoK!q`~MUERn#yU{>!?rz6)-3Xs>1(L6)p~2(SU%Br_)%e+jIy;>f3MgJ zR?A1Kds($j2VdRi7bdMy3ErU2Yxy}co=5#QU#@eE_`@US>fXwG(>qVUC8T% zZR}f)g{@VYaCP>*h?$`^hNCeISt0MCx!4>3`g|#$ev505Ojj$1oc#huDfXGxIQ1a zdwTA3u{rRom1ivu&~xaB8~aCax5(Dkd-FH@B0;kGlexSa1Nu%kDuQue^9xa8(->s3 zeik9AVIM{rkV38I@pW(bC=!5t=jXT5A`sH;iSMcP+4woz6Gp?>$hdXqr`0*8Q7O}b zdcG-L8Vq9x-knX%7RU}DpOc@m+BdpuyNaI~M}VP5SZPtAe#~7cnbeW* z!|etPEuoE5&qWAzA7Oqm_r^Tynn14rYdlB@)LVpY_cMJ|X#6(eVNs7&usPJtq9`|< zHQxFXO+xPte)5cTTRnC_=Kcog?rx6{jbju8y=}HkhO@vKFH1^qsq~Re28sHdw`Ni< z_am0L$o&L8RPQ(J>cmlRKlMwAeO1uRIP3a?*JES>q@5}oj81nYTXb!)-Zu#lGj@@q zyxL(~#}sh27pi0M}Tvk=3lcfW)#4aaU%NP^ACC%_AJ zSt@TO_NsZR)YKn$iWubwtwG*5_l&dSH0)ME=6;%*K>F!utcsrtIFB@}{E8em^lgo8 z4)As4>))SbW!*AoLGZQ&CtgRmAUp0gP#I*E9)BKW{*m%2M*}nyqJjnLV&D>k*1d+0zFn5AyA1VjOS`48=yo&4AMV+9YGF2>$nM2b zDK3Hu<|O}_C@cx4ACdlNGePvs~?xekq zUn-X@y(_&oGvBVML&hn{Se1VqAKuT2?5_N=ZEwKU)?&O%xJ(PVIHmYK-@sH$^gxLm z?1ihqE9E0*$4TQety^*b>sczZ7q<{lEX*etdo^^|%#(R5# zZ{Y#DeOblVGZPJ43D&TY^gY1rVy5wN(9hJ8?UzSpgcn!SlAK|+;vXU(2p>eub{g@F zDVW^g2L;wipkIG;*d8sinQIP44vj$~Y(FD91h8L5V2&$Oph<;|_kISMt+^8%2B0mk zPJT(q?cbLmZCsU^MDtg-wWnAaj7YI1!q?0kUKJovjLR5~_jDjqUiYOPHOGR$oPt!2 zl}amuT^AAmcxODPF%fO%CzIWW;Gjv^C4%uJcD)8pQt#92pz&k`ABoTrqUzPrS?FQk zw{JE%oJ=$?&=MIGNWe#V@mYTQIQZB_s8k~a>3lG(ON4X3L|FZow<_pnee;_wPA>XL zb|T}=>KI|KUhRrS+~&9A=wuR>rTOV)D-J;l6vcNUa4`D8h#z?Y)FG}`$k-KgJYgNH zc(0)^hFIzxGu4cnjhEK)?Rd9)fnJP>kvi4vcL@VW+-LUJFAplpwS%ZB@Y88gZ6Bw| z20qh1Xo~yTyW^c_4c4?frGVZ=~br;REmhg%F4UejzacP>fHAjt?LvAS5OrfP{h+9*2QMj?lTh z*UkEuzliGJ$N#kS3;}G3a8*Lu3kI@sfWYZ2AvSi-k_-n;tqgQ_U`Yl;K}~=rOdeuu zr{d!Z(e-(vXXWEyB?@Mcmco|s67zC`IYHncIxi1499kvBcF52DgJc)7@i&ETQgj zNd^W)KiyycIl(kF|Au#VLYHIyv$FQ^O6e=z#$F)1m)W!%fc{ z2H|}Qaf7=NyE^_J4%mtp;s|j;?xp zTS4xj5a2v^2pk9q3<82c*4!ch5SUv)5G=?oDhvd1LjVF+)ickYlMO%gNB{6yVt)&_3WG=x^U1v zn|#8;Kp{a906+-94-^sM|Cf*f#MKS467Mm8@7v!!_tPSV7z~0~(EU0^0Q_!8j79AC z=7hTHL7|S441e$Vzq>UN+X)PUgA@?40s;DW4AA>425MU`-#B%qYIH3 z$k_&hh#r3~*T35B{+Fd-Ed&%11&e~Yt-;oo+ya(-R@@-4HGtd75+DkMSOfUM!lM6< z?gq7ndxBgcvNi}F5nLgb=kMr9$M$=o*#BMH(-v|+3kbrv5g#t_3H?Qw(4U0y{yAXY z`dmi^;s36#|7Ubz|LbuI;*7Wp@