private function exportProducts($rootId) { $groups = new DescendantGroups($rootId); $ids = array(); foreach ($groups as $group) { $ids[] = $group->id(); } if ($rootId) { $ids[] = $rootId; } $q = createQuery("\r\n\t\t\tSELECT product_id, group_id\r\n\t\t\tFROM cf_products_in_groups\r\n\t\t\tINNER JOIN cf_groups ON cf_products_in_groups.group_id = cf_groups.id\r\n\t\t\tWHERE group_id IN (" . implode(',', $ids) . ")\r\n\t\t\tGROUP BY product_id\r\n\t\t\tORDER BY cf_groups.sort_order, cf_products_in_groups.sort_order\r\n\t\t"); $q->execute(); while ($q->fetch()) { $productId = $q->at('product_id'); $groupId = $q->at('group_id'); $product = new Product($productId); $inGroups = new ProductGroups($productId); $manufacturer = new Manufacturer($product->manufacturerId()); $this->exportProduct($product, $groupId, $manufacturer); $options = new ProductOptions($productId); foreach ($options as $option) { $this->exportProduct($product, $groupId, $manufacturer, $option); } } $q->close(); }