When a customer makes payment using an integrated Payment Gateway, Boxify automatically processes the payment.
However, order status behaviour depends on:
- The selected shipping option
- The payment verification status
- The system’s stacking rules
Understanding these behaviours is important to avoid confusion.
1️⃣ Order Status After Successful Payment
When payment is successful:
✔ The system automatically reconciles the payment
✔ Item status becomes Paid
✔ Order status changes based on the selected shipping option
🔹 Shipping Option: “Ship Now”, “WM”, “EM”, “SG”, etc.
If the shipping option indicates that the order should be shipped immediately:
- The order will be located under Ready to Ship
- The merchant may proceed with packing and fulfilment
- Revenue is recognised
Examples of such shipping options:
- Ship Now
- WM (West Malaysia)
- EM (East Malaysia)
- SG (Singapore)
🔹 Shipping Option: “Ship Later”
If the customer selects Ship Later:
- The order status will remain under Paid
- The order can continue to accumulate (stack)
- The customer may add more items before final shipment
- Revenue is NOT yet recognised
This allows flexible stacking before fulfilment.
2️⃣ Payment Method Behaviour
The same payment method will apply to the order regardless of how many times payment is made.
Mixed payment methods are NOT allowed by default.
If you wish to allow mixed payment methods, you must enable it under:
Setting > Parameters > Shopping Cart
3️⃣ Orders with Status: “Waiting for Online Payment”
When an order is under:
Waiting for Online Payment
This means:
- The system is still waiting for verification from the Payment Gateway (e.g., Billplz)
- Payment has not yet been confirmed
Important behaviour:
❌ The order cannot be stacked while under this status
❌ The merchant should not modify the order
Once payment is verified successfully:
- The status will automatically change to:
- Paid (if Ship Later selected), or
- Ready to Ship (if shipping option selected)
4️⃣ Security Protection: error_payment_mismatch
To prevent order tampering during online payment, Boxify includes a security validation mechanism.
The order status will change to:
error_payment_mismatch
If the system detects either of the following:
A) Payment amount does not match outstanding amount
The outstanding amount of the order does not equal the payment amount received.
B) Order status was modified during payment
If the order status was not “Waiting for Online Payment” when the customer completed payment, this indicates the order was altered during the payment process.
Important Behaviour Under error_payment_mismatch
❌ The order cannot be stacked
❌ The order requires manual review
❌ Merchant should verify payment and order details
This mechanism protects merchants from:
- Payment manipulation
- Incorrect stacking during gateway transaction
- Order amount tampering
5️⃣ Revenue Reminder
Even when payment is successful:
Revenue is recognised only when the order status becomes:
- Ready to Ship
- Shipped
Payment confirmation alone does NOT trigger revenue recognition.
Quick Overview Table
| Scenario | Item Status | Order Status | Stack Allowed? | Revenue Counted? |
|---|---|---|---|---|
| Gateway Payment Success + Ship Later | Paid | Paid | ✅ Yes | ❌ No |
| Gateway Payment Success + Shipping Selected | Paid | Ready to Ship | ❌ No | ✅ Yes |
| Waiting for Online Payment | New | Waiting for Online Payment | ❌ No | ❌ No |
| error_payment_mismatch | — | error_payment_mismatch | ❌ No | ❌ No |
Why This Design Exists
Boxify separates:
- Payment confirmation
- Shipping confirmation
- Revenue recognition
- Stacking behaviour
- Security validation
This ensures:
✔ Flexible customer purchasing
✔ Accurate revenue reporting
✔ Secure payment validation
✔ Prevention of order tampering
