- Posts: 14
- Thank you received: 1
Customize Orders Export
10 years 4 months ago #241382
by midnites
Customize Orders Export was created by midnites
-- HikaShop version -- : 2.6.2
-- Joomla version -- : 3.5.2
Through another post I was able to figure out how to only pull the data I need for the Orders Export (Mass action does not work for what I need!). I have 4 issues:
1) I need to export the subtotal before tax (same as appears under the individual order Additional Information box).
2) I need to rearrange column order.
3) Change column headers.
4) I also need to pull in coupons and I can't find the variable name for that.
(I am NOT a php programmer, but I understand it a little).
Here's my updated export code:
I've attached a screen cap of what it's outputting.
Thanks!
-- Joomla version -- : 3.5.2
Through another post I was able to figure out how to only pull the data I need for the Orders Export (Mass action does not work for what I need!). I have 4 issues:
1) I need to export the subtotal before tax (same as appears under the individual order Additional Information box).
2) I need to rearrange column order.
3) Change column headers.
4) I also need to pull in coupons and I can't find the variable name for that.
(I am NOT a php programmer, but I understand it a little).
Here's my updated export code:
Code:
<?php
/**
* @package HikaShop for Joomla!
* @version 2.6.2
* @author hikashop.com
* @copyright (C) 2010-2016 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
while(ob_get_level() > 1)
ob_end_clean();
$config =& hikashop_config();
$format = $config->get('export_format','csv');
$separator = $config->get('csv_separator',';');
$force_quote = $config->get('csv_force_quote',1);
$decimal_separator = $config->get('csv_decimal_separator','.');
$export = hikashop_get('helper.spreadsheet');
$export->init($format, 'hikashop_export', $separator, $force_quote, $decimal_separator);
if(!empty($this->orders)){
$maxProd = 0;
$productFields = null;
foreach($this->orders as $order){
$nbProd = count(@$order->products);
if($maxProd < $nbProd){
$maxProd = $nbProd;
if(empty($productFields)){
$productFields = array_keys(get_object_vars(reset($order->products)));
}
}
}
if($maxProd && !empty($productFields)) {
$first = array();
$o = reset($this->orders);
foreach($o as $key => $val) {
if(is_array($val))
continue;
$first[] = $key;
}
$o = null;
for($i=1;$i<=$maxProd;$i++){
foreach($productFields as $field){
$first[] = 'item'.$i.'_'.$field;
}
}
} else {
$first = array_keys(get_object_vars(reset($this->orders)));
}
$export->writeLine($first);
foreach($this->orders as $row)
{
//format date
if(!empty($row->user_created)) $row->user_created = hikashop_getDate($row->user_created,'%m-%d-%Y ');
if(!empty($row->order_created)) $row->order_created = hikashop_getDate($row->order_created,'%m-%d-%Y');
if(!empty($row->order_modified)) $row->order_modified = hikashop_getDate($row->order_modified,'%m-%d-%Y');
//info
$new_row = array();
foreach ($row as $key => $value)
{
if(in_array($key,array('order_number','order_modified','shipping_address_city','shipping_address_state','order_subtotal_no_vat','order_discount_price','order_shipping_price','order_full_tax','order_full_price')))
$new_row[$key] = $value;
}
$export->writeLine($new_row);
}
}
$export->send();
exit;
I've attached a screen cap of what it's outputting.
Thanks!
Please Log in or Create an account to join the conversation.
10 years 4 months ago #241390
by nicolas
Replied by nicolas on topic Customize Orders Export
Hi,
Please note that we offer user support here, not free custom development services.
So we can answer questions about how to use HikaShop, and fix issues, but such work ought to be given to a developer you'd hire for that.
As I'm nice, I'll give you hints to what you want to do.
1. You would have to manually calculate it out of the product prices similarily to was is done for the calculation of the order_full_tax in the export function of the file administrator/components/com_hikashop/views/order/view.html.php
2. and 3. You want to change your code for the creation of the $new_row and do the foreach on your array of column names (with them in the order you want). Something like that:
And you want to change $first to contain the array of the column names you want in the order you want them.
4. The coupon code is stored in order_discount_code
Please note that we offer user support here, not free custom development services.
So we can answer questions about how to use HikaShop, and fix issues, but such work ought to be given to a developer you'd hire for that.
As I'm nice, I'll give you hints to what you want to do.
1. You would have to manually calculate it out of the product prices similarily to was is done for the calculation of the order_full_tax in the export function of the file administrator/components/com_hikashop/views/order/view.html.php
2. and 3. You want to change your code for the creation of the $new_row and do the foreach on your array of column names (with them in the order you want). Something like that:
Code:
foreach(array('order_number','order_modified','shipping_address_city','shipping_address_state','order_subtotal_no_vat','order_discount_price','order_shipping_price','order_full_tax','order_full_price') as $column){
$new_row[$column] = $row->$column;
}
4. The coupon code is stored in order_discount_code
Please Log in or Create an account to join the conversation.
Time to create page: 0.165 seconds