Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 分析电子商务跟踪仅获取最后一项_Php_Mysql_Google Analytics - Fatal编程技术网

Php 分析电子商务跟踪仅获取最后一项

Php 分析电子商务跟踪仅获取最后一项,php,mysql,google-analytics,Php,Mysql,Google Analytics,我已经设置了电子商务跟踪,在我的网站上运行得很好。但是,如果订单包含2个相同的项目ID但不同的属性,则只接受最后一行。例如,一个订单的输出包含6个相同但大小不同的项目,如下所示: ga('ecommerce:addItem', { 'id': '3832', 'name': 'Big Al Poly Cotton Shop Coat', 'sku': '140', 'category': 'Shop Coats', 'price': '31.85', 'quantity': '3'}); ga(

我已经设置了电子商务跟踪,在我的网站上运行得很好。但是,如果订单包含2个相同的项目ID但不同的属性,则只接受最后一行。例如,一个订单的输出包含6个相同但大小不同的项目,如下所示:

ga('ecommerce:addItem', { 'id': '3832', 'name': 'Big Al Poly Cotton Shop Coat', 'sku': '140', 'category': 'Shop Coats', 'price': '31.85', 'quantity': '3'});
ga('ecommerce:addItem', { 'id': '3832', 'name': 'Big Al Poly Cotton Shop Coat', 'sku': '140', 'category': 'Shop Coats', 'price': '31.85', 'quantity': '2'});
ga('ecommerce:addItem', { 'id': '3832', 'name': 'Big Al Poly Cotton Shop Coat', 'sku': '140', 'category': 'Shop Coats', 'price': '31.85', 'quantity': '4'});
ga('ecommerce:addItem', { 'id': '3832', 'name': 'Big Al Poly Cotton Shop Coat', 'sku': '140', 'category': 'Shop Coats', 'price': '31.85', 'quantity': '4'});
ga('ecommerce:addItem', { 'id': '3832', 'name': 'Big Al Poly Cotton Shop Coat', 'sku': '140', 'category': 'Shop Coats', 'price': '31.85', 'quantity': '4'});
ga('ecommerce:addItem', { 'id': '3832', 'name': 'Big Al Poly Cotton Shop Coat', 'sku': '140', 'category': 'Shop Coats', 'price': '36.65', 'quantity': '2'});
analytics记录的唯一一行是最后一行。如果订单上订购了不同的产品,一切正常。只有当同一产品的多个属性排序时,才会出现问题

这是生成字符串的php:

   $item_string = '';
    $items_query = tep_db_query("select products_id, products_model, products_name, final_price, products_tax, products_quantity from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . $order_id . "' order by products_name");
    while ($items = tep_db_fetch_array($items_query)) {
        $category_query = tep_db_query("select p2c.categories_id, cd.categories_name from " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p2c.products_id = '" . $items['products_id'] . "' AND cd.categories_id = p2c.categories_id AND cd.language_id = '" . (int)$languages_id . "'");
        $category = tep_db_fetch_array($category_query);

        $item_string .= "ga('ecommerce:addItem', { ";
        $item_string .=  "'id': '" . $order_id . "', 'name': '" . $items['products_name'] . "', 'sku': '" . $items['products_id'] . "', 'category': '" . $category['categories_name'] . "', 'price': '" . number_format(tep_add_tax($items['final_price'], $items['products_tax']), 2) . "', 'quantity': '" . $items['products_quantity'] . "'";
        $item_string .= "}); \n";

    }

GA在分离项目时遇到问题,因为它们都具有相同的id

GA正在根据产品id拾取唯一的行项目。当前,您正在传递父产品的产品id

如果您为不同尺寸的所有子产品提供唯一的ID,GA将能够轻松报告这一点


您可能在数据库中的某个位置有唯一的ID,您需要修改$items\u查询以同时传入子ID和父ID。如果数据库中没有子id,也许可以将大小附加到产品id,以便通过GA创建用于分析的唯一id。

问题是您的所有项目都使用相同的SKU。GA通过SKU跟踪电子商务交易。ID应与事务ID相同,因为它将项目绑定到同一事务

有关更多信息,请参阅实施指南


如果购物车中有多个物品具有相同的SKU,则应使用quantity参数。

Ah ok。我认为这是SKU领域的原因。我把它们改成每一行都是独一无二的。带我们了解一下逻辑。$items\u是否查询一个包含所有订购产品的表?然后您应该按产品\u id进行分组。是的$items查询如下所示:我刚刚将SKU更改为使用订单\u产品\u id字段,而不是仅使用产品\u id。此答案正确,id应该是相同的事务id,SKU应该是唯一的。