The Orders Module in VirtoCommerce is a document based flexible orders management system with possibility to add unlimited number of documents related to customer order.
The Orders Module main purpose is to store order details and manage orders created by users on client side. This module is not designed to be a full order processing system like ERP but serves as storage for customer orders details and can be synchronized with different external processing systems.
The order itself contains minimum details, when the documents present additional order details, like payment, shipment, etc. and display the order management life cycle.
The Order Management process in VitroCommerce OMS is not coded and not pre-determined. This system is designed as an Order Details Editor with no validation logics available. The system is implied to be an additional storage for customer orders details.
VirtoCommerce Orders Module supports the following functionalities:
- Status update for each document type.
- Document based order structure. The order contains related documents such as Payments, Shipments, Addresses, etc. The order, being a document itself, is also a container for all documents related to the order processing: shipping, payment, custom documents. This approach allows mapping of supplier internal business processes of any complexity (multi-shipments, multi payments, specific inventory operations) to VirtoCommerce order structure. So it makes possible to keep track of documents begot by each order and show it to a customer if required.
- Ability to view and manage fulfillment, packages, pick-up and shipments documents.
- Dynamic extensibility of the 'Order Documents' (possibility to add custom fields). It is relatively easy to implement additional data for existent documents and new kinds of custom documents to the order container.
- Manage additional invoices.
- Save order drafts (postponed confirmation of order changes).
- Changing Order products (quantity, product change, new products).
- Possibility to make changes to order product price.
- Possibility to change discounts.
- Add promotion coupons to order.
- Payment history tracking. Orders contain document type "Payment". Using this type of documents allows keeping bills information and full logging of payment gateway transactions related to the order.
- Refunding possibilities.
- Possibility to change Product items.
- Save order details change history (logs).
- Save payment details (cards, links, phone numbers).
- Manage split shipments.
- Single shipment delivery of more than one order.
- Public API:
- Search for orders by different criteria (customer, date, etc.). The system returns brief order details;
- Manage order details;
- Prices, products, coupons, delivery addresses, promotions, order status;
- List of order related documents (order or payment cancellation, payment documents, shipment details, refund request, refunds, etc.). The document structure contains dynamically typed elements;
- Manage order delivery (status, delivery details);
- Repeated order creation (order cloning) with possibility to specify the frequency of order re-creation.
Orders Module Structure
The Customer orders screen can be accessed by navigating to Browse->Orders. The system displays the list of Customer orders. The user can select a Customer order from the list to view its details.
Roles and Permissions
In order to manage Virto Commerce functionality each user must be assigned to at least one role. Each role provides the user with certain access permissions. These permissions allow or restrict the user's access to functionalities within the Virto Commerce client application. Permissions are controlled by assigning Roles to users. A Role is a collection of permissions. A Role can be assigned to multiple users. Each user can have more than one assigned Role. Through the combination of assigned Roles, you can ensure that users only have access to the information and functionality they need.
Each notification has its own template (NotificationTemplate) which is responsible for notification contents and consists of a view template with placeholders.