Craft\InstantAnalyticsService::getProductDataFromProduct PHP Method

getProductDataFromProduct() public method

Extract product data from a Craft Commerce Product or Variant
public getProductDataFromProduct ( $productVariant = null, $index, $listName = "" ) : array
return array the product data
    public function getProductDataFromProduct($productVariant = null, $index = 0, $listName = "")
    {
        $result = array();
        if ($productVariant) {
            if (is_object($productVariant) && $productVariant->getElementType() == "Commerce_Product") {
                $productType = craft()->commerce_productTypes->getProductTypeById($productVariant->typeId);
                if ($productType->hasVariants) {
                    $productVariant = ArrayHelper::getFirstValue($productVariant->getVariants());
                    $product = $productVariant->getProduct();
                    if ($product) {
                        $category = $product->getType()['name'];
                        $name = $product->title;
                        $variant = $productVariant->title;
                    } else {
                        $category = $productVariant->getType()['name'];
                        $name = $productVariant->title;
                        $variant = "";
                    }
                } else {
                    $productVariant = craft()->commerce_variants->getVariantById($productVariant->defaultVariantId);
                    $category = $productVariant->getProduct()->getType()['name'];
                    $name = $productVariant->title;
                    $variant = "";
                }
            }
            $productData = ['sku' => $productVariant->sku, 'name' => $name, 'price' => number_format($productVariant->price, 2, '.', ''), 'category' => $category];
            if ($index) {
                $productData['position'] = $index;
            }
            if ($listName) {
                $productData['list'] = $listName;
            }
            if ($variant) {
                $productData['variant'] = $variant;
            }
            $settings = craft()->plugins->getPlugin('instantanalytics')->getSettings();
            if (isset($settings) && isset($settings['productCategoryField']) && $settings['productCategoryField'] != "") {
                $productData['category'] = $this->_pullDataFromField($productVariant, $settings['productCategoryField']);
            }
            if (isset($settings) && isset($settings['productBrandField']) && $settings['productBrandField'] != "") {
                $productData['brand'] = $this->_pullDataFromField($productVariant, $settings['productBrandField']);
            }
            $result = $productData;
        }
        return $result;
    }