News:

AbanteCart v1.4.2 is released.

Main Menu

Email products order sorted by category

Started by marceloaraujo, February 17, 2018, 11:05:20 AM

Previous topic - Next topic

marceloaraujo

Hello,

I would like to know how I change the products sort on the email order. I need the products to be in sorted by of category.

Regards,
Marcelo

abolabo

Hello.
What email are you talking about? Order notification?

You can change products array via you custom  extension hook.

Example

public function onModelCheckoutOrder_ProcessData(){
   if(func_get_arg(0) != 'sf_order_confirm_mail'){
       //prevent multiiple calls
       return null;
   }
   $that = $this->baseObject;
   $that->data['mail_template_data']['products'] = array(....);  //build your own array here
}


You can find place with hook call in public_html/storefront/model/checkout/order.php line 615


marceloaraujo

#2
Yes it is the notification email.

As it says in my profile, i'm a newbie!!  ;)
Can you help me with the array?

Regards,
Marcelo

abantecart

marceloaraujo, are you AbanteCart or coding newbie?

You can change product sorting for products in order confirmation email, by changing data select order

On line #358:
https://github.com/abantecart/abantecart-src/blob/master/public_html/storefront/model/checkout/order.php#L358

Change below code for selection to appropriate sorting

      $order_product_query = $this->db->query("SELECT *
                                     FROM " . $this->db->table("order_products") . "
                                     WHERE order_id = '" . (int)$order_id . "'");

Something like " order by product_id "

abantecart

Quote from: abantecart on February 20, 2018, 07:54:23 AM
marceloaraujo, are you AbanteCart or coding newbie?

You can change product sorting for products in order confirmation email, by changing data select order

On line #358:
https://github.com/abantecart/abantecart-src/blob/master/public_html/storefront/model/checkout/order.php#L358

Change below code for selection to appropriate sorting

      $order_product_query = $this->db->query("SELECT *
                                     FROM " . $this->db->table("order_products") . "
                                     WHERE order_id = '" . (int)$order_id . "'");

Something like " order by product_id "

If you care about easy future upgrades, I suggest you create an override or hook to this model.

Forum Rules Code of conduct
AbanteCart.com 2010 -