diff --git a/plugins/Goals/API.php b/plugins/Goals/API.php index 5feba1b47ed37320e181c33d7645c1536e5a7259..aea16ad70e68b0b52f18efd68c9acaa9e0dbc37c 100644 --- a/plugins/Goals/API.php +++ b/plugins/Goals/API.php @@ -212,6 +212,7 @@ class Piwik_Goals_API $dataTable = $archive->getDataTable($recordNameFinal); $dataTable->filter('Sort', array(Piwik_Archive::INDEX_ECOMMERCE_ITEM_REVENUE)); $dataTable->queueFilter('ReplaceColumnNames'); + $dataTable->queueFilter('ReplaceSummaryRowLabel'); $ordersColumn = 'orders'; if ($abandonedCarts) { diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php b/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php index 6c8d2a2834870e441f382f762552c1d039660da6..dfeac8e7c2ea061757aba13df63592d4147710dd 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php @@ -15,6 +15,12 @@ class Test_Piwik_Fixture_ManyVisitsWithMockLocationProvider extends Test_Piwik_B { public $idSite = 1; public $dateTime = '2010-01-03 01:22:33'; + public $nextDay = null; + + public function __construct() + { + $this->nextDay = Piwik_Date::factory($this->dateTime)->addDay(1)->getDatetime(); + } public function setUp() { @@ -107,6 +113,9 @@ class Test_Piwik_Fixture_ManyVisitsWithMockLocationProvider extends Test_Piwik_B // track outlinks $this->trackActions($t, $visitorCounter, 'outlink', $userAgents, $resolutions); + + // track ecommerce product orders + $this->trackOrders($t); } private function trackActions($t, &$visitorCounter, $actionType, $userAgents, $resolutions, @@ -159,6 +168,21 @@ class Test_Piwik_Fixture_ManyVisitsWithMockLocationProvider extends Test_Piwik_B } } } + + private function trackOrders($t) + { + $nextDay = Piwik_Date::factory($this->nextDay); + $t->setForceVisitDateTime($nextDay); + + for ($i = 0; $i != 25; ++$i) { + $cat = $i % 5; + + $t->setNewVisitorId(); + $t->setIp("155.5.4.$i"); + $t->setEcommerceView("id_book$i", "Book$i", "Books Cat #$cat", 7.50); + self::checkResponse($t->doTrackPageView('bought book')); + } + } private function trackAction($t, $actionType, $visitorCounter, $actionNum) { diff --git a/tests/PHPUnit/Integration/BlobReportLimitingTest.php b/tests/PHPUnit/Integration/BlobReportLimitingTest.php index 918b177358d19e5ceec54bba6d0fe2d7388f789f..b18c7707d865e3ccf981b97924dbd9ec4a9e6643 100755 --- a/tests/PHPUnit/Integration/BlobReportLimitingTest.php +++ b/tests/PHPUnit/Integration/BlobReportLimitingTest.php @@ -35,11 +35,17 @@ class Test_Piwik_Integration_BlobReportLimitingTest extends IntegrationTestCase 'UserSettings.getBrowserVersion', 'UserCountry.getRegion', 'UserCountry.getCity', ); + + $ecommerceApi = array('Goals.getItemsSku', 'Goals.getItemsName', 'Goals.getItemsCategory'); return array( array($apiToCall, array('idSite' => self::$fixture->idSite, 'date' => self::$fixture->dateTime, - 'periods' => array('day'))) + 'periods' => array('day'))), + + array($ecommerceApi, array('idSite' => self::$fixture->idSite, + 'date' => self::$fixture->nextDay, + 'periods' => 'day')), ); } diff --git a/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsCategory_day.xml b/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsCategory_day.xml new file mode 100644 index 0000000000000000000000000000000000000000..a8d3e17e5359b5bccb7e1bc18dca95614d343485 --- /dev/null +++ b/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsCategory_day.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row> + <label>Books Cat #0</label> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_visits>5</nb_visits> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Others</label> + <nb_uniq_visitors>20</nb_uniq_visitors> + <nb_visits>20</nb_visits> + <nb_actions>20</nb_actions> + <avg_price>30</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> +</result> \ No newline at end of file diff --git a/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsName_day.xml b/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsName_day.xml new file mode 100644 index 0000000000000000000000000000000000000000..95cb364b56f3a8c61846b9cbb173b5d94175f923 --- /dev/null +++ b/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsName_day.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row> + <label>Book0</label> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_visits>1</nb_visits> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Others</label> + <nb_uniq_visitors>24</nb_uniq_visitors> + <nb_visits>24</nb_visits> + <nb_actions>24</nb_actions> + <avg_price>180</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> +</result> \ No newline at end of file diff --git a/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsSku_day.xml b/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsSku_day.xml new file mode 100644 index 0000000000000000000000000000000000000000..c234bed59e963e268d7a9bc05348d941758c4aa9 --- /dev/null +++ b/tests/PHPUnit/Integration/expected/test_reportLimiting__Goals.getItemsSku_day.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result /> \ No newline at end of file diff --git a/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml b/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml new file mode 100644 index 0000000000000000000000000000000000000000..a8d3e17e5359b5bccb7e1bc18dca95614d343485 --- /dev/null +++ b/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row> + <label>Books Cat #0</label> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_visits>5</nb_visits> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Others</label> + <nb_uniq_visitors>20</nb_uniq_visitors> + <nb_visits>20</nb_visits> + <nb_actions>20</nb_actions> + <avg_price>30</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> +</result> \ No newline at end of file diff --git a/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml b/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml new file mode 100644 index 0000000000000000000000000000000000000000..95cb364b56f3a8c61846b9cbb173b5d94175f923 --- /dev/null +++ b/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row> + <label>Book0</label> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_visits>1</nb_visits> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Others</label> + <nb_uniq_visitors>24</nb_uniq_visitors> + <nb_visits>24</nb_visits> + <nb_actions>24</nb_actions> + <avg_price>180</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> +</result> \ No newline at end of file diff --git a/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml b/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml new file mode 100644 index 0000000000000000000000000000000000000000..c234bed59e963e268d7a9bc05348d941758c4aa9 --- /dev/null +++ b/tests/PHPUnit/Integration/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result /> \ No newline at end of file