public function get() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('sale/customer'); $this->loadModel('sale/customer'); $approved = array(1 => $this->language->get('text_yes'), 0 => $this->language->get('text_no')); $filter_params = array('loginname', 'firstname', 'lastname', 'email', 'telephone', 'fax', 'customer_group_id', 'approved'); //no keyword search here $grid_filter_params = array(); $filter_data = array('method' => 'get', 'filter_params' => $filter_params, 'grid_filter_params' => $grid_filter_params); $filter = new AFilter($filter_data); if (!$filter->getFilterParam('loginname') && !$filter->getFilterParam('lastname')) { $this->rest->setResponseData(array('Error' => 'Login name or last name is required for customers search')); $this->rest->sendResponse(200); return null; } if (!$filter->getFilterParam('loginname') && strlen($filter->getFilterParam('lastname')) < 3) { $this->rest->setResponseData(array('Error' => 'Minimum last name length for search is 3 characters')); $this->rest->sendResponse(200); return null; } $total = $this->model_sale_customer->getTotalCustomers($filter->getFilterData()); if ($total > 0) { $total_pages = ceil($total / $filter->getParam('rows')); } else { $total_pages = 0; } //Preserved jqGrid JSON interface $response = new stdClass(); $response->page = $filter->getParam('page'); $response->total = $total_pages; $response->records = $total; $results = $this->model_sale_customer->getCustomers($filter->getFilterData()); $i = 0; if ($results) { foreach ($results as $result) { $response->rows[$i]['id'] = $result['customer_id']; $response->rows[$i]['cell']['loginname'] = $result['loginname']; $response->rows[$i]['cell']['name'] = $result['name']; $response->rows[$i]['cell']['email'] = $result['email']; $response->rows[$i]['cell']['customer_group'] = $result['customer_group']; $response->rows[$i]['cell']['status'] = $result['status']; $response->rows[$i]['cell']['approved'] = $result['approved']; $i++; } } $this->extensions->hk_UpdateData($this, __FUNCTION__); $this->rest->setResponseData($response); $this->rest->sendResponse(200); }
public function get() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadModel('catalog/product'); $filter_params = array('category_id', 'manufacturer_id', 'keyword', 'match', 'pfrom', 'pto'); $grid_filter_params = array('name', 'description', 'model', 'sku'); $filter_data = array('method' => 'get', 'filter_params' => $filter_params, 'grid_filter_params' => $grid_filter_params); $filter = new AFilter($filter_data); $filters = $filter->getFilterData(); $category_id = $filter->getFilterParam('category_id'); $manufacturer_id = $filter->getFilterParam('manufacturer_id'); $keyword = $filter->getFilterParam('keyword'); if (!$category_id && !$manufacturer_id && !$keyword) { $this->rest->setResponseData(array('Error' => 'Missing one of required product filter parameters')); $this->rest->sendResponse(200); return null; } //get total if ($keyword) { $total = $this->model_catalog_product->getTotalProducts($filters); } elseif ($category_id) { $total = $this->model_catalog_product->getTotalProductsByCategoryId($category_id); } elseif ($manufacturer_id) { $total = $this->model_catalog_product->getTotalProductsByManufacturerId($manufacturer_id); } if ($total > 0) { $total_pages = ceil($total / $filter->getParam('rows')); } else { $total_pages = 0; } //Preserved jqGrid JSON interface $response = new stdClass(); $response->page = $filter->getParam('page'); $response->total = $total_pages; $response->records = $total; $response->limit = $filters['limit']; $response->sidx = $filters['sort']; $response->sord = $filters['order']; $response->params = $filters; $resource = new AResource('image'); if ($keyword) { $results = $this->model_catalog_product->getProducts($filters); } elseif ($category_id) { $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $filters['sort'], $filters['order'], $filters['start'], $filters['limit']); } elseif ($manufacturer_id) { $results = $this->model_catalog_product->getProductsByManufacturerId($manufacturer_id, $filters['sort'], $filters['order'], $filters['start'], $filters['limit']); } $i = 0; if ($results) { foreach ($results as $result) { $thumbnail = $resource->getMainThumb('products', $result['product_id'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'), true); $response->rows[$i]['id'] = $result['product_id']; $response->rows[$i]['cell']['thumb'] = $thumbnail['thumb_url']; $response->rows[$i]['cell']['name'] = $result['name']; $response->rows[$i]['cell']['description'] = $result['description']; $response->rows[$i]['cell']['model'] = $result['model']; $response->rows[$i]['cell']['price'] = $this->currency->convert($result['final_price'], $this->config->get('config_currency'), $this->currency->getCode()); $response->rows[$i]['cell']['currency_code'] = $this->currency->getCode(); $response->rows[$i]['cell']['rating'] = $result['rating']; $i++; } } //init controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); $this->rest->setResponseData($response); $this->rest->sendResponse(200); }