How hsynkbulut/omnistore works
OmniStore is a microservices e-commerce platform with an ASP.NET MVC storefront, central identity, and services for catalog, basket, orders, discounts, comments, cargo, images, and messaging. A typical customer journey is browsing products, managing a basket, placing an order, and paying; the README documents these capabilities but does not establish the precise runtime call chain. Sampled sources confirm several service-internal actions, including order query handlers using repositories and comment creation writing, publishing, and optionally emailing. Other cross-service links below are documented or marked unverified.
Main entry points: MultiShop.OcelotGateway/Program.cs API Gateway · ShoppingCartController.cs Shopping Cart · UserCommentsController.cs Comment Service · MultiShop.WebUI/Program.cs Web UI
Components 22
Storefront
- Web UI
Frontends/MultiShop.WebUI/Program.cs - Shopping Cart
Frontends/MultiShop.WebUI/Controllers/ShoppingCartController.cs - Admin Catalog
Frontends/MultiShop.WebUI/Areas/Admin/Controllers/ProductController.cs
Identity
- Identity Server
IdentityServer/MultiShop.IdentityServer/Quickstart/Account/AccountController.cs - Consent Flow
IdentityServer/MultiShop.IdentityServer/Quickstart/Consent/ConsentController.cs
Commerce Services
- Product Catalog
Services/Catalog/MultiShop.Catalog/Controllers/ProductsController.cs - Basket Service
Services/Basket/MultiShop.Basket/Controllers/BasketsController.cs - Order API
Services/Order/Presentation/MultiShop.Order.WebApi/Controllers/OrderDetailsController.cs - Order Queries
Services/Order/Core/MultiShop.Order.Application/Features/CQRS/Handlers/AddressHandlers/GetAddressByIdQueryHandler.cs - Order Repository
Services/Order/Core/MultiShop.Order.Application/Interfaces/IRepository.cs - Discount Service
Services/Discount/MultiShop.Discount/Controllers/DiscountsController.cs - Payment Service
Services/Payment/MultiShop.Payment/Program.cs - Cargo Service
Services/Cargo/MultiShop.Cargo.WebApi/Controllers/CargoCustomersController.cs
Engagement Services
- Comment Service
Services/Comment/MultiShop.Comment/Controllers/UserCommentsController.cs - Comment Store
Services/Comment/MultiShop.Comment/Context/CommentContext.cs - Message Publisher
Services/Comment/MultiShop.Comment/RabbitMQ/IMessagePublisher.cs - Email Service
Services/Comment/MultiShop.Comment/Services/IEmailService.cs - Image Management
Services/Images/MultiShop.Images.WebUI/Controllers/DefaultController.cs - Cloud Storage
Services/Images/MultiShop.Images.WebUI/Services/CloudStorageService.cs - Messaging Service
Services/Message/MultiShop.Message/Controllers/UserMessagesController.cs
Platform
- API Gateway
ApiGateway/MultiShop.OcelotGateway/Program.cs
Other components
- Customer
Connections 17
- Customer → Web UI: uses
README.md - Web UI → Shopping Cart: hosts shopping
- Web UI → API Gateway: calls APIs
- API Gateway → Product Catalog: routes requests
README.md - API Gateway → Basket Service: routes requests
README.md - API Gateway → Order API: routes requests
README.md - API Gateway → Discount Service: routes requests
README.md - API Gateway → Identity Server: routes requests
README.md - Shopping Cart → Basket Service: uses basket
- Shopping Cart → Order API: submits order
- Shopping Cart → Payment Service: starts payment
- Admin Catalog → Product Catalog: manages products
Frontends/MultiShop.WebUI/Areas/Admin/Controllers/ProductController.cs - Order Queries → Order Repository: queries by ID
Services/Order/Core/MultiShop.Order.Application/Features/CQRS/Handlers/AddressHandlers/GetAddressByIdQueryHandler.cs - Comment Service → Comment Store: reads and writes
Services/Comment/MultiShop.Comment/Controllers/UserCommentsController.cs - Comment Service → Message Publisher: publishes comment
Services/Comment/MultiShop.Comment/Controllers/UserCommentsController.cs - Comment Service → Email Service: sends email
Services/Comment/MultiShop.Comment/Controllers/UserCommentsController.cs - Image Management → Cloud Storage: uses storage
Services/Images/MultiShop.Images.WebUI/Controllers/DefaultController.cs