Send email when order status is changed
Rules is definitely the way to do this.


Create a new rule...


Name: Order Status Update
Tags:
React on event: Commerce order > After updating an existing commerce order


Then, add an action. System > Send mail
Email "To" value. Use the [commerce-order:mail] token
Fill out subject and message. Then save.


Updated: To make sure you dont send an email everytime the order is updated, set the following rules...


Add condition: Data Comparison. Commerce-order:status = Completed
Add "AND".
Add condition: Data Comparison. Commerce-order-unchanged:status = Completed, but check NEGATE.


This avoids having to enable the PHP filter module.