Magento – Editing Magento Admin and User order detail page

adminhtmlcustomermagento-1.9order-grid

This is a cross-post from stackoverflow, where nobody has been able to help so far.

I'm trying to add a minimal, manual "track shipment" system in Magento. Here's what I'm trying to do:

I'd like to have radio buttons on the admin order detail page to select where the shipment is (e.g. not yet shipped, on its way, arrived). When I select one and press submit, I'd like for the customer to see the information on his/her order detail page.

I've managed to add radio buttons on the admin side by editing this file– app/design/adminhtml/default/default/template/sales/order/view/tab/info.phtml –but I believe that it will be overwritten if Magento is updated. The same is true for edits on the customer side file– app/design/frontend/base/default/template/sales/order/info/buttons.phtml

Also, the buttons don't actually do anything yet. I think what I need to do might be to add a column to Sales_Flat_Order (for the order to have a shipping state) and Sales_Flat_Order_Grid (for the admin to be able to see its current state). Then, the radio buttons could somehow change the state in this table, and when the customer page is loaded, it could retrieve the state and display it.

Summary of questions:

  1. How can I edit the order detail pages (admin's and customer's) in a sustainable way
  2. Should I just make a new table column in phpMyAdmin, or must it somehow be done through Magento?
  3. Can I somehow use radio buttons to change a table?
  4. Can I then retrieve that information and display it on the customer order detail page?

Any guidance, however partial, would be greatly appreciated. I've been beating my head against google to get this far, but I don't feel that much closer to actually solving the problem.

Best Answer

I would recommend to use the build in Magento order status functions. If you create the 3 different status types you can select them at the order detail page in the order history box. This way you also have a history when the status changed.

Also the solution you used is not recommended, best is to create an extension and use an observer or rewrite to add your changes.