开发者

Adding custom field to Ubercart Invoice

My client has an ubercart based shop which works fine. Due to开发者_运维问答 some internal stuff he needs to manually add a field to each invoice. I wanted to know if or rather how i can add a custom field to orders that gets displayed on all the invoices.


It's an old question but this may help others; you can use the following code.

First checkout the customer.itpl.php or customer.itpl.php files located under ubercart/uc_order/templates.

Then you can edit the foreach loop that echoes all the products and add your own fields this way:

<?php
     foreach ($order->products as $product) {
         $nid = ($product->nid);
         $noderef = node_load($nid);
         echo $product->title .' : '.$noderef->your_own_field[0]['value'];
         echo "<br />";
?>

My Ubercart installation has the product fields can be edited from http://www.mysite.com/admin/content/node-type/product/fields.

You can find more information on this issue.


I have not personally had to make this change, so I'm not speaking from experience, but looking at the documentation I would try the following: (you could cut corners and avoid some work by modifying the existing modules, but this is the cleanest way I can think of)

  1. create a module that stores your field and the the order number.
  2. using from_alter modify the invoice editing screen to give your users a way to edit the field.
  3. use the invoice template to pull in your field, based on the order number. invoice "system" documentation.

It's not a simple change, but using this pattern you'll get the modification you are looking for without having to worry about updates not working.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜