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;
}