[{"data":1,"prerenderedAt":717},["ShallowReactive",2],{"blog-digital-product-passport-llm-en":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":35,"cover":66,"og":67,"expertise":68,"locales":69,"lang":70,"title":73,"description":74,"coverAlt":75,"metaTitle":76,"takeaways":77,"faq":83,"toc":99,"blocks":127,"others":445},"digital-product-passport-llm","2026-10-09",9,"web",[9,10,11,12,13],"Digital Product Passport","ESPR","Compliance data","Document AI","PIM",[15,16,17,18,19,20,21,22,23,24],"digital product passport data extraction","digital product passport","ESPR delegated act 2026","battery passport 18 February 2027","DPP registry","GS1 Digital Link QR code","product compliance data LLM","supplier declaration extraction","recycled content declaration","DPP service provider",[26,29,32],{"name":27,"url":28},"Digital product passport","https:\u002F\u002Fsingle-market-economy.ec.europa.eu\u002Fsingle-market\u002Fdigital-product-passport_en",{"name":30,"url":31},"Ecodesign for Sustainable Products Regulation","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002FHTML\u002F?uri=CELEX:32024R1781",{"name":33,"url":34},"GS1 Digital Link","https:\u002F\u002Fwww.gs1.org\u002Fstandards\u002Fgs1-digital-link",[36,38,40,43,46,49,52,55,57,60,63],{"title":37,"url":31},"Regulation (EU) 2024\u002F1781 (ESPR), EUR-Lex",{"title":39,"url":28},"European Commission: Digital Product Passport",{"title":41,"url":42},"Commission Implementing Decision (EU) 2026\u002F1736 on harmonised DPP standards","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002FHTML\u002F?uri=CELEX:32026D1736",{"title":44,"url":45},"Commission Implementing Regulation (EU) 2026\u002F1778 on the DPP registry","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002FHTML\u002F?uri=CELEX:32026R1778",{"title":47,"url":48},"Regulation (EU) 2023\u002F1542 (Batteries), EUR-Lex","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002FHTML\u002F?uri=CELEX:32023R1542",{"title":50,"url":51},"Commission working plan COM(2025) 187 under ESPR","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002FHTML\u002F?uri=CELEX:52025DC0187",{"title":53,"url":54},"European Commission: CBAM certificate price","https:\u002F\u002Ftaxation-customs.ec.europa.eu\u002Fcarbon-border-adjustment-mechanism\u002Fprice-cbam-certificates_en",{"title":56,"url":34},"GS1: Digital Link standard",{"title":58,"url":59},"Publications Office: SCIP database information requirements","https:\u002F\u002Fop.europa.eu\u002Fen\u002Fpublication-detail\u002F-\u002Fpublication\u002F887091cb-0938-11ec-b5d3-01aa75ed71a1\u002Flanguage-en",{"title":61,"url":62},"CIRPASS-2 project","https:\u002F\u002Fcirpass2.eu\u002F",{"title":64,"url":65},"Vectara hallucination leaderboard","https:\u002F\u002Fgithub.com\u002Fvectara\u002Fhallucination-leaderboard\u002F","\u002Fimages\u002Fblog\u002Fdigital-product-passport-llm\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fdigital-product-passport-llm\u002Fog.jpg","b2b-ecommerce-developer",[70,71,72],"en","de","hu","Digital Product Passports with LLMs: extracting and assembling ESPR data","Where the Digital Product Passport stands in October 2026, which data a DPP record needs, and how LLMs extract supplier evidence without inventing values.","A product box with a code tag next to an open passport booklet.","Digital Product Passport data with LLMs · Balázs Csorba",[78,79,80,81,82],"Under ESPR Article 9, once a delegated act applies, a product may only be placed on the EU market if its digital product passport is available, accurate, complete and up to date.","The EU DPP registry has been operational since 20 July 2026 and six harmonised DPP standards were cited on 14 July 2026, but no ESPR product delegated act was adopted as of mid-October 2026.","Battery passports become mandatory on 18 February 2027 for LMT batteries, industrial batteries above 2 kWh and EV batteries.","LLMs fit the extraction job: schema-constrained fields from supplier PDFs with character-span provenance, normalization against code lists, and gaps reported as gaps, never filled in.","The registry checks structure only; correctness is the operator’s liability, even when a service provider registers on its behalf.",[84,87,90,93,96],{"q":85,"a":86},"What is a Digital Product Passport?","A Digital Product Passport is a structured electronic record about a product, reached through a data carrier such as a QR code on the product, packaging or documents, and registered in the EU DPP registry. Under ESPR, delegated acts per product group decide which data it must contain and at which granularity: model, batch or item.",{"q":88,"a":89},"When do Digital Product Passports become mandatory?","Battery passports apply from 18 February 2027. For ESPR product groups, each delegated act sets the date, at least 18 months after it enters into force. As of mid-October 2026 no ESPR product delegated act had been adopted; iron and steel is planned for adoption in Q4 2026, with textiles, aluminium and tyres indicated for 2027.",{"q":91,"a":92},"Can an LLM create Digital Product Passport data?","It can extract and normalize data from existing evidence, such as supplier declarations, datasheets and test reports, with a link to the exact text it came from. It must not generate values. Missing evidence is a gap to report and chase, because the operator is legally responsible for the accuracy of the passport.",{"q":94,"a":95},"Does the EU DPP registry check whether the data is correct?","No. Under Implementing Regulation (EU) 2026\u002F1778 the Commission runs automated checks of data structure and granularity only; verifying substantive correctness is a task for market surveillance authorities. A registration identifier from the registry is not proof of compliance.",{"q":97,"a":98},"Should we build DPP data on our PIM or use a DPP service provider?","Most companies need both pieces: the PIM and ERP hold and version the canonical product data, and ESPR requires a back-up copy hosted by an independent DPP service provider. The build decision is about where the record is assembled and who registers it; liability stays with the economic operator either way.",[100,103,106,109,112,115,118,121,124],{"id":101,"title":102},"state-of-play-october-2026","Where does the Digital Product Passport stand in October 2026?",{"id":104,"title":105},"what-a-dpp-record-is","What is a DPP record, legally and technically?",{"id":107,"title":108},"the-data-sourcing-problem","Where does DPP data come from?",{"id":110,"title":111},"llm-extraction-normalisation-gaps","What can an LLM do for DPP data, and what not?",{"id":113,"title":114},"build-vs-buy-dpp-service-providers","Build on your PIM or use a DPP service provider?",{"id":116,"title":117},"what-it-is-worth","What is DPP data readiness worth?",{"id":119,"title":120},"when-not-to-use-llms","When should you not use an LLM for DPP data?",{"id":122,"title":123},"checklist-dpp-data-readiness","A DPP data-readiness checklist",{"id":125,"title":126},"sources","Sources",[128,140,143,146,154,160,166,167,170,189,202,203,206,224,225,228,232,235,251,261,264,265,268,275,276,279,302,315,316,319,383,384,402,409,410],{"type":129,"content":130},"paragraph",[131,132,135,136,139],"A ",{"tag":133,"children":134},"strong",[9]," is a structured record about a product, reached through a data carrier on the product and registered in an EU registry, that a product group’s delegated act under the Ecodesign for Sustainable Products Regulation will make a condition of market access. ",{"tag":133,"children":137},[138],"Digital product passport data extraction"," is the part of the work an engineering team actually owns: finding each required value in ERP data and supplier evidence, proving where it came from, and reporting what is missing.",{"type":129,"content":141},[142],"This article covers where the DPP stands in October 2026, what a DPP record is legally and technically, where the data lives, where large language models legitimately help and where they must not, build versus service provider, the business case and a readiness checklist. It is not legal advice.",{"type":144,"level":145,"id":101,"text":102},"heading",2,{"type":129,"content":147},[148,149,153],"The infrastructure exists and the first hard deadline is batteries; the product-group obligations under ESPR are still ahead. The EU DPP registry has been operational since 20 July 2026, six harmonised standards were cited on 14 July 2026, battery passports apply from 18 February 2027, and as of mid-October 2026 the Commission’s page still lists the first ESPR product delegated act, iron and steel, as planned for adoption in Q4 2026 (",{"tag":150,"href":28,"children":151},"a",[152],"European Commission",").",{"type":155,"src":156,"alt":157,"wide":158,"caption":159},"image","\u002Fimages\u002Fblog\u002Fdigital-product-passport-llm\u002Fdiagram-4.webp","DPP timeline October 2026 to 2029 A timeline from 2026 to 2030. In law: the DPP registry operational on 20 July 2026 and battery passports mandatory on 18 February 2027. Indicative, from the Commission plan: the remaining two DPP standards in November 2026; the iron and steel delegated act adopted in Q4 2026 and applying at least 18 months later; textiles, aluminium and tyres delegated acts in Q3 to Q4 2027; furniture in 2028; mattresses and recycled content in 2029.",true,"DPP timeline as of October 2026: only the registry and the battery passport date are fixed in law; the product-group dates are the Commission’s indicative plan, and each delegated act adds at least 18 months before it applies.",{"type":129,"content":161},[162,163,165],"The 18-month floor is in the regulation itself: Article 4(4) of ESPR says a delegated act may not apply earlier than 18 months after it enters into force (",{"tag":150,"href":31,"children":164},[10],"). So for iron and steel the obligation cannot start before mid-2028, and the Commission says economic operators will have a transition period of at least 18 months. What to start now is the data inventory, because evidence chasing with suppliers takes longer than any software build.",{"type":144,"level":145,"id":104,"text":105},{"type":129,"content":168},[169],"Legally, it is a market-access condition with an accuracy duty. Article 9(1) of ESPR says information requirements shall provide that products can only be placed on the market or put into service if a digital product passport is available, and that its data shall be accurate, complete and up to date. Technically, it is a record behind a persistent unique identifier, carried on the product, in open machine-readable formats, at model, batch or item granularity as the delegated act decides.",{"type":171,"ordered":172,"items":173},"list",false,[174,179,184],[175,178],{"tag":133,"children":176},[177],"Annex III is a menu, not a field list."," It names the elements a delegated act selects from: the unique product identifier, the GTIN, commodity codes such as TARIC, compliance documentation, manuals and safety information, manufacturer and importer identifiers including EORI, and the reference of the DPP service provider that hosts the back-up copy. The concrete field list per product group only exists once that group’s act is adopted.",[180,183],{"tag":133,"children":181},[182],"Back-up and persistence."," Article 10(4) requires a back-up copy hosted by an independent DPP service provider, and the passport must stay available even after the operator’s insolvency.",[185,188],{"tag":133,"children":186},[187],"Registry and customs."," Article 13 sets up the registry, which stores at least the unique identifiers and, for customs, the commodity code; Article 15 makes release for free circulation conditional on electronic verification of the registration identifier and commodity code.",{"type":129,"content":190},[191,192,195,196,199,200,153],"The technical layer is standardized. Implementing Decision (EU) 2026\u002F1736 cites six harmonised standards, EN 18216 to EN 18223 covering data exchange, identifiers, data carriers, storage and persistence, APIs and interoperability (",{"tag":150,"href":42,"children":193},[194],"EUR-Lex","). For the data carrier, GS1 Digital Link turns a GTIN plus batch or serial into a URL that is also a barcode payload, now at URI syntax 1.7.0 and declaring conformance with ISO\u002FIEC 18975:2024 (",{"tag":150,"href":34,"children":197},[198],"GS1","). The battery passport is the working precedent: Article 77 of the Battery Regulation separates public data from data for authorities and for persons with a legitimate interest (",{"tag":150,"href":48,"children":201},[194],{"type":144,"level":145,"id":107,"text":108},{"type":129,"content":204},[205],"From systems you already run and from documents your suppliers send, and the real work is sourcing, not publishing. Identifiers and commodity codes sit in the ERP and the bill of materials; material composition and recycled content sit in PLM and supplier declarations; substances of concern often already exist as SCIP notifications; energy data, environmental product declarations and, for steel and aluminium, CBAM emissions communications cover further fields.",{"type":129,"content":207},[208,209,212,213,218,219,223],"SCIP is a useful example of data that already has a European home: since 5 January 2021, any supplier of an article containing a Candidate List substance above 0.1% by weight must notify ECHA’s SCIP database with defined fields, including the article identifier and a TARIC-based article category (",{"tag":150,"href":59,"children":210},[211],"Publications Office","). The output of this stage is a gap inventory per SKU: for every candidate field, where the value lives, who owns it and whether evidence exists. Much of it starts in the same plumbing as ",{"tag":214,"to":215,"children":216},"link","\u002Fblog\u002Fpimcore-erp-delta-sync",[217],"the Pimcore ERP delta sync",", and the supplier side is the same intake problem as ",{"tag":214,"to":220,"children":221},"\u002Fblog\u002Fsupplier-data-onboarding-llm",[222],"supplier data onboarding",".",{"type":144,"level":145,"id":110,"text":111},{"type":129,"content":226},[227],"It can extract, normalize and detect gaps; it must never generate a value. The model reads supplier declarations, datasheets and test reports, fills a strict schema per field with the exact character span it read the value from, maps units and categories to the code lists in the registry’s semantic repository, and returns “gap” as a first-class result when the evidence is not there.",{"type":155,"src":229,"alt":230,"wide":158,"caption":231},"\u002Fimages\u002Fblog\u002Fdigital-product-passport-llm\u002Fdiagram-15.webp","DPP data pipeline Five stages from left to right: sources such as ERP and BOM, supplier declaration PDFs and SCIP entries; extraction into a schema with character-span provenance; normalization against the code lists of the registry’s semantic repository; review of gaps and versions; and registration in the EU DPP registry with a GS1 Digital Link QR code on the product. Review corrections feed back into extraction rules, and every registry update is version-stamped.","The DPP data pipeline: evidence in, provenance on every value, gaps reported instead of filled, and a versioned registration at the end.",{"type":233,"code":234},"code","[\n  {\n    \"sku\": \"AL-PROF-40x40\",\n    \"field\": \"recycledContentShare\",\n    \"status\": \"extracted\",\n    \"value\": { \"amount\": 35, \"unit\": \"percent\" },\n    \"evidence\": {\n      \"document\": \"supplier-declaration-2026-07.pdf\",\n      \"sha256\": \"c41e…\",\n      \"page\": 2,\n      \"span\": [1184, 1261],\n      \"quote\": \"Recycled content (pre- and post-consumer): 35 %\"\n    },\n    \"extractor\": \"decl-extract-v7\"\n  },\n  {\n    \"sku\": \"AL-PROF-40x40\",\n    \"field\": \"carbonFootprint\",\n    \"status\": \"gap\",\n    \"value\": null,\n    \"reason\": \"no EPD or supplier figure found for this alloy\",\n    \"action\": \"request from supplier S-0217\"\n  }\n]",{"type":129,"content":236},[237,238,241,242,246,247,250],"The reason for the strictness is a number. Vectara’s public hallucination leaderboard, updated 16 October 2026, measures how often models add unsupported content when summarizing a given source: the best model tested sits at 1.8%, mid-pack models at 5 to 10%, and some flagship reasoning models above 10% (",{"tag":150,"href":65,"children":239},[240],"Vectara","). That is the easiest task in this pipeline, grounded summarization, and the error rate is still not zero. A registry-grade record therefore needs provenance per value, a reviewer for anything the model was not sure about, and a hard rule that missing means missing; the grounding techniques are covered in ",{"tag":214,"to":243,"children":244},"\u002Fblog\u002Fllm-hallucination-grounding-citations",[245],"LLM hallucination, grounding and citations",". My ",{"tag":233,"children":248},[249],"jev-decide"," skill uses the same routing for its own decisions: high confidence goes ahead, low confidence goes to a human.",{"type":252,"variant":253,"title":254,"body":255},"callout","warn","The registry does not check correctness",[256],[257,258,260],"Under Implementing Regulation (EU) 2026\u002F1778, the Commission runs automated checks of structure and granularity only; verifying the substantive correctness of the data is a task for market surveillance authorities, and the operator remains liable even when a third party registers on its behalf (",{"tag":150,"href":45,"children":259},[194],"). A registration identifier is not proof of compliance. Every value the model touched must be traceable to evidence a person can defend.",{"type":129,"content":262},[263],"Versioning follows from the same regulation: each new version of a passport links to the original registration identifier and every update is time-stamped. Keep the extraction, the evidence hash and the reviewer’s decision with each version, so the history of a value can be reconstructed years later; registration data without another retention rule is deleted after ten years.",{"type":144,"level":145,"id":113,"text":114},{"type":129,"content":266},[267],"Usually both: the PIM and ERP assemble and version the canonical record, and an independent DPP service provider hosts the back-up copy that Article 10(4) requires. The real decisions are where the record is assembled, who registers it in the registry, and who maintains the API contract defined by the harmonised standards.",{"type":129,"content":269},[270,271,274],"Only verified economic operators may register or modify passports, with identity established through a qualified electronic signature or seal or a high-assurance eID valid for up to three years, and the registry keeps a reference list of verified service providers. For reference implementations, the EU-funded CIRPASS-2 project runs 13 pilots across textiles, electronics, tyres and construction and publishes vocabularies and open-source tooling (",{"tag":150,"href":62,"children":272},[273],"CIRPASS-2","). In more than ten years of PIM work with Spryker and Pimcore, my experience is that this record is mostly a PIM integration exercise: data model, workspaces and who may edit what are the same governance questions as master data, now with a registry API and a legal deadline.",{"type":144,"level":145,"id":116,"text":117},{"type":129,"content":277},[278],"For a manufacturer or importer, it is worth market access itself. Once a delegated act applies, a product without a passport cannot be placed on the market, and an import cannot be released for free circulation until the registry entry and commodity code verify. No published study quantifies quote lift, win rates or cost per SKU for DPP work, so the numbers below are exposure, not return.",{"type":171,"ordered":172,"items":280},[281,289,294],[282,285,286,153],{"tag":133,"children":283},[284],"Market size:"," the Commission’s working plan puts the EU market for iron and steel at €152 billion (2023), furniture at €140 billion, textiles and apparel at €78 billion, tyres at €45 billion and aluminium at €40 billion, and says the newly regulated products account for over €1 trillion in annual EU sales (",{"tag":150,"href":51,"children":287},[288],"COM(2025) 187",[290,293],{"tag":133,"children":291},[292],"Public tenders:"," ESPR Article 65 requires green minimum requirements in public procurement, Article 74 lets Member States impose time-limited exclusion from public procurement as a penalty, and the regulation’s recital puts public procurement at 14% of EU GDP.",[295,298,299,301],{"tag":133,"children":296},[297],"Steel and aluminium:"," the same products already carry CBAM data duties; the definitive regime applies from 1 January 2026 and the Q3 2026 certificate price was published at €82.32 per tonne (",{"tag":150,"href":54,"children":300},[152],"). Emissions data collected for CBAM overlaps with what a steel passport is expected to need, though no official field mapping exists yet.",{"type":129,"content":303},[304,305,309,310,314],"For a head of e-commerce, PIM manager or product compliance lead, the useful deliverables are measurable: field coverage per SKU, the number of open gaps, and evidence traceability per value. Structured product data also pays off elsewhere, from search to ",{"tag":214,"to":306,"children":307},"\u002Fblog\u002Fschema-org-structured-data-b2b-shop",[308],"schema.org markup for B2B shops",", much as accessibility work under the ",{"tag":214,"to":311,"children":312},"\u002Fblog\u002Feuropean-accessibility-act-b2b-shop",[313],"European Accessibility Act"," improved more than compliance.",{"type":144,"level":145,"id":119,"text":120},{"type":129,"content":317},[318],"Do not use one when there are no source documents, because extraction without evidence is invention. Do not use one when the value is already structured in the ERP or a supplier feed. And do not let a model decide what to do about a gap: chasing a supplier, commissioning a test or marking a product as not yet compliant are business decisions with legal weight. For small catalogs with cooperative suppliers, a structured supplier template may be enough.",{"type":320,"head":321,"rows":330},"table",[322,324,326,328],[323],"Product group",[325],"Status (Oct 2026)",[327],"Earliest obligation",[329],"LLM extraction fit",[331,340,349,357,365,374],[332,334,336,338],[333],"Batteries",[335],"in law",[337],"18 Feb 2027",[339],"high: supplier and test documents",[341,343,345,347],[342],"Iron and steel",[344],"act planned for Q4 2026",[346],"act + at least 18 months",[348],"medium: CBAM and mill certificates",[350,352,354,355],[351],"Textiles, aluminium, tyres",[353],"indicative 2027",[346],[356],"high: composition declarations",[358,360,362,363],[359],"Furniture, mattresses",[361],"indicative 2028, 2029",[346],[364],"medium: many sub-suppliers",[366,368,370,372],[367],"Construction products",[369],"act indicated for Q2 2027",[371],"after the act",[373],"high: declarations of performance, EPDs",[375,377,379,381],[376],"Everything else",[378],"no act planned yet",[380],"none yet",[382],"wait; keep data structured",{"type":144,"level":145,"id":122,"text":123},{"type":171,"ordered":158,"items":385},[386,388,390,392,394,396,398,400],[387],"Map every SKU to its CN or TARIC code and to the product groups on the Commission’s plan.",[389],"Inventory evidence per Annex III element: where it lives, who owns it, whether it exists.",[391],"Decide granularity, model, batch or item, per product line once the act is known.",[393],"Pick identifiers and the data carrier, for example GTIN with GS1 Digital Link.",[395],"Build extraction with character-span provenance and gaps as a first-class result.",[397],"Version every record and keep evidence hash and reviewer decision per version.",[399],"Plan operator verification and registry enrolment, and choose a DPP service provider for the back-up copy.",[401],"Define who may update which field, and who signs off on a gap.",{"type":129,"content":403},[404,405,223],"A scoped DPP data-readiness engagement, per product group, from SKU mapping and evidence inventory to an extraction pipeline with a gap report wired into the PIM, is a straight extension of B2B commerce and PIM work, not legal advice or certification. If you want to plan one, see my ",{"tag":214,"to":406,"children":407},"\u002Fexpertise\u002Fb2b-ecommerce-developer",[408],"B2B e-commerce work",{"type":144,"level":145,"id":125,"text":126},{"type":171,"ordered":158,"items":411},[412,415,418,421,424,427,430,433,436,439,442],[413],{"tag":150,"href":31,"children":414},[37],[416],{"tag":150,"href":28,"children":417},[39],[419],{"tag":150,"href":42,"children":420},[41],[422],{"tag":150,"href":45,"children":423},[44],[425],{"tag":150,"href":48,"children":426},[47],[428],{"tag":150,"href":51,"children":429},[50],[431],{"tag":150,"href":54,"children":432},[53],[434],{"tag":150,"href":34,"children":435},[56],[437],{"tag":150,"href":59,"children":438},[58],[440],{"tag":150,"href":62,"children":441},[61],[443],{"tag":150,"href":65,"children":444},[64],[446,520,575,649],{"slug":447,"published":448,"minutes":449,"category":7,"tags":450,"keywords":456,"about":468,"sources":477,"cover":514,"og":515,"expertise":68,"locales":516,"lang":70,"title":517,"description":518,"coverAlt":519},"schema-org-structured-data-b2b-shop","2026-10-17",10,[451,452,453,454,455],"Schema.org","Structured data","B2B e-commerce","Technical SEO","Nuxt",[457,458,459,460,461,462,463,464,465,466,467],"schema.org b2b shop","product structured data b2b","merchant listing structured data","product snippet vs merchant listing","unitpricespecification referencequantity","productgroup variants structured data","organization schema vatid","b2b prices behind login seo","json-ld nuxt schema org","merchant return policy structured data","mpn gtin structured data",[469,471,474],{"name":451,"url":470},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSchema.org",{"name":472,"url":473},"JSON-LD","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON-LD",{"name":475,"url":476},"Business-to-business","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBusiness-to-business",[478,481,484,487,490,493,496,499,502,505,508,511],{"title":479,"url":480},"Google Search Central: Introduction to Product structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct",{"title":482,"url":483},"Google Search Central: Merchant listing (Product, Offer) structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fmerchant-listing",{"title":485,"url":486},"Google Search Central: Product snippet structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-snippet",{"title":488,"url":489},"Google Search Central: Product variant structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-variants",{"title":491,"url":492},"Google Search Central: Organization structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Forganization",{"title":494,"url":495},"Google Search Central: Merchant return policy structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Freturn-policy",{"title":497,"url":498},"Google Search Central: General structured data guidelines","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fsd-policies",{"title":500,"url":501},"Google Search Central: Generate structured data with JavaScript","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fgenerate-structured-data-with-javascript",{"title":503,"url":504},"Schema.org: Offer","https:\u002F\u002Fschema.org\u002FOffer",{"title":506,"url":507},"Schema.org: UnitPriceSpecification","https:\u002F\u002Fschema.org\u002FUnitPriceSpecification",{"title":509,"url":510},"Unhead: Product schema (defineProduct)","https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fschema-org\u002Fapi\u002Fschema\u002Fproduct",{"title":512,"url":513},"Nuxt SEO: Schema.org identity setup","https:\u002F\u002Fnuxtseo.com\u002Fdocs\u002Fschema-org\u002Fguides\u002Fsetup-identity","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fog.jpg",[70,71,72],"Schema.org structured data for B2B shops: prices behind logins, units and variants","Product markup for B2B shops: snippet or merchant listing, which price to publish, part numbers, unit pricing, variants, Organization and SSR in Nuxt.","A product rectangle with a framed outline and a small price slot hidden behind a low wall.",{"slug":521,"published":448,"minutes":6,"category":7,"tags":522,"keywords":527,"about":539,"sources":547,"cover":569,"og":570,"expertise":68,"locales":571,"lang":70,"title":572,"description":573,"coverAlt":574},"ai-assistant-b2b-shop-customer-support",[453,523,524,525,526],"AI assistant","Customer support","LLM agents","EU AI Act",[528,529,530,531,532,533,534,535,536,537,538],"ai assistant b2b shop","ai customer support b2b ecommerce","llm chatbot order status","ai agent customer service tools","chatbot liability air canada","klarna ai assistant results","human handoff chatbot design","eu ai act chatbot disclosure","owasp excessive agency","ai support resolution rate","b2b customer portal chatbot",[540,543,546],{"name":541,"url":542},"Customer service","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCustomer_service",{"name":544,"url":545},"Chatbot","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FChatbot",{"name":475,"url":476},[548,551,554,557,560,563,566],{"title":549,"url":550},"Klarna: AI assistant handles two-thirds of customer service chats in its first month (press release, 2024)","https:\u002F\u002Fwww.klarna.com\u002Finternational\u002Fpress\u002Fklarna-ai-assistant-handles-two-thirds-of-customer-service-chats-in-its-first-month\u002F",{"title":552,"url":553},"Entrepreneur: Klarna is hiring customer service agents again, according to its CEO (May 2025)","https:\u002F\u002Fwww.entrepreneur.com\u002Fbusiness-news\u002Fklarna-ceo-reverses-course-by-hiring-more-humans-not-ai\u002F491396",{"title":555,"url":556},"ABA Business Law Today: BC tribunal confirms companies remain liable for information provided by AI chatbot","https:\u002F\u002Fwww.americanbar.org\u002Fgroups\u002Fbusiness_law\u002Fresources\u002Fbusiness-law-today\u002F2024-february\u002Fbc-tribunal-confirms-companies-remain-liable-information-provided-ai-chatbot\u002F",{"title":558,"url":559},"OWASP GenAI Security Project: LLM06:2025 Excessive Agency","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm062025-excessive-agency\u002F",{"title":561,"url":562},"OWASP GenAI Security Project: LLM05:2025 Improper Output Handling","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm052025-improper-output-handling\u002F",{"title":564,"url":565},"EU AI Act, Article 50: Transparency obligations","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F50\u002F",{"title":567,"url":568},"Intercom: Fin pricing and billable outcomes","https:\u002F\u002Ffin.ai\u002Fpricing","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fog.jpg",[70,71,72],"An AI assistant for B2B shop support: tools, permissions and the human handoff","How to build an AI support assistant for a B2B shop: which requests to automate, tools that run in the customer context, handoff, AI Act and metrics.","A tall wall with one narrow gap; an arrow passes through it into a boxed enclosure of three squares, and another leads down to a tray.",{"slug":576,"published":448,"minutes":577,"category":7,"tags":578,"keywords":583,"about":595,"sources":605,"cover":642,"og":643,"expertise":644,"locales":645,"lang":70,"title":646,"description":647,"coverAlt":648},"vue-ai-chat-ui-streaming-accessibility",11,[579,455,580,581,582],"Vue","Accessibility","Streaming","AI chat",[584,585,586,587,588,589,590,591,592,593,594],"vue ai chat ui","nuxt llm streaming","sse vs fetch streaming","aria-live streaming text","accessible chat interface","abort fetch stream vue","dompurify markdown llm","role log chat","reduced motion chat ui","wcag 2.2 chat","screen reader streaming",[596,599,602],{"name":597,"url":598},"Web accessibility","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWeb_accessibility",{"name":600,"url":601},"Server-sent events","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-sent_events",{"name":603,"url":604},"Vue.js","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVue.js",[606,609,612,615,618,621,624,627,630,633,636,639],{"title":607,"url":608},"MDN: Using server-sent events","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FServer-sent_events\u002FUsing_server-sent_events",{"title":610,"url":611},"MDN: AbortController","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FAbortController",{"title":613,"url":614},"MDN: ReadableStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FReadableStream",{"title":616,"url":617},"MDN: TextDecoderStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FTextDecoderStream",{"title":619,"url":620},"MDN: ARIA log role","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAccessibility\u002FARIA\u002FReference\u002FRoles\u002Flog_role",{"title":622,"url":623},"W3C: Understanding SC 4.1.3 Status Messages","https:\u002F\u002Fwww.w3.org\u002FWAI\u002FWCAG22\u002FUnderstanding\u002Fstatus-messages.html",{"title":625,"url":626},"W3C WAI: What's new in WCAG 2.2","https:\u002F\u002Fwww.w3.org\u002FWAI\u002Fstandards-guidelines\u002Fwcag\u002Fnew-in-22\u002F",{"title":628,"url":629},"MDN: prefers-reduced-motion","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002F@media\u002Fprefers-reduced-motion",{"title":631,"url":632},"DOMPurify README","https:\u002F\u002Fgithub.com\u002Fcure53\u002FDOMPurify",{"title":634,"url":635},"markdown-it README","https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it",{"title":637,"url":638},"AI SDK docs: useChat","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-ui\u002Fchatbot",{"title":640,"url":641},"Vue docs: nextTick","https:\u002F\u002Fvuejs.org\u002Fapi\u002Fgeneral.html#nexttick","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fog.jpg","vue-nuxt-developer",[70,71,72],"Streaming AI chat in Vue and Nuxt: accessible by design","How to build a Vue or Nuxt AI chat UI: fetch streams, abort and retry, safe markdown rendering, aria-live announcements, keyboard support and reduced motion.","A message card with a careful caret, a dotted line opening into ripples and a check.",{"slug":650,"published":448,"minutes":6,"category":7,"tags":651,"keywords":656,"about":668,"sources":678,"cover":711,"og":712,"expertise":644,"locales":713,"lang":70,"title":714,"description":715,"coverAlt":716},"llm-translation-pipeline-i18n",[652,653,654,579,655],"Translation","i18n","LLM","Localization",[657,658,659,660,661,662,663,664,665,666,667],"llm translation pipeline","icu messageformat placeholders","vue i18n llm translation","translation memory llm","glossary enforcement translation","german informal sie du","hungarian translation quality llm","structured output json translation","machine translation post-editing","locale file validation","cldr plural categories",[669,672,675],{"name":670,"url":671},"Internationalization and localization","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInternationalization_and_localization",{"name":673,"url":674},"ICU MessageFormat","https:\u002F\u002Funicode-org.github.io\u002Ficu\u002Fuserguide\u002Fformat_parse\u002Fmessages\u002F",{"name":676,"url":677},"Vue I18n","https:\u002F\u002Fvue-i18n.intlify.dev\u002F",[679,681,684,687,690,693,696,699,702,705,708],{"title":680,"url":674},"Unicode ICU User Guide: Formatting Messages",{"title":682,"url":683},"Vue I18n: Message Format Syntax","https:\u002F\u002Fvue-i18n.intlify.dev\u002Fguide\u002Fessentials\u002Fsyntax",{"title":685,"url":686},"Nuxt i18n: Getting started","https:\u002F\u002Fi18n.nuxtjs.org\u002Fdocs\u002Fgetting-started",{"title":688,"url":689},"Unicode CLDR: Plural rules","https:\u002F\u002Fcldr.unicode.org\u002Findex\u002Fcldr-spec\u002Fplural-rules",{"title":691,"url":692},"OpenAI: Structured outputs","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fstructured-outputs",{"title":694,"url":695},"DeepL API: Glossaries","https:\u002F\u002Fdevelopers.deepl.com\u002Fdocs\u002Fapi-reference\u002Fglossaries",{"title":697,"url":698},"W3C: Localization vs. internationalization","https:\u002F\u002Fwww.w3.org\u002FInternational\u002Fquestions\u002Fqa-i18n",{"title":700,"url":701},"GNU gettext manual","https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgettext\u002Fmanual\u002Fgettext.html",{"title":703,"url":704},"RFC 5646: Tags for Identifying Languages","https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc5646",{"title":706,"url":707},"Rat für deutsche Rechtschreibung","https:\u002F\u002Fwww.rechtschreibrat.com\u002F",{"title":709,"url":710},"Microsoft Writing Style Guide","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fstyle-guide\u002Fwelcome\u002F","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fog.jpg",[70,71,72],"An LLM translation pipeline for i18n: glossary, placeholders and review","How to translate product and website strings with LLMs without breaking placeholders, plurals or tone: glossary, ICU messages, QA checks and review gates.","Three source cards, one translated card with a glossary ribbon, then a checked clipboard.",1792337027478]