/** * . * * , * . * * . * * $warnings - , * $errors - , * * : * array ( * 0 => array ( * '<tag name>' => '<tag value>', * '<tag name>' => '<tag value>', * ... * '<tag name>' => '<tag value>', * 'ProductCategoryPath' => array ( * 0 => Array ( * 'id' => <id > * 'name' => < > * ), * ... * N => Array ( * 'id' => <id > * 'name' => < > * ) * ) * ) * ... * ) * * @param ref array of strings $warnings - , * @param ref array of strings $errors - , * @return array of arrays of '<tag name>' => '<tag value>' */ function doWork() { $total_products = count($this->_product_ids); $this->_process_info['items_count'] = $total_products; $this->_process_info['status'] = 'HAVE_MORE_DATA'; if ($this->_product_ids === null) { $this->_process_info['items_count'] = 0; $this->_process_info['items_processing'] = $this->_count_exported_products; $this->_process_info['status'] = 'NO_MORE_DATA'; return; } if ($this->_count_exported_products >= $total_products) { $this->_process_info['items_processing'] = $this->_count_exported_products; $this->_process_info['status'] = 'NO_MORE_DATA'; return; } $result = array(); // preparing the bulk product ids $bulk_productids = array(); for ($i = 0; $i < $this->_settings['bulk_number'] && $this->_count_exported_products < $total_products; $i++) { $bulk_productids[] = $this->_product_ids[$this->_count_exported_products++]; } foreach ($bulk_productids as $id) { $prodObj = new CProductInfo($id); $prodObj->setForceLocalizeAttrTypes(array('select')); $result[] = $prodObj->getProductTagValuesExportHash(PRODUCTINFO_NOT_LOCALIZED_DATA, $this->_TagList); unset($prodObj); } $this->_process_info['items_processing'] = $this->_count_exported_products; if ($this->_count_exported_products >= $total_products) { $this->_process_info['status'] = 'NO_MORE_DATA'; } return $result; }