Order Modification Request
Also known as: Order Edit, Order Edit Request, Order Modified, orders/edited, Post-Purchase Order Edit
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
| Platform | Event |
|---|---|
| Google Analytics 4 | Collect 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. |
| Adobe | Listen 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
Dimensions
Related Dimensions
Governance & Metadata
GitHub
catalog/events/order-modification-request.yml