[{"data":1,"prerenderedAt":2178},["ShallowReactive",2],{"navigation-docsEN":3,"navigation-blogEN":805,"docs-EN-\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fvisibility-events":833,"docsNav-EN-\u002Fdocs":1504,"docsSecNav-EN-\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fvisibility-events":1723},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,22,41,53,74,88,114,128,156,167,182,206,412,428,572,647,662,798],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":14},"Documentation","docs\u002Findex","Introduction to documentation on EPCIS and OpenEPCIS tools","heroicons-outline:document-text",[15,16,17,18,19,20,21],"openepcis","epcis-2-0","epcis-documentation","epcis-standard","open-core","open-source","epcis-tools",{"title":23,"path":24,"stem":25,"children":26,"description":28,"icon":29,"tags":40},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction\u002Findex",[27],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":30},"Why EPCIS is necessary and how it can help organizations of all sizes and types.","heroicons-outline:globe-alt",[16,31,32,33,34,35,36,37,38,39],"epcis","epcis-1-2","gs1-epcis-standard","supply-chain","traceability","data-sharing","tracking","tracing","visibility-events",[16,31,32,33,34,35,36,37,38,39],{"title":42,"path":43,"stem":44,"children":45,"description":47,"icon":48,"tags":52},"EPCIS","\u002Fdocs\u002Fepcis","docs\u002F02.epcis\u002Findex",[46],{"title":42,"path":43,"stem":44,"description":47,"icon":48,"tags":49},"Discover the specifics of EPCIS, how it works, and what OpenEPCIS is.","i-custom-open-epcis",[16,31,32,33,50,51,39],"iso-iec-19987","iso-iec-19988",[16,31,32,33,50,51,39],{"title":54,"path":55,"stem":56,"children":57,"description":59,"icon":60,"tags":73},"Format Converter","\u002Fdocs\u002Fformat-converter","docs\u002F03.format-converter\u002Findex",[58],{"title":54,"path":55,"stem":56,"description":59,"icon":60,"tags":61},"OpenEPCIS solution to convert EPCIS 2.0 and 1.2 document or single event from XML to JSON\u002FJSON-LD and vice versa.","heroicons-outline:arrows-right-left",[16,62,63,64,65,66,67,21,68,69,70,71,72],"json","json-ld","xml","events","format-converter","convert","convert-epcis-events","format","converter","epcis-tool","tools",[16,62,63,64,65,66,67,21,68,69,70,71,72],{"title":75,"path":76,"stem":77,"children":78,"description":80,"icon":81,"tags":87},"Version Converter","\u002Fdocs\u002Fversion-converter","docs\u002F04.version-converter\u002Findex",[79],{"title":75,"path":76,"stem":77,"description":80,"icon":81,"tags":82},"OpenEPCIS solution to convert EPCIS XML document from version 1.2 to 2.0 and vice versa.","heroicons:arrows-up-down",[16,32,62,63,64,65,83,67,21,84,85,86,70,71,72],"version-converter","convert-epcis-version","version","epcis-version",[16,32,62,63,64,65,83,67,21,84,85,86,70,71,72],{"title":89,"path":90,"stem":91,"children":92,"description":94,"icon":95,"tags":113},"Identifier Converter","\u002Fdocs\u002Fidentifier-converter","docs\u002F05.identifier-converter\u002Findex",[93],{"title":89,"path":90,"stem":91,"description":94,"icon":95,"tags":96},"OpenEPCIS solution to convert EPCIS instance or class identifier from URN to digital link WebURI and vice versa.","i-heroicons-link",[16,97,98,99,100,101,21,102,103,104,105,106,107,108,109,110,111,112],"gs1-digital-link","urn-format","epc-uri","epc","weburi","gs1-standard","gs1","sscc","gtin","giai","grai","gdti","lgtin","sgtin","gln","gcp",[16,97,98,99,100,101,21,102,103,104,105,106,107,108,109,110,111,112],{"title":115,"path":116,"stem":117,"children":118,"description":120,"icon":121,"tags":127},"Event Hash Generator","\u002Fdocs\u002Fevent-hash-generator","docs\u002F06.event-hash-generator\u002Findex",[119],{"title":115,"path":116,"stem":117,"description":120,"icon":121,"tags":122},"OpenEPCIS solution to generate unique event hash for EPCIS XML or JSON\u002FJSON-LD document or event list.","heroicons-outline:finger-print",[16,123,62,63,64,65,21,124,125,126,71,72],"event-hash","event","hash","generator",[16,123,62,63,64,65,21,124,125,126,71,72],{"title":129,"path":130,"stem":131,"children":132,"description":134,"icon":135,"tags":155},"Test Data Generator","\u002Fdocs\u002Ftest-data-generator","docs\u002F07.test-data-generator\u002Findex",[133,137],{"title":129,"path":130,"stem":131,"description":134,"icon":135,"tags":136},"OpenEPCIS solution to generate a large set of EPCIS test data events for all use cases\u002Fsupply chain requirements.","heroicons-outline:cog",[16,123,62,63,64,65,21,124,125,126,71,72],{"title":138,"path":139,"stem":140,"children":141,"description":143,"icon":144,"tags":154},"EPCIS Implementation Guidelines","\u002Fdocs\u002Ftest-data-generator\u002Fgs1-epcis-implementation-guidelines","docs\u002F07.test-data-generator\u002F01.gs1-epcis-implementation-guidelines\u002Findex",[142],{"title":138,"path":139,"stem":140,"description":143,"icon":144,"tags":145},"EPCIS event examples from the GS1 EPCIS and CBV implementation guidelines, modeled with the OpenEPCIS Test Data Generator.","heroicons-outline:badge-check",[16,62,63,146,21,147,148,149,35,150,151,152,153],"testing","test-data-generator","design","design-template","process-automation","compliance","supply-chain-management","load-tests",[16,62,63,146,21,147,148,149,35,150,151,152,153],[16,123,62,63,64,65,21,124,125,126,71,72],{"title":157,"path":158,"stem":159,"children":160,"description":162,"icon":163,"tags":166},"Test Resource Management","\u002Fdocs\u002Ftest-resource-management","docs\u002F08.test-resource-management\u002Findex",[161],{"title":157,"path":158,"stem":159,"description":162,"icon":163,"tags":164},"Collection of EPCIS 1.2\u002F2.0 documents\u002Fevents in XML\u002FJSON\u002FJSON-LD formats, intended for various testing purposes","heroicons-outline:archive-box",[16,62,63,146,21,165,35,150,151,152,153],"performance-tests",[16,62,63,146,21,165,35,150,151,152,153],{"title":168,"path":169,"stem":170,"children":171,"description":173,"icon":174,"tags":181},"Vocabulary Management","\u002Fdocs\u002Fvocabulary-management","docs\u002F09.vocabulary-management\u002Findex",[172],{"title":168,"path":169,"stem":170,"description":173,"icon":174,"tags":175},"Collection of standardized constants and strings for EPCIS event data.","heroicons-outline:book-open",[16,176,15,177,21,178,35,179,151,152,180],"constants","centralization","standardization","vocabulary","data-dictionary",[16,176,15,177,21,178,35,179,151,152,180],{"title":183,"path":184,"stem":185,"children":186,"description":188,"icon":189,"tags":205},"Dependency Management","\u002Fdocs\u002Fdependency-management","docs\u002F10.dependency-management\u002Findex",[187],{"title":183,"path":184,"stem":185,"description":188,"icon":189,"tags":190},"Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules.","heroicons-outline:folder",[191,15,192,193,194,195,196,31,197,198,199,200,201,202,203,204],"maven-bom","dependency-management","java-dependencies","pom","software-dependencies","version-control","open-source-java","build-management","modular-software","dependency-resolution","java-libraries","maven-project","centralized-dependencies","dependency-consistency",[191,15,192,193,194,195,196,31,197,198,199,200,201,202,203,204],{"title":207,"path":208,"stem":209,"children":210,"description":212,"icon":213,"tags":411},"Digital Product Passport","\u002Fdocs\u002Fdigital-product-passport","docs\u002F11.digital-product-passport\u002Findex",[211,221,234,269,307,334,348,356,363,373,400],{"title":207,"path":208,"stem":209,"description":212,"icon":213,"tags":214},"Introduction to Digital Product Passport and how EPCIS enables product traceability for DPP compliance.","heroicons-outline:identification",[215,216,217,31,218,35,219,220],"digital-product-passport","dpp","eu-regulation","sustainability","circular-economy","gs1-web-vocabulary",{"title":222,"path":223,"stem":224,"children":225,"description":227,"icon":228,"tags":233},"ESPR Framework","\u002Fdocs\u002Fdigital-product-passport\u002Fespr-framework","docs\u002F11.digital-product-passport\u002F00.espr-framework\u002Findex",[226],{"title":222,"path":223,"stem":224,"description":227,"icon":228,"tags":229},"Guide to the EU Ecodesign for Sustainable Products Regulation (ESPR) 2024\u002F1781 and how OpenEPCIS supports Digital Product Passport requirements.","heroicons-outline:shield-check",[230,231,218,216,217,232],"espr","ecodesign","en-standards",[230,231,218,216,217,232],{"title":235,"path":236,"stem":237,"children":238,"description":240,"icon":241,"tags":268},"Battery DPP","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002Findex",[239,246,252,259],{"title":235,"path":236,"stem":237,"description":240,"icon":241,"tags":242},"GS1-native implementation of EU Battery Regulation 2023\u002F1542 Digital Product Passport using EPCIS 2.0","heroicons:battery-100",[243,244,216,31,103,35,218,245],"battery","eu-battery-regulation","due-diligence",{"title":247,"path":248,"stem":249,"description":250,"icon":174,"tags":251},"Implementation Guide","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F01.implementation-guide","Step-by-step guide for implementing a GS1-native Battery Digital Product Passport with OpenEPCIS extensions",[243,244,216,31,220],{"title":253,"path":254,"stem":255,"description":256,"icon":257,"tags":258},"Event Types","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fevent-types","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F02.event-types","Complete reference for all EPCIS event types and sensor measurements in the Battery DPP","heroicons-outline:collection",[243,31,65,39,216],{"title":260,"path":261,"stem":262,"description":263,"icon":13,"tags":264},"Complete Examples","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F05.complete-examples","Reference Battery Digital Product Passport examples mapped to EU Battery Regulation 2023\u002F1542 Annex XIII",[243,265,266,63,267,245],"examples","annex-xiii","carbon-footprint",[243,244,216,31,103,35,218,245],{"title":270,"path":271,"stem":272,"children":273,"description":275,"icon":276,"tags":306},"EUDR","\u002Fdocs\u002Fdigital-product-passport\u002Feudr","docs\u002F11.digital-product-passport\u002F02.eudr\u002Findex",[274,281,287,292,300],{"title":270,"path":271,"stem":272,"description":275,"icon":276,"tags":277},"GS1-native implementation of EU Deforestation Regulation 2023\u002F1115 compliance using EPCIS 2.0","heroicons-outline:globe-europe-africa",[278,279,280,216,31,103,35,218,245],"eudr","deforestation","timber",{"title":247,"path":282,"stem":283,"description":284,"icon":285,"tags":286},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F02.eudr\u002F01.implementation-guide","Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards",null,[278,279,280,216,31,245],{"title":253,"path":288,"stem":289,"description":290,"icon":285,"tags":291},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fevent-types","docs\u002F11.digital-product-passport\u002F02.eudr\u002F02.event-types","EPCIS event types for EU Deforestation Regulation compliance",[278,31,65,39,216],{"title":293,"path":294,"stem":295,"description":296,"icon":285,"tags":297},"URL Patterns","\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Furl-patterns","docs\u002F11.digital-product-passport\u002F02.eudr\u002F03.url-patterns","GS1 Digital Link URL patterns for EUDR implementations",[278,97,298,299,216,245],"resolver","linkset",{"title":260,"path":301,"stem":302,"description":303,"icon":13,"tags":304},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F02.eudr\u002F04.complete-examples","Reference EUDR examples — timber product passport, derived product, regulatory notification, harvesting \u002F origin-declaration \u002F processing \u002F supply-chain-transfer \u002F exemption events",[278,265,280,245,305],"geolocation",[278,279,280,216,31,103,35,218,245],{"title":308,"path":309,"stem":310,"children":311,"description":313,"icon":314,"tags":333},"Textile DPP","\u002Fdocs\u002Fdigital-product-passport\u002Ftextile","docs\u002F11.digital-product-passport\u002F03.textile\u002Findex",[312,320,327],{"title":308,"path":309,"stem":310,"description":313,"icon":314,"tags":315},"Digital Product Passport vocabulary for textiles and apparel under the EU Sustainable Textiles Strategy and ESPR 2024\u002F1781.","heroicons-outline:sparkles",[316,317,318,216,218,319],"textile","apparel","footwear","fibre-composition",{"title":247,"path":321,"stem":322,"description":323,"icon":324,"tags":325},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F03.textile\u002F01.implementation-guide","How to assemble a Textile Digital Product Passport against the published openepcis-dpp-ready textile vocabulary","heroicons-outline:scissors",[316,317,318,326],"implementation",{"title":260,"path":328,"stem":329,"description":330,"icon":13,"tags":331},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F03.textile\u002F02.complete-examples","Reference Textile Digital Product Passport documents covering apparel and footwear",[316,265,317,318,332,63],"fiber-composition",[316,317,318,216,218,319],{"title":335,"path":336,"stem":337,"children":338,"description":340,"icon":60,"tags":347},"Interoperability","\u002Fdocs\u002Fdigital-product-passport\u002Finteroperability","docs\u002F11.digital-product-passport\u002F04.interoperability\u002Findex",[339],{"title":335,"path":336,"stem":337,"description":340,"icon":60,"tags":341},"Guide to OpenEPCIS DPP interoperability with GS1, UNTP, CIRPASS2, and ESPR standards.",[342,343,103,344,230,345,346,220],"interoperability","untp","cirpass2","standards","alignment",[342,343,103,344,230,345,346,220],{"title":349,"path":350,"stem":351,"description":352,"icon":29,"tags":353},"DPP Resolution Flow","\u002Fdocs\u002Fdigital-product-passport\u002Fdpp-resolution-flow","docs\u002F11.digital-product-passport\u002F05.dpp-resolution-flow","How OpenEPCIS combined GS1 Digital Link, the IETF linkset format and content negotiation into one DPP resolution flow",[354,97,299,355,298],"walkthrough","content-negotiation",{"title":357,"path":358,"stem":359,"description":360,"icon":361,"tags":362},"Resolver Setup","\u002Fdocs\u002Fdigital-product-passport\u002Fresolver-setup","docs\u002F11.digital-product-passport\u002F06.resolver-setup","How to expose your DPP behind a GS1 Digital Link resolver","heroicons-outline:server",[298,97,299],{"title":364,"path":365,"stem":366,"description":367,"icon":368,"tags":369},"Multi-Component Example","\u002Fdocs\u002Fdigital-product-passport\u002Fmulti-component-example","docs\u002F11.digital-product-passport\u002F07.multi-component-example","How a composite product references separately-passported components via standard GS1 Digital Link and EPCIS aggregation","heroicons-outline:puzzle-piece",[370,371,372,344],"example","components","aggregation",{"title":374,"path":375,"stem":376,"children":377,"description":379,"icon":380,"tags":399},"Electronics DPP","\u002Fdocs\u002Fdigital-product-passport\u002Felectronics","docs\u002F11.digital-product-passport\u002F08.electronics\u002Findex",[378,387,392],{"title":374,"path":375,"stem":376,"description":379,"icon":380,"tags":381},"Digital Product Passport vocabulary for electronic devices under ESPR, the French Repairability Index, EU Right to Repair and WEEE.","heroicons-outline:device-phone-mobile",[382,383,384,385,386],"electronics","repairability","weee","energy-label","right-to-repair",{"title":247,"path":388,"stem":389,"description":390,"icon":174,"tags":391},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F08.electronics\u002F01.implementation-guide","How to assemble an Electronics Digital Product Passport against the published openepcis-dpp-ready electronics vocabulary",[382,326,383,384,385],{"title":260,"path":393,"stem":394,"description":395,"icon":13,"tags":396},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F08.electronics\u002F02.complete-examples","Reference Electronics Digital Product Passport documents covering smartphone, laptop, display and server",[382,265,397,398,63],"smartphone","laptop",[382,383,384,385,386],{"title":401,"path":402,"stem":403,"description":404,"icon":228,"tags":405},"Signed Passports","\u002Fdocs\u002Fdigital-product-passport\u002Fsigned-passports","docs\u002F11.digital-product-passport\u002F09.signed-passports","How OpenEPCIS signs product passports so that software nobody here wrote can verify them — W3C Data Integrity, did:web, and the canonicalization layer that decides whether a signature travels.",[406,407,408,409,342,410],"verifiable-credentials","data-integrity","did-web","canonicalization","trust",[215,216,217,31,218,35,219,220],{"title":413,"path":414,"stem":415,"children":416,"description":418,"icon":419,"tags":427},"Profile Checker","\u002Fdocs\u002Fprofile-checker","docs\u002F12.profile-checker\u002Findex",[417],{"title":413,"path":414,"stem":415,"description":418,"icon":419,"tags":420},"OpenEPCIS tool to define EPCIS event profiles as JSON Schema and validate EPCIS documents or events against them.","heroicons-outline:clipboard-document-check",[16,421,422,423,424,425,426,21,72],"event-profile","profile-checker","json-schema","validation","data-quality","conformance",[16,421,422,423,424,425,426,21,72],{"title":429,"path":430,"stem":431,"children":432,"description":434,"icon":435,"tags":571},"Digital Data Management","\u002Fdocs\u002Fdigital-data-management","docs\u002F13.digital-data-management\u002Findex",[433,440,452,462,473,484,493,505,515,526,535,547,559],{"title":429,"path":430,"stem":431,"description":434,"icon":435,"tags":436},"End-user guide to OpenEPCIS Digital Data Management — curate GS1 master data, publish digital product passports, manage resolver links and analyze scans.","heroicons-outline:circle-stack",[437,438,215,97,439,298],"ddm","master-data","catalog",{"title":441,"path":442,"stem":443,"description":444,"icon":445,"tags":446},"Getting Started","\u002Fdocs\u002Fdigital-data-management\u002Fgetting-started","docs\u002F13.digital-data-management\u002F01.getting-started","Signing in to Digital Data Management, finding your way around the catalog workspace, and setting up your profile and integration tokens.","heroicons-outline:rocket-launch",[437,447,448,449,450,451],"login","keycloak","workspace","roles","profile",{"title":453,"path":454,"stem":455,"description":456,"icon":457,"tags":458},"Products","\u002Fdocs\u002Fdigital-data-management\u002Fproduct-catalog","docs\u002F13.digital-data-management\u002F02.product-catalog","The DDM product catalog — creating products from a passport type, importing in bulk, and keeping the catalog tidy.","heroicons-outline:cube",[437,459,105,460,461,439],"products","passport-type","bulk-import",{"title":463,"path":464,"stem":465,"description":466,"icon":467,"tags":468},"Passport Editor","\u002Fdocs\u002Fdigital-data-management\u002Fpassport-editor","docs\u002F13.digital-data-management\u002F03.passport-editor","One editor for products, organizations and places — ontology-generated forms, rich field widgets, GS1 validation, access levels and full version history.","heroicons-outline:pencil-square",[437,469,63,424,470,471,472],"editor","gpc","access-level","versions",{"title":474,"path":475,"stem":476,"description":477,"icon":478,"tags":479},"Organizations & Places","\u002Fdocs\u002Fdigital-data-management\u002Forganizations-and-places","docs\u002F13.digital-data-management\u002F04.organizations-and-places","GLN-keyed party and location records in DDM — organization roles, primary locations, and the public GLN information pages.","heroicons-outline:building-office-2",[437,480,481,111,482,483],"organizations","places","party","location",{"title":485,"path":486,"stem":487,"description":488,"icon":489,"tags":490},"Linksets","\u002Fdocs\u002Fdigital-data-management\u002Flinksets","docs\u002F13.digital-data-management\u002F05.linksets","Managing the resolver links behind every scan — the linkset explorer, the ownership model, and templated links that adapt to the scanned code.","heroicons-outline:link",[437,299,97,298,491,492],"linktype","templated-links",{"title":494,"path":495,"stem":496,"description":497,"icon":498,"tags":499},"Public Passports","\u002Fdocs\u002Fdigital-data-management\u002Fpublic-passports","docs\u002F13.digital-data-management\u002F06.public-passports","What consumers see — the demo gallery, the passport viewer at model, lot and item level, and template-driven rendering.","heroicons-outline:qr-code",[437,500,501,502,503,504],"passport","qr-code","consumer","templates","digital-link",{"title":506,"path":507,"stem":508,"description":509,"icon":419,"tags":510},"Passport Templates","\u002Fdocs\u002Fdigital-data-management\u002Fpassport-templates","docs\u002F13.digital-data-management\u002F07.passport-templates","What each passport type asks for — field obligations, hidden fields and creation defaults, layered from shipped defaults to deployment and tenant overrides.",[437,503,511,512,513,514],"requirements","obligations","creation-defaults","dpp-ready",{"title":516,"path":517,"stem":518,"description":519,"icon":520,"tags":521},"Field Access","\u002Fdocs\u002Fdigital-data-management\u002Ffield-access","docs\u002F13.digital-data-management\u002F08.field-access","Deciding which data fields consumers, operators and authorities can see — tier by tier, with persona preview and a reviewer workflow.","heroicons-outline:lock-closed",[437,522,523,230,524,525],"field-access","access-tiers","governance","skos",{"title":527,"path":528,"stem":529,"description":530,"icon":29,"tags":531},"Resolver Domains","\u002Fdocs\u002Fdigital-data-management\u002Fresolver-domains","docs\u002F13.digital-data-management\u002F09.resolver-domains","Serving GS1 Digital Links from your own hostname — CNAME setup, verification, and test prefixes to try it without a GS1 license.",[437,298,532,533,534,112],"custom-domain","cname","dns",{"title":536,"path":537,"stem":538,"description":539,"icon":540,"tags":541},"GS1 Sync","\u002Fdocs\u002Fdigital-data-management\u002Fgs1-sync","docs\u002F13.digital-data-management\u002F10.gs1-sync","Publishing your catalog to GS1 Germany — service tokens, licensed prefixes, the key pool, Verified by GS1, and the per-record Sync tab.","heroicons-outline:arrow-path",[437,542,543,544,545,546],"gs1-germany","sync","service-token","key-pool","verified-by-gs1",{"title":548,"path":549,"stem":550,"description":551,"icon":552,"tags":553},"Scan Analytics","\u002Fdocs\u002Fdigital-data-management\u002Fscan-analytics","docs\u002F13.digital-data-management\u002F11.scan-analytics","What only a resolver can know — anonymous scan statistics, demand insights, and a live privacy report that shows exactly what is and is not collected.","heroicons-outline:chart-bar",[437,554,555,556,557,558],"scans","analytics","privacy","k-anonymity","insights",{"title":560,"path":561,"stem":562,"description":563,"icon":564,"tags":565},"Integration Tokens","\u002Fdocs\u002Fdigital-data-management\u002Fconnector-tokens","docs\u002F13.digital-data-management\u002F12.connector-tokens","How a machine gets its own long-lived credential for your catalog — issuing an offline token, naming it, seeing what it did, and revoking it when the system it belonged to is retired.","heroicons-outline:key",[437,566,567,568,569,570,448],"integration","offline-token","connector","erp","pim",[437,438,215,97,439,298],{"title":573,"path":574,"stem":575,"children":576,"description":578,"icon":579},"OpenEPCIS Overview","\u002Fdocs\u002Fplatform-overview","docs\u002F14.platform-overview\u002Findex",[577,580,586,592],{"title":573,"path":574,"stem":575,"description":578,"icon":579},"A GS1-conformant supply-chain data platform — Resolver, Masterdata, EPCIS Events — in open source and business editions.","lucide:layout-dashboard",{"title":581,"path":582,"stem":583,"description":584,"icon":585},"Architecture","\u002Fdocs\u002Fplatform-overview\u002Farchitecture","docs\u002F14.platform-overview\u002F01.architecture","How OpenEPCIS handles identity, isolation, events, and GS1 conformance — the four things that distinguish the platform.","lucide:cpu",{"title":587,"path":588,"stem":589,"description":590,"icon":591},"Feature Matrix","\u002Fdocs\u002Fplatform-overview\u002Ffeature-matrix","docs\u002F14.platform-overview\u002F02.feature-matrix","OpenEPCIS capabilities by edition, aligned to the relevant GS1 standards.","lucide:check-square",{"title":593,"path":594,"stem":595,"children":596,"description":598,"icon":599},"Modules","\u002Fdocs\u002Fplatform-overview\u002Fmodules","docs\u002F14.platform-overview\u002Fmodules\u002Findex",[597,600,607,615,623,629,635,641],{"title":593,"path":594,"stem":595,"description":598,"icon":599},"Seven module families that organise the OpenEPCIS platform — Resolver, Masterdata, EPCIS Events, Formats & Validation, Integration, Testdata, Platform.","lucide:layers",{"title":601,"path":602,"stem":603,"description":604,"icon":605,"tags":606},"GS1 Conformant Resolver","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fresolver","docs\u002F14.platform-overview\u002Fmodules\u002F01.resolver","Resolves GS1 Digital Link URIs to product information, masterdata, EPCIS endpoints, and twelve more standard link types.","lucide:link-2",[298,97,103,299,220],{"title":608,"path":609,"stem":610,"description":611,"icon":612,"tags":613},"GS1 Web Vocabulary & Masterdata","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fmasterdata","docs\u002F14.platform-overview\u002Fmodules\u002F02.masterdata","Web Vocabulary models, masterdata-to-resolver REST pattern, GS1 Germany Activate Plus \u002F GEPIR sync, and the event-driven masterdata bus.","lucide:database",[220,614,103,298,63],"masterdata",{"title":616,"path":617,"stem":618,"description":619,"icon":620,"tags":621},"EPCIS Events — Capture, Query, Subscriptions","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fepcis-events","docs\u002F14.platform-overview\u002Fmodules\u002F03.epcis-events","EPCIS 2.0 REST and SOAP, live streaming subscriptions, resilient pagination, OpenSearch event store.","lucide:activity",[39,16,31,65,622,35],"subscriptions",{"title":624,"path":625,"stem":626,"description":627,"icon":628},"Formats, Validation & Identity","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fformats","docs\u002F14.platform-overview\u002Fmodules\u002F04.formats","XML ↔ JSON-LD conversion, multi-layer validation, identifier translation, idempotent event hashing.","lucide:file-check",{"title":630,"path":631,"stem":632,"description":633,"icon":634},"Integration & Gateways","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fintegration","docs\u002F14.platform-overview\u002Fmodules\u002F05.integration","AS2 gateway for EDI partners, cloud storage, file service, natural-language AI assistant.","lucide:plug",{"title":636,"path":637,"stem":638,"description":639,"icon":640},"Testdata & Developer Tooling","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Ftestdata","docs\u002F14.platform-overview\u002Fmodules\u002F06.testdata","Synthetic EPCIS test event generation, reference event collections, conformance test suite, SDKs.","lucide:wrench",{"title":642,"path":643,"stem":644,"description":645,"icon":646},"Platform, Build & Observability","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fplatform","docs\u002F14.platform-overview\u002Fmodules\u002F07.platform","How OpenEPCIS is built, deployed, and observed.","lucide:server",{"title":648,"path":649,"stem":650,"children":651,"description":653,"icon":29,"tags":661},"Vision","\u002Fdocs\u002Fvision","docs\u002F15.vision\u002Findex",[652],{"title":648,"path":649,"stem":650,"description":653,"icon":29,"tags":654},"How UNTP, DIDs, Verifiable Credentials, and EPCIS work together to create unified product identity infrastructure for the connected supply chain.",[655,656,657,406,343,658,659,660],"vision","digital-twin","did","rfid","industry-4-0","web-3-0",[655,656,657,406,343,658,659,660],{"title":663,"path":664,"stem":665,"children":666,"description":668,"icon":540,"tags":797},"Connectors","\u002Fdocs\u002Fconnectors","docs\u002F16.connectors\u002Findex",[667,675,685,694,700,710],{"title":663,"path":664,"stem":665,"description":668,"icon":540,"tags":669},"Publish products from UnoPim, ERPNext, metasfresh or Odoo to a GS1 Digital Link, a digital product passport and EPCIS events.",[670,671,672,673,674,215,31,298],"connectors","unopim","odoo","erpnext","metasfresh",{"title":676,"path":677,"stem":678,"description":679,"icon":60,"tags":680},"How It Works","\u002Fdocs\u002Fconnectors\u002Fhow-a-connector-works","docs\u002F16.connectors\u002F01.how-a-connector-works","The mechanics of a connector — the outbound half that polls, maps and publishes, the inbound bridge that answers identity questions, and the design rules the code holds you to.",[670,543,681,682,683,684],"mapping","bridge","webhook","idempotency",{"title":686,"path":687,"stem":688,"description":689,"icon":690,"tags":691},"Identifiers","\u002Fdocs\u002Fconnectors\u002Fidentifiers-gtin-and-sku","docs\u002F16.connectors\u002F02.identifiers-gtin-and-sku","One product needs exactly one GS1 identifier — the GTIN. Where the connector finds it, why your SKU is a different thing, and how batch, serial and logistics-unit levels build on top.","heroicons-outline:hashtag",[670,105,692,109,110,104,693],"sku","check-digit",{"title":695,"path":696,"stem":697,"description":698,"icon":540,"tags":699},"UnoPim","\u002Fdocs\u002Fconnectors\u002Funopim","docs\u002F16.connectors\u002F03.unopim","The whole UnoPim route — what has to exist in the PIM, how the connection is configured, what the first sync publishes, and where the data surfaces in DDM and on the published passport page.",[670,671,570,105,681,683,500],{"title":701,"path":702,"stem":703,"description":704,"icon":228,"tags":705},"Events & Credentials","\u002Fdocs\u002Fconnectors\u002Fevents-credentials-and-representations","docs\u002F16.connectors\u002F04.events-credentials-and-representations","What happens after a record is published — how a movement in your source system becomes an EPCIS event, where UNTP answers the same question differently, and how a passport gains a signed, selectively disclosed representation.",[670,31,65,706,707,708,406,343,523,709],"event-types","transformation","error-declaration","representations",{"title":711,"path":712,"stem":713,"children":714,"description":716,"icon":457,"tags":796},"Odoo","\u002Fdocs\u002Fconnectors\u002Fodoo","docs\u002F16.connectors\u002F05.odoo\u002Findex",[715,720,727,735,745,754,765,774,785],{"title":711,"path":712,"stem":713,"description":716,"icon":457,"tags":717},"Seven LGPL-3 addons that publish Odoo's products, contacts, lots and serial numbers to a GS1 Digital Link and report what happens to them as EPCIS 2.0 events — one page per addon, and a warehouse day walked through screen by screen.",[670,672,569,718,31,504,719],"addons","lgpl",{"title":721,"path":722,"stem":723,"description":724,"icon":457,"tags":725},"A warehouse day","\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fwalkthrough","docs\u002F16.connectors\u002F05.odoo\u002F01.walkthrough","One warehouse day walked through end to end — goods in, packed onto a pallet, shipped, part of it back, the rest ground into another article, and one report taken back — with the screen and the EPCIS event it produces side by side.",[670,672,31,65,104,372,707,726],"tutorial",{"title":728,"path":729,"stem":730,"description":731,"icon":732,"tags":733},"Connector","\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fconnector","docs\u002F16.connectors\u002F05.odoo\u002F02.connector","The base addon. Products and company contacts are queued on save and published to the catalog behind the GS1 Digital Link resolver; a GTIN can be drawn from your own prefix; the field mapping is data an administrator edits; the form says what a registry still wants before you publish.","heroicons-outline:qrcode",[670,672,438,105,111,734,567,504],"field-mapping",{"title":736,"path":737,"stem":738,"description":739,"icon":740,"tags":741},"Lots & serial numbers","\u002Fdocs\u002Fconnectors\u002Fodoo\u002Flots-and-serial-numbers","docs\u002F16.connectors\u002F05.odoo\u002F03.lots-and-serial-numbers","The bridge to Inventory. A lot becomes \u002F01\u002F\u003Cgtin>\u002F10\u002F\u003Clot>, a serial number \u002F01\u002F\u003Cgtin>\u002F21\u002F\u003Cserial>, each a document of its own in the catalog under the product's GTIN — with the instance-level Digital Link and its QR code on the lot form, where labels are actually printed.","heroicons-outline:tag",[670,672,742,743,109,110,744,504],"lot","serial","instance",{"title":746,"path":747,"stem":748,"description":749,"icon":750,"tags":751},"Expiration dates","\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fexpiration-dates","docs\u002F16.connectors\u002F05.odoo\u002F04.expiration-dates","A data-only bridge. Three mapping rows carry the dates Odoo's Expiration Dates app keeps on a lot — expiration date, best-before date, and an inactive sell-by row — into the per-instance catalog document under their GS1 names.","heroicons-outline:calendar",[670,672,752,753,742,681],"expiry","best-before",{"title":755,"path":756,"stem":757,"description":758,"icon":759,"tags":760},"Visibility events","\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fvisibility-events","docs\u002F16.connectors\u002F05.odoo\u002F05.visibility-events","Every validated transfer becomes an EPCIS 2.0 ObjectEvent, packing an AggregationEvent under an SSCC, a return a TransactionEvent, and a wrong report an error declaration. Three settings decide what is reported — the company switch, the operation type, the location — and an outbox keeps the warehouse from ever waiting on the repository. Partners' events come back into an inbox that shows and, where two settings agree, posts.","heroicons-outline:arrow-trending-up",[670,672,31,65,761,762,104,111,763,764,708],"objectevent","aggregationevent","outbox","inbox",{"title":766,"path":767,"stem":768,"description":769,"icon":135,"tags":770},"Manufacturing events","\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fmanufacturing-events","docs\u002F16.connectors\u002F05.odoo\u002F06.manufacturing-events","The bridge to Manufacturing. A finished manufacturing order is reported as the one TransformationEvent it is — components in, goods out, and the claim that the second came from the first, which is the only thing in EPCIS that carries a chain of custody across a production step.",[670,672,771,772,31,773],"mrp","transformationevent","chain-of-custody",{"title":775,"path":776,"stem":777,"description":778,"icon":779,"tags":780},"Point-of-sale events","\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fpoint-of-sale-events","docs\u002F16.connectors\u002F05.odoo\u002F07.point-of-sale-events","The bridge to Point of Sale. A till's orders leave the warehouse through an operation type that looks exactly like a delivery to the stock module; this addon knows the difference and reports a sale as retail_selling with the goods retail_sold — and keeps that reading current as tills are configured and moved.","heroicons-outline:shopping-cart",[670,672,781,782,783,31,784],"pos","retail_selling","retail_sold","till",{"title":786,"path":787,"stem":788,"description":789,"icon":790,"tags":791},"Single sign-on logout","\u002Fdocs\u002Fconnectors\u002Fodoo\u002Fsingle-sign-on-logout","docs\u002F16.connectors\u002F05.odoo\u002F08.single-sign-on-logout","A small companion addon, independent of the connector. Odoo's OAuth login only ends the Odoo session on logout; the session at the identity provider stays, and the next sign-in logs straight back in. With an end-session URL on the provider, logging out of Odoo ends that session too.","heroicons-outline:arrow-left-on-rectangle",[672,792,793,448,794,795],"oauth","openid-connect","logout","rp-initiated-logout",[670,672,569,718,31,504,719],[670,671,672,673,674,215,31,298],{"title":799,"path":800,"stem":801,"children":802,"description":804,"icon":634},"API Reference","\u002Fdocs\u002Fapi-reference","docs\u002F17.api-reference\u002Findex",[803],{"title":799,"path":800,"stem":801,"description":804,"icon":634},"Interactive OpenAPI references for the GS1 Digital Link Resolver and the EPCIS 2.0 REST bindings.",[806],{"title":807,"path":808,"stem":809,"children":810,"page":832},"Blog","\u002Fblog","blog",[811,817,822,827],{"title":812,"path":813,"stem":814,"description":815,"icon":816},"The Web-based DPP doesn't need new infrastructure","\u002Fblog\u002Fdpp-stack-for-agents","blog\u002F01.dpp-stack-for-agents","Three GS1 standards — Digital Link, Web Vocabulary, Conformant Resolver — plus EPCIS 2.0 already cover the agent-facing layer of the Digital Product Passport.","heroicons-outline:newspaper",{"title":818,"path":819,"stem":820,"description":821,"icon":816},"Fascinating in Theory. It Just Doesn't Work in Practice.","\u002Fblog\u002Fblockchain-traceability","blog\u002F02.blockchain-traceability","Why blockchain is the wrong answer to traceability, and why it refuses to die anyway.",{"title":823,"path":824,"stem":825,"description":826,"icon":816},"Prove It: DPP Conformance Testing Is Live on the EU Test Bed","\u002Fblog\u002Fdpp-conformance-testing-live","blog\u002F03.dpp-conformance-testing-live","The European Commission now hosts a public validator for OpenEPCIS DPP-Ready passports. Free, no account, no vendor in the middle, and we would like to hear where the shapes get it wrong.",{"title":828,"path":829,"stem":830,"description":831,"icon":816},"Your ERP Already Knows: OpenEPCIS for Odoo","\u002Fblog\u002Fodoo-connector","blog\u002F04.odoo-connector","Seven open-source addons publish Odoo's products, contacts, lots and serial numbers to a GS1 Digital Link and report what happens to them as EPCIS 2.0 events. Nobody types a passport field twice, and the warehouse never waits for a repository.",false,{"doc":834,"usedFallback":832},{"id":835,"title":836,"body":837,"description":758,"extension":1483,"icon":759,"lastUpdated":1484,"meta":1485,"navigation":1496,"path":756,"seo":1498,"sitemap":1499,"stem":757,"__hash__":1503},"docsEN\u002Fdocs\u002F16.connectors\u002F05.odoo\u002F05.visibility-events.md","openepcis_connector_events: visibility events",{"type":838,"value":839,"toc":1470},"minimark",[840,853,938,943,1098,1101,1145,1149,1163,1170,1173,1194,1200,1318,1327,1331,1338,1344,1359,1374,1378,1385,1389,1396,1407,1412,1419,1422,1454,1461,1465],[841,842,843,844,848,849,852],"p",{},"Master data says what a product ",[845,846,847],"em",{},"is",". An EPCIS event says what ",[845,850,851],{},"became"," of one of them — received, packed, shipped, sold, returned, turned into something else — and together they are what a scanned serial number can answer. This addon reports Odoo's warehouse operations as those events, and reads back what partners report about the same goods.",[854,855,856,867],"table",{},[857,858,859],"thead",{},[860,861,862,865],"tr",{},[863,864],"th",{},[863,866],{},[868,869,870,885,901,911,921],"tbody",{},[860,871,872,879],{},[873,874,875],"td",{},[876,877,878],"strong",{},"Module",[873,880,881],{},[882,883,884],"code",{},"openepcis_connector_events",[860,886,887,892],{},[873,888,889],{},[876,890,891],{},"Depends on",[873,893,894,897,898],{},[882,895,896],{},"openepcis_connector_stock","; the Python package ",[882,899,900],{},"epcis_event_hash_generator",[860,902,903,908],{},[873,904,905],{},[876,906,907],{},"Installs",[873,909,910],{},"By hand — reporting movements to a shared repository is a decision, not a default",[860,912,913,918],{},[873,914,915],{},[876,916,917],{},"Talks to",[873,919,920],{},"The EPCIS 2.0 repository — a different service from the resolver, usually a different host",[860,922,923,928],{},[873,924,925],{},[876,926,927],{},"Source",[873,929,930,937],{},[931,932,936],"a",{"href":933,"rel":934},"https:\u002F\u002Fgithub.com\u002Fopenepcis\u002Fopenepcis-odoo\u002Ftree\u002F18.0\u002Fopenepcis_connector_events",[935],"nofollow","openepcis-odoo"," · LGPL-3",[939,940,942],"h2",{"id":941},"what-is-reported","What is reported",[854,944,945,958],{},[857,946,947],{},[860,948,949,952,955],{},[863,950,951],{},"What happened in Odoo",[863,953,954],{},"Event",[863,956,957],{},"Business step",[868,959,960,987,1006,1026,1040,1061,1080],{},[860,961,962,965,974],{},[873,963,964],{},"A transfer is validated",[873,966,967,970,971],{},[882,968,969],{},"ObjectEvent",", ",[882,972,973],{},"OBSERVE",[873,975,976,977,970,980,970,983,986],{},"From the operation type: ",[882,978,979],{},"receiving",[882,981,982],{},"shipping",[882,984,985],{},"storing",", …",[860,988,989,992,1001],{},[873,990,991],{},"Goods are put into a package",[873,993,994,970,997,1000],{},[882,995,996],{},"AggregationEvent",[882,998,999],{},"ADD",", parent = the package's SSCC",[873,1002,1003],{},[882,1004,1005],{},"packing",[860,1007,1008,1014,1021],{},[873,1009,1010,1011],{},"A package is emptied — by picking from it or by ",[845,1012,1013],{},"Unpack",[873,1015,1016,970,1018],{},[882,1017,996],{},[882,1019,1020],{},"DELETE",[873,1022,1023],{},[882,1024,1025],{},"unpacking",[860,1027,1028,1031,1036],{},[873,1029,1030],{},"Cases go onto a pallet (Odoo 19, nested packages)",[873,1032,1033,1035],{},[882,1034,996],{},", children = SSCCs",[873,1037,1038],{},[882,1039,1005],{},[860,1041,1042,1045,1053],{},[873,1043,1044],{},"Goods come back on a return",[873,1046,1047,970,1050,1052],{},[882,1048,1049],{},"TransactionEvent",[882,1051,1020],{}," — releases the shipment they went out on",[873,1054,1055,1057,1058],{},[882,1056,979],{},", disposition ",[882,1059,1060],{},"returned",[860,1062,1063,1066,1075],{},[873,1064,1065],{},"A manufacturing order is finished",[873,1067,1068,1071,1072],{},[882,1069,1070],{},"TransformationEvent"," — see ",[931,1073,1074],{"href":767},"manufacturing events",[873,1076,1077],{},[882,1078,1079],{},"commissioning",[860,1081,1082,1085,1095],{},[873,1083,1084],{},"A report was wrong",[873,1086,1087,1088,1091,1092],{},"The same event again, with an ",[882,1089,1090],{},"errorDeclaration"," of ",[882,1093,1094],{},"did_not_occur",[873,1096,1097],{},"—",[841,1099,1100],{},"Four decisions inside every event are worth knowing, because they are decisions rather than transcription:",[1102,1103,1104,1123,1129,1135],"ul",{},[1105,1106,1107,1110,1111,1114,1115,1118,1119,1122],"li",{},[876,1108,1109],{},"A lot is not a serial number."," A serial identifies one unit and goes into the ",[882,1112,1113],{},"epcList"," as an SGTIN. A lot identifies a ",[845,1116,1117],{},"set"," and goes into the ",[882,1120,1121],{},"quantityList"," as an LGTIN. Untracked goods are a set too — the trade item itself — so a warehouse that tracks nothing still produces useful events.",[1105,1124,1125,1128],{},[876,1126,1127],{},"Only published products appear."," An identifier that resolves nowhere is not worth putting into a repository: a scan would find an event and no product. What is not published is left out, and the event still describes what did move.",[1105,1130,1131,1134],{},[876,1132,1133],{},"The read point is not optional",", although EPCIS allows it to be. An event that says something happened without saying where is half an answer. A transfer whose locations carry no GLN is reported in its chatter instead, where somebody can fix the location.",[1105,1136,1137,1144],{},[876,1138,1139,1140,1143],{},"The ",[845,1141,1142],{},"Origin"," field becomes the business transaction",", so downstream readers match on what the warehouse actually typed. A delivery with no reference is named after the transfer.",[939,1146,1148],{"id":1147},"three-settings-each-where-the-fact-lives","Three settings, each where the fact lives",[841,1150,1151,1154,1155,1158,1159,1162],{},[876,1152,1153],{},"The company switch."," ",[845,1156,1157],{},"Settings → General Settings → OpenEPCIS → Report visibility events",", with the repository's address and your GS1 company prefix. ",[845,1160,1161],{},"Test capture"," checks that the offline token the connector already holds is also allowed to capture — publishing master data and capturing events are two rights, and a token can hold one without the other.",[841,1164,1165],{},[1166,1167],"img",{"alt":1168,"src":1169},"The visibility-event settings | Figure 1: The switch, the repository address, and the company prefix — which is used for SSCCs and nothing else","\u002Fimg\u002F16.Connectors\u002Fodoo-settings-events.png",[841,1171,1172],{},"The prefix is what SSCCs are minted from. Unlike a GTIN, an SSCC is not drawn from a registry: a company allocates its own and only has to make sure it never repeats one, so the addon mints them locally from a sequence, at the moment a package comes into being.",[841,1174,1175,1182,1183,1185,1186,1189,1190,1193],{},[876,1176,1177,1178,1181],{},"The operation type carries the ",[845,1179,1180],{},"why","."," Odoo knows a transfer is \"incoming\"; it does not know GS1 calls that ",[882,1184,979],{}," with the goods ",[882,1187,1188],{},"in_progress",". Two fields on every operation type hold the business step and the disposition, pre-filled from Odoo's own codes and the sequence prefix, and never overwritten once somebody has chosen otherwise. A third flag, ",[845,1191,1192],{},"Report as EPCIS events",", lets you leave an operation type out.",[841,1195,1196],{},[1166,1197],{"alt":1198,"src":1199},"The EPCIS block on an operation type | Figure 2: Business step and disposition, seeded from the operation's codes","\u002Fimg\u002F16.Connectors\u002Fodoo-operation-type.png",[854,1201,1202,1217],{},[857,1203,1204],{},[860,1205,1206,1209,1212,1214],{},[863,1207,1208],{},"Operation type",[863,1210,1211],{},"Odoo code",[863,1213,957],{},[863,1215,1216],{},"Disposition",[868,1218,1219,1237,1262,1280,1299],{},[860,1220,1221,1224,1229,1233],{},[873,1222,1223],{},"Receipts",[873,1225,1226],{},[882,1227,1228],{},"incoming",[873,1230,1231],{},[882,1232,979],{},[873,1234,1235],{},[882,1236,1188],{},[860,1238,1239,1242,1247,1258],{},[873,1240,1241],{},"Pick \u002F Pack \u002F Quality Control",[873,1243,1244],{},[882,1245,1246],{},"internal",[873,1248,1249,1252,1253,1252,1255],{},[882,1250,1251],{},"picking"," \u002F ",[882,1254,1005],{},[882,1256,1257],{},"inspecting",[873,1259,1260],{},[882,1261,1188],{},[860,1263,1264,1267,1271,1275],{},[873,1265,1266],{},"Storage",[873,1268,1269],{},[882,1270,1246],{},[873,1272,1273],{},[882,1274,985],{},[873,1276,1277],{},[882,1278,1279],{},"sellable_accessible",[860,1281,1282,1285,1290,1294],{},[873,1283,1284],{},"Delivery Orders",[873,1286,1287],{},[882,1288,1289],{},"outgoing",[873,1291,1292],{},[882,1293,982],{},[873,1295,1296],{},[882,1297,1298],{},"in_transit",[860,1300,1301,1304,1309,1313],{},[873,1302,1303],{},"Manufacturing",[873,1305,1306],{},[882,1307,1308],{},"mrp_operation",[873,1310,1311],{},[882,1312,1079],{},[873,1314,1315],{},[882,1316,1317],{},"active",[841,1319,1320,1326],{},[876,1321,1322,1323,1181],{},"The location carries the ",[845,1324,1325],{},"where"," EPCIS wants an SGLN, so a location needs a GLN, and Odoo's locations have none. They do have a tree: set the GLN on the warehouse, the loading bay or the shop floor, and everything underneath inherits it by walking up. One number makes a whole site answerable, and because Odoo's own GS1 barcode nomenclature binds AI 414 to a location, the GLN written here is also what a scanner reads off a GS1 location label.",[939,1328,1330],{"id":1329},"the-outbox","The outbox",[841,1332,1333,1334,1337],{},"Validating a transfer must never wait for a network. Pressing ",[845,1335,1336],{},"Validate"," writes rows into an outbox and returns; a scheduled action delivers them every minute.",[841,1339,1340],{},[1166,1341],{"alt":1342,"src":1343},"The EPCIS events outbox | Figure 3: One warehouse day as twelve rows","\u002Fimg\u002F16.Connectors\u002Fodoo-outbox.png",[841,1345,1346,1347,1350,1351,1354,1355,1358],{},"Delivery is two answers, kept apart. ",[845,1348,1349],{},"Accepted"," means the repository took the document; ",[845,1352,1353],{},"Captured"," means it stored it. Capture is asynchronous — the repository validates afterwards and may still refuse — so a queue that deleted its row on the ",[882,1356,1357],{},"202"," would report success for events thrown away minutes later. A row carries its capture job and is asked again on the next run. After five attempts it stops asking and says it cannot be confirmed.",[841,1360,1361,1362,1365,1366,1369,1370,1373],{},"Each row shows two identifiers that do different jobs. The ",[876,1363,1364],{},"expected event ID"," is the canonical CBV event hash over everything the event asserts; anyone holding the event can recompute it, which is what lets two companies name the same observation without agreeing on anything. Odoo computes it only to recognise its own events coming back and sends the document ",[845,1367,1368],{},"without"," it — there must be exactly one canonicalisation, and it is the repository's. The ",[876,1371,1372],{},"idempotency key"," is private bookkeeping, derived from the database, the transfer and the identifiers, so the same movement cannot enter the outbox twice. It never leaves Odoo.",[939,1375,1377],{"id":1376},"taking-a-report-back","Taking a report back",[841,1379,1380,1381,1384],{},"An event cannot be pulled out of a repository; EPCIS withdraws it with an error declaration. The addon sends the original event again with ",[882,1382,1383],{},"errorDeclaration.reason = did_not_occur",". Declaration fields are excluded from the hash, so the correction carries the same identity and the repository knows which event is meant without Odoo ever learning its name. The original stays on the row, greyed out and marked as corrected.",[939,1386,1388],{"id":1387},"the-inbox","The inbox",[841,1390,1391,1392,1395],{},"Events also come ",[845,1393,1394],{},"in",": what partners' systems have said about our lots and packages. A scheduled action reads the repository every five minutes from a watermark — the repository's own write clock, so an outage costs one run rather than a reconciliation — and shows what it finds on the lot, on the package, and where Odoo's own traceability report stops at the company boundary.",[841,1397,1398,1399,1402,1403,1406],{},"A partner's event is an observation, not a document. Odoo's stock is a valued figure that ends up in the books, and posting an observation into it would make the closing depend on a third party's data quality. So ",[876,1400,1401],{},"the inbox never moves stock."," Three settings under ",[845,1404,1405],{},"What we read back"," keep it manageable: which events to keep (everything the credential may see, only identifiers under our own prefix, or only what can be placed in this database), events per run, and pages per run — the brake that stops a day of catch-up from becoming one unbounded transaction.",[1408,1409,1411],"h3",{"id":1410},"the-one-exception","The one exception",[841,1413,1414,1415,1418],{},"An incoming event may advance a transfer that is ",[876,1416,1417],{},"already open, reserved and waiting for exactly this confirmation"," — a supplier confirming his own despatch, a customer booking a receipt. It never creates a document, never creates stock, never reopens something closed, never touches quantities. The worst a wrong event can do is validate a transfer a day early: visible, attributable, reversible like any other mistaken validation.",[841,1420,1421],{},"Two settings have to agree before even that happens, so that neither is a single point of trust:",[1102,1423,1424,1444],{},[1105,1425,1139,1426,1429,1430,970,1433,1436,1437,1440,1441,1181],{},[876,1427,1428],{},"operation type"," says what an incoming event may do at all — ",[845,1431,1432],{},"Ignore",[845,1434,1435],{},"Show only"," (the default), ",[845,1438,1439],{},"Propose a posting",", or ",[845,1442,1443],{},"Post automatically",[1105,1445,1139,1446,1449,1450,1453],{},[876,1447,1448],{},"partner"," says for whom. ",[845,1451,1452],{},"May move our transfers"," on the contact, next to the GLN that identifies him in the events, off by default.",[841,1455,1456,1457,1460],{},"And before any of it runs for real, it runs as a rehearsal: while the operation type's ",[845,1458,1459],{},"Observe only"," flag is set, the whole decision is made and written to the log and the last step is skipped. Somebody reads a week of that log, then clears the flag.",[939,1462,1464],{"id":1463},"see-it-end-to-end","See it end to end",[841,1466,1467,1469],{},[931,1468,721],{"href":722}," walks through a receipt, a pallet, a delivery, a return, a manufacturing order and a withdrawal with the event each one produces, copied from the outbox of the instance in the screenshots.",{"title":1471,"searchDepth":1472,"depth":1472,"links":1473},"",2,[1474,1475,1476,1477,1478,1482],{"id":941,"depth":1472,"text":942},{"id":1147,"depth":1472,"text":1148},{"id":1329,"depth":1472,"text":1330},{"id":1376,"depth":1472,"text":1377},{"id":1387,"depth":1472,"text":1388,"children":1479},[1480],{"id":1410,"depth":1481,"text":1411},3,{"id":1463,"depth":1472,"text":1464},"md","2026-10-09T00:00:00.000Z",{"head":1486,"readingTime":1491},{"meta":1487},[1488],{"name":1489,"content":1490},"keywords","openepcis_connector_events, Odoo EPCIS 2.0 events, ObjectEvent from stock picking, AggregationEvent SSCC Odoo, TransactionEvent return, error declaration did_not_occur, GLN on stock location, business step disposition operation type, EPCIS outbox, EPCIS inbox Odoo, CBV event hash",{"text":1492,"minutes":1493,"time":1494,"words":1495},"7 min read",6.35,381000,1270,{"title":755,"tags":1497},[670,672,31,65,761,762,104,111,763,764,708],{"title":836,"description":758},{"loc":756,"lastmod":1500,"changefreq":1501,"priority":1502},"2026-10-09","monthly",0.7,"OsmAHflxJi5P5S7I_Y-bIxwvxhSaFlqWBnMFRqm9b5A",[1505],{"title":5,"path":6,"stem":7,"children":1506},[1507,1509,1514,1519,1524,1529,1534,1539,1549,1554,1559,1564,1629,1634,1663,1681,1686,1720],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":1508},[15,16,17,18,19,20,21],{"title":23,"path":24,"stem":25,"children":1510,"description":28,"icon":29,"tags":1513},[1511],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":1512},[16,31,32,33,34,35,36,37,38,39],[16,31,32,33,34,35,36,37,38,39],{"title":42,"path":43,"stem":44,"children":1515,"description":47,"icon":48,"tags":1518},[1516],{"title":42,"path":43,"stem":44,"description":47,"icon":48,"tags":1517},[16,31,32,33,50,51,39],[16,31,32,33,50,51,39],{"title":54,"path":55,"stem":56,"children":1520,"description":59,"icon":60,"tags":1523},[1521],{"title":54,"path":55,"stem":56,"description":59,"icon":60,"tags":1522},[16,62,63,64,65,66,67,21,68,69,70,71,72],[16,62,63,64,65,66,67,21,68,69,70,71,72],{"title":75,"path":76,"stem":77,"children":1525,"description":80,"icon":81,"tags":1528},[1526],{"title":75,"path":76,"stem":77,"description":80,"icon":81,"tags":1527},[16,32,62,63,64,65,83,67,21,84,85,86,70,71,72],[16,32,62,63,64,65,83,67,21,84,85,86,70,71,72],{"title":89,"path":90,"stem":91,"children":1530,"description":94,"icon":95,"tags":1533},[1531],{"title":89,"path":90,"stem":91,"description":94,"icon":95,"tags":1532},[16,97,98,99,100,101,21,102,103,104,105,106,107,108,109,110,111,112],[16,97,98,99,100,101,21,102,103,104,105,106,107,108,109,110,111,112],{"title":115,"path":116,"stem":117,"children":1535,"description":120,"icon":121,"tags":1538},[1536],{"title":115,"path":116,"stem":117,"description":120,"icon":121,"tags":1537},[16,123,62,63,64,65,21,124,125,126,71,72],[16,123,62,63,64,65,21,124,125,126,71,72],{"title":129,"path":130,"stem":131,"children":1540,"description":134,"icon":135,"tags":1548},[1541,1543],{"title":129,"path":130,"stem":131,"description":134,"icon":135,"tags":1542},[16,123,62,63,64,65,21,124,125,126,71,72],{"title":138,"path":139,"stem":140,"children":1544,"description":143,"icon":144,"tags":1547},[1545],{"title":138,"path":139,"stem":140,"description":143,"icon":144,"tags":1546},[16,62,63,146,21,147,148,149,35,150,151,152,153],[16,62,63,146,21,147,148,149,35,150,151,152,153],[16,123,62,63,64,65,21,124,125,126,71,72],{"title":157,"path":158,"stem":159,"children":1550,"description":162,"icon":163,"tags":1553},[1551],{"title":157,"path":158,"stem":159,"description":162,"icon":163,"tags":1552},[16,62,63,146,21,165,35,150,151,152,153],[16,62,63,146,21,165,35,150,151,152,153],{"title":168,"path":169,"stem":170,"children":1555,"description":173,"icon":174,"tags":1558},[1556],{"title":168,"path":169,"stem":170,"description":173,"icon":174,"tags":1557},[16,176,15,177,21,178,35,179,151,152,180],[16,176,15,177,21,178,35,179,151,152,180],{"title":183,"path":184,"stem":185,"children":1560,"description":188,"icon":189,"tags":1563},[1561],{"title":183,"path":184,"stem":185,"description":188,"icon":189,"tags":1562},[191,15,192,193,194,195,196,31,197,198,199,200,201,202,203,204],[191,15,192,193,194,195,196,31,197,198,199,200,201,202,203,204],{"title":207,"path":208,"stem":209,"children":1565,"description":212,"icon":213,"tags":1628},[1566,1568,1573,1584,1597,1606,1611,1613,1615,1617,1626],{"title":207,"path":208,"stem":209,"description":212,"icon":213,"tags":1567},[215,216,217,31,218,35,219,220],{"title":222,"path":223,"stem":224,"children":1569,"description":227,"icon":228,"tags":1572},[1570],{"title":222,"path":223,"stem":224,"description":227,"icon":228,"tags":1571},[230,231,218,216,217,232],[230,231,218,216,217,232],{"title":235,"path":236,"stem":237,"children":1574,"description":240,"icon":241,"tags":1583},[1575,1577,1579,1581],{"title":235,"path":236,"stem":237,"description":240,"icon":241,"tags":1576},[243,244,216,31,103,35,218,245],{"title":247,"path":248,"stem":249,"description":250,"icon":174,"tags":1578},[243,244,216,31,220],{"title":253,"path":254,"stem":255,"description":256,"icon":257,"tags":1580},[243,31,65,39,216],{"title":260,"path":261,"stem":262,"description":263,"icon":13,"tags":1582},[243,265,266,63,267,245],[243,244,216,31,103,35,218,245],{"title":270,"path":271,"stem":272,"children":1585,"description":275,"icon":276,"tags":1596},[1586,1588,1590,1592,1594],{"title":270,"path":271,"stem":272,"description":275,"icon":276,"tags":1587},[278,279,280,216,31,103,35,218,245],{"title":247,"path":282,"stem":283,"description":284,"icon":285,"tags":1589},[278,279,280,216,31,245],{"title":253,"path":288,"stem":289,"description":290,"icon":285,"tags":1591},[278,31,65,39,216],{"title":293,"path":294,"stem":295,"description":296,"icon":285,"tags":1593},[278,97,298,299,216,245],{"title":260,"path":301,"stem":302,"description":303,"icon":13,"tags":1595},[278,265,280,245,305],[278,279,280,216,31,103,35,218,245],{"title":308,"path":309,"stem":310,"children":1598,"description":313,"icon":314,"tags":1605},[1599,1601,1603],{"title":308,"path":309,"stem":310,"description":313,"icon":314,"tags":1600},[316,317,318,216,218,319],{"title":247,"path":321,"stem":322,"description":323,"icon":324,"tags":1602},[316,317,318,326],{"title":260,"path":328,"stem":329,"description":330,"icon":13,"tags":1604},[316,265,317,318,332,63],[316,317,318,216,218,319],{"title":335,"path":336,"stem":337,"children":1607,"description":340,"icon":60,"tags":1610},[1608],{"title":335,"path":336,"stem":337,"description":340,"icon":60,"tags":1609},[342,343,103,344,230,345,346,220],[342,343,103,344,230,345,346,220],{"title":349,"path":350,"stem":351,"description":352,"icon":29,"tags":1612},[354,97,299,355,298],{"title":357,"path":358,"stem":359,"description":360,"icon":361,"tags":1614},[298,97,299],{"title":364,"path":365,"stem":366,"description":367,"icon":368,"tags":1616},[370,371,372,344],{"title":374,"path":375,"stem":376,"children":1618,"description":379,"icon":380,"tags":1625},[1619,1621,1623],{"title":374,"path":375,"stem":376,"description":379,"icon":380,"tags":1620},[382,383,384,385,386],{"title":247,"path":388,"stem":389,"description":390,"icon":174,"tags":1622},[382,326,383,384,385],{"title":260,"path":393,"stem":394,"description":395,"icon":13,"tags":1624},[382,265,397,398,63],[382,383,384,385,386],{"title":401,"path":402,"stem":403,"description":404,"icon":228,"tags":1627},[406,407,408,409,342,410],[215,216,217,31,218,35,219,220],{"title":413,"path":414,"stem":415,"children":1630,"description":418,"icon":419,"tags":1633},[1631],{"title":413,"path":414,"stem":415,"description":418,"icon":419,"tags":1632},[16,421,422,423,424,425,426,21,72],[16,421,422,423,424,425,426,21,72],{"title":429,"path":430,"stem":431,"children":1635,"description":434,"icon":435,"tags":1662},[1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660],{"title":429,"path":430,"stem":431,"description":434,"icon":435,"tags":1637},[437,438,215,97,439,298],{"title":441,"path":442,"stem":443,"description":444,"icon":445,"tags":1639},[437,447,448,449,450,451],{"title":453,"path":454,"stem":455,"description":456,"icon":457,"tags":1641},[437,459,105,460,461,439],{"title":463,"path":464,"stem":465,"description":466,"icon":467,"tags":1643},[437,469,63,424,470,471,472],{"title":474,"path":475,"stem":476,"description":477,"icon":478,"tags":1645},[437,480,481,111,482,483],{"title":485,"path":486,"stem":487,"description":488,"icon":489,"tags":1647},[437,299,97,298,491,492],{"title":494,"path":495,"stem":496,"description":497,"icon":498,"tags":1649},[437,500,501,502,503,504],{"title":506,"path":507,"stem":508,"description":509,"icon":419,"tags":1651},[437,503,511,512,513,514],{"title":516,"path":517,"stem":518,"description":519,"icon":520,"tags":1653},[437,522,523,230,524,525],{"title":527,"path":528,"stem":529,"description":530,"icon":29,"tags":1655},[437,298,532,533,534,112],{"title":536,"path":537,"stem":538,"description":539,"icon":540,"tags":1657},[437,542,543,544,545,546],{"title":548,"path":549,"stem":550,"description":551,"icon":552,"tags":1659},[437,554,555,556,557,558],{"title":560,"path":561,"stem":562,"description":563,"icon":564,"tags":1661},[437,566,567,568,569,570,448],[437,438,215,97,439,298],{"title":573,"path":574,"stem":575,"children":1664,"description":578,"icon":579},[1665,1666,1667,1668],{"title":573,"path":574,"stem":575,"description":578,"icon":579},{"title":581,"path":582,"stem":583,"description":584,"icon":585},{"title":587,"path":588,"stem":589,"description":590,"icon":591},{"title":593,"path":594,"stem":595,"children":1669,"description":598,"icon":599},[1670,1671,1673,1675,1677,1678,1679,1680],{"title":593,"path":594,"stem":595,"description":598,"icon":599},{"title":601,"path":602,"stem":603,"description":604,"icon":605,"tags":1672},[298,97,103,299,220],{"title":608,"path":609,"stem":610,"description":611,"icon":612,"tags":1674},[220,614,103,298,63],{"title":616,"path":617,"stem":618,"description":619,"icon":620,"tags":1676},[39,16,31,65,622,35],{"title":624,"path":625,"stem":626,"description":627,"icon":628},{"title":630,"path":631,"stem":632,"description":633,"icon":634},{"title":636,"path":637,"stem":638,"description":639,"icon":640},{"title":642,"path":643,"stem":644,"description":645,"icon":646},{"title":648,"path":649,"stem":650,"children":1682,"description":653,"icon":29,"tags":1685},[1683],{"title":648,"path":649,"stem":650,"description":653,"icon":29,"tags":1684},[655,656,657,406,343,658,659,660],[655,656,657,406,343,658,659,660],{"title":663,"path":664,"stem":665,"children":1687,"description":668,"icon":540,"tags":1719},[1688,1690,1692,1694,1696,1698],{"title":663,"path":664,"stem":665,"description":668,"icon":540,"tags":1689},[670,671,672,673,674,215,31,298],{"title":676,"path":677,"stem":678,"description":679,"icon":60,"tags":1691},[670,543,681,682,683,684],{"title":686,"path":687,"stem":688,"description":689,"icon":690,"tags":1693},[670,105,692,109,110,104,693],{"title":695,"path":696,"stem":697,"description":698,"icon":540,"tags":1695},[670,671,570,105,681,683,500],{"title":701,"path":702,"stem":703,"description":704,"icon":228,"tags":1697},[670,31,65,706,707,708,406,343,523,709],{"title":711,"path":712,"stem":713,"children":1699,"description":716,"icon":457,"tags":1718},[1700,1702,1704,1706,1708,1710,1712,1714,1716],{"title":711,"path":712,"stem":713,"description":716,"icon":457,"tags":1701},[670,672,569,718,31,504,719],{"title":721,"path":722,"stem":723,"description":724,"icon":457,"tags":1703},[670,672,31,65,104,372,707,726],{"title":728,"path":729,"stem":730,"description":731,"icon":732,"tags":1705},[670,672,438,105,111,734,567,504],{"title":736,"path":737,"stem":738,"description":739,"icon":740,"tags":1707},[670,672,742,743,109,110,744,504],{"title":746,"path":747,"stem":748,"description":749,"icon":750,"tags":1709},[670,672,752,753,742,681],{"title":755,"path":756,"stem":757,"description":758,"icon":759,"tags":1711},[670,672,31,65,761,762,104,111,763,764,708],{"title":766,"path":767,"stem":768,"description":769,"icon":135,"tags":1713},[670,672,771,772,31,773],{"title":775,"path":776,"stem":777,"description":778,"icon":779,"tags":1715},[670,672,781,782,783,31,784],{"title":786,"path":787,"stem":788,"description":789,"icon":790,"tags":1717},[672,792,793,448,794,795],[670,672,569,718,31,504,719],[670,671,672,673,674,215,31,298],{"title":799,"path":800,"stem":801,"children":1721,"description":804,"icon":634},[1722],{"title":799,"path":800,"stem":801,"description":804,"icon":634},{"id":835,"title":836,"body":1724,"description":758,"extension":1483,"icon":759,"lastUpdated":1484,"meta":2169,"navigation":2174,"path":756,"seo":2176,"sitemap":2177,"stem":757,"__hash__":1503},{"type":838,"value":1725,"toc":2159},[1726,1732,1793,1795,1911,1913,1939,1941,1949,1953,1955,1967,1971,2071,2077,2079,2083,2087,2095,2103,2105,2109,2111,2115,2121,2123,2127,2129,2149,2153,2155],[841,1727,843,1728,848,1730,852],{},[845,1729,847],{},[845,1731,851],{},[854,1733,1734,1742],{},[857,1735,1736],{},[860,1737,1738,1740],{},[863,1739],{},[863,1741],{},[868,1743,1744,1754,1766,1774,1782],{},[860,1745,1746,1750],{},[873,1747,1748],{},[876,1749,878],{},[873,1751,1752],{},[882,1753,884],{},[860,1755,1756,1760],{},[873,1757,1758],{},[876,1759,891],{},[873,1761,1762,897,1764],{},[882,1763,896],{},[882,1765,900],{},[860,1767,1768,1772],{},[873,1769,1770],{},[876,1771,907],{},[873,1773,910],{},[860,1775,1776,1780],{},[873,1777,1778],{},[876,1779,917],{},[873,1781,920],{},[860,1783,1784,1788],{},[873,1785,1786],{},[876,1787,927],{},[873,1789,1790,937],{},[931,1791,936],{"href":933,"rel":1792},[935],[939,1794,942],{"id":941},[854,1796,1797,1807],{},[857,1798,1799],{},[860,1800,1801,1803,1805],{},[863,1802,951],{},[863,1804,954],{},[863,1806,957],{},[868,1808,1809,1827,1841,1857,1869,1885,1899],{},[860,1810,1811,1813,1819],{},[873,1812,964],{},[873,1814,1815,970,1817],{},[882,1816,969],{},[882,1818,973],{},[873,1820,976,1821,970,1823,970,1825,986],{},[882,1822,979],{},[882,1824,982],{},[882,1826,985],{},[860,1828,1829,1831,1837],{},[873,1830,991],{},[873,1832,1833,970,1835,1000],{},[882,1834,996],{},[882,1836,999],{},[873,1838,1839],{},[882,1840,1005],{},[860,1842,1843,1847,1853],{},[873,1844,1010,1845],{},[845,1846,1013],{},[873,1848,1849,970,1851],{},[882,1850,996],{},[882,1852,1020],{},[873,1854,1855],{},[882,1856,1025],{},[860,1858,1859,1861,1865],{},[873,1860,1030],{},[873,1862,1863,1035],{},[882,1864,996],{},[873,1866,1867],{},[882,1868,1005],{},[860,1870,1871,1873,1879],{},[873,1872,1044],{},[873,1874,1875,970,1877,1052],{},[882,1876,1049],{},[882,1878,1020],{},[873,1880,1881,1057,1883],{},[882,1882,979],{},[882,1884,1060],{},[860,1886,1887,1889,1895],{},[873,1888,1065],{},[873,1890,1891,1071,1893],{},[882,1892,1070],{},[931,1894,1074],{"href":767},[873,1896,1897],{},[882,1898,1079],{},[860,1900,1901,1903,1909],{},[873,1902,1084],{},[873,1904,1087,1905,1091,1907],{},[882,1906,1090],{},[882,1908,1094],{},[873,1910,1097],{},[841,1912,1100],{},[1102,1914,1915,1925,1929,1933],{},[1105,1916,1917,1110,1919,1114,1921,1118,1923,1122],{},[876,1918,1109],{},[882,1920,1113],{},[845,1922,1117],{},[882,1924,1121],{},[1105,1926,1927,1128],{},[876,1928,1127],{},[1105,1930,1931,1134],{},[876,1932,1133],{},[1105,1934,1935,1144],{},[876,1936,1139,1937,1143],{},[845,1938,1142],{},[939,1940,1148],{"id":1147},[841,1942,1943,1154,1945,1158,1947,1162],{},[876,1944,1153],{},[845,1946,1157],{},[845,1948,1161],{},[841,1950,1951],{},[1166,1952],{"alt":1168,"src":1169},[841,1954,1172],{},[841,1956,1957,1182,1961,1185,1963,1189,1965,1193],{},[876,1958,1177,1959,1181],{},[845,1960,1180],{},[882,1962,979],{},[882,1964,1188],{},[845,1966,1192],{},[841,1968,1969],{},[1166,1970],{"alt":1198,"src":1199},[854,1972,1973,1985],{},[857,1974,1975],{},[860,1976,1977,1979,1981,1983],{},[863,1978,1208],{},[863,1980,1211],{},[863,1982,957],{},[863,1984,1216],{},[868,1986,1987,2003,2023,2039,2055],{},[860,1988,1989,1991,1995,1999],{},[873,1990,1223],{},[873,1992,1993],{},[882,1994,1228],{},[873,1996,1997],{},[882,1998,979],{},[873,2000,2001],{},[882,2002,1188],{},[860,2004,2005,2007,2011,2019],{},[873,2006,1241],{},[873,2008,2009],{},[882,2010,1246],{},[873,2012,2013,1252,2015,1252,2017],{},[882,2014,1251],{},[882,2016,1005],{},[882,2018,1257],{},[873,2020,2021],{},[882,2022,1188],{},[860,2024,2025,2027,2031,2035],{},[873,2026,1266],{},[873,2028,2029],{},[882,2030,1246],{},[873,2032,2033],{},[882,2034,985],{},[873,2036,2037],{},[882,2038,1279],{},[860,2040,2041,2043,2047,2051],{},[873,2042,1284],{},[873,2044,2045],{},[882,2046,1289],{},[873,2048,2049],{},[882,2050,982],{},[873,2052,2053],{},[882,2054,1298],{},[860,2056,2057,2059,2063,2067],{},[873,2058,1303],{},[873,2060,2061],{},[882,2062,1308],{},[873,2064,2065],{},[882,2066,1079],{},[873,2068,2069],{},[882,2070,1317],{},[841,2072,2073,1326],{},[876,2074,1322,2075,1181],{},[845,2076,1325],{},[939,2078,1330],{"id":1329},[841,2080,1333,2081,1337],{},[845,2082,1336],{},[841,2084,2085],{},[1166,2086],{"alt":1342,"src":1343},[841,2088,1346,2089,1350,2091,1354,2093,1358],{},[845,2090,1349],{},[845,2092,1353],{},[882,2094,1357],{},[841,2096,1361,2097,1365,2099,1369,2101,1373],{},[876,2098,1364],{},[845,2100,1368],{},[876,2102,1372],{},[939,2104,1377],{"id":1376},[841,2106,1380,2107,1384],{},[882,2108,1383],{},[939,2110,1388],{"id":1387},[841,2112,1391,2113,1395],{},[845,2114,1394],{},[841,2116,1398,2117,1402,2119,1406],{},[876,2118,1401],{},[845,2120,1405],{},[1408,2122,1411],{"id":1410},[841,2124,1414,2125,1418],{},[876,2126,1417],{},[841,2128,1421],{},[1102,2130,2131,2143],{},[1105,2132,1139,2133,1429,2135,970,2137,1436,2139,1440,2141,1181],{},[876,2134,1428],{},[845,2136,1432],{},[845,2138,1435],{},[845,2140,1439],{},[845,2142,1443],{},[1105,2144,1139,2145,1449,2147,1453],{},[876,2146,1448],{},[845,2148,1452],{},[841,2150,1456,2151,1460],{},[845,2152,1459],{},[939,2154,1464],{"id":1463},[841,2156,2157,1469],{},[931,2158,721],{"href":722},{"title":1471,"searchDepth":1472,"depth":1472,"links":2160},[2161,2162,2163,2164,2165,2168],{"id":941,"depth":1472,"text":942},{"id":1147,"depth":1472,"text":1148},{"id":1329,"depth":1472,"text":1330},{"id":1376,"depth":1472,"text":1377},{"id":1387,"depth":1472,"text":1388,"children":2166},[2167],{"id":1410,"depth":1481,"text":1411},{"id":1463,"depth":1472,"text":1464},{"head":2170,"readingTime":2173},{"meta":2171},[2172],{"name":1489,"content":1490},{"text":1492,"minutes":1493,"time":1494,"words":1495},{"title":755,"tags":2175},[670,672,31,65,761,762,104,111,763,764,708],{"title":836,"description":758},{"loc":756,"lastmod":1500,"changefreq":1501,"priority":1502},1791541281312]