PK: id · kind ∈ {shop, own, competitor} · competitorOf → ShopRecord.domain · ads → AdvertiserRecord.shopId
| Feld | Typ | Quelle |
| id / kind / name / domain / shopUrl | string | intern / Discovery |
| shopifyConfirmed{value,evidence[]} | obj | /products.json, cdn.shopify.com, x-shopid |
| discovery{method,signal,confidence,sourceStatus} | obj | CT-Logs / Reverse-IP / products-json / header |
| company{legalName,legalForm,register,vatId,managingDirectors[],sourceUrl,sourceStatus} | obj | Impressum §5 DDG |
| location{city,country} · warehouse{city,country,source} | obj | Impressum / Versand |
| products{count,categories[],currency,priceRange,sourceUrl,status} | obj | /products.json |
| contacts{emails[],phones[],socials[]} | obj | Impressum / Website |
| privacy{url,dpo,consentTool,trackers[]} · cookies[]{name,tool,category} | obj/arr | Datenschutz + Cookie-Scan |
| legal{termsUrl,refundUrl,shippingUrl} · returns{method,summary,freeReturns,windowDays,software,sourceUrl,status} | obj | AGB/Widerruf/Retoure-Seite |
| reviews[]{provider,rating,count,answered,url,status} | arr | Trustpilot · Trusted Shops · Google · Reviews.io · ProvenExpert |
| similarweb{globalRank,countryRank,category,monthlyVisits,avgVisitDurationSec,pagesPerVisit,bounceRatePct,topCountries[],trafficSources{},competitors[],status} | obj | SimilarWeb public |
| social[]{network,url,handle,followers,posts,since,status} | arr | IG/FB/TikTok/YT |
| platforms[] · sellsToCountries[] | arr | Website / Markets / Shipping |
| tools{analytics[],emailMarketing[],reviews[],consent[],cdp[],other[]} | obj | Cookies / Tracker / Datenschutz |
| traffic{monthlyVisitsEst,...} · revenue{annualEst*,method,confidence} | obj | SimilarWeb / Modell / Public Reports |
| ads{google,meta,tiktok} | obj | → AdvertiserRecord |
| dataSources[]{field,url,status,checkedAt} · linkCheck{checked,live,dead} | arr/obj | Provenienz + Liveness |