Saltar al contenido

REST APIs y Opencart 2 | Soluci贸n problemas de validaci贸n de APIs

Opencart 2.x utiliza REST APIs para realizar algunas operaciones de 芦gesti贸n禄 dentro del administrador.

Para habilitarlo tienes que ir a Sistema->Usuarios->API , crear un API generando una Key, y a帽adir tu IP o las IPs desde las que vas a permitir hacer esos cambios.
Despu茅s tienes que ir a Sistema->Configuraci贸n->Opciones , buscar el nombre del API que acabas de crear y seleccionarlo en la lista desplegable que te permite seleccionar un API.

Opencar solucion

Por lo general funciona correctamente, aunque puede dar problemas con las urls seguras tipo SSL.

Si esto ocurre y no tienes SSL , tienes que cambiar la configuraci贸n en el config.php , d贸nde pone esto:

HTTPS_CATALOG https://tu-dominio.com

Hay que cambiarlo a:
HTTPS_CATALOG http://tu-dominio.com

Lo mismo sin la ‘s’.

Tambi茅n da problemas si no tienes instalado CURL en tu servidor, puedes mirar la configuraci贸n de php para saber si lo tienes instalado, o si lo prefieres puedes crear este script y lanzarlo, te dir谩 si tienes o no CURL instalado en tu servidor.

<?
 
// Script para saber si tienes o no CURL instalado en tu servidor
 
 
function _is_curl_installed() {
    if  (in_array  ('curl', get_loaded_extensions())) {
        return true;
    }
    else {
        return false;
    }
}
 
// Ejecutamos la funcion
if (_is_curl_installed()) {
  echo "cURL esta <span style=\"color:blue\">instalado</span> en tu servidor";
} else {
  echo "cURL no esta <span style=\"color:red\">instalado</span> en tu servidor";
}
?>

Por 煤ltimo, si no consigues hacer funcionar correctamente tu API , o si tienes alguna extensi贸n antigua que no quieras cambiar puedes quitar la validaci贸n del API, dependiendo de lo que quieras modificar tendr谩s que editar un fichero u otro, aunque la modificaci贸n que tendr谩s que hacer es igual en todos los ficheros, los ficheros est谩n en esta ruta:

/catalog/controller/api/*.php

y la modificaci贸n que debes de hacer para quitar la validaci贸n ser铆a simple.

Habr铆a que comentar o quitar esta parte:

if (!isset($this->session->data['api_id'])) {

y cambiarla por esta:

if (false==true) {

Algo as铆:

        	if (false==true) {
		//if (!isset($this->session->data['api_id'])) {