Shopend’s Capabilities
Recall Shopend. It runs the backend of online shops for many merchants. A merchant signs up, opens a shop, enters products, and builds a storefront. The storefront sends its requests to Shopend.
We designed part of Shopend in detail: the catalog, the carts, and placing an order. To keep the focus on those, we left the rest out. We assumed that every request carries credentials that identify the shopper or the merchant. And we left payment, taxes, shipping, refunds, and cancellation outside that version. A real Shopend does all of these.
In this chapter, we consider what a service-oriented architecture for Shopend would look like. We decide which services it has and how they communicate. We still do not design how each part works inside, such as how a payment is taken or how a shopper signs in.
The first decision is what the capabilities are. Here is what Shopend does for the business, in the business’s own words:
- Open shops. A merchant signs up and opens a shop.
- Manage accounts. Shoppers and merchants sign in.
- Keep the catalog. A merchant adds and changes products, and shoppers browse them.
- Manage carts. A shopper adds products to a cart and changes the quantities.
- Manage orders. A shopper places an order from a cart, with taxes added to the total, and can cancel it before it ships. Placing an order reduces the stock, and cancelling puts it back.
- Take payments. The shopper pays for the order, and gets a refund when the order is cancelled.
- Ship orders. The order is shipped to the shopper.
- Notify shoppers. The shopper gets an email when an order is placed, shipped, or cancelled.