增强的电子商务数据层WooCommerce

时间:2016-10-03 12:38:00

标签: javascript php woocommerce google-tag-manager hook-woocommerce

我试图为WooCommerce设置dataLayer谢谢你的页面。看看我到目前为止所做的事情(变量还没有完全建立):

function dataLayer_google_gtm( $order_id ) {

    // Lets grab the order
    $order = wc_get_order( $order_id );

    // Products
    $products = $order->get_items();
    ?>

    <script>
        dataLayer.push({
        'ecommerce': {
            'purchase': {
                'actionField':{
                    'id':'<?php echo $order->get_order_number(); ?>',
                    'affiliation':'CHACAFOODS', 
                    'revenue':'<?php echo $order->get_order_total(); ?>',
                    'tax':'<?php echo $order->get_total_tax(); ?>',
                    'shipping':'<?php echo $order->get_shipping(); ?>',
                    'coupon':'<?php echo $order->get_order_discount_total(); ?>',
                },
                window['service'].push('products':,[
                <?php
                    $count = 0;
                    foreach( $products as $item_id => $item ) {
                        $count++;
                        $product = $order->get_product_from_item( $item ); ?>
                        {
                            'name':<?php echo $item['name']; ?>',
                            'id':
                            'price': '<?php echo $order->get_line_subtotal( $item ); ?>',
                            'brand':
                            'category':
                            'variant':
                            'quantity': '<?php echo $item['qty']; ?>'
                        }
                <?php if ( count( $order->get_items() ) > $count ) { echo ","; } ?>
                <?php } ?>
                ]);
            }
        }
        });
    </script>
    <?php
}
add_action( 'woocommerce_order_status_completed', 'prefix_service_conversion_tracking' );

有人能告诉我上面的结构是否会像下面的增强型电子商务结构一样?

google dataLayer结构:

<script>
// Send transaction data with a pageview if available
// when the page loads. Otherwise, use an event when the transaction
// data becomes available.
dataLayer.push({
  'ecommerce': {
    'purchase': {
      'actionField': {
        'id': 'T12345',                         // Transaction ID. Required for purchases and refunds.
        'affiliation': 'Online Store',
        'revenue': '35.43',                     // Total transaction value (incl. tax and shipping)
        'tax':'4.90',
        'shipping': '5.99',
        'coupon': 'SUMMER_SALE'
      },
      'products': [{                            // List of productFieldObjects.
        'name': 'Triblend Android T-Shirt',     // Name or ID is required.
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray',
        'quantity': 1,
        'coupon': ''                            // Optional fields may be omitted or set to empty string.
       },
       {
        'name': 'Donut Friday Scented T-Shirt',
        'id': '67890',
        'price': '33.75',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Black',
        'quantity': 1
       }]
    }
  }
});
</script>

非常感谢你的帮助!

祝你好运, 安东

1 个答案:

答案 0 :(得分:7)

您可以尝试这样的事情:

                var nparma = new NavigationParameters();
                nparma.Add("Session", option);
                await App.NavigateTo("RootPage/StyledNavigationPage/SessionsListPage?ProjectId=" + option.ProjectId + "/LocationListPage", nparma);

对于Brand,您可以使用随后打印的产品属性。<​​/ p>

祝你好运!