Order Management
Order Management
Members:
BSIT 3-1
Introduction
The assigned submodule, "Order Processing and Fulfillment," serves as the
operational engine driving the crucial backend processes of an e-commerce platform.
Its primary purpose is to seamlessly manage and orchestrate the entire lifecycle of
orders, from placement to fulfillment, ensuring timely delivery and customer satisfaction.
The goals and objectives for this submodule encompass optimizing efficiency,
enhancing accuracy, and improving the overall user experience to elevate the platform's
competitiveness and drive sustainable growth.
The Order Processing and Fulfillment submodule is tasked with managing the
entire lifecycle of customer orders, from placement to delivery. It encompasses a range
of essential functionalities, including order validation, inventory management, shipping
logistics, and customer communication.
The primary goal of the Order Processing and Fulfillment submodule is to ensure
seamless and efficient order fulfillment, thereby enhancing customer satisfaction and
loyalty. To achieve this goal, the following objectives have been identified:
a. Order Confirmation
Details: After placing an order, customers are notified that the ordered item/s are
confirmed and will be given an order number as reference. The customer will be
emailed with an invoice confirming the ordered item/s.
b. Order Cancellation
Details: after confirming order, customer can cancel the ordered item/s before
admin updates the status to processing.
Details: customers can issue a return/ refund on an item after it has been
received.
Requirement: Return and Refund must only happen once the user receives the
item. A form must be answered to state the reason why the customer would like
to return the item. Afterwhich, the vendor must confirm the request to process the
returning of item/s.
Details: In all the procedures and actions updated from the admin, the customer
will be updated on the procedures of the ordered item/s, via Gmail.
Requirements: Within the ‘my orders’ interface, the order status must be updated
to ‘delivered’ once the order has been received. Additionally, the system sends
an e-mail about the order status.
f. Address modification
Detail: Customers must be able to select, add, delete, or modify shipping address
in case a sudden change in location occurs.
Requirement: Right before the ordered items are delivered, customers must be
able to modify the address. A section within the order interface must enable
editing of shipping addresses to update the courier.
Non-Functional Requirements:
a. Performance:
The system is able to process and record all order transactions from
different customers.
Order placement and status updates are responsive for different user
types.
b. Reliability:
The user interface is easy to navigate for both internal staff and
customers.
Error messages are clear and helpful in guiding users to resolve issues.
All order-related activities are logged for auditing purposes, including order
placement, modifications, and cancellations.
e. Interoperability:
Submodules:
The order processing system architecture shows how a customer interacts with
an online store to place an order, how the order is processed, and how the order is
fulfilled and delivered.
The diagram can be broken down into the following key components:
· Order processing interface: This is the interface that the customer uses to place their
order.
· Product catalog: This is a database of all the products that are available for sale.
· Shopping cart: This is where the customer stores the items they want to purchase
before they check out.
· Payment gateway: This is the service that processes the customer's payment.
· Order fulfillment: This is the process of picking, packing, and shipping the customer's
order.
· Logistics partner: This is the company that ships the customer's order.
· Order delivery: This is the process of delivering the order to the customer.
· Logging system: This is a system that logs all of the activity that takes place in the
order processing system.
· Database: This is a database that stores all of the data that is used by the order
processing system.
Implementation
Overview
Technologies Utilized
· PHP Laravel: This serves as the foundational framework for constructing the
submodule, providing a sturdy scaffold for development with capabilities like routing,
ORM, and authentication.
· MySQL: Our choice of database management system for storing crucial data such
as order details, inventory records, and customer information.
· HTML/CSS: Responsible for crafting the front-end markup and styling elements,
contributing to the aesthetic appeal and usability of the order management
dashboard and customer-oriented order tracking pages.
For the Order Processing and Fulfillment submodule, data integration is a critical
aspect that ensures seamless communication and synchronization between various
components of the system. We employ a systematic approach to handle data
integration, encompassing the following key aspects:
Data transformation processes are employed to standardize and format data according
to the requirements of the target systems. This involves mapping data fields, converting
data types, and applying business rules to ensure compatibility and accuracy.
Example:
When integrating with a shipping carrier's API, we transform order data into the format
expected by the carrier, including shipping addresses, package dimensions, and
shipping methods. This transformation ensures that orders are processed correctly and
that shipping labels are generated accurately.
Data Schema and Database Design
The database schema for the Order Processing and Fulfillment submodule is
designed to efficiently store and manage various types of data related to order
processing and fulfillment. Key tables within the database include:
1. Orders - Stores information about individual orders, including order ID, customer ID,
order status, total amount, and shipping details.
2. Products - Contains details about products available for purchase, such as product
ID, name, description, price, and inventory levels.
4. Transactions - Records transaction details for each order, including transaction ID,
payment method, transaction status, and timestamps.
Data Dictionary
ORDERITEM
CUSTOMER
Ensuring data consistency across different modules and external systems posed a
challenge, especially during high-volume transactions and concurrent updates.
Solution:
Results
· Response Times: The average response time for order processing and fulfillment
remained below 500 milliseconds, even under heavy load conditions.
· Resource Utilization: CPU and memory utilization remained within acceptable limits
throughout the testing period, indicating efficient resource management and
scalability.
High database load during peak periods posed a challenge to scalability and
performance.
Solution:
Maintaining data consistency between the cache and the database posed
challenges, particularly when dealing with frequently updated data.
Solution:
Security Measures
User Authentication and Authorization
Data encryption and secure communication protocols are essential for protecting
sensitive information and ensuring the confidentiality and integrity of data exchanged
within the system. The following encryption and security measures are implemented:
3. Security Best Practices - The system follows security best practices and
guidelines, including OWASP (Open Web Application Security Project)
recommendations and industry-standard security frameworks, to ensure
comprehensive protection against security threats and vulnerabilities.
The testing strategy for the Order Processing and Fulfillment submodule
encompasses both unit testing and integration testing to ensure the reliability and
functionality of the system. The following testing approaches are employed:
Test Results
· Order Controller: All CRUD (Create, Read, Update, Delete) operations were
successfully tested, ensuring that orders could be created, updated, retrieved, and
deleted as expected.
· Order Model: Data validation and database interactions were tested to ensure that
order data was correctly stored and retrieved from the database.
· API Endpoint Testing: API endpoints for order placement, status updates, and order
tracking were tested to verify proper functionality and adherence to specifications.
During testing, several issues were identified and addressed to improve the
reliability and functionality of the Order Processing and Fulfillment submodule:
The Order Processing and Fulfillment submodule plays a crucial role in ensuring the
overall reliability of the e-commerce platform. By thoroughly testing each component
and validating system interactions, potential issues and vulnerabilities are identified and
addressed before deployment. This submodule's reliability directly impacts customer
satisfaction by ensuring accurate order processing, timely fulfillment, and transparent
communication. Additionally, robust error handling and validation mechanisms enhance
system resilience and minimize the risk of downtime or service interruptions, thereby
contributing to the platform's overall reliability and stability.
Documentation and User Guide
Overview
Welcome to the documentation and user guide for the Order Processing and
Fulfillment submodule of our e-commerce platform. This guide aims to provide
comprehensive instructions for using and interacting with the Order Processing and
Fulfillment functionality, covering various aspects such as order placement, tracking,
and management.
User Documentation
1. Order Placement
· Browse the product catalog and select the items you wish to purchase.
2. Order Tracking
· Locate the order you wish to track and click on it to view detailed order information.
· You can view the current status of your order, including order processing, shipment,
and delivery status.
· Additionally, you may receive email notifications or SMS alerts with tracking
information as your order progresses.
3. Order Management (Admin)
· Here, you can view a list of all orders, filter orders by status, and search for specific
orders using order IDs or customer names.
· You can update order status, process refunds, and handle customer inquiries
related to orders.
Technical Documentation
API Endpoints
The Order Processing and Fulfillment submodule exposes the following API endpoints
for integration with external systems:
· /api/shipping: Endpoint for retrieving shipping rates and generating shipping labels.
Database Schema
The database schema for the Order Processing and Fulfillment submodule includes the
following tables:
· Orders: Stores information about individual orders, including order ID, customer ID,
order status, and total amount.
· Products: Contains details about products available for purchase, such as product
ID, name, description, price, and inventory levels.
· Transactions: Records transaction details for each order, including transaction ID,
payment method, transaction status, and timestamps.
Conclusion
System Flowchart II
Class Diagram V
Code Snippets VI
· Order Details, Shipping Information, Payment Details: These represent the essential
data points captured during order placement.
· Customer, User Admin: These entities interact with the system. The customer
submits orders, while the user admin might handle tasks like order management or
returns processing.
· Message Queue: This component acts as a buffer, temporarily storing order data or
messages to ensure smooth processing even during high traffic.
· Logging System: This records all system activities for auditing and troubleshooting
purposes.
The arrows in the diagram depict the data flow. Once an order is placed, its details are
stored along with shipping and payment information. This data is then fed into the
message queue, which relays it to different parts of the system for processing. The
logging system keeps track of all these actions.
The flowchart outlines the steps involved in processing an order from the point it
is placed to the point it is delivered to the customer. Here's a breakdown of the key
steps:
Order Preparation
· Check for Confirmed Order: This step verifies if the customer's order has been
confirmed. If not, the process ends.
· Process Order: If the order is confirmed, the system processes it, which likely
involves checking inventory and preparing the order for shipment.
· Logging: Throughout the process, the system logs relevant information for tracking
and record-keeping purposes.
Shipment
· A: Check Product Stock: This step verifies if the ordered items are in stock. If not,
the customer is informed, and the order might be canceled or put on hold.
· B: Is Order Ready for Shipment?: This step checks if the order is complete and
prepared for shipment. If not, it likely goes back to step 2 for further processing.
Delivery
· A: Process Order Shipment: If the order is ready for shipment, this step involves
tasks like packaging, labeling, and arranging for shipment with a carrier.
· B: Inform Customer of Shipment: The customer is notified about the shipment, often
with details like tracking information and estimated delivery date.
· Is Order Received?: Once the package is shipped, the system tracks its delivery
status. If the order is delivered successfully, the process ends.
· No: If the order is not delivered, the system might take further actions like contacting
the shipping carrier or notifying the customer about the issue.
Overall, the flowchart provides a simplified overview of the order processing, shipment,
and delivery process. It highlights the key decision points and the flow of information
between different stages.
Sequence Diagram
· Customer places an order: The customer selects the products they want to buy and
submits their order.
· Payment verification: The company verifies that the customer's payment is valid.
· Inventory check: The company checks to see if the ordered products are in stock.
· Order fulfillment: If the products are in stock, the company picks, packs, and ships
the order.
· Order shipped: The customer is notified that their order has been shipped and they
are given a tracking number.
· If the ordered products are not in stock, the customer is notified and they can
choose to wait for the products to come back in stock, cancel their order, or choose
different products.
Entity Relationship Diagram
Entities:
● Product: Represents a product that is available for sale. It has attributes like
ProductID, ProductName, Description, Price, StockQuantity, Manufacturer, and
Category.
● Customer: Represents a customer who places orders. It has attributes like
CustomerID, FirstName, LastName, Email, Phone, and Address.
● Order: Represents an order placed by a customer. It has attributes like OrderID,
CustomerID, OrderDate, OrderStatus, and TotalAmount.
● OrderItem: Represents an item in an order. It has attributes like OrderItemID,
OrderID, ProductID, Quantity, and Subtotal.
● Payment: Represents a payment made for an order. It has attributes like
PaymentID, OrderID, PaymentDate, PaymentMethod, and TotalAmount.
● Shipment: Represents the shipment of an order. It has attributes like
ShipmentID, OrderID, ShipmentDate, ShipmentAddress, ShipmentStatus, and
TrackingNumber.
Relationships:
The diagram also shows primary keys (PK) and foreign keys (FK) for each entity.
Primary keys uniquely identify each instance of an entity, while foreign keys link entities
together. For example, the OrderID attribute in the OrderItem entity is a foreign key that
references the OrderID attribute in the Order entity.
Overall, the ERD provides a clear and concise overview of the data model for an order
processing and fulfillment system. It helps to understand how different entities are
related to each other and how data is stored and organized.
Class Diagram
Initiation:
· Customer places order: This initiates the fulfillment process, triggered by a customer
placing an order through various channels like online store, mobile app, or phone.
· Order received: The order is received by the order management system, capturing
details like items, quantities, shipping address, and customer information.
Processing:
· Payment processing: The system verifies and processes the customer's payment
through a payment gateway. Upon successful payment, the order proceeds to
fulfillment.
· Inventory check: The system checks if sufficient stock is available for ordered items
across warehouses or stores. If stock is unavailable, the system can backorder the
item, offer substitutes, or notify the customer.
· Order allocation: Based on stock availability and location, the system allocates the
order to the optimal fulfillment center or store for picking and packing.
Fulfillment:
· Order picking: Warehouse personnel or store staff pick the allocated items from
designated storage locations, ensuring accuracy and completeness.
· Order packing: Picked items are packed securely using appropriate packaging
materials, considering item fragility, size, and shipping distance.
· Shipment labeling: Shipping labels are generated with accurate address information,
tracking numbers, and any necessary customs documentation.
· Shipment handover: Packed orders are handed over to the designated shipping
carrier for onward transportation.
Delivery:
· Shipment in transit: The shipping carrier transports the order to the customer's
delivery address, adhering to estimated delivery timeframes.
· Delivery and notification: Once delivered, the customer is notified through email,
SMS, or app, often with confirmation details and options to rate the delivery
experience.
Order completion:
· Order delivered: The order is marked as delivered in the system, finalizing the
fulfillment process.
Routes
Schemas: Migrations
Orders table
Order Products
Order Status
Order Logs
Order Updates
Courier
Return Requests
Proof of Delivery
Blade Files
Order Details
Order Invoice
Orders
Return Request
View Orders
Model
Controller
User Interaction(UI)
Customer Side
1. Order is confirmed after user confirms ordered items
2. Checking orders
3. Order details before shipment confirmed
4. Order details after shipment confirmed