Skip to content

Fulfillment extension and order events are disconnected #347

@hemanth

Description

@hemanth

Problem

The fulfillment extension defines shipping methods, destinations, and options at checkout time. The order capability defines fulfillment events (shipped, delivered, etc.) after purchase. But there's no connection between the two.

At checkout, the buyer picks "Express Shipping" (fulfillment option express). After purchase, the order gets a fulfillment event saying "shipped." Nothing ties the event back to the option that was selected. The agent can't tell the buyer "your express order shipped" vs "your standard order shipped" because the event doesn't reference the fulfillment group or option.

What's missing

  • Fulfillment events should reference the fulfillment method/group/option from checkout
  • A "where is my order" query that returns fulfillment progress against what was promised
  • Carrier and tracking info as structured fields on fulfillment events (not just free text)
  • Estimated delivery window updates -- if "2-3 business days" changes to "5-7 days," the platform should know

Suggestion

Link order fulfillment events to checkout fulfillment selections:

{
  "fulfillment_events": [
    {
      "id": "evt_1",
      "type": "shipped",
      "fulfillment_method_id": "shipping_1",
      "fulfillment_option_id": "express",
      "line_item_ids": ["li_1", "li_2"],
      "carrier": "UPS",
      "tracking_number": "1Z999AA10123456784",
      "tracking_url": "https://ups.com/track?num=1Z999AA10123456784",
      "estimated_delivery": {
        "earliest": "2026-04-11T00:00:00Z",
        "latest": "2026-04-12T00:00:00Z"
      },
      "timestamp": "2026-04-09T14:30:00Z"
    }
  ]
}

The fulfillment_method_id and fulfillment_option_id tie back to checkout. Carrier and tracking are structured, not buried in free text. Delivery estimates are a range, not a single date.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions