Product/Offer JSON-LD Preflight / Project note
Validate product signals with a narrow offline profile
Product/Offer JSON-LD Preflight checks a deliberately narrow subset offline, giving teams deterministic status and issue paths without fetching remote contexts. It makes a small, repeatable validation profile useful as a focused preflight step.
- Our role
- Narrow validation profile and offline CLI
- Stage
- Internal tool
- Category
- Tools & automation
Profile Inputs To Issue Paths
Load Local Input
Read local JSON or saved HTML without fetching remote contexts.
Extract Recognized Data
Find supported Product and Offer structures within bounded local input.
Apply Narrow Rules
Check price, currency, availability, and exact local reference requirements.
Return Traceable Status
Emit PASS, INVALID, or ERROR with deterministic JSON-pointer-style issue paths.
Workflow illustration from source, not live UI: local JSON or saved HTML passes through bounded extraction and profile checks into status output with issue paths.
Define A Useful Validation Boundary
Product data needs a fast signal against rules the team can explain, not a vague promise that every JSON-LD consumer will accept it. We needed explicit coverage, precise issue locations, and a clear distinction between invalid input and an execution error.
Choose A Narrow Offline Profile
We accepted local JSON files and JSON-LD script blocks from saved HTML into a bounded offline CLI. The custom drawchicken-product-offer-v1 profile recognizes Product, name, and offers, requires an explicit Offer, checks finite nonnegative price and three uppercase ASCII currency letters, and permits exact local references. Results are deterministic PASS, INVALID, or ERROR with JSON-pointer-style paths.
Clear Status, Traceable Issues
The profile makes a narrow result easy to inspect: status identifies the outcome, while issue paths point to the affected price, currency, availability, or reference. That gives a reviewer concrete diagnostic detail without presenting the output as a live application or broader certification.
Saved Invalid Output Excerpt
{
"profile": "drawchicken-product-offer-v1",
"status": "INVALID",
"issues": [
{
"rule": "offer.price",
"path": "/documents/0/offers/0/price"
},
{
"rule": "offer.currency",
"path": "/documents/0/offers/0/priceCurrency"
},
{
"rule": "offer.availability",
"path": "/documents/0/offers/0/availability"
},
{
"rule": "reference.missing",
"path": "/documents/0/offers/1"
}
]
}Actual saved synthetic INVALID output from the corrected accepted local package, shown as a typeset excerpt rather than live tool UI. It records issue paths for price, currency, availability, and a missing reference.