Skip to content

Services

126 business services across 10 domains.


customer

ID Name Description Object Events
register-customer Register Customer Creates a new customer identity record with authentication credentials… customer customer-registered
authenticate-customer Authenticate Customer Validates customer credentials and returns an authenticated session to… customer customer-identified
search-customer Search Customer Searches for customers by email, phone, loyalty card, or name, returni… customer
merge-customer Merge Customer Merges two duplicate customer identity records into a single canonical… customer customer-merged
retrieve-customer-profile Retrieve Customer Profile Returns the full customer profile including contact data, preferences,… customer
update-customer-profile Update Customer Profile Updates one or more fields of the customer profile and publishes a cus… customer customer-updated
manage-customer-preferences Manage Customer Preferences Reads or writes a customer's communication channel, language, and noti… customer customer-preferences-updated
record-consent Record Consent Records a new consent grant for a customer for a specific purpose (mar… consent customer-consent-updated
update-consent Update Consent Updates the scope or channel of an existing consent record. consent customer-consent-updated
revoke-consent Revoke Consent Revokes a customer's consent for one or more purposes, triggering down… consent customer-consent-revoked
calculate-segment Calculate Segment Evaluates segmentation rules against customer profile and behavioural … customer customer-segment-calculated
assign-segment Assign Segment Assigns a customer to one or more computed segments and stores the ass… customer customer-segment-assigned
retrieve-segment Retrieve Segment Returns the current segment assignments for a customer, including segm… customer
retrieve-customer-history Retrieve Customer History Returns the customer's purchase history, returns, open orders, and loy… customer
create-clienteling-session Create Clienteling Session Opens a clienteling session linking a store associate to a customer, r… clienteling-session clienteling-session-created
record-clienteling-interaction Record Clienteling Interaction Records a note, product recommendation, or outcome from a clienteling … clienteling-session clienteling-interaction-recorded
verify-identity Verify Identity Performs additional identity verification (e.g. OTP, document check) f… customer customer-registered
generate-recommendation Generate Recommendation Generates an explainable product or next-best-action recommendation us… decision-record recommendation-generated
record-recommendation-response Record Recommendation Response Records whether a customer or associate accepted, declined, or deferre… decision-record recommendation-responded
propose-decision Propose Decision Records a candidate automated decision with purpose, evidence summary,… decision-record decision-proposed
approve-decision Approve Decision Records authorised human or policy approval for a proposed decision be… decision-record decision-approved
override-decision Override Decision Records a human override or rejection of a proposed automated decision… decision-record decision-overridden
execute-decision Execute Decision Records execution of an approved decision and a reference to the autho… decision-record decision-executed
produce-sentiment-insight Produce Sentiment Insight Produces a purpose-bound, aggregated sentiment or engagement insight f… sentiment-insight sentiment-insight-produced

commerce

ID Name Description Object Events
create-basket Create Basket Creates a new empty basket session for a customer on a given channel, … basket basket-created
add-basket-item Add Basket Item Adds a product variant and quantity to an existing basket, triggering … basket basket-updated
remove-basket-item Remove Basket Item Removes a specific line from the basket and recalculates basket totals… basket basket-updated
calculate-basket Calculate Basket Recalculates basket totals applying current prices, active promotions,… basket basket-calculated
checkout-basket Checkout Basket Marks the basket as checked out and initiates the checkout flow, locki… basket basket-checked-out
calculate-totals Calculate Totals Computes the final order totals including subtotal, promotions, taxes,… basket basket-calculated
create-product Create Product Creates a new product record in the catalogue with base attributes, va… product product-created
update-product Update Product Updates one or more fields of an existing product record, triggering r… product product-updated
publish-catalogue Publish Catalogue Publishes a catalogue version or product set to all assigned channels,… catalogue catalogue-published
unpublish-catalogue Unpublish Catalogue Retracts a catalogue or product set from active channels, removing it … catalogue catalogue-archived
assign-catalogue-to-channel Assign Catalogue to Channel Associates a catalogue scope with a specific channel, controlling whic… catalogue catalogue-updated
create-channel Create Channel Creates a new commerce channel definition with its configuration (type… channel channel-activated
activate-channel Activate Channel Activates a channel for trading, making it visible to customers and li… channel channel-activated
deactivate-channel Deactivate Channel Deactivates a channel, preventing new orders while preserving historic… channel channel-deactivated
assign-price-list-to-channel Assign Price List to Channel Binds a price list to a channel so that selling prices on that touchpo… channel channel-updated
create-subscription Create Subscription Creates a new subscription plan for a customer, defining product, freq… subscription subscription-created
activate-subscription Activate Subscription Activates a subscription, starting the recurring order and payment sch… subscription subscription-activated
pause-subscription Pause Subscription Pauses an active subscription, suspending the recurring schedule witho… subscription subscription-paused
cancel-subscription Cancel Subscription Cancels an active or paused subscription, stopping future renewals and… subscription subscription-cancelled
renew-subscription Renew Subscription Triggers a subscription renewal cycle: generates a new order, requests… subscription subscription-renewed

promotion

ID Name Description Object Events
apply-promotions Apply Promotions Applies all eligible promotions to a basket and returns the updated ba… promotion promotion-applied
evaluate-promotions Evaluate Promotions Evaluates which promotions are eligible for a given basket, customer, … promotion promotion-evaluated
validate-coupon Validate Coupon Validates a coupon code against usage limits, expiry, and basket eligi… coupon coupon-validated
redeem-coupon Redeem Coupon Redeems a valid coupon, marking it as used and returning the applicabl… coupon coupon-redeemed
issue-voucher Issue Voucher Issues a new gift voucher or store credit with a specified value, gene… voucher voucher-issued
validate-voucher Validate Voucher Validates a voucher code against balance, expiry, and channel eligibil… voucher voucher-validated
redeem-voucher Redeem Voucher Redeems a voucher for the specified amount, debiting its balance and r… voucher voucher-redeemed
cancel-voucher Cancel Voucher Cancels an unused or partially used voucher, zeroing its balance and v… voucher voucher-cancelled
activate-sponsored-offer Activate Sponsored Offer Activates a consent-aware sponsored offer for approved channels, audie… sponsored-offer sponsored-offer-activated
record-sponsored-offer-exposure Record Sponsored Offer Exposure Records that an eligible customer or anonymous session was served an a… sponsored-offer sponsored-offer-exposed
attribute-sponsored-offer Attribute Sponsored Offer Records a closed-loop attribution outcome using approved exposure, ord… sponsored-offer sponsored-offer-attributed

order

ID Name Description Object Events
create-order Create Order Creates a new order record from a checked-out basket, assigning an ord… order order-created
validate-order Validate Order Validates an order against business rules (stock, pricing, address, pa… order order-validated
confirm-order Confirm Order Confirms a validated order, transitioning it to confirmed state and tr… order order-confirmed
modify-order Modify Order Applies an allowed modification to an in-flight order (quantity change… order order-modified
cancel-order Cancel Order Cancels an order, triggering inventory release, payment void or refund… order order-cancelled
track-order Track Order Returns the current fulfilment status and tracking events for an order… order
close-order Close Order Closes a fully fulfilled and settled order, archiving it and releasing… order order-closed
split-order Split Order Splits a multi-line order into two or more fulfilment orders, each des… order order-split
route-order Route Order Determines and assigns the optimal fulfilment node for each order line… order order-routed
reassign-fulfillment-location Reassign Fulfillment Location Reassigns a fulfilment order line to an alternative node when the orig… order fulfillment-location-reassigned

inventory

ID Name Description Object Events
check-availability Check Availability Returns the available-to-promise (ATP) quantity for one or more SKUs a… inventory
calculate-atp Calculate ATP Computes the ATP figure by subtracting reservations and safety stock f… inventory atp-calculated
retrieve-location-stock Retrieve Location Stock Returns the full stock ledger for a specific location (DC or store), i… inventory
reserve-inventory Reserve Inventory Creates a soft reservation for a quantity of a SKU at the best availab… reservation inventory-reserved
confirm-reservation Confirm Reservation Converts a soft reservation to a confirmed reservation on order placem… reservation reservation-confirmed
release-reservation Release Reservation Releases a soft or confirmed reservation, restoring the ATP at the sou… reservation inventory-released
expire-reservation Expire Reservation Expires a stale reservation that has exceeded its time-to-live, automa… reservation reservation-expired
allocate-inventory Allocate Inventory Hard-allocates a specific quantity at a specific node to a fulfilment … inventory inventory-allocated
reallocate-inventory Reallocate Inventory Moves a hard allocation from one node to another when the original nod… inventory inventory-reallocated
release-allocation Release Allocation Releases a hard allocation on order cancellation or exception, restori… inventory inventory-allocation-released
adjust-inventory Adjust Inventory Posts a stock adjustment (receipt, sale correction, damage, write-off)… inventory inventory-adjusted
count-inventory Count Inventory Records the results of a physical stock count, calculating and posting… inventory inventory-counted
transfer-inventory Transfer Inventory Initiates or records an inter-location stock transfer, adjusting both … inventory inventory-transferred
identify-item Identify Item Resolves a physical retail item to a SKU using an approved identificat… inventory item-identified
detect-identification-anomaly Detect Identification Anomaly Emits evidence that an observed item does not match an expected scan o… loss-prevention-case item-identification-anomaly-detected

fulfillment

ID Name Description Object Events
generate-picking Generate Picking Creates a picking task for a fulfilment order line, assigning it to a … picking-task picking-started
confirm-picking Confirm Picking Marks a picking task as completed, recording actual quantities picked … picking-task picking-completed
pack-shipment Pack Shipment Records the packing of a shipment, capturing parcel dimensions, weight… shipment shipment-packed
ship-order Ship Order Dispatches a packed shipment to a carrier, generating a tracking numbe… shipment shipment-dispatched
deliver-order Deliver Order Records the successful delivery of a shipment to the customer's addres… shipment shipment-delivered
collect-order Collect Order Records the customer's collection of a click-and-collect or BOPIS orde… shipment shipment-delivered
request-return Request Return Initiates a return request for one or more items from a completed orde… return return-requested
authorize-return Authorize Return Evaluates a return request against return policy and authorises it, is… return return-authorized
receive-return Receive Return Records the physical receipt of returned items at the destination (sto… return return-received
inspect-return Inspect Return Inspects received return items for condition, grading them as resalabl… return return-inspected
process-return Process Return Finalises the return: triggers inventory restock or disposal, and init… return return-accepted
request-exchange Request Exchange Initiates an exchange request, linking a return authorisation with a r… exchange exchange-requested
authorize-exchange Authorize Exchange Authorises an exchange by confirming the return is valid and the repla… exchange exchange-authorized
process-exchange Process Exchange Completes the exchange: closes the return, creates the replacement ord… exchange exchange-completed
get-available-slots Get Available Slots Returns available delivery time slots for a given location, date range… delivery-slot
reserve-delivery-slot Reserve Delivery Slot Soft-reserves a delivery slot for a customer during the checkout flow. delivery-slot delivery-slot-reserved
confirm-delivery-slot Confirm Delivery Slot Hard-confirms a delivery slot on order placement, removing it from the… delivery-slot delivery-slot-confirmed
release-delivery-slot Release Delivery Slot Releases a previously reserved delivery slot, making it available agai… delivery-slot delivery-slot-released
create-service-order Create Service Order Creates a service, repair, installation, or maintenance commitment lin… service-order service-order-created
schedule-service-order Schedule Service Order Assigns an appointment, service location, or fulfilment resource to an… service-order service-order-scheduled
complete-service-order Complete Service Order Records verified completion of a service order and any outcome, parts … service-order service-order-completed

pricing

ID Name Description Object Events
retrieve-price Retrieve Price Returns the current effective selling price for a SKU on a given chann… price
calculate-price Calculate Price Calculates the final selling price for a basket line, resolving price … price price-calculated
apply-price-list Apply Price List Applies a named price list to a channel or transaction context, making… price price-list-applied
calculate-markdown Calculate Markdown Calculates and applies a markdown discount to a product's selling pric… price markdown-calculated

loyalty

ID Name Description Object Events
enroll-member Enroll Member Enrolls a customer in the loyalty programme, creating a loyalty accoun… loyalty-member loyalty-member-enrolled
calculate-points Calculate Points Calculates the points to be earned for a transaction based on accrual … loyalty-account loyalty-points-calculated
issue-points Issue Points Credits the calculated points to a member's loyalty account, updating … loyalty-account loyalty-points-issued
redeem-points Redeem Points Debits a specified number of points from a loyalty account as a paymen… loyalty-account loyalty-points-redeemed
calculate-benefits Calculate Benefits Evaluates the member's tier and active promotions to determine applica… loyalty-account loyalty-benefits-calculated
manage-loyalty-tiers Manage Loyalty Tiers Creates, updates, or deletes tier definitions (thresholds, names, bene… loyalty-member
manage-accrual-rules Manage Accrual Rules Manages the earn rules that determine how points are calculated per pr… loyalty-account
manage-member-lifecycle Manage Member Lifecycle Handles member lifecycle policies: account expiry, re-activation, dorm… loyalty-member loyalty-member-enrolled
manage-loyalty-catalogue Manage Loyalty Catalogue Manages the rewards catalogue: adds, updates, or retires redeemable re… loyalty-account

payment

ID Name Description Object Events
authorize-payment Authorize Payment Requests payment authorisation from the PSP for the specified amount a… payment payment-authorized
capture-payment Capture Payment Captures a previously authorised payment amount, triggering the settle… payment payment-captured
void-payment Void Payment Voids an authorisation before capture, releasing the hold on the custo… payment payment-voided
refund-payment Refund Payment Issues a full or partial refund against a captured transaction, credit… payment payment-refunded
settle-payment Settle Payment Records final payment settlement, reconciling the captured amount agai… payment payment-settled

store

ID Name Description Object Events
open-store-day Open Store Day Opens the store trading day, recording the opening time, cash float, a… store-day store-day-opened
close-store-day Close Store Day Closes the store trading day, recording the closing cash count, daily … store-day store-day-closed
assign-store-task Assign Store Task Creates and assigns an operational task (replenishment, cleaning, visu… store-task store-task-assigned
complete-store-task Complete Store Task Records the completion of an assigned store task, capturing the comple… store-task store-task-completed
detect-transaction-anomaly Detect Transaction Anomaly Detects a potentially material checkout or refund anomaly and records … loss-prevention-case transaction-anomaly-detected
open-loss-prevention-case Open Loss Prevention Case Opens a case from one or more anomaly signals for triage under configu… loss-prevention-case loss-prevention-case-opened
resolve-loss-prevention-case Resolve Loss Prevention Case Records the verified outcome of a loss-prevention case, including fals… loss-prevention-case loss-prevention-case-resolved
catalogs/services.yaml
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
services:
- id: register-customer
  name: Register Customer
  domain: customer
  object: customer
  events:
  - customer-registered
  description: Creates a new customer identity record with authentication credentials
    and returns the resolved customer ID.
- id: authenticate-customer
  name: Authenticate Customer
  domain: customer
  object: customer
  events:
  - customer-identified
  description: Validates customer credentials and returns an authenticated session
    token for subsequent service calls.
- id: search-customer
  name: Search Customer
  domain: customer
  object: customer
  events: []
  description: Searches for customers by email, phone, loyalty card, or name, returning
    a ranked list of candidate matches.
- id: merge-customer
  name: Merge Customer
  domain: customer
  object: customer
  events:
  - customer-merged
  description: Merges two duplicate customer identity records into a single canonical
    record, preserving all history.
- id: retrieve-customer-profile
  name: Retrieve Customer Profile
  domain: customer
  object: customer
  events: []
  description: Returns the full customer profile including contact data, preferences,
    and behavioural attributes for a given customer ID.
- id: update-customer-profile
  name: Update Customer Profile
  domain: customer
  object: customer
  events:
  - customer-updated
  description: Updates one or more fields of the customer profile and publishes a
    customer-updated event.
- id: manage-customer-preferences
  name: Manage Customer Preferences
  domain: customer
  object: customer
  events:
  - customer-preferences-updated
  description: Reads or writes a customer's communication channel, language, and notification
    preferences.
- id: record-consent
  name: Record Consent
  domain: customer
  object: consent
  events:
  - customer-consent-updated
  description: Records a new consent grant for a customer for a specific purpose (marketing,
    profiling, data sharing) with timestamp and channel.
- id: update-consent
  name: Update Consent
  domain: customer
  object: consent
  events:
  - customer-consent-updated
  description: Updates the scope or channel of an existing consent record.
- id: revoke-consent
  name: Revoke Consent
  domain: customer
  object: consent
  events:
  - customer-consent-revoked
  description: Revokes a customer's consent for one or more purposes, triggering downstream
    suppression actions.
- id: calculate-segment
  name: Calculate Segment
  domain: customer
  object: customer
  events:
  - customer-segment-calculated
  description: Evaluates segmentation rules against customer profile and behavioural
    data, determining segment membership.
- id: assign-segment
  name: Assign Segment
  domain: customer
  object: customer
  events:
  - customer-segment-assigned
  description: Assigns a customer to one or more computed segments and stores the
    assignment with effective date.
- id: retrieve-segment
  name: Retrieve Segment
  domain: customer
  object: customer
  events: []
  description: Returns the current segment assignments for a customer, including segment
    metadata and assignment date.
- id: retrieve-customer-history
  name: Retrieve Customer History
  domain: customer
  object: customer
  events: []
  description: Returns the customer's purchase history, returns, open orders, and
    loyalty balance for use by a store associate.
- id: create-clienteling-session
  name: Create Clienteling Session
  domain: customer
  object: clienteling-session
  events:
  - clienteling-session-created
  description: Opens a clienteling session linking a store associate to a customer,
    recording the context (store, channel, purpose).
- id: record-clienteling-interaction
  name: Record Clienteling Interaction
  domain: customer
  object: clienteling-session
  events:
  - clienteling-interaction-recorded
  description: Records a note, product recommendation, or outcome from a clienteling
    session.
- id: create-basket
  name: Create Basket
  domain: commerce
  object: basket
  events:
  - basket-created
  description: Creates a new empty basket session for a customer on a given channel,
    returning the basket ID for subsequent item additions.
- id: add-basket-item
  name: Add Basket Item
  domain: commerce
  object: basket
  events:
  - basket-updated
  description: Adds a product variant and quantity to an existing basket, triggering
    real-time price resolution and availability check.
- id: remove-basket-item
  name: Remove Basket Item
  domain: commerce
  object: basket
  events:
  - basket-updated
  description: Removes a specific line from the basket and recalculates basket totals.
- id: calculate-basket
  name: Calculate Basket
  domain: commerce
  object: basket
  events:
  - basket-calculated
  description: Recalculates basket totals applying current prices, active promotions,
    and tax rules, returning the updated basket summary.
- id: checkout-basket
  name: Checkout Basket
  domain: commerce
  object: basket
  events:
  - basket-checked-out
  description: Marks the basket as checked out and initiates the checkout flow, locking
    the basket from further modification.
- id: calculate-totals
  name: Calculate Totals
  domain: commerce
  object: basket
  events:
  - basket-calculated
  description: Computes the final order totals including subtotal, promotions, taxes,
    shipping, and voucher deductions.
- id: apply-promotions
  name: Apply Promotions
  domain: promotion
  object: promotion
  events:
  - promotion-applied
  description: Applies all eligible promotions to a basket and returns the updated
    basket with discounts itemised by promotion.
- id: create-order
  name: Create Order
  domain: order
  object: order
  events:
  - order-created
  description: Creates a new order record from a checked-out basket, assigning an
    order ID and setting the initial order state.
- id: validate-order
  name: Validate Order
  domain: order
  object: order
  events:
  - order-validated
  description: Validates an order against business rules (stock, pricing, address,
    payment) before confirmation.
- id: confirm-order
  name: Confirm Order
  domain: order
  object: order
  events:
  - order-confirmed
  description: Confirms a validated order, transitioning it to confirmed state and
    triggering fulfilment initiation.
- id: modify-order
  name: Modify Order
  domain: order
  object: order
  events:
  - order-modified
  description: Applies an allowed modification to an in-flight order (quantity change,
    address update) within policy constraints.
- id: cancel-order
  name: Cancel Order
  domain: order
  object: order
  events:
  - order-cancelled
  description: Cancels an order, triggering inventory release, payment void or refund,
    and customer notification.
- id: track-order
  name: Track Order
  domain: order
  object: order
  events: []
  description: Returns the current fulfilment status and tracking events for an order
    or shipment.
- id: close-order
  name: Close Order
  domain: order
  object: order
  events:
  - order-closed
  description: Closes a fully fulfilled and settled order, archiving it and releasing
    any residual holds.
- id: split-order
  name: Split Order
  domain: order
  object: order
  events:
  - order-split
  description: Splits a multi-line order into two or more fulfilment orders, each
    destined for a different node or carrier.
- id: route-order
  name: Route Order
  domain: order
  object: order
  events:
  - order-routed
  description: Determines and assigns the optimal fulfilment node for each order line
    based on ATP and proximity rules.
- id: reassign-fulfillment-location
  name: Reassign Fulfillment Location
  domain: order
  object: order
  events:
  - fulfillment-location-reassigned
  description: Reassigns a fulfilment order line to an alternative node when the originally
    assigned node cannot fulfil.
- id: check-availability
  name: Check Availability
  domain: inventory
  object: inventory
  events: []
  description: Returns the available-to-promise (ATP) quantity for one or more SKUs
    at a given location or across all nodes.
- id: calculate-atp
  name: Calculate ATP
  domain: inventory
  object: inventory
  events:
  - atp-calculated
  description: Computes the ATP figure by subtracting reservations and safety stock
    from on-hand quantity.
- id: retrieve-location-stock
  name: Retrieve Location Stock
  domain: inventory
  object: inventory
  events: []
  description: Returns the full stock ledger for a specific location (DC or store),
    including on-hand, reserved, and allocated quantities.
- id: reserve-inventory
  name: Reserve Inventory
  domain: inventory
  object: reservation
  events:
  - inventory-reserved
  description: Creates a soft reservation for a quantity of a SKU at the best available
    node, decrementing the ATP.
- id: confirm-reservation
  name: Confirm Reservation
  domain: inventory
  object: reservation
  events:
  - reservation-confirmed
  description: Converts a soft reservation to a confirmed reservation on order placement.
- id: release-reservation
  name: Release Reservation
  domain: inventory
  object: reservation
  events:
  - inventory-released
  description: Releases a soft or confirmed reservation, restoring the ATP at the
    source node.
- id: expire-reservation
  name: Expire Reservation
  domain: inventory
  object: reservation
  events:
  - reservation-expired
  description: Expires a stale reservation that has exceeded its time-to-live, automatically
    releasing the stock.
- id: allocate-inventory
  name: Allocate Inventory
  domain: inventory
  object: inventory
  events:
  - inventory-allocated
  description: Hard-allocates a specific quantity at a specific node to a fulfilment
    order, creating a committed stock record.
- id: reallocate-inventory
  name: Reallocate Inventory
  domain: inventory
  object: inventory
  events:
  - inventory-reallocated
  description: Moves a hard allocation from one node to another when the original
    node cannot fulfil.
- id: release-allocation
  name: Release Allocation
  domain: inventory
  object: inventory
  events:
  - inventory-allocation-released
  description: Releases a hard allocation on order cancellation or exception, restoring
    the node's available stock.
- id: adjust-inventory
  name: Adjust Inventory
  domain: inventory
  object: inventory
  events:
  - inventory-adjusted
  description: Posts a stock adjustment (receipt, sale correction, damage, write-off)
    to the store inventory ledger.
- id: count-inventory
  name: Count Inventory
  domain: inventory
  object: inventory
  events:
  - inventory-counted
  description: Records the results of a physical stock count, calculating and posting
    the variance to the ledger.
- id: transfer-inventory
  name: Transfer Inventory
  domain: inventory
  object: inventory
  events:
  - inventory-transferred
  description: Initiates or records an inter-location stock transfer, adjusting both
    source and destination ledgers.
- id: generate-picking
  name: Generate Picking
  domain: fulfillment
  object: picking-task
  events:
  - picking-started
  description: Creates a picking task for a fulfilment order line, assigning it to
    a pick zone and generating the pick list.
- id: confirm-picking
  name: Confirm Picking
  domain: fulfillment
  object: picking-task
  events:
  - picking-completed
  description: Marks a picking task as completed, recording actual quantities picked
    and any exceptions (short-picks, substitutions).
- id: pack-shipment
  name: Pack Shipment
  domain: fulfillment
  object: shipment
  events:
  - shipment-packed
  description: Records the packing of a shipment, capturing parcel dimensions, weight,
    and item-to-parcel mapping.
- id: ship-order
  name: Ship Order
  domain: fulfillment
  object: shipment
  events:
  - shipment-dispatched
  description: Dispatches a packed shipment to a carrier, generating a tracking number
    and triggering the shipment-dispatched event.
- id: deliver-order
  name: Deliver Order
  domain: fulfillment
  object: shipment
  events:
  - shipment-delivered
  description: Records the successful delivery of a shipment to the customer's address,
    closing the delivery milestone.
- id: collect-order
  name: Collect Order
  domain: fulfillment
  object: shipment
  events:
  - shipment-delivered
  description: Records the customer's collection of a click-and-collect or BOPIS order
    from the designated store location.
- id: request-return
  name: Request Return
  domain: fulfillment
  object: return
  events:
  - return-requested
  description: Initiates a return request for one or more items from a completed order,
    capturing reason codes.
- id: authorize-return
  name: Authorize Return
  domain: fulfillment
  object: return
  events:
  - return-authorized
  description: Evaluates a return request against return policy and authorises it,
    issuing a return authorisation number (RAN).
- id: receive-return
  name: Receive Return
  domain: fulfillment
  object: return
  events:
  - return-received
  description: Records the physical receipt of returned items at the destination (store
    or DC).
- id: inspect-return
  name: Inspect Return
  domain: fulfillment
  object: return
  events:
  - return-inspected
  description: Inspects received return items for condition, grading them as resalable,
    damaged, or write-off.
- id: process-return
  name: Process Return
  domain: fulfillment
  object: return
  events:
  - return-accepted
  description: 'Finalises the return: triggers inventory restock or disposal, and
    initiates refund or credit issuance.'
- id: request-exchange
  name: Request Exchange
  domain: fulfillment
  object: exchange
  events:
  - exchange-requested
  description: Initiates an exchange request, linking a return authorisation with
    a replacement item selection.
- id: authorize-exchange
  name: Authorize Exchange
  domain: fulfillment
  object: exchange
  events:
  - exchange-authorized
  description: Authorises an exchange by confirming the return is valid and the replacement
    item is available.
- id: process-exchange
  name: Process Exchange
  domain: fulfillment
  object: exchange
  events:
  - exchange-completed
  description: 'Completes the exchange: closes the return, creates the replacement
    order, and handles payment delta.'
- id: retrieve-price
  name: Retrieve Price
  domain: pricing
  object: price
  events: []
  description: Returns the current effective selling price for a SKU on a given channel
    and customer segment, without applying promotions.
- id: calculate-price
  name: Calculate Price
  domain: pricing
  object: price
  events:
  - price-calculated
  description: Calculates the final selling price for a basket line, resolving price
    list, segment overrides, and volume rules.
- id: apply-price-list
  name: Apply Price List
  domain: pricing
  object: price
  events:
  - price-list-applied
  description: Applies a named price list to a channel or transaction context, making
    its prices active for price resolution.
- id: calculate-markdown
  name: Calculate Markdown
  domain: pricing
  object: price
  events:
  - markdown-calculated
  description: Calculates and applies a markdown discount to a product's selling price
    based on the active markdown schedule.
- id: evaluate-promotions
  name: Evaluate Promotions
  domain: promotion
  object: promotion
  events:
  - promotion-evaluated
  description: Evaluates which promotions are eligible for a given basket, customer,
    and channel without applying them.
- id: validate-coupon
  name: Validate Coupon
  domain: promotion
  object: coupon
  events:
  - coupon-validated
  description: Validates a coupon code against usage limits, expiry, and basket eligibility
    rules.
- id: redeem-coupon
  name: Redeem Coupon
  domain: promotion
  object: coupon
  events:
  - coupon-redeemed
  description: Redeems a valid coupon, marking it as used and returning the applicable
    discount.
- id: issue-voucher
  name: Issue Voucher
  domain: promotion
  object: voucher
  events:
  - voucher-issued
  description: Issues a new gift voucher or store credit with a specified value, generating
    a unique voucher code.
- id: validate-voucher
  name: Validate Voucher
  domain: promotion
  object: voucher
  events:
  - voucher-validated
  description: Validates a voucher code against balance, expiry, and channel eligibility.
- id: redeem-voucher
  name: Redeem Voucher
  domain: promotion
  object: voucher
  events:
  - voucher-redeemed
  description: Redeems a voucher for the specified amount, debiting its balance and
    returning the applied credit.
- id: cancel-voucher
  name: Cancel Voucher
  domain: promotion
  object: voucher
  events:
  - voucher-cancelled
  description: Cancels an unused or partially used voucher, zeroing its balance and
    voiding the code.
- id: enroll-member
  name: Enroll Member
  domain: loyalty
  object: loyalty-member
  events:
  - loyalty-member-enrolled
  description: Enrolls a customer in the loyalty programme, creating a loyalty account
    and issuing a member ID.
- id: calculate-points
  name: Calculate Points
  domain: loyalty
  object: loyalty-account
  events:
  - loyalty-points-calculated
  description: Calculates the points to be earned for a transaction based on accrual
    rules, purchase value, and product category.
- id: issue-points
  name: Issue Points
  domain: loyalty
  object: loyalty-account
  events:
  - loyalty-points-issued
  description: Credits the calculated points to a member's loyalty account, updating
    the balance and issuing a points-issued event.
- id: redeem-points
  name: Redeem Points
  domain: loyalty
  object: loyalty-account
  events:
  - loyalty-points-redeemed
  description: Debits a specified number of points from a loyalty account as a payment
    instrument or reward redemption.
- id: calculate-benefits
  name: Calculate Benefits
  domain: loyalty
  object: loyalty-account
  events:
  - loyalty-benefits-calculated
  description: Evaluates the member's tier and active promotions to determine applicable
    benefits (discounts, free shipping, gifts).
- id: manage-loyalty-tiers
  name: Manage Loyalty Tiers
  domain: loyalty
  object: loyalty-member
  events: []
  description: Creates, updates, or deletes tier definitions (thresholds, names, benefits)
    in the loyalty programme configuration.
- id: manage-accrual-rules
  name: Manage Accrual Rules
  domain: loyalty
  object: loyalty-account
  events: []
  description: Manages the earn rules that determine how points are calculated per
    product category, channel, or campaign.
- id: manage-member-lifecycle
  name: Manage Member Lifecycle
  domain: loyalty
  object: loyalty-member
  events:
  - loyalty-member-enrolled
  description: 'Handles member lifecycle policies: account expiry, re-activation,
    dormancy, and merging of duplicate accounts.'
- id: manage-loyalty-catalogue
  name: Manage Loyalty Catalogue
  domain: loyalty
  object: loyalty-account
  events: []
  description: 'Manages the rewards catalogue: adds, updates, or retires redeemable
    rewards and their point cost.'
- id: authorize-payment
  name: Authorize Payment
  domain: payment
  object: payment
  events:
  - payment-authorized
  description: Requests payment authorisation from the PSP for the specified amount
    and payment instrument, returning an authorisation code.
- id: capture-payment
  name: Capture Payment
  domain: payment
  object: payment
  events:
  - payment-captured
  description: Captures a previously authorised payment amount, triggering the settlement
    process with the PSP.
- id: void-payment
  name: Void Payment
  domain: payment
  object: payment
  events:
  - payment-voided
  description: Voids an authorisation before capture, releasing the hold on the customer's
    payment instrument.
- id: refund-payment
  name: Refund Payment
  domain: payment
  object: payment
  events:
  - payment-refunded
  description: Issues a full or partial refund against a captured transaction, crediting
    the original payment instrument.
- id: settle-payment
  name: Settle Payment
  domain: payment
  object: payment
  events:
  - payment-settled
  description: Records final payment settlement, reconciling the captured amount against
    the PSP's settlement file.
- id: open-store-day
  name: Open Store Day
  domain: store
  object: store-day
  events:
  - store-day-opened
  description: Opens the store trading day, recording the opening time, cash float,
    and initial operational state.
- id: close-store-day
  name: Close Store Day
  domain: store
  object: store-day
  events:
  - store-day-closed
  description: Closes the store trading day, recording the closing cash count, daily
    sales summary, and any discrepancies.
- id: assign-store-task
  name: Assign Store Task
  domain: store
  object: store-task
  events:
  - store-task-assigned
  description: Creates and assigns an operational task (replenishment, cleaning, visual
    merchandising) to a store associate.
- id: complete-store-task
  name: Complete Store Task
  domain: store
  object: store-task
  events:
  - store-task-completed
  description: Records the completion of an assigned store task, capturing the completion
    time and any notes.
- id: create-product
  name: Create Product
  domain: commerce
  object: product
  events:
  - product-created
  description: Creates a new product record in the catalogue with base attributes,
    variants, and media, ready for enrichment and publishing.
- id: update-product
  name: Update Product
  domain: commerce
  object: product
  events:
  - product-updated
  description: Updates one or more fields of an existing product record, triggering
    re-validation and delta propagation to active channels.
- id: publish-catalogue
  name: Publish Catalogue
  domain: commerce
  object: catalogue
  events:
  - catalogue-published
  description: Publishes a catalogue version or product set to all assigned channels,
    making it visible and purchasable.
- id: unpublish-catalogue
  name: Unpublish Catalogue
  domain: commerce
  object: catalogue
  events:
  - catalogue-archived
  description: Retracts a catalogue or product set from active channels, removing
    it from customer-facing surfaces.
- id: assign-catalogue-to-channel
  name: Assign Catalogue to Channel
  domain: commerce
  object: catalogue
  events:
  - catalogue-updated
  description: Associates a catalogue scope with a specific channel, controlling which
    products are visible on that touchpoint.
- id: create-channel
  name: Create Channel
  domain: commerce
  object: channel
  events:
  - channel-activated
  description: Creates a new commerce channel definition with its configuration (type,
    locale, currency, payment methods).
- id: activate-channel
  name: Activate Channel
  domain: commerce
  object: channel
  events:
  - channel-activated
  description: Activates a channel for trading, making it visible to customers and
    live for order capture.
- id: deactivate-channel
  name: Deactivate Channel
  domain: commerce
  object: channel
  events:
  - channel-deactivated
  description: Deactivates a channel, preventing new orders while preserving historical
    data and in-flight orders.
- id: assign-price-list-to-channel
  name: Assign Price List to Channel
  domain: commerce
  object: channel
  events:
  - channel-updated
  description: Binds a price list to a channel so that selling prices on that touchpoint
    are resolved from the assigned list.
- id: verify-identity
  name: Verify Identity
  domain: customer
  object: customer
  events:
  - customer-registered
  description: Performs additional identity verification (e.g. OTP, document check)
    for high-trust operations.
- id: get-available-slots
  name: Get Available Slots
  domain: fulfillment
  object: delivery-slot
  events: []
  description: Returns available delivery time slots for a given location, date range,
    and service type.
- id: reserve-delivery-slot
  name: Reserve Delivery Slot
  domain: fulfillment
  object: delivery-slot
  events:
  - delivery-slot-reserved
  description: Soft-reserves a delivery slot for a customer during the checkout flow.
- id: confirm-delivery-slot
  name: Confirm Delivery Slot
  domain: fulfillment
  object: delivery-slot
  events:
  - delivery-slot-confirmed
  description: Hard-confirms a delivery slot on order placement, removing it from
    the available inventory.
- id: release-delivery-slot
  name: Release Delivery Slot
  domain: fulfillment
  object: delivery-slot
  events:
  - delivery-slot-released
  description: Releases a previously reserved delivery slot, making it available again
    for other customers.
- id: create-subscription
  name: Create Subscription
  domain: commerce
  object: subscription
  events:
  - subscription-created
  description: Creates a new subscription plan for a customer, defining product, frequency,
    quantity, and billing details.
- id: activate-subscription
  name: Activate Subscription
  domain: commerce
  object: subscription
  events:
  - subscription-activated
  description: Activates a subscription, starting the recurring order and payment
    schedule.
- id: pause-subscription
  name: Pause Subscription
  domain: commerce
  object: subscription
  events:
  - subscription-paused
  description: Pauses an active subscription, suspending the recurring schedule without
    cancelling the customer's commitment.
- id: cancel-subscription
  name: Cancel Subscription
  domain: commerce
  object: subscription
  events:
  - subscription-cancelled
  description: Cancels an active or paused subscription, stopping future renewals
    and triggering any cancellation policy actions.
- id: renew-subscription
  name: Renew Subscription
  domain: commerce
  object: subscription
  events:
  - subscription-renewed
  description: 'Triggers a subscription renewal cycle: generates a new order, requests
    payment capture, and schedules the next renewal.'
- id: generate-recommendation
  name: Generate Recommendation
  domain: customer
  object: decision-record
  events:
  - recommendation-generated
  description: Generates an explainable product or next-best-action recommendation using approved customer and commerce context.
- id: record-recommendation-response
  name: Record Recommendation Response
  domain: customer
  object: decision-record
  events:
  - recommendation-responded
  description: Records whether a customer or associate accepted, declined, or deferred a recommendation and the stated reason where available.
- id: propose-decision
  name: Propose Decision
  domain: customer
  object: decision-record
  events:
  - decision-proposed
  description: Records a candidate automated decision with purpose, evidence summary, confidence, policy reference, and proposed action.
- id: approve-decision
  name: Approve Decision
  domain: customer
  object: decision-record
  events:
  - decision-approved
  description: Records authorised human or policy approval for a proposed decision before execution when review is required.
- id: override-decision
  name: Override Decision
  domain: customer
  object: decision-record
  events:
  - decision-overridden
  description: Records a human override or rejection of a proposed automated decision with accountable actor and rationale.
- id: execute-decision
  name: Execute Decision
  domain: customer
  object: decision-record
  events:
  - decision-executed
  description: Records execution of an approved decision and a reference to the authoritative system action that applied the outcome.
- id: produce-sentiment-insight
  name: Produce Sentiment Insight
  domain: customer
  object: sentiment-insight
  events:
  - sentiment-insight-produced
  description: Produces a purpose-bound, aggregated sentiment or engagement insight from approved feedback sources.
- id: identify-item
  name: Identify Item
  domain: inventory
  object: inventory
  events:
  - item-identified
  description: Resolves a physical retail item to a SKU using an approved identification method and confidence threshold.
- id: detect-identification-anomaly
  name: Detect Identification Anomaly
  domain: inventory
  object: loss-prevention-case
  events:
  - item-identification-anomaly-detected
  description: Emits evidence that an observed item does not match an expected scan or identification result.
- id: create-service-order
  name: Create Service Order
  domain: fulfillment
  object: service-order
  events:
  - service-order-created
  description: Creates a service, repair, installation, or maintenance commitment linked to a customer order and eligible product.
- id: schedule-service-order
  name: Schedule Service Order
  domain: fulfillment
  object: service-order
  events:
  - service-order-scheduled
  description: Assigns an appointment, service location, or fulfilment resource to an eligible service order.
- id: complete-service-order
  name: Complete Service Order
  domain: fulfillment
  object: service-order
  events:
  - service-order-completed
  description: Records verified completion of a service order and any outcome, parts usage, or customer acceptance data.
- id: activate-sponsored-offer
  name: Activate Sponsored Offer
  domain: promotion
  object: sponsored-offer
  events:
  - sponsored-offer-activated
  description: Activates a consent-aware sponsored offer for approved channels, audience rules, and effective dates.
- id: record-sponsored-offer-exposure
  name: Record Sponsored Offer Exposure
  domain: promotion
  object: sponsored-offer
  events:
  - sponsored-offer-exposed
  description: Records that an eligible customer or anonymous session was served an active sponsored offer at an approved touchpoint.
- id: attribute-sponsored-offer
  name: Attribute Sponsored Offer
  domain: promotion
  object: sponsored-offer
  events:
  - sponsored-offer-attributed
  description: Records a closed-loop attribution outcome using approved exposure, order, and consent evidence.
- id: detect-transaction-anomaly
  name: Detect Transaction Anomaly
  domain: store
  object: loss-prevention-case
  events:
  - transaction-anomaly-detected
  description: Detects a potentially material checkout or refund anomaly and records evidence without determining culpability.
- id: open-loss-prevention-case
  name: Open Loss Prevention Case
  domain: store
  object: loss-prevention-case
  events:
  - loss-prevention-case-opened
  description: Opens a case from one or more anomaly signals for triage under configured intervention policy.
- id: resolve-loss-prevention-case
  name: Resolve Loss Prevention Case
  domain: store
  object: loss-prevention-case
  events:
  - loss-prevention-case-resolved
  description: Records the verified outcome of a loss-prevention case, including false-positive or resolved classification.