1. Додав поле в базу, в таблицю order:
Ім'я: cost
Тип: decimal(15,4)
За замовчуванням: 0.0000
2. В admin/view/template/report/sale.tpl
<?php echo $column_date_start; ?>
<?php echo $column_date_end; ?>
<?php echo $column_orders; ?>
<?php echo $column_total; ?>
<?php if ($orders) { ?>
<?php foreach ($orders as $order) { ?>
<?php echo $order['date_start']; ?>
<?php echo $order['date_end']; ?>
<?php echo $order['orders']; ?>
<?php echo $order['total']; ?>
<?php } ?>
<?php } else { ?>
<?php echo $text_no_results; ?>
<?php } ?>
на
<?php echo $column_date_start; ?>
<?php echo $column_date_end; ?>
<?php echo $column_orders; ?>
<?php echo $column_cost; ?>
<?php echo $column_total; ?>
<?php if ($orders) { ?>
<?php foreach ($orders as $order) { ?>
<?php echo $order['date_start']; ?>
<?php echo $order['date_end']; ?>
<?php echo $order['orders']; ?>
<?php echo $order['cost']; ?>
<?php echo $order['total']; ?>
<?php } ?>
<?php echo $column_total; ?>
<?php echo $cost_total; ?>
<?php echo $total_total; ?>
<?php echo $column_profit; ?>
<?php echo $profit; ?>
<?php } else { ?>
<?php echo $text_no_results; ?>
<?php } ?>
3. B admin/controler/report/sale.php
foreach ($results as $result) {
$this->data['orders'][] = array(
'date_start' => date($this->language->get('date_format_short'), trtotime($result['date_start'])),
'date_end' => date($this->language->get('date_format_short'), strtotime($result['date_end'])),
'orders' => $result['orders'],
'total' => $this->currency->format($result['total'], $this->config->get('config_currency'))
);
}
на
$this->data['cost_total']=0;
$this->data['total_total']=0;
foreach ($results as $result) {
$this->data['cost_total'] += $result['cost'];
$this->data['total_total'] += $result['total'];
$this->data['orders'][] = array(
'date_start' => date($this->language->get('date_format_short'), strtotime($result['date_start'])),
'date_end' => date($this->language->get('date_format_short'), strtotime($result['date_end'])),
'orders' => $result['orders'],
'cost' => $this->currency->format($result['cost'], $this->config->get('config_currency')),
'total' => $this->currency->format($result['total'], $this->config->get('config_currency'))
);
}
$this->data['profit'] = $this->currency->format($this->data['total_total'] - $this->data['cost_total'], $this->config->get('config_currency'));
$this->data['cost_total'] = $this->currency->format($this->data['cost_total'], $this->config->get('config_currency'));
$this->data['total_total'] = $this->currency->format($this->data['total_total'], $this->config->get('config_currency'));
$this->data['column_profit'] = $this->language->get('column_profit'); $this->data['column_cost'] = $this->language->get('column_cost');
4. B admin/module/report/sale.php
$sql = "SELECT MIN(date_added) AS date_start, MAX(date_added) AS date_end, COUNT(*) AS orders, SUM(total) AS total FROM `" . DB_PREFIX . "order`";
на
$sql = "SELECT MIN(date_added) AS date_start, MAX(date_added) AS date_end, COUNT(*) AS orders, SUM(total) AS total, SUM(cost) AS cost FROM `" . DB_PREFIX . "order`";
5. В catalog/model/checkout/order.php
$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET store_id = '" . (int)$data['store_id']
. "', store_name = '" . $this->db->escape($data['store_name'])
. "', store_url = '" . $this->db->escape($data['store_url'])
. "', customer_id = '" . (int)$data['customer_id']
. "', customer_group_id = '" . (int)$data['customer_group_id']
. "', firstname = '" . $this->db->escape($data['firstname'])
. "', lastname = '" . $this->db->escape($data['lastname'])
. "', email = '" . $this->db->escape($data['email'])
. "', telephone = '" . $this->db->escape($data['telephone'])
. "', fax = '" . $this->db->escape($data['fax'])
. "', total = '" . (float)$data['total']
. "', language_id = '" . (int)$data['language_id']
. "', currency = '" . $this->db->escape($data['currency'])
. "', currency_id = '" . (int)$data['currency_id']
. "', value = '" . (float)$data['value']
. "', coupon_id = '" . (int)$data['coupon_id']
. "', ip = '" . $this->db->escape($data['ip'])
. "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname'])
. "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname'])
. "', shipping_company = '" . $this->db->escape($data['shipping_company'])
. "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1'])
. "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2'])
. "', shipping_city = '" . $this->db->escape($data['shipping_city'])
. "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode'])
. "', shipping_zone = '" . $this->db->escape($data['shipping_zone'])
. "', shipping_zone_id = '" . (int)$data['shipping_zone_id']
. "', shipping_country = '" . $this->db->escape($data['shipping_country'])
. "', shipping_country_id = '" . (int)$data['shipping_country_id']
. "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format'])
. "', shipping_method = '" . $this->db->escape($data['shipping_method'])
. "', payment_firstname = '" . $this->db->escape($data['payment_firstname'])
. "', payment_lastname = '" . $this->db->escape($data['payment_lastname'])
. "', payment_company = '" . $this->db->escape($data['payment_company'])
. "', payment_address_1 = '" . $this->db->escape($data['payment_address_1'])
. "', payment_address_2 = '" . $this->db->escape($data['payment_address_2'])
. "', payment_city = '" . $this->db->escape($data['payment_city'])
. "', payment_postcode = '" . $this->db->escape($data['payment_postcode'])
. "', payment_zone = '" . $this->db->escape($data['payment_zone'])
. "', payment_zone_id = '" . (int)$data['payment_zone_id']
. "', payment_country = '" . $this->db->escape($data['payment_country'])
. "', payment_country_id = '" . (int)$data['payment_country_id']
. "', payment_address_format = '" . $this->db->escape($data['payment_address_format'])
. "', payment_method = '" . $this->db->escape($data['payment_method'])
. "', comment = '" . $this->db->escape($data['comment'])
. "', date_modified = NOW(), date_added = NOW()"
);
на
$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET store_id = '" . (int)$data['store_id']
. "', store_name = '" . $this->db->escape($data['store_name'])
. "', store_url = '" . $this->db->escape($data['store_url'])
. "', customer_id = '" . (int)$data['customer_id']
. "', customer_group_id = '" . (int)$data['customer_group_id']
. "', firstname = '" . $this->db->escape($data['firstname'])
. "', lastname = '" . $this->db->escape($data['lastname'])
. "', email = '" . $this->db->escape($data['email'])
. "', telephone = '" . $this->db->escape($data['telephone'])
. "', fax = '" . $this->db->escape($data['fax'])
. "', total = '" . (float)$data['total']
. "', cost = '" . (float)$data['cost']
. "', language_id = '" . (int)$data['language_id']
. "', currency = '" . $this->db->escape($data['currency'])
. "', currency_id = '" . (int)$data['currency_id']
. "', value = '" . (float)$data['value']
. "', coupon_id = '" . (int)$data['coupon_id']
. "', ip = '" . $this->db->escape($data['ip'])
. "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname'])
. "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname'])
. "', shipping_company = '" . $this->db->escape($data['shipping_company'])
. "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1'])
. "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2'])
. "', shipping_city = '" . $this->db->escape($data['shipping_city'])
. "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode'])
. "', shipping_zone = '" . $this->db->escape($data['shipping_zone'])
. "', shipping_zone_id = '" . (int)$data['shipping_zone_id']
. "', shipping_country = '" . $this->db->escape($data['shipping_country'])
. "', shipping_country_id = '" . (int)$data['shipping_country_id']
. "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format'])
. "', shipping_method = '" . $this->db->escape($data['shipping_method'])
. "', payment_firstname = '" . $this->db->escape($data['payment_firstname'])
. "', payment_lastname = '" . $this->db->escape($data['payment_lastname'])
. "', payment_company = '" . $this->db->escape($data['payment_company'])
. "', payment_address_1 = '" . $this->db->escape($data['payment_address_1'])
. "', payment_address_2 = '" . $this->db->escape($data['payment_address_2'])
. "', payment_city = '" . $this->db->escape($data['payment_city'])
. "', payment_postcode = '" . $this->db->escape($data['payment_postcode'])
. "', payment_zone = '" . $this->db->escape($data['payment_zone'])
. "', payment_zone_id = '" . (int)$data['payment_zone_id']
. "', payment_country = '" . $this->db->escape($data['payment_country'])
. "', payment_country_id = '" . (int)$data['payment_country_id']
. "', payment_address_format = '" . $this->db->escape($data['payment_address_format'])
. "', payment_method = '" . $this->db->escape($data['payment_method'])
. "', comment = '" . $this->db->escape($data['comment'])
. "', date_modified = NOW(), date_added = NOW()"
);
6. В system/library/cart.php
$product_data[$key] = array(
'key' => $key,
'product_id' => $product_query->row['product_id'],
'name' => $product_query->row['name'],
'model' => $product_query->row['model'],
'shipping' => $product_query->row['shipping'],
'image' => $product_query->row['image'],
'option' => $option_data,
'download' => $download_data,
'quantity' => $quantity,
'minimum' => $product_query->row['minimum'],
'subtract' => $product_query->row['subtract'],
'stock' => $stock,
'price' => ($price + $option_price),
'total' => ($price + $option_price) * $quantity,
'tax_class_id' => $product_query->row['tax_class_id'],
'weight' => $product_query->row['weight'],
'weight_class' => $product_query->row['weight_class'],
'length' => $product_query->row['length'],
'width' => $product_query->row['width'],
'height' => $product_query->row['height'],
'length_class' => $product_query->row['length_class']
);
на
$cost = $product_query->row['cost'];
$product_data[$key] = array(
'key' => $key,
'product_id' => $product_query->row['product_id'],
'name' => $product_query->row['name'],
'model' => $product_query->row['model'],
'shipping' => $product_query->row['shipping'],
'image' => $product_query->row['image'],
'option' => $option_data,
'download' => $download_data,
'quantity' => $quantity,
'minimum' => $product_query->row['minimum'],
'subtract' => $product_query->row['subtract'],
'stock' => $stock,
'price' => ($price + $option_price),
'total' => ($price + $option_price) * $quantity,
'cost' => ($cost + $option_price) * $quantity,
'tax_class_id' => $product_query->row['tax_class_id'],
'weight' => $product_query->row['weight'],
'weight_class' => $product_query->row['weight_class'],
'length' => $product_query->row['length'],
'width' => $product_query->row['width'],
'height' => $product_query->row['height'],
'length_class' => $product_query->row['length_class']
);
7. B catalog/controller/checkout/guest_step_3.php та confirm.php
foreach ($this->cart->getProducts() as $product) {
$option_data = array();
foreach ($product['option'] as $option) {
$option_data[] = array(
'product_option_value_id' => $option['product_option_value_id'],
'name' => $option['name'],
'value' => $option['value'],
'prefix' => $option['prefix'] );
}
$product_data[] = array(
'product_id' => $product['product_id'],
'name' => $product['name'],
'model' => $product['model'],
'option' => $option_data,
'download' => $product['download'],
'quantity' => $product['quantity'],
'subtract' => $product['subtract'],
'price' => $product['price'],
'total' => $product['total'],
'tax' => $this->tax->getRate($product['tax_class_id'])
);
}
$data['products'] = $product_data;
$data['totals'] = $total_data;
$data['comment'] = $this->session->data['comment'];
$data['total'] = $total;
$data['language_id'] = $this->config->get('config_language_id');
$data['currency_id'] = $this->currency->getId();
$data['currency'] = $this->currency->getCode();
$data['value'] = $this->currency->getValue($this->currency->getCode());
}
на
$cost=0;
foreach ($this->cart->getProducts() as $product) {
$option_data = array();
foreach ($product['option'] as $option) {
$option_data[] = array(
'product_option_value_id' => $option['product_option_value_id'],
'name' => $option['name'],
'value' => $option['value'],
'prefix' => $option['prefix'] );
}
$product_data[] = array(
'product_id' => $product['product_id'],
'name' => $product['name'],
'model' => $product['model'],
'option' => $option_data,
'download' => $product['download'],
'quantity' => $product['quantity'],
'subtract' => $product['subtract'],
'price' => $product['price'],
'total' => $product['total'],
'tax' => $this->tax->getRate($product['tax_class_id'])
);
$cost += $product['cost'];
}
$data['products'] = $product_data;
$data['totals'] = $total_data;
$data['comment'] = $this->session->data['comment'];
$data['total'] = $total;
$data['cost'] = $cost;
$data['language_id'] = $this->config->get('config_language_id');
$data['currency_id'] = $this->currency->getId();
$data['currency'] = $this->currency->getCode();
$data['value'] = $this->currency->getValue($this->currency->getCode());
}