protected function processDataArray($productArray, $displayedColumns) { // load price data ProductPrice::loadPricesForRecordSetArray($productArray, false); // load child products // if (isset($displayedColumns['Product.parentID'])) //{ ProductSet::loadVariationTypesForProductArray($productArray); ProductSet::loadChildrenForProductArray($productArray); //} ProductSpecification::loadSpecificationForRecordSetArray($productArray, true); foreach ($productArray as &$product) { if (!empty($product['children'])) { foreach ($product['children'] as &$child) { if (!empty($product['attributes'])) { $child['attributes'] = $product['attributes']; } if (!empty($product['Manufacturer'])) { $child['Manufacturer'] = $product['Manufacturer']; } foreach (array('definedPrices', 'definedListPrices', 'price_USD', 'price_CAD', 'listPrice_USD', 'listPrice_CAD') as $key) { if (!empty($product[$key])) { $child[$key] = $product[$key]; } } foreach ($child as $key => $value) { if (empty($value) && !empty($product[$key])) { $child[$key] = $product[$key]; } } $variation = null; if (!empty($child['variationValues'])) { $variation = array_shift($child['variationValues']); } $name = $child['name']; $child['URL'] = $product['URL']; $child['name_lang'] = $name . ' ' . $child['sku']; $child['xParent'] = $child['Parent']; unset($child['Parent']); $child['URL'] = $this->router->createFullUrl(createProductUrl(array('product' => $child), $this->application)); $child['Parent'] = $child['xParent']; $child['name'] = $name; if ($variation) { $child['name'] .= ' (' . $variation . ')'; $child['name_lang'] = $child['name']; } $child['id'] = $child['ID']; } $product['URL'] = $this->router->createFullUrl(createProductUrl(array('product' => $product), $this->application)); if (empty($product['ProductImage']['ID'])) { if (!empty($product['children'][0]['ProductImage'])) { $product['ProductImage'] = $product['children'][0]['ProductImage']; $product['DefaultImage'] = $product['children'][0]['DefaultImage']; } } } $product['id'] = $product['ID']; } $defCurrency = $this->application->getDefaultCurrencyCode(); foreach ($productArray as &$product) { foreach ($this->getUserGroups() as $groupID => $groupName) { if (isset($product['priceRules'][$defCurrency][1][$groupID])) { $product['GroupPrice'][$groupID] = $product['priceRules'][$defCurrency][1][$groupID]; } } } return $productArray; }
protected function processDataArray($productArray, $displayedColumns) { // load specification data foreach ($displayedColumns as $column => $type) { list($class, $field) = explode('.', $column, 2); if ('specField' == $class) { ProductSpecification::loadSpecificationForRecordSetArray($productArray, true); break; } } // load price data ProductPrice::loadPricesForRecordSetArray($productArray, false); // load child products if (isset($displayedColumns['Product.parentID'])) { ProductSet::loadVariationTypesForProductArray($productArray); ProductSet::loadChildrenForProductArray($productArray); } $defCurrency = $this->application->getDefaultCurrencyCode(); foreach ($productArray as &$product) { foreach ($this->getUserGroups() as $groupID => $groupName) { if (isset($product['priceRules'][$defCurrency][1][$groupID])) { $product['GroupPrice'][$groupID] = $product['priceRules'][$defCurrency][1][$groupID]; } } } return $productArray; }