Simple Commerce has the concept of Order & Payment statuses. They help you tell what the 'state' of an order is.
When an order is initially created, it will be a Cart and Unpaid.
After a customer has submitted the checkout form or redirected back from a third-party gateway, their order will be marked as Placed.
Their order will then only be marked as Paid when we receive confirmation from the payment gateway that a payment has taken place & been successful.
In the Control Panel, admins can then mark orders as Dispatched or as Cancelled. They may also Refund orders.
In the Control Panel, when you're viewing orders in the List view, you'll see a "Update Order Status" action.
If you wish to update the order status programatically, simply use the
updateOrderStatus method available on
You should pass in an option from the
OrderStatus enum as the first & only parameter.
use DoubleThreeDigital\SimpleCommerce\Facades\Order;use DoubleThreeDigital\SimpleCommerce\Orders\OrderStatus;Order::find('order-id')->updateOrderStatus(OrderStatus::Placed);
Simple Commerce also keeps track of any status changes on orders. If you view the order entry's markdown file or the order in the database, you'll see a
status_log array with timestamps next to each of the order's timestamps.
status_log:paid: '2023-02-06 20:11'placed: '2023-02-06 20:11'