Query design for tracking order status
A good start.


use InnoDB (or better yet, Postgres). You can use MyISAM slaves if you want full-text search, but otherwise, foreign keys are your friends.
watch your under_scores and camelCase. Use lowercase + underscores for max compatibility.
An order is sold by a vendor to a customer and is paid for by the bill_to party (who is often the customer). Can someone pay for the order that is not the customer? (ex. Grandma buys for Grandson, but uses Grandpas credit card). Don't forget the bill_to_address, that is often required. 
order_details is usually called order_items. An order_item can be shipped to someone that is different from the customer or bill_to party. You could add ship_to and ship_to_address fields on order_details.
Are you selling only packages, or might you sell other goods, services, etc? Look into Table Inheritance. 
Different parties play different roles in an order, in particular split sales commission. see def below
Can an order have the same status more than once? If not, remove order_status.status_id
I would rename order_statuses to order_status_types


Good luck!

order_role (table)
order_id FK 
party_id FK 
role_type FK order_role_type
commission_percent null