AddItemCommand   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 3
dl 0
loc 44
ccs 0
cts 18
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A generate() 0 34 5
1
<?php
2
3
namespace ByTIC\GoogleAnalytics\Tracking\Renderer\Script\AnalyticsJs\Ecommerce;
4
5
use ByTIC\GoogleAnalytics\Tracking\Data\Ecommerce\Item;
6
use ByTIC\GoogleAnalytics\Tracking\Data\Tracker;
7
use ByTIC\GoogleAnalytics\Tracking\Renderer\Script\AnalyticsJs;
8
use ByTIC\GoogleAnalytics\Tracking\Renderer\Script\AnalyticsJs\MethodCall;
9
10
/**
11
 * Class AddItemCommand
12
 * @package ByTIC\GoogleAnalytics\Tracking\Renderer\Script\AnalyticsJs\Ecommerce
13
 */
14
class AddItemCommand
15
{
16
17
    /**
18
     * @param Tracker $tracker
19
     * @param Item $item
20
     * @param $functionName
21
     * @return string
22
     */
23
    public static function generate($tracker, $item, $functionName = AnalyticsJs::DEFAULT_FUNCTION_NAME)
24
    {
25
        $itemParams = [
26
            'id'   => $item->getTransactionId(),
27
            'name' => $item->getName(),
28
        ];
29
30
        $sku = $item->getSku();
31
        if ($sku !== null) {
32
            $itemParams['sku'] = $sku;
33
        }
34
35
        $category = $item->getCategory();
36
        if ($category !== null) {
37
            $itemParams['category'] = $category;
38
        }
39
40
        $price = $item->getPrice();
41
        if ($price !== null) {
42
            $itemParams['price'] = $price;
43
        }
44
45
        $quantity = $item->getQuantity();
46
        if ($quantity !== null) {
47
            $itemParams['quantity'] = $quantity;
48
        }
49
50
        $params = [
51
            $tracker->getCommandAlias() . 'ecommerce:addItem',
52
            $itemParams,
53
        ];
54
55
        return MethodCall::generate($params, $functionName);
56
    }
57
}
58