AbanteCart Community

AbanteCart Development => Customization help => Topic started by: marceloaraujo on February 17, 2018, 11:05:20 AM

Title: Email products order sorted by category
Post by: marceloaraujo on February 17, 2018, 11:05:20 AM
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
Title: Re: Email products order sorted by category
Post by: abolabo on February 19, 2018, 06:56:30 AM
Hello.
What email are you talking about? Order notification?

You can change products array via you custom  extension hook.

Example
Code: [Select]
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

Title: Re: Email products order sorted by category
Post by: marceloaraujo on February 20, 2018, 07:25:59 AM
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
Title: Re: Email products order sorted by category
Post by: 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 "
Title: Re: Email products order sorted by category
Post by: abantecart on February 20, 2018, 07:56:12 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.