2017-10-15 8 views
1

J'ai essayé de générer Rest Api de toutes mes catégories, produits et tous les autres pour l'utiliser dans mon application mobile mais je ne peux obtenir aucune solution. Quelqu'un peut-il me dire que dans opencart 3.0.2.0, sinon si opencart ne peut pas donner cette solution alors donnez-moi un autre cadre par lequel je peux facilement créer des API pour mes données?Génération Opencart Rest API

Répondre

1

cela a fonctionné pour moi

J'ai fait un contrôleur personnalisé dans le dossier api OpenCart

<?php 
class ControllerApiAllproducts extends Controller { 
    private $error = array(); 

    public function index() 
    { 
     $products = array(); 
     $this->load->language('catalog/product'); 
     $this->load->model('catalog/product'); 
     $this->load->model('api/product'); 
     $this->load->model('tool/image'); 

     $error[]['no_json']= "No JSON"; 

     // preg_match("/[^\/]+$/", $_SERVER['REQUEST_URI'], $matches); 
     // $last_word = $matches[0]; 
     $product_total = $this->model_catalog_product->getTotalProducts(); 

     $results = $this->model_catalog_product->getProducts(); 

     foreach ($results as $result) { 
      if (is_file(DIR_IMAGE . $result['image'])) { 
       $image = $this->model_tool_image->resize($result['image'], 40, 40); 
      } else { 
       $image = $this->model_tool_image->resize('no_image.png', 40, 40); 
      } 

      $special = false; 

      $product_specials = $this->model_api_product->getProductSpecials($result['product_id']); 

      foreach ($product_specials as $product_special) { 
       if (($product_special['date_start'] == '0000-00-00' || strtotime($product_special['date_start']) < time()) && ($product_special['date_end'] == '0000-00-00' || strtotime($product_special['date_end']) > time())) { 
        $special = $product_special['price']; 

        break; 
       } 
      } 

      $shop_products['shop_products'][] = array(
       'product_id' => $result['product_id'], 
       'image'  => $image, 
       'name'  => $result['name'], 
       'model'  => $result['model'], 
       'price'  => $result['price'], 
       'special' => $special, 
       'quantity' => $result['quantity'], 
       'status'  => $result['status'] 
      ); 
     } 


     if (isset($this->request->get['json'])) { 
      echo json_encode($shop_products); 
      die; 
     } else { 
      $this->response->setOutput(json_encode($error)); 
     } 
    } 

    public function product() 
    { 

    $this->load->language('catalog/product'); 
    $this->load->model('catalog/product'); 
    $this->load->model('api/product'); 
    $this->load->model('tool/image'); 

    $product_details = array(); 
    $error['fail'] = 'Failed'; 
    if (isset($this->request->get['product_id'])) { 
     //$product_details['product_id'] = $this->request->get['product_id']; 
     $product_details = $this->model_catalog_product->getProduct($this->request->get['product_id']); 

      echo json_encode($product_details); 
      die; 
     } else { 
      $this->response->setOutput(json_encode($error)); 
     } 
    } 

    public function categories() 
    { 
     $shop_categories = array(); 
     $this->load->model('catalog/category'); 


     $error['fail'] = 'Failed'; 
    if (isset($this->request->get['json'])) { 
     $shop_categories =$this->model_catalog_category->getCategories(); 
      echo json_encode($shop_categories); 
      die; 
     } else { 
      $this->response->setOutput(json_encode($error)); 
     } 
    } 
} 

Obtenez les catégories http://yourdomain/index.php?route=api/allproducts/categories&json

Obtenir tous les produits http://yourdomain/index.php?route=api/allproducts&json