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.

← All projects

Say hello

Have something in mind?

Send a note and tell us what you are trying to build, improve or understand. We can start from the idea, the existing product or the problem that needs solving.