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.
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'])) { |