Orders

Written by Max Milbers. Posted in Concepts

Orders are created during the checkout process and keep all information of the sales contract and other tracking information.

VirtueMart provides the feature for managers to create orders and checkout using a shoppers details.

User managers can also register a new shopper in the frontend and create an order for that shopper.

Front end order creation is very useful for stores that take order instructions from the customer e.g. over the phone or at a trade counter. This "order on behalf of a shopper" feature, needs to be enabled in the VirtueMart configuration.  It is not possible (yet) to create orders in the administration area.

Orders are stored with all the details (including pricing and product names, at the time of the order) and can be edited in the VirtueMart administration area. 

Changing item or shopper details after an order has been stored does not change the order details.

Shoppers viewing order details

Registered shoppers can see a list of all their orders when they login and visit their order information pages. 

As an added feature, a guest shopper can also view their order by using the order number and order password that is emailed to them on order confirmation. These access details are unique for every order.

Both registered and guest users can download their invoice, if one is available.

Editing orders

Within the administration area it is possible to edit the saved order information. The header information (billing/shipping details)  and order item information are edited separately.

Because the data being edited is only the stored order information, changes do not affect the overall store information i.e item details and shopper data. 

When changing order item information, the checkboxes "calculate" can be used recalculate the prices, empty prices are recognised as "should be calculated", it is important to check the numbers before saving as these numbers shown will be stored.

For users of Virtuemart below version 3.0.10 changes to orders will not affect existing invoices.

Order statuses

The order status indicates the state of the order within the VirtueMart shop.  They also have an effect on the product inventory.

It is possible to add/edit order statuses. Note: modifying certain statuses can result in unexpected behaviour and errors, as some of these statuses are hardcoded in the core. This is meant for experts.

Pending

When a shopper agrees to the contract of sale (by "confirming" the order at the end of the checkout process) a new order is created with the order status of Pending. The order data is finalized.

A pending order is similar in principle to a customer who takes his items to the checkout and the cash register displays the amount to pay. At that moment both parties agreed on the contract of sale, but the purchase is not finished.

The manner in which VirtueMart proceeds depends on the payment method. 

Lets assume the shopper used a wallet system. After confirming the order, they are redirected to the payment provider. When the customer completes the payment with the provider, the Virtuemart order is set to "confirmed by shopper".

If the customer decides to use another payment method, they can still do this, as long the order status is still Pending. NOTE: A Pending order is one that has had details sent to a payment system.

When a store has the "Standard" payment method configured, there is no communication between VirtueMart and external payment processors.  This is particularly useful for stores that want to offer Cash On Delivery or Pay on Pickup methods to their customers.  The status that is set for confirmed orders is determined in the configuration tab for this payment method.

VirtueMart has the flexibility to offer multiple different payment options within one store setup.

Confirmed by shopper

Any order which is set to "confirmed by shopper" means that the shopper has committed to buy the items but the payment has not been completed. For example, the customer used a payment provider and already "paid" from his point of view, but the confirmation of this payment has not been received by the VirtueMart system.

Confirmed

The customer confirmed and paid for the order and the items can be shipped.

Shipped

When the items are dispatched, the order status should be set to shipped, so employees can see if the order is finished

Denied

If a vendor or payment provider denied the payment of an order (cancellation by vendor/payment provider)

Refunded

The order was refunded, the money got sent back

Cancelled

The order was cancelled without a refund.

Examples

Payment method of - Bank transfer - using "Standard" payment method

The status flow could be similar to this:- Confirmed by Shopper -> Confirmed -> Shipped

When the payment is made and validate the order status is manually changed from  Confirmed by Shopper -> Confirmed

The confirmed orders are then ready to be shipped and on dispatch, the order status is manually changed from Confirmed -> Shipped

Cash On Delivery - using "Standard" payment method

The status flow could be similar to this:- Confirmed by Shopper -> Shipped -> C.O.D Paid in Full

Payment Provider Wallet - using  payment system

The status flow could be similar to this:- Pending -> Confirmed by Shopper -> Confirmed -> Shipped

The order is pending as long the customer did not agreed to pay via the payment system. If they comfirm the order the order is set to "confirmed by shopper", when the payment is completed with the payment provider, the payment system updates the VirtueMart order automatically and sets the order status to confirmed.

The confirmed orders are then ready to be shipped and on dispatch, the order status is manually changed from Confirmed -> Shipped