Craft\InstantAnalyticsService::addProductDataFromLineItem PHP Method

addProductDataFromLineItem() public method

Add a Craft Commerce LineItem to an Analytics object
public addProductDataFromLineItem ( $analytics = null, $lineItem = null, $index, $listName = "" ) : string
return string the title of the product
    public function addProductDataFromLineItem($analytics = null, $lineItem = null, $index = 0, $listName = "")
    {
        $result = "";
        if ($lineItem) {
            if ($analytics) {
                //This is the same for both variant and non variant products
                $productData = ['sku' => $lineItem->purchasable->sku, 'price' => $lineItem->salePrice, 'quantity' => $lineItem->qty];
                if (!$lineItem->purchasable->product->type->hasVariants) {
                    //No variants (i.e. default variant)
                    $productData['name'] = $lineItem->purchasable->title;
                    $productData['category'] = $lineItem->purchasable->product->type['name'];
                } else {
                    // Product with variants
                    $productData['name'] = $lineItem->purchasable->product->title;
                    $productData['category'] = $lineItem->purchasable->product->type['name'];
                    $productData['variant'] = $lineItem->purchasable->title;
                }
                $result = $productData['name'];
                if ($index) {
                    $productData['position'] = $index;
                }
                if ($listName) {
                    $productData['list'] = $listName;
                }
                $settings = craft()->plugins->getPlugin('instantanalytics')->getSettings();
                if (isset($settings) && isset($settings['productCategoryField']) && $settings['productCategoryField'] != "") {
                    $productData['category'] = $this->_pullDataFromField($lineItem->purchasable->product, $settings['productCategoryField']);
                }
                if (isset($settings) && isset($settings['productBrandField']) && $settings['productBrandField'] != "") {
                    $productData['brand'] = $this->_pullDataFromField($lineItem->purchasable->product, $settings['productBrandField']);
                }
                //Add each product to the hit to be sent
                $analytics->addProduct($productData);
            }
        }
        return $result;
    }