Customer Order

From ZUGSEIL Wiki
Jump to navigation Jump to search

A customer order is an object which is created on the supplier side after a procurement-contract has been created between a customer and a supplier. As a result of this a customer-order is an immutable object on which each change has to create a new contract which then results in a new customer-order.

Customer orders can be created by manual creation in the suppliers identity or through digital interaction on the b-op network.

Lifecycle of a Customer Order

*Order creation

    • Either manually (does not require acceptance)
    • Or over b-op network (requires acceptance)
  • Customer order acceptance process enabled (set per customer?)
    • waiting for acceptance
    • accepted --> Active
  • Change request of already accepted customer order**Change requested accepted
    • Change request rejected
    • Change accepted order positions (one position 0 qtty == cancel positions, all positions 0 qtty --> entire order cancelled)
  • Delivery status
    • partially delivered positions
    • fully delivered positions
  • Billed status**partially billed position
    • fully billed positions


Changing of the customer order

Changes (as possible with internal orders) are not permissible as a PO/CO-pair are a legally binding entity, and require mutual consent. So in the UI changing of orders and change requests are permissible, but in the transactional data model the offer-process has to be employed to reach a new contractual agreement.

As a result, when a change was requested and was accepted, this will happen depending on the source of the customer order:

  • steps on the b-op network case (the contract was made over the b-op network):
    1. When the customer creates the change-request, two things happen: - an offer is created and sent over to the supplier - an change request is sent which refers to the offer sent
    2. If the supplier accepts - the existing customer order is cancelled - the supplier sends the offer confirmation back - the old supplier order on the customer side is cancelled - a new contract is created, which creates a PO on the client side with a reference to the predecessor (cancelled) purchase order - the PO is synced over to the supplier, which auto-accepts the customer order
    3. If the supplier rejects - the offer is rejected - everything stays as it is.
  • manually entered customer
    1. The supplier changes the data in the customer order in his user interface
    2. The old customer order is cancelled
    3. A new customer order is created, with a reference to the predecessor (cancelled) purchase order

In both cases the changed customer order is cancelled and a new customer order (with a new number) is created, which has a reference to the cancelled old order.