@startuml actor User as u collections Cart as c database CartStorage as cs collections ProductService as p u -> c : GET /user//cart activate c c -> cs : cart.GetItemsByUserID alt cart exists loop for each item in cart c -> p : GET /product/ activate p p -> c : Response: 200 OK\n\t- name\n\t- price\n\t- sku deactivate p c -> c : calculate total price end c -> u : Response: 200 OK\n\t- []item\n\t- total_price else c -> u : Response: 404 Not Found end deactivate c @enduml