Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Как вывести главную категорию товара ?


Recommended Posts

Всем доброго дня.
Совсем недавно задавал вопросы по поводу настройки Google tag manager и отправки в analytics необходимой информации,(создавал в платных услугах)
Желающих помочь было (только 1 человек)
4 ночи за компьютером -  и пол дела сделано)
Теперь не могу вывести название главной категории товара для отправки в analytics
В категории - вывел категорию
В карточке товара  вывел категорию но только получилось вывести полный путь категорий  от начальной до последней ( категория=категория1)

  • Сейчас не могу вывести категорию товара на страницу успешного заказа.
  • Нужно вывести только сумму товаров для отправки - 
  • Не могу вывести код купона который применяли

Помогите кто чем может
Направьте пожалуйста по правильному пути?

Код страницы успешного заказа прилагается-
 

<?php echo $header; ?>


<div class="container">
  <ul class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
    <?php } ?>
  </ul>
  <div class="row"><?php echo $column_left; ?>
    <?php if ($column_left && $column_right) { ?>
    <?php $class = 'col-sm-6'; ?>
    <?php } elseif ($column_left || $column_right) { ?>
    <?php $class = 'col-sm-9'; ?>
    <?php } else { ?>
    <?php $class = 'col-sm-12'; ?>
    <?php } ?>
    <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?>
      <h1><?php echo $heading_title; ?></h1>
      <?php echo $text_message; ?>

<?php if (isset($order_id)) { ?>
<div id="print">
<div style="padding: 0px 0px 20px 0px;">
<?php echo $store_name; ?><br />
<?php echo $store_address; ?><br />
<?php echo $store_emal; ?><br />
<?php echo $store_tel; ?>
</div>
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left" colspan="2"><?php echo $text_order_detail; ?></td>
</tr>
</thead>
<tbody>
<tr>
<td class="text-left" style="width: 50%;"><?php if ($invoice_no) { ?>
<b><?php echo $text_invoice_no; ?></b> <?php echo $invoice_no; ?><br />
<?php } ?>
<b><?php echo $text_order_id; ?></b> #<?php echo $order_id; ?><br />
<b><?php echo $text_date_added; ?></b> <?php echo $date_added; ?></td>
<td class="text-left"><?php if ($payment_method) { ?>
<b><?php echo $text_payment_method; ?></b> <?php echo $payment_method; ?><br />
<?php } ?>
<?php if ($shipping_method) { ?>
<b><?php echo $text_shipping_method; ?></b> <?php echo $shipping_method; ?>
<?php } ?></td>
</tr>
</tbody>
</table>
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left" style="width: 50%;"><?php echo $text_payment_address; ?></td>
<?php if ($shipping_address) { ?>
<td class="text-left"><?php echo $text_shipping_address; ?></td>
<?php } ?>
</tr>
</thead>
<tbody>
<tr>
<td class="text-left"><?php echo $payment_address; ?></td>
<?php if ($shipping_address) { ?>
<td class="text-left"><?php echo $shipping_address; ?></td>
<?php } ?>
</tr>
</tbody>
</table>
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left"><?php echo $column_name; ?></td>
<td class="text-left"><?php echo $column_model; ?></td>
<td class="text-right"><?php echo $column_quantity; ?></td>
<td class="text-right"><?php echo $column_price; ?></td>
<td class="text-right"><?php echo $column_total; ?></td>
</tr>
</thead>
<tbody>
<?php foreach ($products as $product) { ?>
<tr>
<td class="text-left"><?php echo $product['name']; ?>
<?php foreach ($product['option'] as $option) { ?>
<br />
&nbsp;<small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?></small>
<?php } ?></td>
<td class="text-left"><?php echo $product['model']; ?></td>
<td class="text-right"><?php echo $product['quantity']; ?></td>
<td class="text-right"><?php echo $product['price']; ?></td>
<td class="text-right"><?php echo $product['total']; ?></td>
</tr>
<?php } ?>
<?php foreach ($vouchers as $voucher) { ?>
<tr>
<td class="text-left"><?php echo $voucher['description']; ?></td>
<td class="text-left"></td>
<td class="text-right">1</td>
<td class="text-right"><?php echo $voucher['amount']; ?></td>
<td class="text-right"><?php echo $voucher['amount']; ?></td>
</tr>
<?php } ?>
</tbody>
<tfoot>
<?php foreach ($totals as $total) { ?>
<tr>
<td colspan="3"></td>
<td class="text-right"><b><?php echo $total['title']; ?></b></td>
<td class="text-right"><?php echo $total['text']; ?></td>
</tr>
<?php } ?>
</tfoot>
</table>
</div>
<?php if ($comment) { ?>
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left"><?php echo $text_comment; ?></td>
</tr>
</thead>
<tbody>
<tr>
<td class="text-left"><?php echo $comment; ?></td>
</tr>
</tbody>
</table>
<?php } ?>
<?php if ($histories) { ?>
<h3><?php echo $text_history; ?></h3>
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left"><?php echo $column_date_added; ?></td>
<td class="text-left"><?php echo $column_status; ?></td>
<td class="text-left"><?php echo $column_comment; ?></td>
</tr>
</thead>
<tbody>
<?php foreach ($histories as $history) { ?>
<tr>
<td class="text-left"><?php echo $history['date_added']; ?></td>
<td class="text-left"><?php echo $history['status']; ?></td>
<td class="text-left"><?php echo $history['comment']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
  <!--Скрипт отправки данных в analytics-->
<?php if (isset($order_id)) { ?>      
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'ecommerce': {
'currencyCode': 'RUB',
'purchase': {
'actionField': {
'id': '<?php echo $order_id; ?>',
'affiliation': '<?php echo $store_name; ?>',

'revenue': '<?php echo $total['text']; ?>', //Тут выводиться только общая сумма заказа

<?php foreach ($vouchers as $voucher) { ?>    //Тут думал что получиться но не получилось
'shipping': '<?php echo $voucher['amount']; ?>',
'coupon': '<?php echo $voucher['amount']; ?>'
<?php } ?>
},

'products': [<?php foreach ($products as $product) { ?>{  
'name': '<?php echo $product['name']; ?>',
'id': '<?php echo $product['product_id']; ?>',
'price': '<?php echo $product['price']; ?>',
'brand': '<?php echo $product['manufacturer']; ?>',
'category': ' ',
<?php foreach ($product['option'] as $option) { ?>
'variant': '<?php echo $option['value']; ?>',
<?php } ?>
'quantity': <?php echo $product['quantity']; ?>

},<?php } ?>
]

}
},
'event': 'gtm-ee-event',
'gtm-ee-event-category': 'Расширенная торговля',
'gtm-ee-event-action': 'Покупка',
'gtm-ee-event-non-interaction': 'False',
});
</script>
<?php } ?>
  <!--Скрипт отправки данных в analytics Конец-->
<?php } ?>
</div>
<?php } ?>

      
      <div class="buttons">
        <div class="pull-right"><a href="<?php echo $continue; ?>" class="btn btn-primary"><?php echo $button_continue; ?></a></div>
      </div>
      <?php echo $content_bottom; ?></div>
    <?php echo $column_right; ?></div>
</div>


			<?php if (isset($script_order)) { echo $script_order; } ?>
			<?php echo $footer; ?>
			

 

Link to comment
Share on other sites


Вам нужно создать свою функцию в модели product, например getMainCategory($product_id)

которая будет выбирать из базы данные по ней и потом вызывать ее по необходимости в произвольных местах.

public function getMainCategory($product_id) {
	$query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "product_to_category ptc LEFT JOIN " . DB_PREFIX . "category_description cd ON (ptc.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (ptc.category_id = c2s.category_id) WHERE ptc.product_id = '" . (int)$product_id . "' AND ptc.main_category = '1' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
	return $query->row;
}

что-нибудь вроде такого, где вместо * можно оставить только те данные, которые Вам нужны по главной категории и работать с полученным массивом. Если нужны какие-то доп поля кроме названия, вроде картинки- нужно в запрос подцепить еще и выборку из таблицы category, но для GA это не нужно.

  • +1 1
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.