← Back to Events

Order Modification Request

Also known as: Order Edit, Order Edit Request, Order Modified, orders/edited, Post-Purchase Order Edit

OperationsOrder ManagementPost-PurchaseOrder EditingE-commerceRetail

Records acceptance or rejection of a request to change items in a placed order, helping teams understand editing demand and barriers. Approval does not necessarily mean the change was applied.

Event Serialization

Count distinct source_namespace + modification_id; use the latest record_revision for corrected reporting.

Business Use Case

1️⃣ Identify common reasons customers cannot change placed orders. 2️⃣ Compare self-service and assisted requests to improve order editing. 3️⃣ Track demand for item additions, removals, quantity changes and variant changes.

Business Criticality

Medium

Journey / Navigation Area

Post-Purchase Order Management

Owning Function

Customer Service

Scope

Event

Calculation Notes

1️⃣ Count one atomic final decision per request at decision_time, regardless of lines. Exclude opens, drafts, pending and technical failures. 2️⃣ Send the initial snapshot only. Retries reuse IDs; quarantine missing IDs. Corrections replace prior revisions without adding counts. 3️⃣ Exclude cart edits, cancellations, returns, refunds and delivery-only changes. Removing all items cancels; reversals add no request. 4️⃣ Keep each proposed operation and stable line ID, including mixed or rejected changes. Approval does not prove application. 5️⃣ Rejected or unapplied requests have zero delta. Later application adds no request; use financial records for later values. 6️⃣ Gate delivery on consent and access rules in every channel. Omit customer IDs, personal details and free text; order IDs remain linkable. 7️⃣ Use configured edit windows. Browser coverage is incomplete. CEDDL attributes are extensions; canonical records govern corrected reports.

Platform Events

PlatformEvent
Google Analytics 4Collect custom event order_modification_request. Explicitly map scalar parameters; encode applied_at_decision as 1/0. Register decision, request_channel and rejection_reason as event-scoped custom dimensions when needed. Keep IDs for export joins. requested_changes is tag input only: omit the object array from collection and join commerce details by source_namespace and modification_id. Preserve decision_time; backdate only within supported limits. Use no ecommerce object. Native counts and dimensions may include duplicate deliveries or stale initial snapshots; corrected reporting requires the canonical source.
AdobeListen for order_modification_request in Adobe Client Data Layer. Allocate an available Analytics custom counter and map scalars to configured variables, or configure Web SDK collection. A layer push alone sends no analytics. Declare an XDM field group under the organization's tenant namespace; _openkpis illustrates that namespace and must be adapted before ingestion. requested_changes is an object array: type, line_id, old_sku, old_variant, new_sku and new_variant are strings; before_qty and after_qty are nonnegative integers. Types are add, remove, quantity and variant; absent identities use empty strings and absent quantities use zero. _id uses length-prefixed namespace and request ID; timestamp equals decision_time. An Analytics counter cannot retain operation detail, and XDM _id alone does not serialize Analytics events.

Data Mappings

W3 Data Layer
{
  "digitalData": {
    "event": [
      {
        "eventInfo": {
          "eventName": "order_modification_request"
        },
        "attributes": {
          "source_namespace": "retail",
          "modification_id": "mod-1",
          "transaction_id": "txn-1",
          "record_revision": 1,
          "decision_time": "2026-10-15T08:00:00Z",
          "decision": "accepted",
          "request_channel": "web",
          "requested_changes": [
            {
              "type": "quantity",
              "line_id": "line-1",
              "old_sku": "SKU-1",
              "old_variant": "blue",
              "new_sku": "SKU-1",
              "new_variant": "blue",
              "before_qty": 1,
              "after_qty": 2
            }
          ],
          "currency": "USD",
          "applied_at_decision": true,
          "value_delta": 20,
          "previous_merchandise_total": 100,
          "revised_merchandise_total": 120,
          "order_status": "processing"
        }
      }
    ]
  }
}
GA4 Data Layer
{
  "event": "order_modification_request",
  "source_namespace": "retail",
  "modification_id": "mod-1",
  "transaction_id": "txn-1",
  "record_revision": 1,
  "decision_time": "2026-10-15T08:00:00Z",
  "decision": "accepted",
  "request_channel": "web",
  "requested_changes": [
    {
      "type": "quantity",
      "line_id": "line-1",
      "old_sku": "SKU-1",
      "old_variant": "blue",
      "new_sku": "SKU-1",
      "new_variant": "blue",
      "before_qty": 1,
      "after_qty": 2
    }
  ],
  "currency": "USD",
  "applied_at_decision": 1,
  "value_delta": 20,
  "previous_merchandise_total": 100,
  "revised_merchandise_total": 120,
  "order_status": "processing"
}
Adobe Client Data Layer
[
  {
    "event": "order_modification_request",
    "eventInfo": {
      "source_namespace": "retail",
      "modification_id": "mod-1",
      "transaction_id": "txn-1",
      "record_revision": 1,
      "decision_time": "2026-10-15T08:00:00Z",
      "decision": "accepted",
      "request_channel": "web",
      "requested_changes": [
        {
          "type": "quantity",
          "line_id": "line-1",
          "old_sku": "SKU-1",
          "old_variant": "blue",
          "new_sku": "SKU-1",
          "new_variant": "blue",
          "before_qty": 1,
          "after_qty": 2
        }
      ],
      "currency": "USD",
      "applied_at_decision": true,
      "value_delta": 20,
      "previous_merchandise_total": 100,
      "revised_merchandise_total": 120,
      "order_status": "processing"
    }
  }
]
XDM Mapping
{
  "_id": "6:retail5:mod-1",
  "timestamp": "2026-10-15T08:00:00Z",
  "eventType": "order_modification_request",
  "identityMap": {},
  "_openkpis": {
    "orderModification": {
      "source_namespace": "retail",
      "modification_id": "mod-1",
      "transaction_id": "txn-1",
      "record_revision": 1,
      "decision_time": "2026-10-15T08:00:00Z",
      "decision": "accepted",
      "request_channel": "web",
      "requested_changes": [
        {
          "type": "quantity",
          "line_id": "line-1",
          "old_sku": "SKU-1",
          "old_variant": "blue",
          "new_sku": "SKU-1",
          "new_variant": "blue",
          "before_qty": 1,
          "after_qty": 2
        }
      ],
      "currency": "USD",
      "applied_at_decision": true,
      "value_delta": 20,
      "previous_merchandise_total": 100,
      "revised_merchandise_total": 120,
      "order_status": "processing"
    }
  }
}
Parameters
{
  "currency": "string, required: ISO 4217 order currency; sum deltas separately unless a conversion rule is configured.",
  "decision": "string, required: accepted or rejected; exclude pending and partially accepted requests.",
  "value_delta": "number, required: revised merchandise total minus previous merchandise total if applied; otherwise zero.",
  "order_status": "string, optional: controlled original-order state at decision time.",
  "decision_time": "datetime, required: original definitive decision time in UTC; preserve through retries and corrections.",
  "transaction_id": "string, required: original placed-order ID within source_namespace; never the request deduplication key.",
  "modification_id": "string, required: stable request ID; retries reuse it; new requests receive new IDs.",
  "record_revision": "integer, required: starts at 1; increases for each correction; retries preserve the revision.",
  "request_channel": "string, required: web, app or agent; require equivalent definitive decision coverage.",
  "rejection_reason": "string, required for rejection: controlled reason code such as already_picked; omit for acceptance.",
  "source_namespace": "string, required: documented commerce-system namespace scoping order and request IDs.",
  "requested_changes": "array, required: proposed operation objects; structure and types are defined in adobe_event.",
  "applied_at_decision": "boolean, required: true only for an accepted change confirmed applied at decision time.",
  "revised_merchandise_total": "number, required if applied: whole-order total after change, after discounts, excluding tax and shipping.",
  "previous_merchandise_total": "number, required if applied: whole-order total before change, after discounts, excluding tax and shipping."
}

Source Data

Commerce request decisions and correction history with permitted web, app and assisted-service analytics

Dependencies

Prerequisite: List the dependencies required for this Event

Dimensions:

Report Attributes

Requested change Request decision Rejection reason Service channel Order status

Segment Eligibility

Group decided requests by requested change, approval or rejection, rejection reason, service channel or order status. Customer groups require permitted linkage. Compare channels only where decision coverage is comparable.

Governance

Data SensitivityRestricted
Contains PIIYes - This Event contains Personally Identifiable Information

Dimensions

Related Dimensions

Governance & Metadata

Created bydevyendarm
Created on10/12/2026
Last modified bydevyendarm
Last modified on10/15/2026
StatusPUBLISHED

GitHub

View related Pull Requestcatalog/events/order-modification-request.yml

Community Discussion