[{"data":1,"prerenderedAt":524},["ShallowReactive",2],{"navigation_docs":3,"-catalogue-custom-attributes":178,"-catalogue-custom-attributes-surround":519},[4,25,50,81,112,133,158],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting started",false,"\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":16,"path":17,"stem":18,"icon":19},"Concepts","\u002Fgetting-started\u002Fconcepts","1.getting-started\u002F2.concepts","i-lucide-book-a",{"title":21,"path":22,"stem":23,"icon":24},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-rocket",{"title":26,"icon":27,"path":28,"stem":29,"children":30,"page":6},"Workspace","i-lucide-users","\u002Fworkspace","2.workspace",[31,36,41,45],{"title":32,"path":33,"stem":34,"icon":35},"Account","\u002Fworkspace\u002Faccount","2.workspace\u002F1.account","i-lucide-circle-user",{"title":37,"path":38,"stem":39,"icon":40},"Teams","\u002Fworkspace\u002Fteams","2.workspace\u002F2.teams","i-lucide-building-2",{"title":42,"path":43,"stem":44,"icon":27},"Members and roles","\u002Fworkspace\u002Fmembers-and-roles","2.workspace\u002F3.members-and-roles",{"title":46,"path":47,"stem":48,"icon":49},"Projects","\u002Fworkspace\u002Fprojects","2.workspace\u002F4.projects","i-lucide-folder-kanban",{"title":51,"icon":52,"path":53,"stem":54,"children":55,"page":6},"Catalogue","i-lucide-package","\u002Fcatalogue","3.catalogue",[56,61,66,71,76],{"title":57,"path":58,"stem":59,"icon":60},"Products","\u002Fcatalogue\u002Fproducts","3.catalogue\u002F1.products","i-lucide-box",{"title":62,"path":63,"stem":64,"icon":65},"Offers","\u002Fcatalogue\u002Foffers","3.catalogue\u002F2.offers","i-lucide-tag",{"title":67,"path":68,"stem":69,"icon":70},"Brands","\u002Fcatalogue\u002Fbrands","3.catalogue\u002F3.brands","i-lucide-badge-check",{"title":72,"path":73,"stem":74,"icon":75},"Merchants","\u002Fcatalogue\u002Fmerchants","3.catalogue\u002F4.merchants","i-lucide-store",{"title":77,"path":78,"stem":79,"icon":80},"Custom attributes","\u002Fcatalogue\u002Fcustom-attributes","3.catalogue\u002F5.custom-attributes","i-lucide-list-plus",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":6},"Scraping","i-lucide-scan-search","\u002Fscraping","4.scraping",[87,92,97,102,107],{"title":88,"path":89,"stem":90,"icon":91},"Connect Scrape Admin","\u002Fscraping\u002Fconnect-scrape-admin","4.scraping\u002F1.connect-scrape-admin","i-lucide-plug",{"title":93,"path":94,"stem":95,"icon":96},"Scrape profiles","\u002Fscraping\u002Fscrape-profiles","4.scraping\u002F2.scrape-profiles","i-lucide-scan-text",{"title":98,"path":99,"stem":100,"icon":101},"Schedules and configuration","\u002Fscraping\u002Fschedules-and-configuration","4.scraping\u002F3.schedules-and-configuration","i-lucide-sliders-horizontal",{"title":103,"path":104,"stem":105,"icon":106},"Sync and reconcile","\u002Fscraping\u002Fsync-and-reconcile","4.scraping\u002F4.sync-and-reconcile","i-lucide-refresh-cw",{"title":108,"path":109,"stem":110,"icon":111},"Webhooks","\u002Fscraping\u002Fwebhooks","4.scraping\u002F5.webhooks","i-lucide-webhook",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":6},"Growing the catalogue","i-lucide-sprout","\u002Fgrowing-the-catalogue","5.growing-the-catalogue",[118,123,128],{"title":119,"path":120,"stem":121,"icon":122},"Imports","\u002Fgrowing-the-catalogue\u002Fimports","5.growing-the-catalogue\u002F1.imports","i-lucide-import",{"title":124,"path":125,"stem":126,"icon":127},"Repair queues","\u002Fgrowing-the-catalogue\u002Frepair-queues","5.growing-the-catalogue\u002F2.repair-queues","i-lucide-wrench",{"title":129,"path":130,"stem":131,"icon":132},"Wrong URL flow","\u002Fgrowing-the-catalogue\u002Fwrong-url-flow","5.growing-the-catalogue\u002F3.wrong-url-flow","i-lucide-route",{"title":134,"icon":135,"path":136,"stem":137,"children":138,"page":6},"Publishing","i-lucide-globe","\u002Fpublishing","6.publishing",[139,143,148,153],{"title":140,"path":141,"stem":142,"icon":135},"Websites","\u002Fpublishing\u002Fwebsites","6.publishing\u002F1.websites",{"title":144,"path":145,"stem":146,"icon":147},"Website content","\u002Fpublishing\u002Fwebsite-content","6.publishing\u002F2.website-content","i-lucide-languages",{"title":149,"path":150,"stem":151,"icon":152},"SEO templates","\u002Fpublishing\u002Fseo-templates","6.publishing\u002F3.seo-templates","i-lucide-search",{"title":154,"path":155,"stem":156,"icon":157},"Analytics","\u002Fpublishing\u002Fanalytics","6.publishing\u002F4.analytics","i-lucide-chart-line",{"title":159,"icon":160,"path":161,"stem":162,"children":163,"page":6},"Developers","i-lucide-code","\u002Fdevelopers","7.developers",[164,169,173],{"title":165,"path":166,"stem":167,"icon":168},"Public API","\u002Fdevelopers\u002Fpublic-api","7.developers\u002F1.public-api","i-lucide-code-xml",{"title":170,"path":171,"stem":172,"icon":52},"Listings client","\u002Fdevelopers\u002Flistings-client","7.developers\u002F2.listings-client",{"title":174,"path":175,"stem":176,"icon":177},"Click tracking","\u002Fdevelopers\u002Fclick-tracking","7.developers\u002F3.click-tracking","i-lucide-mouse-pointer-click",{"id":179,"title":77,"body":180,"description":511,"extension":512,"links":513,"meta":514,"navigation":515,"path":78,"seo":516,"stem":79,"__hash__":518},"docs\u002F3.catalogue\u002F5.custom-attributes.md",{"type":181,"value":182,"toc":503},"minimark",[183,192,202,209,214,236,342,362,389,393,418,423,445,459,463,481,484,488],[184,185,186,187,191],"p",{},"Custom attributes add your own structured data to the catalogue, such as a screen size on monitors or a material on kettles. They are called ",[188,189,190],"strong",{},"Custom fields"," in the interface. Each field belongs to one kind of record (products, brands, merchants or offers) and has a type, so values are validated every time they are saved.",[184,193,194,195,198,199,201],{},"Fields are managed in ",[188,196,197],{},"Settings",", on the ",[188,200,190],{}," tab. Everyone on the project can see them, but adding, editing and archiving fields needs admin access.",[184,203,204],{},[205,206],"img",{"alt":207,"src":208},"The Custom fields settings tab","\u002Fscreenshots\u002Fsettings-attributes.png",[210,211,213],"h2",{"id":212},"add-a-field","Add a field",[184,215,216,217,219,220,219,222,224,225,227,228,231,232,235],{},"The page has one card per record kind: ",[188,218,57],{},", ",[188,221,67],{},[188,223,72],{}," and ",[188,226,62],{},". Click ",[188,229,230],{},"Add field"," in the card you want, fill in the form and click ",[188,233,234],{},"Create field",".",[237,238,239,252],"table",{},[240,241,242],"thead",{},[243,244,245,249],"tr",{},[246,247,248],"th",{},"Setting",[246,250,251],{},"Notes",[253,254,255,266,276,286,312,322,332],"tbody",{},[243,256,257,263],{},[258,259,260],"td",{},[188,261,262],{},"Entity",[258,264,265],{},"Product, Brand, Merchant or Offer. Cannot be changed afterwards.",[243,267,268,273],{},[258,269,270],{},[188,271,272],{},"Label",[258,274,275],{},"The name people see.",[243,277,278,283],{},[258,279,280],{},[188,281,282],{},"Key",[258,284,285],{},"Used by the API and by scrape profiles. It is suggested from the label and cannot be changed later.",[243,287,288,293],{},[258,289,290],{},[188,291,292],{},"Type",[258,294,295,219,298,219,301,219,304,307,308,311],{},[188,296,297],{},"Number",[188,299,300],{},"Text",[188,302,303],{},"Yes \u002F no",[188,305,306],{},"Select (fixed options)"," or ",[188,309,310],{},"URL",". Cannot be changed later.",[243,313,314,319],{},[258,315,316],{},[188,317,318],{},"Description",[258,320,321],{},"Help text shown when editing.",[243,323,324,329],{},[258,325,326],{},[188,327,328],{},"Public",[258,330,331],{},"Public fields are served to the consumer website; private fields stay internal.",[243,333,334,339],{},[258,335,336],{},[188,337,338],{},"Scrape updates",[258,340,341],{},"How scrapes may write to the field, see below.",[184,343,344,345,219,348,219,351,224,354,357,358,361],{},"Number fields have optional ",[188,346,347],{},"Unit",[188,349,350],{},"Decimals",[188,352,353],{},"Minimum",[188,355,356],{},"Maximum",". Select fields have a list of ",[188,359,360],{},"Options",", each with a value (stored and served by the API) and a label (shown to people).",[184,363,364,365,219,367,370,371,307,373,376,377,380,381,384,385,388],{},"The table lists each field with its ",[188,366,292],{},[188,368,369],{},"Visibility"," (",[188,372,328],{},[188,374,375],{},"Private",") and ",[188,378,379],{},"Scrape"," mode. Click a row, or use its ",[188,382,383],{},"..."," menu, to ",[188,386,387],{},"Edit"," it.",[210,390,392],{"id":391},"fill-fields-from-scrapes","Fill fields from scrapes",[184,394,395,396,400,401,219,404,307,407,410,411,414,415,235],{},"A scrape profile can fill a field by returning an element named after it: ",[397,398,399],"code",{},"product.\u003Ckey>"," for products, and ",[397,402,403],{},"brand.",[397,405,406],{},"merchant.",[397,408,409],{},"offer."," followed by the key for the others. The exact element name is shown under each field's label in the table. If a scraped site uses another name, add it under ",[188,412,413],{},"Extra element names",". See ",[416,417,93],"a",{"href":94},[184,419,420,422],{},[188,421,338],{}," controls what a scrape may do:",[424,425,426,433,439],"ul",{},[427,428,429,432],"li",{},[188,430,431],{},"Fill empty values",": scrapes only set the field while it has no value.",[427,434,435,438],{},[188,436,437],{},"Keep up to date",": scrapes also replace earlier scraped values.",[427,440,441,444],{},[188,442,443],{},"Off",": scrapes never write the field.",[184,446,447,448,451,452,224,455,458],{},"Values entered by hand are never replaced by a scrape. When a scrape finds a different value than the one you entered, it appears on the record as ",[188,449,450],{},"Scraped: ..."," with ",[188,453,454],{},"Accept",[188,456,457],{},"Dismiss"," buttons.",[210,460,462],{"id":461},"where-fields-show-up","Where fields show up",[424,464,465,471,474],{},[427,466,467,468,470],{},"On the product, brand, merchant and offer pages, in a ",[188,469,190],{}," section. A globe icon marks public fields and a lock marks private ones. A small icon next to each value says whether it was entered by hand, came from a scrape, or came from an import.",[427,472,473],{},"In the edit form of the record, where you can change the values.",[427,475,476,477,224,479,235],{},"In the public API for public fields, see ",[416,478,165],{"href":166},[416,480,170],{"href":171},[184,482,483],{},"The section is hidden on records of a kind that has no fields yet.",[210,485,487],{"id":486},"archive-a-field","Archive a field",[184,489,490,491,494,495,498,499,502],{},"Use ",[188,492,493],{},"Archive"," in the row menu to retire a field. It is then hidden everywhere and no longer served or scraped, but the stored values are kept. Switch on ",[188,496,497],{},"Show archived"," at the top of the page to see archived fields (shown struck through) and use ",[188,500,501],{},"Restore"," to bring one back with its values.",{"title":504,"searchDepth":505,"depth":505,"links":506},"",2,[507,508,509,510],{"id":212,"depth":505,"text":213},{"id":391,"depth":505,"text":392},{"id":461,"depth":505,"text":462},{"id":486,"depth":505,"text":487},"Define typed custom fields for products, brands, merchants and offers, and let scrapes fill them.","md",null,{},{"icon":80},{"title":77,"description":517},"How to define custom fields (attributes) for products, brands, merchants and offers, control which are public, and let scrape profiles fill them.","4fQgG1J9ANMAG9oIbyZWu0A9AIIYQR2ci1JjyBvR-Xc",[520,522],{"title":72,"path":73,"stem":74,"description":521,"icon":75,"children":-1},"Set up the shops you track prices at, with their website host, currency, scrape profile, browser and crawler.",{"title":88,"path":89,"stem":90,"description":523,"icon":91,"children":-1},"Bind a project to a Scrape Admin team with an API key, test the connection and manage the webhook secret.",1792440613845]