1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Prestashop Custom Webservice

Discussion in 'Programming/Internet' started by Makros, Oct 8, 2018.

  1. Makros

    Makros Guest

    Buenos días, estoy desarrollando un módulo que hará uso de la funcionalidad de webservices de Prestashop 1.6.

    En mi caso intento mandar datos de una tienda a otra con un servicio web custom, es decir, he creado un webservice propio, activado los métodos que me interesan, pero a la hora de implementar las funciones CRUD, estoy un poco perdido.

    Me gustaría saber como se interpretan las URL's pasándole parámetros para, por ejemplo, consultar un item por ID, borrar un item por ID o crear uno nuevo. Eso si, usando la manera de implementar como se hace aquí: https://github.com/PrestaShop/PrestaShop-webservice-lib/blob/master/examples/Retrieve.php

    Edito: Os pongo aquí la explicación y el código. Los datos a recuperar y grabar se recuperan/guardan en una tabla nueva que he dado de alta.

    Esta es la clase que estiende del webservice request core para implementar mi webservice propio

    class WebserviceRequest extends WebserviceRequestCore
    {
    public function __construct()
    {
    include_once(_PS_MODULE_DIR_.'directorioModulo'.DIRECTORY_SEPARATOR.'models'.DIRECTORY_SEPARATOR.'ClaseParaImplementarModuloCustom.php');
    }
    }


    Esta clase ClaseParaImplementarModuloCustom.php es donde se debe hacer toda la lógica del Webservice. (Entiendo que las funciones CRUD)

    class CentralizedStoreAssociated extends ObjectModel
    {
    //Campos de la clase
    public $id;
    public $store_name;
    public $store_url;
    public $store_api_key;
    public $store_contact_email;

    //Definición de la clase/objeto
    public static $definition = [
    'table' => 'centralized_stores',
    'primary' => 'id_centralizedstore',
    'multilang' => false,
    'multilang_shop' => false,
    'fields' => array(
    'store_id' => ['type' => self::TYPE_INT, 'validate' => 'isInt', 'size' => 256],
    ),
    ];
    }

    //Definición de los parámetros del servicio web. Aquí es donde entiendo que deben definirse las funciones para el CRUD en associations.
    protected $webserviceParameters = [
    'objectNodeName' => 'store',
    'objectsNodeName' =>'centralized_stores',
    'associations' => [
    'storeDetails' => array('getter' => 'getStoreDetails', 'resource' => 'storeDetails',
    'fields' => array(
    'store_name' => ['type' => self::TYPE_STRING, 'validate' => 'isString', 'size' => 256],
    'store_url' => ['type' => self::TYPE_STRING, 'validate' => 'isUrl', 'size' => 2038],
    'store_api_key' => ['type' => self::TYPE_STRING, 'validate' => 'isString', 'size' => 32],
    'store_contact_email' => ['type' => self::TYPE_STRING, 'validate' => 'isEmail', 'size' => 254],
    ),
    ),
    ]
    ];


    Finalmente he definido una función para el getter => getStoreDetails que no es más que una función para obtener los datos de una tienda desde la tabla custom, por medio de la URL http://mitiendaprestashop/api/centralized_store/1

    Espero haberlo dejado todo más claro.

    Login To add answer/comment
     

Share This Page