PageSourceSearch

https://shoppi.app/search?s=phone

html shoppi.app collected 2026-10-01 23:58:54 UTC 35,510 bytes, 496 lines download raw bytes

1<!DOCTYPE html>
2<html lang="it">
3
4<head>
5<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
6    <link rel="canonical" href="https://www.shoppi.app/search">
7    <link rel="alternate" hreflang="en-US" href="https://us.shoppi.app/search">
8    <link rel="alternate" hreflang="en-GB" href="https://uk.shoppi.app/search">
9    <link rel="alternate" hreflang="it-IT" href="https://it.shoppi.app/search">
10    <link rel="alternate" hreflang="de-DE" href="https://de.shoppi.app/search">
11    <link rel="alternate" hreflang="fr-FR" href="https://fr.shoppi.app/search">
12    <link rel="alternate" hreflang="x-default" href="https://www.shoppi.app/search">
13
14    <title>Ricerca Shoppi — Scopri Prodotti e Negozi Locali</title>
15    <meta content="text/html; charset=UTF-8" http-equiv="content-type">
16    <meta http-equiv="X-UA-Compatible" content="IE=edge">
17    <meta name="viewport" content="width=device-width, initial-scale=1">
18    <meta name="color-scheme" content="light only">
19    <meta name="description" content="Cerca su Shoppi tra prodotti, servizi, e-cards, negozi, video e notizie: filtra per categoria, prezzo e citta' e trova quello che ti serve vicino a te.">
20
21    <!-- Internal search results must not be indexed. Every ?s= value minted a
22         distinct indexable URL whose body was identical to the others: an audit
23         found 28 URLs sharing one title, the largest duplicate cluster on the
24         site. "follow" is deliberate — the links out of a result page are how a
25         crawler reaches products, so only the listing itself is dropped.
26         Repeated here rather than left to the page metadata because this
27         template is shared by every locale and the rule is not negotiable. -->
28    <meta name="robots" content="noindex, follow">
29
30    <meta property="og:type" content="website">
31    <meta property="og:site_name" content="Shoppi">
32    <meta property="og:title" content="Ricerca Shoppi — Scopri Prodotti e Negozi Locali">
33    <meta property="og:url" content="https://www.shoppi.app/search">
34    <meta name="twitter:card" content="summary_large_image">
35    <meta name="twitter:site" content="@shoppi_online">
36
37    
38    
39    <style type="text/css">@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/400/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/400/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/500/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/latin/500/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/500/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/600/normal.woff2);
39unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/600/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/latin/600/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/700/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/700/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:800;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/800/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:800;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/800/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:800;src:url(/cf-fonts/s/poppins/5.2.7/latin/800/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}</style>
40
41    <!-- Same shell as the marketplace landing pages: own header and footer, so
42         neither Bootstrap nor Font Awesome is loaded. The previous version of
43         this screen pulled both from a CDN plus jQuery, Handlebars and the
44         whole i18n bundle to draw a grid of cards; market.css is the design
45         system and search.js has no dependencies. -->
46    <link href="/sites/shoppi.app/page/css/market.css?v=2026090501" rel="stylesheet">
47    
47<script src="/sites/shoppi.app/page/js/market.js?v=2026090401"></script>
47
48    
48<script src="/sites/shoppi.app/page/js/boards.js?v=2026092601"></script>
48
49    
49<script src="/sites/shoppi.app/page/js/search.js?v=2026092402"></script>
49
50    <!-- The plugin stylesheet tag is deliberately absent: it injects the asset
51         list of every active plugin (chosen, leanmodal, sweetalert…), none of
52         which this screen uses and all of which would bleed into a design
53         system built to stand alone. The marketplace landing pages leave it
54         out for the same reason.
55         Do not name that tag here, not even in prose — tagcodes are replaced
56         everywhere in the output, comments included, and writing it would
57         inject the very stylesheets this note is about. -->
58</head>
59
60<body class="mk"><a href="https://shoppi.app/cdn-cgi/content?id=NwBluzs2BBgWwmm.a_pwvSXh5iJGA5U.mjQQPrnKxMc-1790899134.1744182-1.2.1.1-6lgyPbR358ANBuaP2oDIze6q4RjXqcFW8fcWuqCwvSP46ibetJnjvJpd9OwBmkx6" aria-hidden="true" rel="nofollow noopener" style="display: none !important; visibility: hidden !important"></a>
61
62<!-- Shoppi marketplace header.
63     Shared shell for the marketplace landing pages (/deals-app, /gift-ideas).
64     Requires page/css/market.css and page/js/market.js. Markup only: every
65     dropdown here is inert until market.js wires it, and every link points at
66     a real slug on this site. -->
67<header class="mk-hd"><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
68
69    <div class="mk-hd-top">
70        <div class="mk-wrap mk-hd-topin">
71            <div class="mk-hd-topl">
72                <!-- Il MERCATO, non la lingua. Il paese arriva dal
73                     sottodominio (market_country in framework/functions.php)
74                     e viene scritto nella lingua della pagina: su
75                     it.shoppi.app/?locale=zh_CN si legge "意大利", perche' si
76                     consegna sempre in Italia anche a leggerlo in cinese.
77
78                     Prima era Italia, cioe` una stringa dentro i
79                     file di lingua: un paese fisso per ogni lingua, che
80                     annunciava "France" solo perche' la pagina era in
81                     francese. Cambiare mercato si fa da qui: ogni voce e` il
82                     sottodominio di quel paese. -->
83                <div class="mk-lang mk-market">
84                    <button type="button" class="mk-lang-btn" id="mk-market-btn" aria-expanded="false" aria-controls="mk-market-menu">Spedisci in: <strong>Stati Uniti</strong></button>
85                    <div class="mk-lang-menu" id="mk-market-menu" hidden>
86                        <a href="https://us.shoppi.app/" class="is-current" aria-current="true">Stati Uniti</a>
87                        <a href="https://uk.shoppi.app/">Regno Unito</a>
88                        <a href="https://it.shoppi.app/">Italia</a>
89                        <a href="https://de.shoppi.app/">Germania</a>
90                        <a href="https://au.shoppi.app/">Australia</a>
91                        <a href="https://ca.shoppi.app/">Canada</a>
92                        <a href="https://es.shoppi.app/">Spagna</a>
93                        <a href="https://fr.shoppi.app/">Francia</a>
94                        <a href="https://jp.shoppi.app/">Giappone</a>
95                        <a href="https://br.shoppi.app/">Brasile</a>
96                        <a href="https://pl.shoppi.app/">Polonia</a>
97                        <a href="https://pt.shoppi.app/">Portogallo</a>
98                        <a href="https://nl.shoppi.app/">Paesi Bassi</a>
99                        <a href="https://cn.shoppi.app/">Cina</a>
100                        <a href="https://sg.shoppi.app/">Singapore</a>
101                        <a href="https://in.shoppi.app/">India</a>
102                    </div>
103                </div>
104                <div class="mk-lang">
105                    <button type="button" class="mk-lang-btn" id="mk-lang-btn" aria-expanded="false" aria-controls="mk-lang-menu">Italiano</button>
106                    <!-- Every market with a langs/*.lng and a catalogue behind
107                         it, ordered by catalogue size rather than
108                         alphabetically. Row counts measured 12/08/2026 over
109                         the products collection.
110
111                         The five at the bottom were served without a langs
112                         file at all until then. That is not a cosmetic gap:
113                         i18n.class.php loads [locale, it_IT, en_GB, en_US] and
114                         lang::load() is first-wins, so a locale with no file
115                         resolves every key to the ITALIAN one — Japan (15k
116                         rows), Australia (69k), Brazil (14k), Singapore (6k)
117                         and India were all being shown the site in Italian.
118
119                         ro_RO, sv_SE and el_GR have a langs file but a
120                         catalogue in single or double digits, so they are
121                         deliberately still not offered. -->
122                    <div class="mk-lang-menu" id="mk-lang-menu" hidden>
123                        <a href="/?locale=en_US">English (US)</a>
124                        <a href="/?locale=en_GB">English (UK)</a>
125                        <a href="/?locale=it_IT">Italiano</a>
126                        <a href="/?locale=de_DE">Deutsch</a>
127                        <a href="/?locale=en_CA">
127English (Canada)</a>
128                        <a href="/?locale=es_ES">Español</a>
129                        <a href="/?locale=fr_FR">Français</a>
130                        <a href="/?locale=en_AU">English (Australia)</a>
131                        <a href="/?locale=pl_PL">Polski</a>
132                        <a href="/?locale=pt_PT">Português</a>
133                        <a href="/?locale=ja_JP">日本語</a>
134                        <a href="/?locale=pt_BR">Português (BR)</a>
135                        <a href="/?locale=nl_NL">Nederlands</a>
136                        <a href="/?locale=zh_CN">中文</a>
137                        <a href="/?locale=en_SG">English (Singapore)</a>
138                        <a href="/?locale=en_IN">English (India)</a>
139                    </div>
140                </div>
141            </div>
142            <div class="mk-hd-topr">
143                <a href="/app">Scarica l'app</a>
144                <a href="/sell" class="mk-hd-sell">Vendi su Shoppi</a>
145            </div>
146        </div>
147    </div>
148
149    <div class="mk-wrap mk-hd-main">
150        <a href="/" class="mk-hd-logo"><img src="/sites/shoppi.app/dist/img/shoppi-logo-black.png?v=1771010856" alt="Shoppi"></a>
151
152        <div class="mk-search">
153            <form class="mk-search-box" action="/search" method="get" role="search">
154                <!-- Prefilled from the request so the term survives the jump to
155                     /search: an empty box over a page of results reads as if the
156                     search had been forgotten, and there is nothing to edit when
157                     the visitor wants to refine it. -->
158                <input type="text" name="s" id="mk-q" autocomplete="off" value="phone" placeholder="Cerca prodotti, servizi, negozi…" aria-label="Cerca su Shoppi">
159                <button type="submit">Cerca</button>
160            </form>
161            <div class="mk-sugg" id="mk-sugg" hidden></div>
162        </div>
163
164        <div class="mk-hd-acts">
165            <a href="/wishlist" class="mk-hd-act">
166                <svg width="19" height="19" viewbox="0 0 24 24" fill="none" stroke="#0B1B33" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l8.8 8.8 8.8-8.8a5.5 5.5 0 0 0 0-7.8z"></path></svg>
167                <span class="mk-hd-act-label">Preferiti</span>
168            </a>
169            <a href="/cart" class="mk-hd-act mk-hd-act--cart" onclick="if(typeof openCartDrawer === 'function') { event.preventDefault(); openCartDrawer(); }">
170                <span class="mk-cart-ico">
171                    <svg width="20" height="20" viewbox="0 0 24 24" fill="none" stroke="#0B1B33" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6"></path></svg>
172                    <span class="mk-cart-count" id="mk-cart-count" hidden></span>
173                </span>
174                <span class="mk-hd-act-label">Carrello</span>
175            </a>
176            <a href="/login" class="mk-hd-login">Entra</a>
177            <a href="/signup" class="mk-hd-signup">Iscriviti</a>
178        </div>
179    </div>
180
181    <div class="mk-hd-cats">
182        <div class="mk-wrap mk-hd-catsrow">
183            <div class="mk-mega-holder">
184                <button type="button" class="mk-mega-btn" id="mk-mega-btn" aria-expanded="false" aria-controls="mk-mega">
185                    <svg width="16" height="16" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg>
186                    Tutte le categorie
187                </button>
188                <div class="mk-mega" id="mk-mega" hidden>
189                    <div class="mk-mega-col">
190                        <strong>Elettronica</strong>
191                        <a href="/search?s=cellulari">Cellulari</a>
192                        <a href="/search?s=console">Console</a>
193                        <a href="/search?s=fotocamere">Fotocamere</a>
194                        <a href="/search?s=audio">Audio</a>
195                        <a href="/search?s=domotica">Casa intelligente</a>
196                    </div>
197                    <div class="mk-mega-col">
198                        <strong>Moda</strong>
199                        <a href="/search?s=gioielli">Gioielli</a>
200                        <a href="/search?s=borse">Borse</a>
201                        <a href="/search?s=occhiali">Occhiali</a>
202                        <a href="/search?s=orologi">Orologi</a>
203                        <a href="/search?s=scarpe">Scarpe</a>
204                    </div>
205                    <div class="mk-mega-col">
206                        <strong>Salute e Bellezza</strong>
207                        <a href="/search?s=farmacia">Farmacie</a>
208                        <a href="/search?s=centro+estetico">Centri Estetici</a>
209                        <a href="/search?s=parrucchiere">Parrucchieri</a>
210                        <a href="/search?s=palestra">Palestre</a>
211                        <a href="/search?s=centro+benessere">Centri SPA</a>
212                    </div>
213                    <div class="mk-mega-col">
214                        <strong>Altro</strong>
215                        <a href="/search?s=auto">Auto e Moto</a>
216                        <a href="/home-decor-shopping">Casa e Giardino</a>
217                        <a href="/search?s=professionisti">Professionisti</a>
218                        <a href="/search?s=alloggi">Alloggi</a>
219                        <a href="/sports-outdoor-shopping">Sport</a>
220                    </div>
221                </div>
222            </div>
223
224            <div class="mk-hd-catsin">
225            <a href="/deals-app" class="mk-cat mk-cat--hot">La selezione di oggi</a>
226            <a href="/electronics-deals" class="mk-cat">Elettronica</a>
227            <a href="/fashion-app" class="mk-cat">Moda</a>
228            <a href="/beauty-shopping" class="mk-cat">Salute e Bellezza</a>
229            <a href="/home-decor-shopping" class="mk-cat">Casa e Giardino</a>
230            <a href="/sports-outdoor-shopping" class="mk-cat">Sport</a>
231            <a href="/kids-shopping-app" class="mk-cat">Bambini</a>
232            <a href="/pet-supplies-app" class="mk-cat">Animali</a>
233            <a href="/gift-ideas" class="mk-cat">Idee Regalo</a>
234            <a href="/local-delivery" class="mk-cat mk-cat--local">Negozi e servizi locali</a>
235            </div>
236        </div>
237    </div>
238
239</header>
240
241<!-- Localised copy for search.js. The language layer resolves %_CONSTANTS% over
242     the finished HTML, so the strings can only reach JavaScript through the
243     document; attributes carry them without an inline script that the page
244     pipeline would have to be trusted not to mangle. -->
245<div id="mk-sr-i18n" hidden data-locale="it_IT" data-currency="EUR" data-other-markets="Nessun risultato nel tuo mercato: mostriamo prodotti di altri paesi, con i prezzi nella loro valuta." data-all-cats="Tutte le categorie" data-all-prices="Tutti i prezzi" data-all-cities="Tutte le città" data-price-under="Meno di" data-price-over="Più di" data-results-all="Tutti i risultati" data-results-for="Risultati per" data-result-one="1 risultato" data-result-many="risultati" data-empty-title="Nessun risultato con questi filtri" data-empty-title-q="Nessun risultato per" data-empty-body="Controlla l'ortografia oppure prova con un termine più generico. Puoi anche allargare i filtri o cambiare scheda qui sopra." data-empty-cta="Azzera ricerca e filtri" data-error-title="Ricerca non disponibile" data-error-body="Non siamo riusciti a caricare i risultati. Riprova fra un momento." data-retry="Riprova" data-dym="Forse cercavi" data-instead="Cerca invece" data-only="Cerca solo" data-related="Ricerche correlate" data-fav="Salva nei preferiti" data-near="Vicino a te" data-add="Aggiungi" data-added="Aggiunto" data-book="Prenota" data-booked="Prenotato" data-gift="Regala" data-visit="Visita" data-watch="Guarda" data-read="Leggi" data-tag-ecard="E-Card" data-tag-store="Negozio" data-tag-video="Video" data-tag-news="Notizia" data-tag-product="Prodotto" data-tag-service="Servizio" data-feed="Dal feed" data-page="Pagina"></div>
246
247<!-- ==================== BREADCRUMB + RICERCHE POPOLARI ==================== -->
248<section class="mk-wrap mk-sr-top">
249    <nav class="mk-sr-crumb" aria-label="breadcrumb">
250        <a href="/">Home</a>
251        <span class="mk-sr-crumb-sep" aria-hidden="true"></span>
252        <span class="mk-sr-crumb-now">Ricerca</span>
253    </nav>
254    <div class="mk-sr-popular">
255        <span class="mk-sr-popular-lbl">Ricerche popolari:</span>
256        <button type="button" class="mk-sr-pop">Cuffie</button>
257        <button type="button" class="mk-sr-pop">Borsa in pelle</button>
258        <button type="button" class="mk-sr-pop">Spa</button>
259        <button type="button" class="mk-sr-pop">Bici</button>
260        <button type="button" class="mk-sr-pop">Gift card</button>
261    </div>
262</section>
263
264<!-- ==================== TAB PER TIPO ==================== -->
265<section class="mk-wrap mk-sr-tabsec">
266    <!-- The counts come from the API and are written into the empty span; a tab
267         whose collection has nothing for this query is dimmed and pushed to the
268         end rather than removed, so the row does not reshuffle under the cursor. -->
269    <div class="mk-sr-tabs" id="mk-sr-tabs" role="tablist">
270        <button type="button" class="mk-sr-tab is-active" data-type="all" role="tab" aria-selected="true">Tutti<span class="mk-sr-tabn" hidden></span></button>
271        <button type="button" class="mk-sr-tab" data-type="products" role="tab" aria-selected="false">Prodotti<span class="mk-sr-tabn" hidden></span></button>
272        <button type="button" class="mk-sr-tab" data-type="services" role="tab" aria-selected="false">Servizi<span class="mk-sr-tabn" hidden></span></button>
273        <button type="button" class="mk-sr-tab" data-type="files" role="tab" aria-selected="false">E-Cards<span class="mk-sr-tabn" hidden></span></button>
274        <button type="button" class="mk-sr-tab" data-type="contents" role="tab" aria-selected="false">Negozi<span class="mk-sr-tabn" hidden></span></button>
275        <button type="button" class="mk-sr-tab" data-type="videos" role="tab" aria-selected="false">Video<span class="mk-sr-tabn" hidden></span></button>
276        <button type="button" class="mk-sr-tab" data-type="news" role="tab" aria-selected="false">Notizie<span class="mk-sr-tabn" hidden></span></button>
277    </div>
278</section>
279
280<!-- ==================== FILTRI + RISULTATI ==================== -->
281<section class="mk-wrap mk-sr-body">
282
283    <aside class="mk-sr-side" id="mk-sr-side">
284        <div class="mk-sr-group" id="mk-sr-cat-group" hidden>
285            <div class="mk-sr-group-head">
286                <span class="mk-sr-group-lbl">CATEGORIA</span>
287                <button type="button" class="mk-sr-reset" id="mk-sr-reset" hidden>Azzera</button>
288            </div>
289            <div class="mk-sr-opts" id="mk-sr-cats"></div>
290        </div>
291
292        <!-- Every group below is written by search.js from the facet counts the
293             API returns for the current result set, and stays hidden while that
294             facet is empty. A filter that can only take the visitor to an empty
295             page is worse than no filter: it reads as "the catalogue has
296             nothing", not as "this switch was the wrong one". -->
297        <div class="mk-sr-group" id="mk-sr-price-group" hidden>
298            <span class="mk-sr-group-lbl">PREZZO</span>
299            <div class="mk-sr-opts" id="mk-sr-prices"></div>
300        </div>
301
302        <div class="mk-sr-group" id="mk-sr-city-group" hidden>
303            <span class="mk-sr-group-lbl">CITTÀ</span>
304            <div class="mk-sr-opts" id="mk-sr-cities"></div>
305        </div>
306
307        <div class="mk-sr-group" id="mk-sr-near-group" hidden>
308            <span class="mk-sr-group-lbl">NELLE VICINANZE</span>
309            <div class="mk-sr-opts">
310                <button type="button" class="mk-sr-toggle mk-sr-toggle--near" id="mk-sr-near">Solo negozi locali</button>
311            </div>
312        </div>
313
314        <div class="mk-sr-group" id="mk-sr-express-group" hidden>
315            <span class="mk-sr-group-lbl">CONSEGNA</span>
316            <div class="mk-sr-opts">
317                <button type="button" class="mk-sr-toggle mk-sr-toggle--exp" id="mk-sr-express">Spedizione espressa</button>
318            </div>
319        </div>
320    </aside>
321
322    <div class="mk-sr-main">
323
324        <div class="mk-sr-head">
325            <div class="mk-sr-head-l">
326                <h1 class="mk-sr-h1" id="mk-sr-title">Tutti i risultati</h1>
327                <span class="mk-sr-count" id="mk-sr-count"></span>
328            </div>
329            <div class="mk-sr-head-r">
330                <button type="button" class="mk-sr-filtbtn" id="mk-sr-filtbtn" aria-controls="mk-sr-side" aria-expanded="true">Filtri</button>
331
332                <div class="mk-sr-views" role="group" aria-label="Visualizzazione">
333                    <button type="button" class="mk-sr-view mk-sr-view--grid is-active" data-view="grid" aria-label="Griglia" title="Griglia"></button>
334                    <button type="button" class="mk-sr-view mk-sr-view--list" data-view="list" aria-label="Lista" title="Lista"></button>
335                </div>
336
337                <div class="mk-sr-sort">
338                    <span class="mk-sr-sort-lbl">Ordina</span>
339                    <button type="button" class="mk-sr-sortbtn is-active" data-sort="relevance">Rilevanza</button>
340                    <button type="button" class="mk-sr-sortbtn mk-sr-sortbtn--asc" data-sort="price_asc" aria-label="Prezzo crescente" title="Prezzo crescente">Prezzo</button>
341                    <button type="button" class="mk-sr-sortbtn mk-sr-sortbtn--desc" data-sort="price_desc" aria-label="Prezzo decrescente" title="Prezzo decrescente">Prezzo</button>
342                </div>
343            </div>
344        </div>
345
346        <div class="mk-sr-active" id="mk-sr-active" hidden>
347            <span class="mk-sr-active-lbl">Filtri attivi:</span>
348            <span class="mk-sr-active-chips" id="mk-sr-active-chips"></span>
349            <button type="button" class="mk-sr-clear" id="mk-sr-clear">Cancella tutti</button>
350        </div>
351
352        <!-- Correction line ("did you mean"), related searches, the grid, the
353             pager and the empty/error states are all written here by search.js.
354             aria-busy tells a screen reader that the region is being refreshed
355             instead of leaving it silently stale. -->
356        <div class="mk-sr-note" id="mk-sr-note" hidden></div>
357        <div class="mk-sr-grid" id="mk-sr-grid" aria-busy="false"></div>
358        <div class="mk-sr-state" id="mk-sr-state" hidden></div>
359
360        <div class="mk-pager mk-sr-pager" id="mk-sr-pager" hidden>
361            <button type="button" class="mk-nav mk-nav--prev" id="mk-sr-prev" aria-label="Pagina precedente"></button>
362            <span class="mk-sr-pgnums" id="mk-sr-pgnums"></span>
363            <button type="button" class="mk-nav mk-nav--next" id="mk-sr-next" aria-label="Pagina successiva"></button>
364        </div>
365
366    </div>
367</section>
368
369<!-- Shoppi marketplace footer.
370     Shared shell for the marketplace landing pages (/deals-app, /gift-ideas).
371     Requires page/css/market.css. The social badges are text labels rather
372     than icon-font glyphs so this footer needs no Font Awesome; the profile
373     URLs are the same ones inc/consumer-footer.html uses. -->
374<footer class="mk-ft">
375
376    <div class="mk-wrap mk-ft-cols">
377        <div class="mk-ft-brand">
378            <img src="/sites/shoppi.app/dist/img/shoppi-logo-black.png?v=1771010856" alt="Shoppi">
379            <p>Prodotti, servizi e file digitali da negozi locali e creator di tutto il mondo.</p>
380            <div class="mk-socials">
381                <a href="https://www.twitter.com/shoppi_online" target="_blank" rel="noopener" title="Twitter">X</a>
382                <a href="https://www.facebook.com/appshoppi" target="_blank" rel="noopener" title="Facebook">f</a>
383                <a href="https://www.instagram.com/shoppi_app" target="_blank" rel="noopener" title="Instagram">IG</a>
384                <a href="https://www.youtube.com/channel/UCzI78s-I0usF7fWpXdREzvg" target="_blank" rel="noopener" title="YouTube">YT</a>
385            </div>
386        </div>
387
388        <div class="mk-ft-col">
389            <strong>Shoppi</strong>
390            <div class="mk-ft-links">
391                <a href="/about">Su di noi</a>
392                <a href="/blog">Blog</a>
393                <a href="/works">Come funziona</a>
394                <a href="/faq">FAQ</a>
395                <a href="/official-domains">Siti ufficiali</a>
396            </div>
397        </div>
398
399        <div class="mk-ft-col">
400            <strong>Acquista</strong>
401            <div class="mk-ft-links">
402                <a href="/deals-app">La selezione di oggi</a>
403                <a href="/gift-ideas">Idee Regalo</a>
404                <a href="/local-delivery">Negozi e servizi locali</a>
405                <a href="/shoppipay">Shoppi Pay</a>
406                <a href="/dashboard">Account</a>
407            </div>
408        </div>
409
410        <div class="mk-ft-col">
411            <strong>Vendi</strong>
412            <div class="mk-ft-links">
413                <a href="/sell">Vendi su Shoppi</a>
414                <a href="/partners">Programma Partner</a>
415                <a href="/developers-app">API e sviluppatori</a>
416            </div>
417        </div>
418
419        <div class="mk-ft-col">
420            <strong>Assistenza</strong>
421            <div class="mk-ft-links">
422                <a href="/contact">Contatti</a>
423                <a href="/shipping-policy">Spedizioni</a>
424                <a href="/return-refund-terms">Resi e rimborsi</a>
425                <a href="/payment-policy">Politica di Pagamento</a>
426                <a href="/legal-notice">Note Legali</a>
427                <a href="/privacy">Privacy</a>
428                <a href="/terms">Termini d'uso</a>
429                <a href="/impressum">Impressum</a>
430            </div>
431        </div>
432    </div>
433
434    <div class="mk-wrap mk-ft-pay">
435        <span>PCI DSS</span>
436        <span>Visa Secure</span>
437        <span>Mastercard ID Check</span>
438        <span>Visa</span>
439        <span>Mastercard</span>
440        <span>Shoppi Pay</span>
441    </div>
442
443    <div class="mk-wrap mk-ft-legal">
444        <div>
445            <div>Shoppi UG (haftungsbeschränkt) · Kolonnenstr. 8, 10827 Berlin, Deutschland</div>
446            <div>USt-IdNr. DE319818344 · Handelsregister HRB 197142 B · Support Lun–Ven 9:00–18:00 (CET)</div>
447        </div>
448        <div class="mk-ft-legal-r">
449            <div>© 2026 Shoppi. Tutti i diritti riservati. Shoppi® è un marchio registrato.</div>
450            <div class="mk-ft-legal-links">
451                <a href="/contact">Contatti</a>
452                <a href="/impressum">Impressum</a>
453                <a href="/legal-notice">Note Legali</a>
454                <a href="/return-refund-terms">Resi e rimborsi</a>
455            </div>
456        </div>
457    </div>
458
459</footer>
460
461<!-- Inside the body, not the head. The banner is a <div>, and a div in the
462     head closes it: the parser opens an implicit body there and the real
463     <body class="mk"> that follows is discarded as a duplicate — taking the
464     class the whole design system hangs off with it. -->
465<div id="cookieConsent" style="display: none; background-color: #333; color: white; padding: 15px; position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;">
466  <span>
467    Usiamo i cookie per migliorare l'esperienza. I cookie di marketing partono solo se accetti.
468    <a href="/terms" target="_blank" style="color: #00bfff; text-decoration: underline;">Termini</a>
469    ·
470    <a href="/privacy" target="_blank" style="color: #00bfff; text-decoration: underline;">Privacy</a>
471  </span>
472  <div>
473    <button id="acceptCookies" style="background-color: #007bff; color: white; border: none; padding: 10px 15px; border-radius: 5px; cursor: pointer; margin-right: 10px;">Accetta</button>
474    <button id="refuseCookies" style="background-color: #f1f1f1; color: #333; border: 1px solid #ccc; padding: 10px 15px; border-radius: 5px; cursor: pointer;">Rifiuta</button>
475  </div>
476</div>
477
478<script src="/plugins/cookieconsent/js.js?v=1788626349"></script>
478
479
480<!-- The plugin script tag is deliberately absent, for the same reason as the
481     stylesheet tag above: it injects the JS of every active plugin, and this
482     screen has no jQuery for them to bind to -- livequery, chosen, ajaxel,
483     cookie, filestyle, leanmodal and mediaqueries all threw "jQuery is not
484     defined" here (4 errors per pageview, seen live 05/09/2026). None of them
485     is used: the search controller is page/js/search.js, loaded in the head
486     with market.js, and plugins/search/js/search_results.js has been an empty
487     placeholder since 12/08/2026. Adding jQuery back would have re-imported
488     the dependency this screen was rebuilt to shed.
489     The census tag is kept explicitly -- it is what counts JS errors per
490     route, so this page above all should stay measured. Same pattern as
491     content.html and the d_<locale>.html shells, which also drop both tags. -->
492<script src="/js/mf_census.js?v=1783925880"></script>
492
493
494<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"7be2a3ccfbda4bfda8aeeec4cd5fb6d1","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 494
494
495<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a43f6b049cdfead8',t:'MTc5MDg5OTEzNA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
495</body>
496</html>

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.