Среда, 27 Май 2015 в 16:34
OpenCart. Вывод на странице Success.tpl данных о заказе и заказанных товарах на странице
Шаблон common/success.tpl отвечает за страницу «Спасибо за покупку» после оформления заказа и оплаты. Для того,чтобы вывести больше информации о заказе необходимо добавить некоторые изменения. В контроллер отвечающий за success.tpl (checkout/success.tpl или /payment/payaftercheck.php) после
public function success() { добавим данный код: $this->data['order'] = array(); $this->data['products'] = array(); if (isset($this->session->data['order_id'])) { $order_id = $this->session->data['order_id']; $this->load->model('account/order'); $order_info = $this->model_account_order->getOrder($order_id); if ($order_info) { $tax = 0; $shipping = 0; $order_totals = $this->model_account_order->getOrderTotals($order_id); foreach ($order_totals as $order_total) { if ($order_total['code'] == 'tax') { $tax += $order_total['value']; } elseif ($order_total['code'] == 'shipping') { $shipping += $order_total['value']; } } //запрос данных о заказе $this->data['order'] = $order_info; $this->data['order']['store_name'] = $this->config->get('config_name'); $this->data['order']['order_total'] = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false); $this->data['order']['order_tax'] = $this->currency->format($tax, $order_info['currency_code'], $order_info['currency_value'], false); $this->data['order']['order_shipping'] = $this->currency->format($shipping, $order_info['currency_code'], $order_info['currency_value'], false); // запрос данных о товарах в заказе $products = $this->model_account_order->getOrderProducts($order_id); $this->load->model('catalog/product'); $this->load->model('catalog/category'); foreach ($products as $product) { $sku = ''; $product_info = $this->model_catalog_product->getProduct($product['product_id']); if ($product_info) { $sku = $product_info['sku']; } $categories = array(); $product_categories = $this->model_catalog_product->getCategories($product['product_id']); if ($product_categories) { foreach ($product_categories as $product_category) { $category_data = $this->model_catalog_category->getCategory($product_category['category_id']); if ($category_data) { $categories[] = $category_data['name']; } } } $this->data['products'][] = array( 'order_id' => $order_id, 'product_id' => $product['product_id'], 'sku' => $sku, 'name' => $product['name'], 'category' => implode(',', $categories), 'quantity' => $product['quantity'], 'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value'], false) ); } } }
Для вывода на страницу «Операция выполнена успешно», например, данных о заказе, достаточно в шаблон success.tpl добавить нужные параметры:
<?php echo $order['order_id']; ?> // номер заказа <?php echo $order['order_total']; ?> // сумма заказ Для вывода информации о заказанных товаров достаточно добавить такие параметры: <?php foreach ($products as $product) { ?> <a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a> //Название товара и ссылка на него <?php echo $product['quantity']; ?> //количество товаров <?php echo $product['price']; ?> //цена товара <?php } ?>
Аналогично можно вывести и другие параметры заказа
- Category: OpenCart, Сайтостроение
- Ваш отзыв