PageSourceSearch

https://hou.la/chunk-FSFU5QS5.js

js hou.la collected 2026-09-25 03:33:07 UTC 10,890 bytes, 1 lines download raw bytes

1import{a as C}from"./chunk-2MN7HZTO.js";import{a as y}from"./chunk-SZVS3FHI.js";import{a as _}from"./chunk-ZMMM2NJV.js";import"./chunk-IJ2PWAPC.js";import"./chunk-IKQR3USM.js";import"./chunk-ZV7NG4F4.js";import"./chunk-DJ5AJG3T.js";import"./chunk-6EF6RNOO.js";import"./chunk-T3DWPM4S.js";import"./chunk-K6QYQNRN.js";import"./chunk-WF4KZOYP.js";import"./chunk-EB6TJ75L.js";import{D as P,c as M,g as k,l as O}from"./chunk-FOJCKIWO.js";import"./chunk-AB6CKZTE.js";import"./chunk-YQZAETCE.js";import{o as E,r as b,s as v,x as S}from"./chunk-EO42E46J.js";import"./chunk-3QVSKJ3X.js";import{I as h}from"./chunk-ERUCNOOT.js";import{Ba as g,Jb as d,Vb as n,Wb as t,Xb as c,da as l,db as u,fc as s,fd as x,sb as f,tc as e}from"./chunk-DBE7WQEG.js";import"./chunk-W7GRJBO5.js";var w=class m{seoService=l(_);router=l(b);route=l(E);shop=g("");normalizedShop=x(()=>{let o=this.shop().trim().toLowerCase();if(!o)return null;let a=o.replace(/^https?:\/\//,"").replace(/\/.*$/,"").replace(/\.myshopify\.com$/,"").replace(/[^a-z0-9-]/g,"");return a?`${a}.myshopify.com`:null});goToConnect(){let o=this.normalizedShop();this.router.navigate(["/studio/shop/settings"],{fragment:"integrations",queryParams:o?{shop:o}:void 0})}ngOnInit(){this.seoService.enableFollow(),this.seoService.setSeoFromSnapshop(this.route.snapshot)}static \u0275fac=function(a){return new(a||m)};static \u0275cmp=f({type:m,selectors:[["app-view-apps-shopify"]],decls:130,vars:2,consts:[[1,"guide"],[1,"g-wrap"],[1,"g-kicker"],[1,"g-h1"],[1,"g-lede"],[1,"g-downloads","sh-install"],["type","text","placeholder","ta-boutique.myshopify.com","autocomplete","off","spellcheck","false","aria-label","Domaine de ta boutique Shopify",1,"sh-input",3,"ngModelChange","keyup.enter","ngModel"],["type","button",1,"g-btn","g-btn--hero",3,"click"],[1,"g-btn__os"],[1,"g-btn__name"],[1,"g-fineprint"],["routerLink","/guides/shopify-headless"],[1,"g-sec"],[1,"g-h2"],[1,"g-cards"],[1,"g-card"],[1,"g-card__h"],[1,"g-card__p"],[1,"g-p"],[1,"g-steps"],[1,"g-code"],[1,"g-cta"],[1,"g-downloads","g-downloads--center","sh-install"],["type","button",1,"g-btn",3,"click"]],template:function(a,i){a&1&&(n(0,"div",0),c(1,"app-widget-landing-nav"),n(2,"main",1)(3,"p",2),e(4,"Connecteur \xB7 Shopify"),t(),n(5,"h1",3),e(6,"Connecte ta boutique Shopify \xE0 Hou.la"),t(),n(7,"p",4),e(8," Le connecteur qui relie ta boutique "),n(9,"b"),e(10,"Shopify"),t(),e(11," \xE0 Hou.la \u2014 le r\xE9seau social, la cr\xE9ation de contenu et le "),n(12,"b"),e(13,"live shopping"),t(),e(14,". Tes produits sont "),n(15,"b"),e(16,"synchronis\xE9s"),t(),e(17," vers la marketplace, et les "),n(18,"b"),e(19,"commandes pass\xE9es sur Hou.la reviennent directement dans Shopify"),t(),e(20,". Tu vends sur Hou.la et pendant tes lives sans jamais quitter l'admin Shopify que tu connais d\xE9j\xE0. "),t(),n(21,"div",5)(22,"input",6),s("ngModelChange",function(p){return i.shop.set(p)})("keyup.enter",function(){return i.goToConnect()}),t(),n(23,"button",7),s("click",function(){return i.goToConnect()}),n(24,"span",8),e(25,"Connecter ma boutique"),t(),n(26,"span",9),e(27,"depuis ton espace Hou.la"),t()()(),n(28,"p",10),e(29," Gratuit \xB7 r\xE9serv\xE9 aux marchands Hou.la dont la "),n(30,"b"),e(31,"boutique est valid\xE9e"),t(),e(32," \xB7 rien \xE0 t\xE9l\xE9charger : on t'envoie un lien, "),n(33,"b"),e(34,"un clic"),t(),e(35," et c'est connect\xE9. "),t(),n(36,"p",10),e(37," \u{1F449} Tu veux connecter ta boutique "),n(38,"b"),e(39,"tout de suite"),t(),e(40," et gratuitement ? Suis notre "),n(41,"a",11),e(42,"guide pas \xE0 pas (5\xA0min)"),t(),e(43," pour synchroniser tes "),n(44,"b"),e(45,"produits et ton stock"),t(),e(46," via le canal Headless de Shopify. "),t(),n(47,"section",12)(48,"h2",13),e(49,"Ce que fait le connecteur"),t(),n(50,"div",14)(51,"div",15)(52,"h3",16),e(53,"Synchronisation des produits"),t(),n(54,"p",17),e(55," Les produits de ta boutique Shopify apparaissent automatiquement sur Hou.la \u2014 marketplace et live shopping. Prix, stock, variantes, photos et descriptions restent \xE0 jour en temps r\xE9el gr\xE2ce aux webhooks\xA0: une seule source de v\xE9rit\xE9, jamais de double saisie. "),t()(),n(56,"div",15)(57,"h3",16),e(58,"Commandes Hou.la \u2192 Shopify"),t(),n(59,"p",17),e(60," Chaque commande pass\xE9e sur la marketplace ou pendant tes lives redescend dans Shopify \u2014 brouillon, commande pay\xE9e, exp\xE9dition avec suivi \u2014 avec la mise \xE0 jour du stock. Tu traites toutes tes ventes depuis l'admin Shopify que tu utilises d\xE9j\xE0. "),t()(),n(61,"div",15)(62,"h3",16),e(63,"Vends pendant tes lives"),t(),n(64,"p",17),e(65," Mets en avant ton catalogue existant pendant tes lives et sur la marketplace, sans le recr\xE9er \xE0 la main. Le stock se met \xE0 jour partout automatiquement. "),t()(),n(66,"div",15)(67,"h3",16),e(68,"Multi-espaces de travail"),t(),n(69,"p",17),e(70," Relie ta boutique au bon espace de travail Hou.la \u2014 id\xE9al pour les agences et les \xE9quipes qui g\xE8rent plusieurs marques. "),t()()()(),n(71,"section",12)(72,"h2",13),e(73,"Connexion en un clic"),t(),n(74,"p",18),e(75," Tu n'as "),n(76,"b"),e(77,"rien \xE0 installer ni \xE0 configurer"),t(),e(78,". On pr\xE9pare une application Shopify d\xE9di\xE9e \xE0 ta boutique, on t'envoie un lien : tu cliques, tu autorises, c'est connect\xE9. Tu peux r\xE9voquer l'acc\xE8s \xE0 tout moment depuis ton admin Shopify. "),t(),n(79,"ol",19)(80,"li")(81,"b"),e(82,"Connecte-toi \xE0 Hou.la"),t(),e(83," et va dans "),n(84,"b"),e(85,"Boutique \u2192 Param\xE8tres \u2192 Int\xE9grations"),t(),e(86,". Ta "),n(87,"b"),e(88,"boutique Hou.la doit \xEAtre val
1id\xE9e"),t(),e(89,". "),t(),n(90,"li")(91,"b"),e(92,"Saisis le domaine"),t(),e(93," de ta boutique ("),n(94,"code",20),e(95,"ta-boutique.myshopify.com"),t(),e(96,") et clique "),n(97,"b"),e(98,"Demander mon lien d'installation"),t(),e(99,". "),t(),n(100,"li"),e(101," Notre \xE9quipe pr\xE9pare ton application d\xE9di\xE9e et te r\xE9pond dans le "),n(102,"b"),e(103,"support"),t(),e(104," avec ton lien. "),t(),n(105,"li")(106,"b"),e(107,"Ouvre le lien"),t(),e(108,", autorise l'installation\xA0: tes produits et tes commandes se "),n(109,"b"),e(110,"synchronisent tout de suite"),t(),e(111,", dans les deux sens. "),t()(),n(112,"p",10),e(113," Une application Hou.la est install\xE9e sur ta boutique pour assurer la synchronisation. Elle est "),n(114,"b"),e(115,"r\xE9vocable en un clic"),t(),e(116," depuis "),n(117,"i"),e(118,"Param\xE8tres \u2192 Applications"),t(),e(119," de ton admin Shopify. "),t()(),n(120,"section",21)(121,"h2",13),e(122,"Connecte Shopify \xE0 Hou.la"),t(),n(123,"p",18),e(124," Synchronise tes produits et tes commandes avec la marketplace en quelques minutes. "),t(),n(125,"div",22)(126,"input",6),s("ngModelChange",function(p){return i.shop.set(p)})("keyup.enter",function(){return i.goToConnect()}),t(),n(127,"button",23),s("click",function(){return i.goToConnect()}),e(128," Connecter ma boutique "),t()()()(),c(129,"app-widget-landing-footer"),t()),a&2&&(u(22),d("ngModel",i.shop()),u(104),d("ngModel",i.shop()))},dependencies:[h,P,M,k,O,S,v,C,y],styles:["[_nghost-%COMP%]{--paper: #0a0a14;--surface: #12121e;--surface-2: #1a1a2e;--ink: #ffffff;--ink-soft: rgba(255, 255, 255, .66);--ink-muted: rgba(255, 255, 255, .45);--accent: #2f8eef;--accent-bright: #54a6f6;--border: rgba(255, 255, 255, .1);display:block;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif;line-height:1.6}.guide[_ngcontent-%COMP%]{padding-top:58px}.g-wrap[_ngcontent-%COMP%]{max-width:760px;margin:0 auto;padding:56px 24px 96px}.g-kicker[_ngcontent-%COMP%]{font-family:Space Mono,monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-bright);margin:0 0 12px}.g-h1[_ngcontent-%COMP%]{font-size:clamp(28px,5vw,44px);font-weight:800;line-height:1.1;letter-spacing:-.02em;margin:0 0 20px}.g-lede[_ngcontent-%COMP%]{font-size:18px;color:var(--ink-soft);margin:0 0 28px}.g-lede[_ngcontent-%COMP%]   b[_ngcontent-%COMP%]{color:var(--ink)}.g-sec[_ngcontent-%COMP%]{margin-top:56px;padding-top:32px;border-top:1px solid var(--border)}.g-h2[_ngcontent-%COMP%]{font-size:clamp(22px,3.5vw,28px);font-weight:700;letter-spacing:-.01em;margin:0 0 20px}.g-p[_ngcontent-%COMP%]{color:var(--ink-soft);margin:0 0 16px}.g-steps[_ngcontent-%COMP%]{margin:0;padding-left:22px;color:var(--ink-soft)}.g-steps[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{margin:0 0 12px}.g-steps[_ngcontent-%COMP%]   b[_ngcontent-%COMP%]{color:var(--ink)}.g-code[_ngcontent-%COMP%]{font-family:Space Mono,monospace;font-size:.9em;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px;color:var(--ink)}.g-cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}@media (max-width: 560px){.g-cards[_ngcontent-%COMP%]{grid-template-columns:1fr}}.g-card[_ngcontent-%COMP%]{border:1px solid var(--border);border-radius:14px;padding:22px;background:var(--surface)}.g-card__h[_ngcontent-%COMP%]{font-size:17px;font-weight:700;margin:0 0 8px;color:var(--ink)}.g-card__p[_ngcontent-%COMP%]{margin:0;color:var(--ink-soft);font-size:15px}.g-cta[_ngcontent-%COMP%]{margin-top:64px;text-align:center;padding:40px 24px;border:1px solid var(--border);border-radius:16px;background:radial-gradient(120% 120% at 50% 0%,rgba(47,142,239,.16),transparent 60%)}.g-downloads[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:14px;margin:4px 0 12px}.g-downloads--center[_ngcontent-%COMP%]{justify-content:center}.g-btn[_ngcontent-%COMP%]{display:inline-flex;flex-direction:column;align-items:center;padding:14px 28px;background:var(--accent);color:#fff;font-weight:700;border-radius:999px;text-decoration:none;transition:transform .15s ease,background .15s ease}.g-btn[_ngcontent-%COMP%]:hover{background:var(--accent-bright);transform:translateY(-1px)}.g-btn--hero[_ngcontent-%COMP%]{padding:14px 34px}.g-btn__os[_ngcontent-%COMP%]{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.8}.g-btn__name[_ngcontent-%COMP%]{font-size:18px}.g-fineprint[_ngcontent-%COMP%]{font-size:14px;color:var(--ink-muted);margin:0}.g-fineprint[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:var(--accent-bright);text-decoration:none}.g-fineprint[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:underline}",".sh-install[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:stretch;gap:.75rem}.sh-input[_ngcontent-%COMP%]{flex:1 1 260px;min-width:220px;padding:0 1rem;font-size:1rem;color:#fff;background:#ffffff0f;border:1px solid rgba(255,255,255,.18);border-radius:14px;outline:none;transition:border-color .15s ease}.sh-input[_ngcontent-%COMP%]::placeholder{color:#fff6}.sh-input[_ngcontent-%COMP%]:focus{border-color:#2f8eef}.sh-btn--disabled[_ngcontent-%COMP%]{opacity:.45;pointer-events:none;cursor:not-allowed}"]})};
1export{w as ViewAppsShopifyComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.