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