Fulfillment Module
Source file: 2026-06-08-user-manual-fulfillment-module.html
User Manual
| Field | Value |
|---|---|
| Document Type | User Manual |
| Portal | GRINEA – Internal Operations Portal |
| Module | Fulfillment Module |
| Version Number | 1.0 |
| Document Date | May 20, 2026 |
| Prepared by | Christian Canlubo |
Version History
| Version | Details | Author | Date Published |
|---|---|---|---|
| 1.0 | Initial Version | Christian Canlubo | May 20, 2026 |
1.0 Introduction
This section provides an overview of the purpose, scope, and intended audience of this document. Platform users are encouraged to review this document in full before proceeding to other manuals.
1.1 Purpose of the Document
This document is the official user manual for the Fulfillment Module of the GRINEA Internal Operations Portal. It provides clear, step-by-step guidance on how authorized personnel can record the receipt of goods and services, manage partial deliveries, submit delivery rejections, and monitor delivery progress against Purchase Orders across the fulfillment lifecycle.
The Fulfillment Module is the operational layer through which site-based personnel confirm or reject what suppliers deliver against an active Purchase Order. It sits within the Orders module of the Frontoffice portal and becomes active once an order transitions to PENDING DELIVERY status. Each delivery event captured contributes to the order's fulfillment progress, driving the order toward FULLY DELIVERED status as quantities are received.
1.2 Scope of the Document
This document covers all fulfillment-related functionality on the GRINEA Internal Operations Portal. Specifically it covers:
- Navigating to an Order in Pending Delivery or Partially Delivered status from the Orders list
- Understanding the receiver-specific header actions available on eligible orders
- Recording a complete or partial material delivery using the Receive Delivery form
- Recording a service delivery using the Receive Delivery form for service line items
- Submitting a delivery rejection and capturing the rejection reason and proof of delivery
- Understanding the Delivery Acceptance Document (DAD) upload requirement
- Monitoring order fulfillment progress via the Order Fulfillment Status on the Order Details tab
- Reading the Delivery Instances Matrix on the Schedule tab
- Reviewing the Fulfillment History table and expanding records to see line item detail
- Order statuses that apply across the fulfillment lifecycle
- Receiving and acting on email and in-app notifications related to delivery events
Out of scope: order creation and pre-send process (Orders Module manual); supplier-side order acceptance (Supplier Portal manual); delivery schedule configuration (Orders Module manual); user provisioning and RBAC; ERP integration.
1.3 Intended Audience
Site Team / Site Manager
Both roles are frontoffice roles responsible for physically receiving goods or services at a project delivery location. Users in either role can initiate the Receive Delivery and Reject Delivery actions on Orders in Pending Delivery or Partially Delivered status. Both roles must be assigned to the project working team for the Order's linked project; without this assignment, receiving actions are not available. The Site Manager additionally receives automated weekly email notifications when delivery instances are scheduled for the upcoming week.
PR Creator (Indirect Orders)
The PR Creator who raised a Non-Project (Indirect) Purchase Requisition is directly linked to the resulting order and can view its details and fulfillment progress. Depending on RBAC permissions, the PR Creator may also be able to initiate receiving actions on indirect orders they are associated with.
PR Creator (Design / Design & Build Projects — Direct Orders)
For DIRECT Purchase Requisitions raised on Design or Design & Build (D&B) project types, the PR Creator is also an eligible delivery receiver. Eligible users are those whose system role is Design Engineer or Design Manager. This eligibility rule is distinct from the Indirect rule: it applies only when the linked project is of type Design or D&B and the PR was created as a DIRECT (project-linked) requisition. Users meeting this criterion will see the Receive Delivery and Reject Delivery action buttons on the Order page in the same manner as Site Team / Site Manager users.
Buyer
The Buyer can view all orders and their details, including the Schedule tab and Fulfillment History, but does not have access to the Receive Delivery or Reject Delivery actions (unless they are the PR Creator). The Buyer's role in fulfillment is observational: monitoring progress, reviewing history, updating delivery instances, and coordinating with site receivers when issues arise.
Backoffice Users
Backoffice users can view all orders on the platform regardless of project assignment. They have full visibility into fulfillment history, delivery instances, and order status across all projects. Backoffice users do not have access to the Receive Delivery or Reject Delivery actions.
2.0 Module Overview
2.1 Description
The Fulfillment Module is the delivery receiving layer of the Orders module within the GRINEA Internal Operations Portal. It is accessed through the Frontoffice navigation under Internal Operations Portal > Frontoffice > Orders, and becomes active on any order that has reached PENDING DELIVERY or PARTIALLY DELIVERED status. The module does not have a standalone landing page; all fulfillment actions are initiated from within the individual Order page.
When a user opens an eligible order, they see the Order Details tab by default. Receiver-specific header action buttons appear at the top of the page for users with the Site Team, Site Manager, or PR Creator role. The Order Fulfillment Status section shows the current fulfillment percentage. The Schedule tab displays the Delivery Instances Matrix and the Fulfillment History table.
2.2.1 Receiver Header Actions
When a user with the Site Team / Site Manager or PR Creator role opens an order in PENDING DELIVERY or PARTIALLY DELIVERED status, two action buttons are displayed in the order header: Receive Delivery and Reject Delivery. These buttons are the entry point for all fulfillment activity.
The buttons are not displayed on orders in any other status (In Process, Ready to Send, Fully Delivered, Cancelled). Buyers and Backoffice users do not see these buttons regardless of order status.
[Screenshot: Receiver Header Actions – Receive Delivery and Reject Delivery buttons]
2.2.2 Order Fulfillment Status
The Order Fulfillment Status section is displayed on the Order Details tab for any order that has at least one recorded delivery event. It provides a real-time summary of delivery progress, displaying the current fulfillment percentage calculated as total received quantity divided by total expected quantity across all line items and delivery instances.
The fulfillment percentage reaches 100% only when all expected quantities across all delivery instances and all line items have been received. At this point, the order automatically transitions to FULLY DELIVERED status.
2.2.3 Receive Delivery (Material)
The Receive Delivery action for material line items opens a three-step form that captures the delivery details, proof of delivery documentation, and a final summary before submission.
-
Delivery Date — required; the date on which the delivery was received
-
Delivery Location — required; dropdown filtered to delivery locations scheduled on this order. Selecting a location populates the Receiving Items table
-
Delivery Time — required; the time at which the delivery was received
-
Receiving Items — table of material line items expected at the selected location. Each row shows Item Name, Expected Quantity (read-only), and Received Quantity (editable). When Received Quantity is set below Expected Quantity, the Reason for Partial Fulfillment field becomes visible and required for that item
-
Remarks — optional; free-text field for notes about the delivery event
-
Delivery Documents — required; the Delivery Acceptance Document (DAD) must be uploaded before the form can be submitted. Additional supporting documents may also be uploaded
-
Delivery Media — optional; photographs or other media files related to the delivery
Displays a summary of all information captured. The user reviews delivery details, receiving items, and uploaded documents. If any correction is required, the user returns to the relevant step. Once satisfied, the user submits. A confirmation message is displayed, and the Delivery Instances Matrix and Fulfillment History on the Schedule tab are updated.
[Screenshot: Receive Delivery – Material Form]
2.2.4 Receive Delivery (Service)
The Receive Delivery action for service line items opens a form with the same three-step structure as the material form. The following fields are presented: Delivery Date (required), Delivery Location (required), Delivery Time (required), Receiving Items (service line items expected at the selected location), Remarks (optional), Delivery Documents (required — DAD must be uploaded), and Delivery Media (optional).
Note: Partial delivery logic does not apply to service line items. The Reason for Partial Fulfillment field is not presented on the service receiving form, regardless of the quantities entered.
Submission follows the same process as the material form: a confirmation message is displayed and a new entry is created in the Fulfillment History table.
[Screenshot: Receive Delivery – Service Form]
2.2.5 Reject Delivery
The Reject Delivery action records a refusal of goods or services delivered by the supplier at a specific location. Rejecting a delivery does not change the order status; the order remains in PENDING DELIVERY or PARTIALLY DELIVERED status and can continue to receive further delivery submissions. The rejection is recorded in the Fulfillment History table with a status of REJECTED and a received quantity of zero.
The Reject Delivery form contains the following fields:
- Delivery Date — required; the date on which the delivery was presented and rejected
- Delivery Location — required; the location at which the rejection occurred
- Delivery Time — required
- Rejection Reason — required; a dropdown of standard rejection reasons. Selecting Other exposes a free-text input field
- Delivery Documents — required; a DAD or equivalent document must be uploaded
- Delivery Media — optional; media evidence of the rejected delivery
On submission, the form is validated. If any required field is missing, a validation error is displayed and submission is blocked until all required fields are completed. Once submitted, a confirmation message is displayed and the rejection is recorded in the Fulfillment History table.
[Screenshot: Reject Delivery Form]
2.2.6 Schedule Tab — Delivery Instances Matrix and Fulfillment History
The Schedule tab contains two key components for monitoring delivery progress.
Location Cards
At the top of the Schedule tab, one Location Card is displayed per delivery location linked to the order. Clicking a card opens the full delivery details for that specific location within the matrix.
Delivery Instances Matrix
A table that displays all material line items on the order and their expected versus delivered quantities across all delivery instances. Columns include: Item Name, Delivered Quantity, Expected Quantity, Unit, and one column per delivery instance. Each delivery instance cell reflects one of the following states:
- Pending Delivery — no receiving record has been submitted for this item at this instance
- Partial Delivery — a receiving record exists but the received quantity is less than the expected quantity; both values are displayed in the cell
- Complete Delivery — the full expected quantity has been recorded for this item at this instance
Fulfillment History
Lists every delivery event recorded against the order, including accepted deliveries, partial deliveries, and rejections. Each row displays a system-generated Delivery ID, the date of the fulfillment event, the delivery location, the receiver who submitted the record, and the event status. Each row can be expanded to display: line item breakdown with item name and specifications; expected and received quantity for each line item; received quantity recorded as zero for rejected rows; rejection reason (rejected rows only); reason for partial fulfillment (partial delivery rows only); delivery documents; and delivery media files.
[Screenshot: Schedule Tab – Delivery Instances Matrix and Fulfillment History]
2.2.7 Delivery Notifications
The Fulfillment Module generates notifications at key delivery events, delivered via email and as in-app notifications within the Internal Operations Portal:
- Weekly delivery schedule notifications — sent to Site Managers at the start of each week when a delivery instance is scheduled for the week ahead
- Real-time delivery change alerts — sent to suppliers and Frontoffice users when any changes are made to the delivery schedule
- Delivery receipt confirmations — sent to suppliers and Site Managers once a delivery has been successfully received or rejected
Email notifications include direct links allowing recipients to navigate to the relevant order. In-app notifications include equivalent navigation links within the portal shell.
2.3 Order Statuses Relevant to Fulfillment
| # | Status | Description |
|---|---|---|
| 1 | PENDING DELIVERY | The Order has been sent to the supplier. No delivery has yet been received or rejected. Receive Delivery and Reject Delivery actions are available to eligible receivers. |
| 2 | PARTIALLY DELIVERED | At least one delivery instance has been received, but one or more line items still have outstanding expected quantities. Receive Delivery and Reject Delivery actions remain available until all outstanding quantities are recorded. |
| 3 | FULLY DELIVERED | All expected quantities across all delivery instances and all line items have been received. This is a terminal fulfillment status. No further receive or reject actions are available. The Order Fulfillment Status displays 100%. |
| 4 | CANCELLED | The Order has been cancelled and is no longer active. Receive Delivery and Reject Delivery actions are not available on cancelled Orders. |
| 5 | CLOSED | The Buyer has manually closed the Order from the Partially Delivered status. This occurs when full delivery cannot be completed and the Buyer decides to close the outstanding quantity. Once Closed, the Receive Delivery and Reject Delivery actions are disabled — this is why the action buttons disappear on a Partially Delivered order that a Buyer has chosen to close. The Closed status is a terminal fulfillment state. The Order continues to appear in the Orders list under the Closed filter tab. |
3.0 FAQs
| Question | Answer |
|---|---|
| Which roles can record or reject a delivery? | Only users with the Site Team / Site Manager or PR Creator (for non-project) role can use the Receive Delivery and Reject Delivery actions. The user must also be assigned to the project working team for the order's linked project. Buyers and Backoffice users can view the order and its schedule but cannot initiate receiving actions. |
| What happens to the order status when a delivery is rejected? | Rejecting a delivery does not change the order status. The rejection is recorded in the Fulfillment History table with a status of Rejected and a received quantity of zero. The order remains in Pending Delivery or Partially Delivered status and can continue to receive further deliveries. |
| Is the Delivery Acceptance Document mandatory? | Yes. The Delivery Acceptance Document (DAD) is a required field on both the Receive Delivery and Reject Delivery forms. Submission is blocked until a valid DAD file has been uploaded. This applies to both material and service deliveries. |
| What is the difference between a partial delivery and a rejected delivery? | A partial delivery is recorded when the received quantity for one or more line items is less than the expected quantity at a given location. The platform records the received amount and requires a Reason for Partial Fulfillment. A rejected delivery records zero received quantity and requires a Rejection Reason. Only material deliveries can be partially fulfilled; service deliveries do not apply partial quantity logic. |
| Where can I see a full history of all deliveries recorded against an order? | Open the Schedule tab on the Order page and scroll to the Fulfillment History table. Each recorded delivery or rejection appears as a row with a system-generated Delivery ID, date, location, receiver, and status. Expanding a row shows full line item detail, quantities, documents, and any partial or rejection notes. |
| When does the order reach Fully Delivered status? | The order transitions to Fully Delivered automatically when the total received quantity across all delivery instances and all line items equals the total expected quantity. The Order Fulfillment Status on the Order Details tab will display 100% at this point. No further receive or reject actions are available after this transition. |