MyMSB API v0.6.0.25

0. Introducción

Las llamadas disponibles en MyMSB se encuentran listadas a continuación. Puedes descargar la librería mymsb.class.php y descargarte el ejemplo como referencia para tus llamadas.

Los parámetros deben ser enviados a través de un array con pares de variable => valor y se envían a la API.

La API devolverá la información en json

descarga la librería mymsb.class.php

                        
/**
 * Conexión a la API de MyMSB
 * El usuario se encargará de redefinir las funciones que requiera, esta versión del fichero se ha realizado para la versión 0.3.2.2 en Mayo/2021 de forma
 * que probablemente en el momento en el que se utilice esta clase, algunas de estas funciones podrían no estar ya disponibles, así como podría haber nuevas
 * funciones que no se encuentren aquí.
 * Las funciones publicadas y actualizadas se encontrarán para su consulta en https://api.mymsb.es
 */

class MyMSBCallAPI {

    function __construct(){
    }

    /** CLIENTES **/
    
    /**
     * Añade un cliente
     */
    public function addClient($data){
        $request = "addClient";
        return $this->callAPI($request, $data);
    }

    /**
     * Modifica un cliente
     */
    public function updateClient($data){
        $request = "updateClient";
        return $this->callAPI($request, $data);
    }

    /**
     * Elimina un cliente
     */
    public function deleteClient($data){
        $request = "deleteClient";
        return $this->callAPI($request, $data);
    }


    /**
     * Devuelve el nº de leads registrados
     */
    public function getCountLead($data) {
        $request = "getCountLead";
        return $this->callAPI($request, $data);
    }

    /**
     * Devuelve el nº de clientes registrados
     */
    public function getCountClient($data) {
        $request = "getCountClient";
        return $this->callAPI($request, $data);
    }

    /**
     * Devuelve el nº total de clientes + leads registrados
     */
    public function getCountClientAll($data) {
        $request = "getCountClientAll";
        return $this->callAPI($request, $data);
    }

    /**
     * Devuelve los datos de un cliente
     */
    public function getClient($data) {
        $request = "getClient";
        return $this->callAPI($request, $data);
    }


    /** SUSCRIPTORES **/
    
    /**
     * Añade un suscriptor
     */
    public function addSubscriber($data){
        $request = "addSubscriber";
        return $this->callAPI($request, $data);
    }

    /**
     * Modifica un suscriptor
     */
    public function updateSubscriber($data){
        $request = "updateSubscriber";
        return $this->callAPI($request, $data);
    }

    /**
     * Elimina un suscriptor
     */
    public function deleteSubscriber($data){
        $request = "deleteSubscriber";
        return $this->callAPI($request, $data);
    }


    /**
     * Devuelve el nº de suscriptores
     */
    public function getCountSubscriber($data) {
        $request = "getCountSubscriber";
        return $this->callAPI($request, $data);
    }

    /**
     * Devuelve los datos de un suscriptor
     */
    public function getSubscriber($data) {
        $request = "getSubscriber";
        return $this->callAPI($request, $data);
    }

    

    /** CATEGORÍAS **/

    public function addCategory($data) {
        $request = "addCategory";
        return $this->callAPI($request, $data);
    }

    public function updateCategory($data) {
        $request = "updateCategory";
        return $this->callAPI($request, $data);
    }

    public function deleteCategory($data) {
        $request = "deleteCategory";
        return $this->callAPI($request, $data);
    }

    public function getCountCategory($data) {
        $request = "getCountCategory";
        return $this->callAPI($request, $data);
    }

    public function getCategory($data) {
        $request = "getCategory";
        return $this->callAPI($request, $data);
    }

    /** PRODUCTOS **/

    public function addProduct($data) {
        $request = "addProduct";
        return $this->callAPI($request, $data);
    }

    public function updateProduct($data) {
        $request = "updateProduct";
        return $this->callAPI($request, $data);
    }

    public function deleteProduct($data) {
        $request = "deleteProduct";
        return $this->callAPI($request, $data);
    }

    public function getCountProduct($data) {
        $request = "getCountProduct";
        return $this->callAPI($request, $data);
    }

    /** FEED MERCHANT CENTER **/

    public function createFeed($data) {
        $request = "createFeed";
        return $this->callAPI($request, $data);
    }

    /** VENTAS **/

    /**
     * Añade una compra
     * Campos necesarios en la https://api.mymsb.es
     */
    public function addPurchase($data){
        $request = "addPurchase";
        return $this->callAPI($request, $data);
    }

    /**
     * Modifica una compra
     * Campos necesarios en la https://api.mymsb.es
     */
    public function updatePurchase($data){
        $request = "updatePurchase";
        return $this->callAPI($request, $data);
    }

    /**
     * Modifica un estado de una compra
     * Campos necesarios en la https://api.mymsb.es
     */
    public function updatePurchaseStatus($data){
        $request = "updatePurchaseStatus";
        return $this->callAPI($request, $data);
    }

    /**
     * Elimina una compra
     * Campos necesarios en la https://api.mymsb.es
     */
    public function deletePurchase($data){
        $request = "deletePurchase";
        return $this->callAPI($request, $data);
    }

    /**
     * Devuelve el nº total de compras
     * Campos necesarios en la https://api.mymsb.es
     */
    public function getCountPurchaseAll($data) {
        $request = "getCountPurchaseAll";
        return $this->callAPI($request, $data);
    }


    // Realiza la llamada a la API de MyMSB con los datos proporcionados
    private function callAPI($request, $data = array()){

        $url = "https://api.mymsb.es/".$request."/";

        // create a new cURL resource
        $ch = curl_init();

        // set URL and other appropriate options
        curl_setopt($ch, CURLOPT_URL, $url);

        // Empezamos a construir los parámetros que se van a enviar
        $pf = '';

        if ($postarray !== null) {

            // Construimos la cadena completa de parámetros
            curl_setopt($ch, CURLOPT_POST, TRUE);
            foreach ($postarray AS $f=>$v) {
                if (is_array($v))
                    $pf .= '&'.$f.'='.json_encode($v);
                else
                    $pf .= '&'.$f.'='.$v;
            }
        }
        curl_setopt($ch, CURLOPT_POSTFIELDS, $pf);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        // grab URL and pass it to the browser
        $response = curl_exec($ch);

        // close cURL resource, and free up system resources
        curl_close($ch);

        $json = json_decode($response,true);

        if(is_array($json))
            return $json;
        else
            return $response;
    }
}
                        
                    

ver ejemplo

                        

/**
 * Ejemplo de llamada API a un alta de cliente
 */

include_once 'mymsb.class.php';

$ad = new MyMSBCallAPI();

$rest = null;

$data = array(
  'token' => '',
  'id' => 6,
  'nombre' => 'Alex',
  'apellidos' => 'Ponte',
  'mail' => 'prueba@estudioseijo.com',
  'telefono' => '600123123'
);

$rest = $ad->addClient($data);

if (is_array($rest)) { 
 echo '<pre>';
 print_r($rest);
 echo '</pre>'; 
}
else
echo 'No se ha devuelto nada';                    

1. Clientes

El concepto de cliente representa cualquier estadio de usuario de la plataforma. Según haya o no comprado será un lead o un cliente.

addClient

Añade un nuevo cliente como lead

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INnombreNombrestring(255)No
INapellidosApellidosstring(255)No
INmailCorreo electrónicostring(255)No
INtieneiva1 si tiene IVA, 0 en caso contrarioint(boolean)No
INaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)No0
INdireccionDirecciónstring(250)No
INpoblacionPoblaciónstring(250)No
INcpCódigo postalstring(10)No
INprovinciaIdentificador válido de provincia (ver constantes)ProvinceNo
INpaisIdentificador válido de país (ver constantes)CountryNo
INtelefonoTeléfonostring(50)No
INconocerIdentificador válido de conocer (ver constantes)ChannelNo
INfechanacimientoFecha de nacimientodateNo
INcategoriaCategoría de clienteClientCategoriesNo
INfechaaltaFecha de alta del registrodatetimeNoFecha actual
INfechamodFecha de última modificación del registrodatetimeNoNULL
INborradoCampo borradoint(boolean)No0
INoptionsArray de opciones. Opciones
- AcumbaSync => boolean (default: true)
arrayNo
OUTcreated_idEl id de cliente creado internamente en el sistemaint
OUTyour_idEl id de cliente recibido (id)int

updateClient

Actualiza un cliente/lead existente. En caso de que la opción createIfNotExists esté a true, si el cliente no existe, lo crea.

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INnombreNombrestring(255)No
INapellidosApellidosstring(255)No
INmailCorreo electrónicostring(255)No
INtieneiva1 si tiene IVA, 0 en caso contrarioint(boolean)No
INaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)No
INdireccionDirecciónstring(250)No
INpoblacionPoblaciónstring(250)No
INcpCódigo postalstring(10)No
INprovinciaIdentificador válido de provincia (ver constantes)ProvinceNo
INpaisIdentificador válido de país (ver constantes)CountryNo
INtelefonoTeléfonostring(50)No
INconocerIdentificador válido de conocer (ver constantes)ChannelNo
INfechanacimientoFecha de nacimientodateNo
INcategoriaCategoría de clienteClientCategoriesNo
INfechamodFecha de modificación del registrodatetimeNoFecha actual
INactivoCliente activado (0 para eliminar el cliente)int(boolean)No1
INoptionsArray de opciones. Opciones
- createIfNotExists => boolean (default: false)
- AcumbaSync => boolean (default: true)
arrayNo
OUTupdated_idEl id de cliente modificado internamente en el sistemaint

deleteClient

Elimina un cliente/lead existente

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INfechadelFecha de eliminación del registrodatetimeNoFecha actual

La función devuelve el id de cliente/lead eliminado

getCountLead / getCountClient / getCountClientAll

  • getCountLead devuelve el número de clientes que no han hecho ninguna compra
  • getCountClient devuelve el número de clientes que han comprado (clientes reales)
  • getCountClientAll devuelve el número total de clientes + leads registrados
typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí

getClient

Devuelve la información de un cliente

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidIdint
OUTidId único en MyMSBint
OUTidexternoId del clienteint
OUTnombreNombrestring(255)
OUTapellidosApellidosstring(255)
OUTmailCorreo electrónicostring(255)
OUTtieneiva1 si tiene IVA, 0 en caso contrarioint(boolean)
OUTaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)
OUTdireccionDirecciónstring(250)
OUTpoblacionPoblaciónstring(250)
OUTcpCódigo postalstring(10)
OUTprovinciaIdentificador válido de provincia (ver constantes)Province
OUTpaisIdentificador válido de país (ver constantes)Country
OUTtelefonoTeléfonostring(50)
OUTconocerIdentificador válido de conocer (ver constantes)Channel
OUTfechanacimientoFecha de nacimientodate
OUTcategoriaCategoría de clienteClientCategories
OUTfechaaltaFecha de alta del registrodatetime
OUTfechamodFecha de modificación del registrodatetime
OUTventacountNº total de ventasint
OUTprimeracompraFecha de la primera compradate
OUTultimacompraFecha de la última compradate
OUTimportevendidoImporte vendido (€)double
OUTcestamediaImporte medio de la cesta de la compra (€)double

2. Suscriptores

El concepto de suscriptor representa un usuario que se ha registrado en la newsletter

addSubscriber

Añade un nuevo suscriptor

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INnombreNombrestring(255)No
INapellidosApellidosstring(255)No
INmailCorreo electrónicostring(255)No
INtieneiva1 si tiene IVA, 0 en caso contrarioint(boolean)No
INaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)No1
INdireccionDirecciónstring(250)No
INpoblacionPoblaciónstring(250)No
INcpCódigo postalstring(10)No
INprovinciaIdentificador válido de provincia (ver constantes)ProvinceNo
INpaisIdentificador válido de país (ver constantes)CountryNo
INtelefonoTeléfonostring(50)No
INconocerIdentificador válido de conocer (ver constantes)ChannelNo
INfechanacimientoFecha de nacimientodateNo
INcategoriaCategoría de suscriptorClientCategoriesNo
INfechaaltaFecha de alta del registrodatetimeNoFecha actual
INfechamodFecha de última modificación del registrodatetimeNoNULL
INborradoCampo borradoint(boolean)No0
INoptionsArray de opciones. Opciones
- AcumbaSync => boolean (default: true)
arrayNo
OUTcreated_idEl id de suscriptor creado internamente en el sistemaint
OUTyour_idEl id de suscriptor recibido (id)int

updateSubscriber

Actualiza un suscriptor existente. En caso de que la opción createIfNotExists esté a true, si el suscriptor no existe, lo crea.

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INnombreNombrestring(255)No
INapellidosApellidosstring(255)No
INmailCorreo electrónicostring(255)No
INtieneiva1 si tiene IVA, 0 en caso contrarioint(boolean)No
INaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)No
INdireccionDirecciónstring(250)No
INpoblacionPoblaciónstring(250)No
INcpCódigo postalstring(10)No
INprovinciaIdentificador válido de provincia (ver constantes)ProvinceNo
INpaisIdentificador válido de país (ver constantes)CountryNo
INtelefonoTeléfonostring(50)No
INconocerIdentificador válido de conocer (ver constantes)ChannelNo
INfechanacimientoFecha de nacimientodateNo
INcategoriaCategoría de suscriptorClientCategoriesNo
INfechamodFecha de modificación del registrodatetimeNoFecha actual
INactivoSuscriptor activado (0 para eliminar el suscriptor)int(boolean)No1
INoptionsArray de opciones. Opciones
- createIfNotExists => boolean (default: false)
- AcumbaSync => boolean (default: true)
arrayNo
OUTupdated_idEl id de suscriptor modificado internamente en el sistemaint

deleteSubscriber

Elimina un suscriptor existente

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INfechadelFecha de eliminación del registrodatetimeNoFecha actual

La función devuelve el id de suscriptor eliminado

getCountSubscriber

Devuelve el nº total de suscriptores

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí

getSubscriber

Devuelve la información de un suscriptor

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidIdint
OUTidId único en MyMSBint
OUTidexternoId del suscriptorint
OUTnombreNombrestring(255)
OUTapellidosApellidosstring(255)
OUTmailCorreo electrónicostring(255)
OUTtieneiva1 si tiene IVA, 0 en caso contrarioint(boolean)
OUTaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)
OUTdireccionDirecciónstring(250)
OUTpoblacionPoblaciónstring(250)
OUTcpCódigo postalstring(10)
OUTprovinciaIdentificador válido de provincia (ver constantes)Province
OUTpaisIdentificador válido de país (ver constantes)Country
OUTtelefonoTeléfonostring(50)
OUTconocerIdentificador válido de conocer (ver constantes)Channel
OUTfechanacimientoFecha de nacimientodate
OUTcategoriaCategoría de clienteClientCategories
OUTfechaaltaFecha de alta del registrodatetime
OUTfechamodFecha de modificación del registrodatetime
OUTventacountNº total de ventasint
OUTprimeracompraFecha de la primera compradate
OUTultimacompraFecha de la última compradate
OUTimportevendidoImporte vendido (€)double
OUTcestamediaImporte medio de la cesta de la compra (€)double

3. Categorías de producto

El concepto de categoría de productos representa la jerarquía en la que se organizan los productos. Los productos pueden vincularse a una familia y las familias pueden organizarse en una estructura de árbol

addCategory

Añade una nueva categoría de producto

typecampodescripcióntipodatoobligatorio
INtokenToken de clientestringSí
INidId únicointSí
INdescripcionDescripciónstring(255)Sí
INcategoriaIdentificador de la categoría padreCategoryNo (sin padre por defecto)
INfechaaltaFecha de alta del registrodatetimeNo (fecha actual por defecto)
INactivoCategoría activada en la webbooleanNo (Sí por defecto)
INborradoCategoría borrada en la webbooleanNo (No por defecto)

La función devuelve el id de categoría de producto creado

updateCategory

Actualiza una categoría de producto existente. En caso de que la opción createIfNotExists esté a true, si la categoría no existe, la crea.

typecampodescripcióntipodatoobligatorio
INtokenToken de clientestringSí
INidId únicointSí
INdescripcionDescripciónstring(255)No
INcategoriaIdentificador de la categoría padreCategoryNo
INproductodirectoNº de productos que contiene la categoríaintNo
INproductoindirectoNº de productos que contienen los hijos de la categoríaintNo
INproductodirectostockStock total de productos de la categoría intNo
INproductoindirectostockStock total de productos de los hijos de la categoríaintNo
INfechamodFecha de modificación del registrodatetimeNo (fecha actual por defecto)
INactivoCategoría activada en la webbooleanNo
INborradoCategoría borrada en la webbooleanNo (No por defecto)
INoptionsArray de opciones. Opciones
- createIfNotExists => boolean (default: false)
arrayNo

La función devuelve el id de categoría de producto modificado

deleteCategory

Elimina una categoría de producto existente siempre que no tenga categorías hijas. Si tiene artículos, se borra igualmente (sus artículos dejan de salir en los feeds) y queda un aviso en el registro.

typecampodescripcióntipodatoobligatorio
INtokenToken de clientestringSí
INidId únicointSí
INfechadelFecha de eliminación del registrodatetimeNo (fecha actual por defecto)

La función devuelve el id de categoría de producto eliminado

getCountCategory

Devuelve el número de categorías de productos almacenados en el sistema

typecampodescripcióntipodatoobligatorio
INtokenToken de clientestringSí
OUTcountEl nº de categorías activasint

getCategory

Devuelve información de una categoría

typecampodescripcióntipodatoobligatorio
INtokenToken de clientestringSí
IN/OUTidId únicointSí
OUTdescripcionDescripciónstring(255)
OUTcategoriaIdentificador de la categoría padreCategory
OUTfullpathRuta completa en textostring(255)
OUTproductodirectoNº de productos que contiene la categoríaint
OUTproductoindirectoNº de productos que contienen los hijos de la categoríaint
OUTproductodirectostockStock total de productos de la categoría int
OUTproductoindirectostockStock total de productos de los hijos de la categoríaint
OUTfechaaltaFecha de alta del registrodatetime
OUTfechamodFecha de modificación del registrodatetime
OUTactivoCategoría activada en la webboolean

4. Productos

El concepto de productos representa cualquier producto o servicio susceptible de comprar, alquilar, reservar. Es cualquier elemento que se quiera vincular a ventas.

addProduct

Añade un nuevo producto y opcionalmente una nueva marca y/o una nueva categoría

typecampodescripcióntipodatoobligatorio
INtokenToken de clientestringSí
INidId únicointSí
INdescripcionNombre corto del productostring(255)Sí
INreferenciaReferencia del productostring(255)No
INgtinReferencia única mundial del producto (EAN)string(255)No
INmarcaNombre de la marca. Si no existe se crea como nuevastring(255)No
INcategoriaCategoría del producto. Array con los siguientes campos:
- id => int
- descripcion => varchar(255)
- categoria => int (id del padre de la categoría)
Si no existe se crea como nuevo
arrayNo
INimpuestoIdentificador/idtxt válido de impuesto (ver constantes)TaxNo (21% por defecto)
INprecioPrecio en euros sin impuestosdoubleNo (0€ por defecto)
INprecioofertaPrecio de oferta sin impuestosdoubleNo (sin precio oferta por defecto)
INstockStock disponibleintNo (0 por defecto)
INmerchantsyncSincronizar con Google merchant center (requiere configurar el servicio en ajustes del proyecto)int (boolean)No (no por defecto)
INgmcspecialcategoryCategoría del producto según Google Merchant Centerint Ayuda ValoresNo (solamente es obligatorio para proyectos con merchantsync a true y para bebidas alcohólicas)
INurlUrl del productostring(255)No (salvo que merchantsync sea true)
INimagenUrl a la imagen principal del productostring(255)No (salvo que merchantsync sea true)
INcontenidoDescripción completa del productotextNo
INpublicarFecha en la que el producto se publicarádatetimeNo (fecha actual por defecto)
INpublicarfinFecha de caducidad de publicación del productodatetimeNo (vacío implica que no caduca nunca)
INactivoProducto en activoint (boolean)No (1 por defecto)
INposicionOrdenación del productointNo
INfechaaltaFecha de alta del registrodatetimeNo (fecha actual por defecto)
INoptionsArray de opciones. Opciones
- updateCategoriesCounters => boolean (default: true)
arrayNo

La función devuelve el id de producto creado, así como el nuevo id de marca y categoría si se han creado

updateProduct

Actualiza un producto existente y opcionalmente una nueva marca y/o una nueva categoría. Si la opción createIfNotExists está a true y el producto no existe, lo crea.

campodescripcióntipodatoobligatorio
tokenToken de clientestringSí
idId únicointSí
descripcionNombre corto del productostring(255)Sí
referenciaReferencia del productostring(255)No
gtinReferencia única mundial del producto (EAN)string(255)No
marcaNombre de la marca. Si no existe se crea como nuevastring(255)No
categoriaCategoría del producto. Array con los siguientes campos:
- id => int
- descripcion => varchar(255)
- categoria => int (id del padre de la categoría).
Si no existe se crea como nuevo
arrayNo
impuestoIdentificador/idtxt válido de impuesto (ver constantes)TaxNo (21% por defecto)
precioPrecio en euros sin impuestosdoubleNo (0€ por defecto)
precioofertaPrecio de oferta sin impuestosdoubleNo (sin precio de oferta por defecto)
stockStock disponibleintNo (0 por defecto)
merchantsyncSincronizar con Google merchant center (requiere configurar el servicio en ajustes del proyecto)int (boolean)No (no por defecto)
gmcspecialcategoryCategoría del producto según Google Merchant Centerint Ayuda ValoresNo (solamente es obligatorio para proyectos con merchantsync a true y para bebidas alcohólicas)
urlUrl del productostring(255)No (salvo que merchantsync sea true)
imagenUrl a la imagen principal del productostring(255)No (salvo que merchantsync sea true)
contenidoDescripción completa del productotextNo
publicarFecha en la que el producto se publicarádatetimeNo (fecha actual por defecto)
publicarfinFecha de caducidad de publicación del productodatetimeNo (vacío implica que no caduca nunca)
activoProducto en activoint (boolean)No (1 por defecto)
posicionOrdenación del productointNo
fechamodFecha de modificación del registrodatetimeNo (fecha actual por defecto)
optionsArray de opciones. Opciones
- createIfNotExists => boolean (default: false)
-updateCategoriesCounters => boolean (default:true)
arrayNo

La función devuelve el id de producto modificado, así como el nuevo id de marca y categoría si se han creado. No modifica marcas ni categorías, solamente las crea si es necesario.

deleteProduct

Elimina un producto existente siempre y cuando no se haya vinculado previamente a alguna venta

campodescripcióntipodatoobligatorio
tokenToken de clientestringSí
idId únicointSí
fechadelFecha de eliminación del registrodatetimeNo (fecha actual por defecto)

La función devuelve el id de producto eliminado

getCountProduct

Devuelve el número de productos almacenados en el sistema

campodescripcióntipodatoobligatorio
tokenToken de clientestringSí

5. Ventas

Registro de ventas (para proyectos de comercio electrónico o similar), o para controlar cualquier tipo de captación de registro o similar que se quiera controlar.

addPurchase

Añade una nueva venta

campodescripcióntipodatoobligatorio
tokenToken de clientestringSí
idId únicointSí
clienteClienteClienteSí
fechaFecha de la compradatetimeNo (fecha actual si no se envía)
formapagoForma de pagoPaymentSí
formaenvioForma de envíoShippingMethodSí
cuponSi se ha usado un cupón, tipo de cupón aplicadoCouponCategoryNo
productosimporteImporte sin impuestos de los productos compradosfloatNo
formapagoimporteSi la forma de pago incluye recargo, introducir el importe sin impuestos (+)floatNo
formaenvioimporteSi la forma de envío incluye recargo, introducir el importe sin impuestos (+)floatNo
cuponimporteSi se ha usado un cupón, importe del mismo sin impuestos (-)floatNo
baseImporte total de la compra sin impuestosfloatSí
totalImporte total de la compra con impuestos incluidosfloatSí
fechacobroFecha de cobrodatetimeNo (solamente aplica a ventas prepagadas)
estadoEstado de la ventaOrderStatusNo (por defecto 1/pendiente-procesar)
transporteCompañía de transporteTransportCompanyCompañía de transporte
fechaaltaFecha de alta del registrodatetimeNo (fecha actual por defecto)
activoVenta activa (inverso a borrado)int(boolean)No1
borradoVenta borrada (inverso a activo)int(boolean)No0
optionsArray de opciones. Opciones
- updateClientPurchases => boolean (default: true)
arrayNo

Salidas

  • created_id: Id de myMSB de la venta modificada
  • your_id: Id recibido de la venta
  • client_purchases: Nº de ventas totales del cliente (solamente si updateClientPurchases es true y si ha cambiado el nº de ventas del cliente)

updatePurchase

Actualiza una venta existente. Si la opción createIfNotExists está a true y la venta no existe, se crea

campodescripcióntipodatoobligatorio
tokenToken de clientestringSí
idId únicointSí
clienteClienteClienteSí
fechaFecha de la compradatetimeNo (fecha actual si no se envía)
formapagoForma de pagoPaymentSí
formaenvioForma de envíoShippingMethodSí
cuponSi se ha usado un cupón, tipo de cupón aplicadoCouponCategoryNo
productosimporteImporte sin impuestos de los productos compradosfloatNo
formapagoimporteSi la forma de pago incluye recargo, introducir el importe sin impuestos (+)floatNo
formaenvioimporteSi la forma de envío incluye recargo, introducir el importe sin impuestos (+)floatNo
cuponimporteSi se ha usado un cupón, importe del mismo sin impuestos (-)floatNo
baseImporte total de la compra sin impuestosfloatSí
totalImporte total de la compra con impuestos incluidosfloatSí
fechacobroFecha de cobrodatetimeNo (solamente aplica a ventas prepagadas)
estadoEstado de la ventaOrderStatusNo (por defecto 1/pendiente-procesar)
transporteCompañía de transporteTransportCompanyCompañía de transporte
activoVenta activa (inverso a borrado)int(boolean)No1
borradoVenta borrada (inverso a activo)int(boolean)No0
fechamodFecha de modificación del registrodatetimeNo (fecha actual por defecto)
optionsArray de opciones. Opciones
- updateClientPurchases => boolean (default: true)
- createIfNotExists => boolean (default: false)
arrayNo

Salidas

  • updated_id: Id de myMSB de la venta modificada
  • your_id: Id recibido de la venta
  • client_purchases: Nº de ventas totales del cliente (solamente si updateClientPurchases es true)

updatePurchaseStatus

Actualiza el estado de una venta existente

campodescripcióntipodatoobligatorio
tokenToken de clientestringSí
idId de la venta a actualizar el estadointSí
estadoEstado de la ventaOrderStatusSí
fechaaltaFecha de cambio de estadodatetimeNo (fecha actual por defecto)
optionsArray de opciones. Opciones
- updateClientPurchases => boolean (default: true)
arrayNo

Salidas

  • updated_id: Id de myMSB de la venta modificada
  • your_id: Id recibido de la venta
  • client_purchases: Nº de ventas totales del cliente (solamente si updateClientPurchases es true)

deletePurchase

Elimina una venta existente

campodescripcióntipodatoobligatorio
tokenToken de clientestringSí
idId únicointSí
fechadelFecha de eliminación del registrodatetimeNo (fecha actual por defecto)
optionsArray de opciones. Opciones
- updateClientPurchases => boolean (default: true)
arrayNo

Salidas

  • deleted_id: Id de myMSB de la venta eliminada
  • your_id: Id recibido de la venta
  • client_purchases: Nº de ventas totales del cliente (solamente si updateClientPurchases es true)

getCountPurchaseAll

La función devuelve el nº total de ventas

campodescripcióntipodatoobligatorio
tokenToken de clientestringSí

6. Formularios de contacto

Registra formularios cubiertos a través de la web

addForm

Añade un nuevo formulario

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INnombreNombrestring(255)No
INmailCorreo electrónicostring(255)No
INtelefonoTeléfonostring(50)No
INempresaNombre de la empresastring(255)No
INdireccionDirecciónstring(250)No
INpoblacionPoblaciónstring(250)No
INcpCódigo postalstring(10)No
INprovinciaIdentificador válido de provincia (ver constantes)ProvinceNo
INpaisIdentificador válido de país (ver constantes)CountryNo
INasuntoAsuntostring(255)No
INcontenidoContenido del mensajetextNo
INaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)No
INfechaFecha de envíodatetimeNo
INformularioId de formulario relacionado (para hilos de conversación)FormNo
INcategoriaCategoría de formularioFormCategoriesSí
INestadoEstadoDataPipelineNo
INcampañaCódigo (idtxt) de la campaña dada de alta en el panel; si no existe, se ignoraDataCampanaNo
INdatosadicionalesJson con datos adicionalesJSONNo
INfechaaltaFecha de alta del registrodatetimeNoFecha actual
INfechamodFecha de última modificación del registrodatetimeNoNULL
INborradoCampo borradoint(boolean)No0
OUTcreated_idEl id de formulario creado internamente en el sistemaint
OUTyour_idEl id de formulario recibido (id)int

updateForm

Actualiza un formulario existente, buscado por el id que se envió en addForm. Si no existe, devuelve un error (no atiende la opción createIfNotExists).

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INnombreNombrestring(255)No
INmailCorreo electrónicostring(255)No
INtelefonoTeléfonostring(50)No
INempresaNombre de la empresastring(255)No
INdireccionDirecciónstring(250)No
INpoblacionPoblaciónstring(250)No
INcpCódigo postalstring(10)No
INprovinciaIdentificador válido de provincia (ver constantes)ProvinceNo
INpaisIdentificador válido de país (ver constantes)CountryNo
INasuntoAsuntostring(255)No
INcontenidoContenido del mensajetextNo
INaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)1
INfechaFecha de envíodatetimeNo
INformularioId de formulario relacionado (para hilos de conversación)FormNo
INcategoriaCategoría de formularioFormCategoriesNo
INestadoEstadoDataPipelineNo
INfechaaltaFecha de alta del registrodatetimeNo
INfechamodFecha de última modificación del registrodatetimeNo
INborradoCampo borradoint(boolean)No
INoptionsArray de opciones. Opciones
- createIfNotExists => boolean (default: false)
arrayNo
OUTupdated_idEl id de formulario modificado internamente en el sistemaint
OUTyour_idEl id de formulario recibido (id)int

deleteForm

Elimina un formulario existente

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId únicointSí
INfechadelFecha de eliminación del registrodatetimeNoFecha actual

La función devuelve el id de formulario eliminado

getCountForm

Devuelve el nº total de formularios no borrados

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí

getForm

Devuelve la información de un formulario

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidIdintNo
OUTidId único en MyMSBintNo
OUTidexternoId del formulariointNo
OUTnombreNombrestring(255)No
OUTmailCorreo electrónicostring(255)No
OUTtelefonoTeléfonostring(50)No
OUTempresaNombre de la empresastring(255)No
OUTdireccionDirecciónstring(250)No
OUTpoblacionPoblaciónstring(250)No
OUTcpCódigo postalstring(10)No
OUTprovinciaIdentificador válido de provincia (ver constantes)ProvinceNo
OUTpaisIdentificador válido de país (ver constantes)CountryNo
OUTasuntoAsuntostring(255)No
OUTcontenidoContenido del mensajetextNo
OUTaceptapublicidad1 si acepta publicidad, 0 en caso contrarioint(boolean)No
OUTfechaFecha de envíodatetimeNo
OUTformularioId de formulario relacionado (para hilos de conversación)FormNo
OUTcategoriaCategoría de formularioFormCategoriesNo
OUTestadoEstadoFormStatusNo
OUTfechaaltaFecha de alta del registrodatetimeNo
OUTfechamodFecha de última modificación del registrodatetimeNo
OUTborradoCampo borradoint(boolean)No

7. APIs para recuperación de datos de constantes

Formas de pago

Formas de pago aceptadas por MyMSB

getPayments

Recupera las formas de pago disponibles. Actualmente estas son las formas de pago aceptadas

ididtxtdescripcion
1transferTransferencia Bancaria
2creditcardTarjeta de crédito
3cashondeliveryContrareembolso
4cashonstorePago en tienda
5paypalPaypal
6voucherCupón o vale
7financingFinanciación
8bizumBizum
9amazonAmazon
10marketplace1Marketplace 1
11marketplace2Marketplace 2
12directdebitDomiciliación bancaria

Se usa en:

Impuestos

Impuestos aceptados por MyMSB

getTaxes (no disponible por la API: la tabla es solo de consulta)

Recupera los impuestos disponibles. Se aceptan los siguientes

ididtxtdescripcion
1imp-21Iva normal (21%)
2imp-10Iva reducido (10%)
3imp-4Iva superreducido (4%)
4imp-5.2IGIC (5,2%)
5imp-0Sin impuestos

Países

Lista de países del mundo

getCountries

Recupera el listado de países. Se pueden consultar en la siguiente tabla

ididtxtdescripcion
1ESEspaña
2AXIslas Aaland
3AFAfganistán
6WSSamoa americana
7ADAndorra
8AOAngola
9AIAnguilla
10AQAntártica
11AGAntigua y barbuda
12ARArgentina
13AMArmenia
14AWAruba
15AUAustralia
16ATAustria
17AZAzerbayán
18BSBahamas
19BHBahrein
20BDBangladesh
21BBBarbados
22BYBielorrusia
23BEBélgica
24BZBelice
25BJBenín
26BMBermudas
27BHButan
28BOBolivia
29BABosnia herzegovina
30BWBotsuana
31BVIsla Bouvet
32BRBrasil
33Territorio británico del océano Índico
34BNBrunéi
35BGBulgaria
36BFBurkina faso
37BIBurundi
38KHCamboya
39CMCamerún
40CACanadá
41CVCabo verde
42KYIslas Caimán
43CFRepública africana central
44TDChad
45CLChile
46CNChina
47CXIsla Christmas
48CKIslas Cocos (Keeling)
49COColombia
50KMComoras
51CDRepública democrática del congo (Zaire)
52CGRepública del Congo
53CKIslas Cook
54CRCosta Rica
55CICosta de Marfil
56HRCroacia (Hrvatska)
57CUCuba
58CYChipre
59CZRepública checa
60DKDinamarca
61Yibuti
62DMDominica
63DORepública Dominicana
64ECEcuador
65EGEgipto
66SVEl salvador
67GQGuinea ecuatorial
68EREritrea
69EEEstonia
70ETEtiopía
71FKMalvinas (Islas)
72FOFaroe (Islas)
73FJFiji
74FIFinlandia
75FRFrancia
77PFPolinesia francesa
78Territorios franceses australes
79GARepública Gabonesa
80GMGambia
81GEGeorgia
82DEAlemania
83GHGhana
84GIGibraltar
85GRGrecia
86GLGroenlandia
87GDGranada
88GPGuadalupe
89GUGuam
90GTGuatemala
91GNGuinea
92GWGuinea-Bissau
93GYGuyana
94HTHaití
95HMIslas Heard e Islas McDonald
96HNHonduras
97HKHong kong
98HUHungría
99ISIslandia
100INIndia
101IDIndonesia
102IRIrán (República Islámica de)
103IQIraq
104IEIrlanda
105ILIsrael
106ITItalia
107JMJamaica
108JPJapón
109JOJordania
110KZKazajistán
111KEKenya
112KIKiribati
113KPCorea del Norte
114KRCorea del Sur
115KWKuwait
116KGKirguistán
117LALaos
118LVLetonia
119LBLíbano
120LSLesoto
121LRLiberia
122LYLibia
123LILiechtenstein
124LTLituania
125LULuxemburgo
126MOMacao
127MKMacedonia
128MGMadagascar
129MWMalaui
130MWMalasia
131MVMaldivas (Islas)
132MLMali
133MTMalta
134MHMarshall (Islas)
135MQMartinica
136MRMauritania
137MUMauritius
138YTMayotte
139MXMéxico
140FMMicronesia (Estados Federados)
141MDMoldavia (República de)
142MCMónaco
143MNMongolia
144MSMontserrat
145MAMarruecos
146MZMozambique
147MMBirmania
148NANamibia
149NRNauru
150NPNepal
151NLPaíses Bajos
152ANAntillas de los Países Bajos
153NCNueva Caledonia
154NZNueva Zelanda
155NINicaragua
156NENíger
157NGNigeria
158NUNiue
159NFNorfolk (Isla)
160MPMariana del Norte (Islas)
161NONoruega
162OMOmán
163PKPakistán
164PWPalau
165Palestina
166PAPanamá
167PGPapúa nueva Guinea
168PYParaguay
169PEPerú
170PHFilipinas (Islas)
171PNPitcairn (Islas)
172PLPolonia
173PTPortugal
174PRPuerto rico
175QAQatar
176REReunion
177RORumanía
178RURusia
179RWRuanda
180SHSanta Helena
181KNSan Cristóbal y Nevis
182LCSanta Lucía
183PMSan Pedro y Miquelón
184VCSan Vicente y las Granadinas
185WSSamoa
186SMSan marino
187STSanto Tomé y Príncipe
188SAArabia Saudí
189SNSenegal
190RSSerbia y Montenegro
191SCSeychelles (Islas)
192SLSierra Leona
193SGSingapur
194SKRepública Eslovaca
195SIEslovenia
196SBSalomón (Islas)
197SOSomalia
198ZASudáfrica
199GSGeorgia del Sur y Sandwicth del Sur (Islas)
201LKSri lanka
202SDSudán
203SRSuriname
204SJSvalbard y Jan Mayen (Islas)
205SZSwazilandia
206SESuecia
207CHSuiza
208SYSiria
209TWTaiwan
210TJTayikistán
211TZTanzania
212THTailandia
213Timor-leste
214TGTogo
215TKTokelau
216TOTonga
217TTTrinidad y Tobago
218TNTúnez
219TRTurquía
220TMTurkmenistán
221TCIslas Turcas y Caicos
222TVTuvalu
223UGUganda
224UAUcrania
225AEEmiratos Árabes Unidos
226GBReino Unido
227USEstados Unidos
228United states minor outlying islands
229UYUruguay
230UZUzbekistán
231VUVanuatu
232VAVaticano
233VEVenezuela
234VNVietnam
235VGIslas Virginia (Inglesas)
236VIIslas virginia (U.S.)
237WFWallis and futuna islands
238EHSáhara oeste
239YEYemen
240ZMZambia
241ZWZimbawe
242AAesactivado

Se usa en:

CCAA

Sólo válido para España. Lista de comunidades autónomas de España

getRegions

Recupera el listado de comunidades autónomas de España. Se pueden consultar en la siguiente tabla

iddescripcion
1Andalucía
2Aragón
3Asturias
4Islas Baleares
5Canarias
6Cantabria
7Castilla la Mancha
8Castilla y León
9Catalunya
10Extremadura
11Galicia
12Madrid
13Región de Murcia
14Navarra
15Euskadi
16La Rioja
17Comunidad Valenciana
18Ciudad de Ceuta
19Ciudad de Melilla

Provincias

Sólo válido para España. Lista de provincias de España

getProvinces

Recupera el listado de provincias de España. Se pueden consultar en la siguiente tabla

iddescripcion
1Álava
2Albacete
3Alicante
4Almería
5Ávila
6Badajoz
7Islas Baleares
8Barcelona
9Burgos
10Cáceres
11Cádiz
12Castellón
13Ciudad Real
14Córdoba
15A Coruña
16Cuenca
17Girona
18Granada
19Guadalajara
20Guipuzcoa
21Huelva
22Huesca
23Jaén
24León
25Lleida
26La Rioja
27Lugo
28Madrid
29Málaga
30Murcia
31Navarra
32Ourense
33Asturias
34Palencia
35Las Palmas
36Pontevedra
37Salamanca
38S.C. Tenerife
39Cantabria
40Segovia
41Sevilla
42Soria
43Tarragona
44Teruel
45Toledo
46Valencia
47Valladolid
48Vizcaya
49Zamora
50Zaragoza
51Ceuta
52Melilla
55(No aplica)

Se usa en:

¿Cómo nos conoció?

Canales de entrada / cómo nos conoció

getChannels

Recupera el listado de canales disponibles. Se pueden consultar en la siguiente tabla

ididtxtdescripcion
1adsAnuncio de Ads
2friendRecomendado por un amigo
3radioA través de la radio
4pstorePor la tienda fí­sica
5googlingBuscando en Google
6facebookFacebook
7twitterTwitter
8google+Google+
9instagramInstagram
10twitchTwitch
11patreonPatreon
12amazonAmazon
99otherOtras

Perfiles de cliente

Categorías del cliente

getClientCategories

Recupera el listado de perfiles de cliente disponibles. Se pueden consultar en la siguiente tabla

ididtxtdescripcion
1basicCliente estándar
2vipCliente VIP
3managerDirección (interno)
4staffStaff (interno)
5marketplace1Marketplace 1
999otherOtro

Se usa en:

Estados de los pedidos

Lista de estados de pedido compatibles con MyMSB

getOrdersStatus

Recupera la lista de estados de la venta disponibles.

ididtxtdescripcion
1pendiente-procesarPendiente de procesar
2pendiente-ingresoPendiente de ingreso
3procesandoEn proceso/elaboración
4pendiente-envioPendiente de envío
5enviadoEnviada
6pdte-recogidaListo para recoger
50financiacion-aceptadaFinanciación aceptada
51financiacion-rechazadaFinanciación rechazada
100canceladaCancelada

Se usa en:

Formas de envío

Lista de formas de envío compatibles con MyMSB

getShippingMethods

Recupera la lista de formas de envío disponibles.

ididtxtdescripcion
1genericoGenérico
10nacionalNacional
50provincialProvincial
100canariasIslas Canarias
101balearesIslas Baleares
110europaEuropa
111europa-zona2Europa zona 2
112europa-surEuropa (Sur)
200portugalPortugal
201ukReino Unido
202irlandaIrlanda
203luxemburgoLuxemburgo
204alemaniaAlemania
999recogidaSin envío
1000restoResto del mundo

Se usa en:

Compañías de transporte

Lista de compañías de transporte

getTransportCompanies

Recupera la lista de compañías de transporte.

ididtxtdescripcion
1mrwMRW
2autoradioAutoradio
3seurSeur
4upsUPS
5correosCorreos
6correos-expressCorreos Express

Se usa en:

Cupones descuento

Lista de tipos de cupones descuento

getCouponCategories

Recupera la lista de tipos de cupones descuento.

ididtxtdescripcion
1genericoCupón genérico
10camp-bfCupón de campaña Black Friday
11camp-navCupón de campaña de navidad
12camp-eneCupón de campaña de rebajas de enero
13camp-verCupón de campaña de rebajas de verano
20amazonCupón para clientes de Amazon
21market1Cupón para marketplace personalizado 1
30fidelizacionCupón para fidelización de clientes
40abonoCupón abono devolución
50personalCupón personal clientes VIP
60altaCupón por alta
70referidoCupón por referido

Se usa en:


Formularios

Datos relacionados con la gestión de formularios

getFormCategories

Tipos de categorías de formularios compatibles con myMSB

ididtxtdescripcion
1solicitud-info-servicioSolicitud de información para un servicio
2solicitud-altaSolicitud de alta

Se usa en:

Pipeline

Ahora cada proyecto cuenta con su propio pipeline de estados que se crean dinámicamente y serán asociados según su proyecto relacionado.

Se usa en:

Tipos de producto

Categorías del producto

getProductCategories

Recupera el listado de tpos de producto disponibles. Se pueden consultar en la siguiente tabla

Se usa en:

8. Estadísticas de Google

Visitas de Google Analytics 4 y búsquedas de Google Search Console de la web del proyecto. MyMSB las descarga de Google cada noche, así que la tienda no necesita credenciales de Google ni gasta su cuota: las pide aquí.

Lo común a todas

  • Llamada por POST a https://api.mymsb.es/<acción>/ (con la barra final), con el campo token del proyecto.
  • El proyecto tiene que tener activada la API y configurada la fuente: la propiedad de GA4 para las acciones de Analytics, y la propiedad de Search Console para getSearchConsoleData.
  • Si va bien, la respuesta es:
    {"success": true, "project_id": 12, "date_range": {"from": "2026-09-01", "to": "2026-09-30"}, "group": "dia", "data": [ … ]}
    group sólo aparece en las acciones que agrupan por día o mes. data va ordenada como se indica en cada acción.
  • Si algo falla en lo que se envía, la respuesta es {"error": "texto"}. Los textos posibles son:
    • El token es requerido
    • El token no es válido
    • La API no está habilitada para este proyecto
    • El proyecto no tiene Google Analytics configurado
    • El proyecto no tiene Search Console configurado
    • Las fechas deben tener el formato YYYY-MM-DD
    • Hay que enviar desde y hasta, o ninguna de las dos
    • desde no puede ser posterior a hasta
    • El rango máximo es de 25 meses
    • agrupar debe ser dia o mes
    • limite debe estar entre 1 y 1000
    • dimension debe ser consulta, pagina o fecha

Fechas

  • desde y hasta van sólo en formato YYYY-MM-DD (aquí no valen los otros formatos de datetime), y los dos días van incluidos.
  • Se mandan los dos o ninguno. Sin ninguno, el rango es de los últimos 30 días hasta ayer.
  • Como mucho, 25 meses entre desde y hasta.
  • Los días que todavía no se han descargado no aparecen en data; los días sin visitas salen con 0. GA4 tarda hasta 48 horas en cerrar un día, así que MyMSB vuelve a pedir cada noche los tres últimos: el dato de ayer puede subir un poco al día siguiente.

getAnalyticsData

Visitas de la web por día o por mes.

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de cliente. Por POSTstringSí
INdesdePrimer día del rango, incluido. Va con hastaYYYY-MM-DDNoHace 30 días
INhastaÚltimo día del rango, incluido. Va con desdeYYYY-MM-DDNoAyer
INagrupardia: una fila por día. mes: una fila por mesdia | mesNodia
OUTperiodoEl día (YYYY-MM-DD) o el mes (YYYY-MM)string
OUTvisitasVisitas (sesiones de GA4)int
OUTvisitantesunicosVisitantes (usuarios totales de GA4)int
OUTvisitantesunicos_exactofalse si visitantesunicos es la suma de los días de un mes, que cuenta de más a quien entra varios días (ver notas)bool
OUTvisitasnuevasVisitantes nuevosint
OUTduracionDuración media de la visita, en segundosfloat
OUTrebotePorcentaje de rebote, de 0 a 1 (0,42 = 42 %). null si no hay dato fiable (ver notas)float | null
OUTpaginasPáginas vistasint
OUTpaginasvisitaPáginas por visitafloat
  • data va de más antiguo a más reciente.
  • Al agrupar por mes, las visitas, los nuevos y las páginas son la suma de los días. La duración y el rebote son medias ponderadas por visitas.
  • Visitantes por mes: no se pueden sumar los de cada día, porque quien entra varios días contaría varias veces. Si el mes entero está en el rango (el mes en curso, hasta ayer) y MyMSB tiene todos sus días, se da el dato mensual de Google y visitantesunicos_exacto es true. Si no, es la suma de los días y sale false.
  • Rebote: es el de GA4, es decir, 1 − el porcentaje de visitas con interacción. Sale null en los días antiguos guardados antes de que MyMSB lo descargara bien, y en los meses que tienen alguno de esos días.
  • Sin desde, hasta ni agrupar, la acción responde con el formato antiguo, por compatibilidad: los dos últimos días, admitiendo también el token por GET (?project=).

ver ejemplo de respuesta

POST https://api.mymsb.es/getAnalyticsData/
token=…&desde=2026-08-01&hasta=2026-09-30&agrupar=mes

{"success": true, "project_id": 12,
 "date_range": {"from": "2026-08-01", "to": "2026-09-30"}, "group": "mes",
 "data": [
   {"periodo": "2026-08", "visitas": 2100, "visitantesunicos": 950, "visitantesunicos_exacto": true,
    "visitasnuevas": 720, "duracion": 241.5, "rebote": 0.38, "paginas": 11800, "paginasvisita": 5.62},
   {"periodo": "2026-09", "visitas": 1900, "visitantesunicos": 800, "visitantesunicos_exacto": true,
    "visitasnuevas": 640, "duracion": 262.1, "rebote": 0.36, "paginas": 12100, "paginasvisita": 6.37}
 ]}

getAnalyticsChannels

Lo mismo que getAnalyticsData, separado por el canal por el que llegó cada visita.

typecampodescripcióntipodatoobligatoriodefault
INtoken, desde, hasta, agruparLos mismos que en getAnalyticsData
OUTperiodoEl día (YYYY-MM-DD) o el mes (YYYY-MM)string
OUTcanalCanal de la visita tal cual lo da GA4 (Organic Search, Direct, Organic Social, Referral, Paid Search, Email, Unassigned…). La tienda lo traducestring
OUTvisitas … paginasvisitaLos mismos que en getAnalyticsData, para ese canal. Por mes, visitantesunicos_exacto es siempre false
  • data va de más antiguo a más reciente y, dentro de cada periodo, de más a menos visitas. Sólo salen los canales con alguna visita.
  • Las visitas de todos los canales de un periodo suman las de getAnalyticsData en ese periodo.

ver ejemplo de respuesta

{"success": true, "project_id": 12,
 "date_range": {"from": "2026-09-01", "to": "2026-09-30"}, "group": "mes",
 "data": [
   {"periodo": "2026-09", "canal": "Organic Search", "visitas": 600, "visitantesunicos": 450,
    "visitantesunicos_exacto": false, "visitasnuevas": 210, "duracion": 330.2, "rebote": 0.14,
    "paginas": 3900, "paginasvisita": 6.5},
   {"periodo": "2026-09", "canal": "Direct", "visitas": 210, … }
 ]}

getAnalyticsPages

Visitas de cada página en un rango, de más a menos. Es la que sirve para el ranking de artículos: con ruta se filtran, por ejemplo, las fichas de producto.

typecampodescripcióntipodatoobligatoriodefault
INtoken, desde, hastaLos mismos que en getAnalyticsData. Aquí no se agrupa: se devuelve el total del rango
INrutaSólo las rutas que contienen este texto, sin distinguir mayúsculas (por ejemplo, /producto/). Los % y _ se buscan tal cualstringNoTodas
INlimiteCuántas rutas devolver, de 1 a 1000intNo100
OUTrutaRuta de la página tal cual la da GA4, sin dominio ni parámetros (?…)string
OUTvisitasVisitas en las que se vio esa ruta, sumadas día a díaint
OUTpaginasVeces que se vio esa rutaint
  • Cada noche se guardan las 1.000 páginas con más visitas de cada día. En webs pequeñas son todas; en una web muy grande, las de muy pocas visitas pueden faltar.
  • La ruta no lleva los parámetros (?…), así que las variantes de una misma página se juntan solas.

ver ejemplo de respuesta

POST https://api.mymsb.es/getAnalyticsPages/
token=…&desde=2026-09-01&hasta=2026-09-30&ruta=/producto/&limite=3

{"success": true, "project_id": 12,
 "date_range": {"from": "2026-09-01", "to": "2026-09-30"},
 "data": [
   {"ruta": "/producto/queso-ahumado", "visitas": 120, "paginas": 168},
   {"ruta": "/producto/queso-tierno", "visitas": 95, "paginas": 130},
   {"ruta": "/producto/yogur-natural", "visitas": 61, "paginas": 77}
 ]}

getSearchConsoleData

Cómo aparece la web en las búsquedas de Google: clics, impresiones, CTR y posición, por fecha, por búsqueda o por página.

typecampodescripcióntipodatoobligatoriodefault
INtoken, desde, hastaLos mismos que en getAnalyticsData
INdimensionfecha: totales por día o mes. consulta: ranking de búsquedas. pagina: ranking de páginasfecha | consulta | paginaNofecha
INagruparSólo con dimension = fecha: una fila por día o por mesdia | mesNodia
INlimiteSólo con consulta o pagina: cuántas filas devolver, de 1 a 1000intNo100
OUTfecha | consulta | paginaSegún la dimensión: el día (YYYY-MM-DD) o el mes (YYYY-MM), la búsqueda, o la dirección completa de la páginastring
OUTclicsClics desde los resultados de Googleint
OUTimpresionesVeces que la web salió en los resultadosint
OUTctrClics / impresiones, de 0 a 1 (0,21 = 21 %)float
OUTposicionPosición media en los resultados (1 = el primero), ponderada por impresionesfloat
  • La respuesta lleva además "dimension". Lleva group sólo con dimension = fecha.
  • Con fecha, data va de más antiguo a más reciente. Con consulta o pagina, de más a menos clics y, si empatan, de más a menos impresiones.
  • Google tarda unos 3 días en cerrar los datos: los últimos días todavía no aparecen. Un día que falta no significa «cero búsquedas».
  • Google no da las búsquedas poco frecuentes, así que la suma por consulta es menor que el total por fecha. Por página cuenta una impresión por cada página que sale en un resultado, así que esas cifras tampoco tienen por qué cuadrar con el total.
  • Google guarda 16 meses de datos. MyMSB los conserva desde que empieza a descargarlos.

ver ejemplo de respuesta

POST https://api.mymsb.es/getSearchConsoleData/
token=…&desde=2026-09-01&hasta=2026-09-30&dimension=consulta&limite=2

{"success": true, "project_id": 12,
 "date_range": {"from": "2026-09-01", "to": "2026-09-30"}, "dimension": "consulta",
 "data": [
   {"consulta": "queso de tetilla", "clics": 120, "impresiones": 800, "ctr": 0.15, "posicion": 3.4},
   {"consulta": "comprar queso online", "clics": 40, "impresiones": 900, "ctr": 0.0444, "posicion": 9.8}
 ]}

9. Búsquedas, reseñas, feeds y widgets

addSearch

Guarda una búsqueda hecha en el buscador de la web.

typecampodescripcióntipodatoobligatoriodefault
INtokenToken de clientestringSí
INidId único de la búsquedaintSí
INdescripcionTexto buscadostring(255)Sí
INnumresultadosNº de resultados que devolvió la búsquedastring(255)Sí
INactivoBúsqueda activaint(boolean)No1
INborradoBúsqueda borradaint(boolean)No0
INfechaaltaFecha de la búsquedadatetimeNoFecha actual
OUTcreated_idEl id de búsqueda creado internamente en el sistemaint

getReviews

Devuelve las reseñas de Google activas del proyecto, que MyMSB descarga cada noche. Solo necesita el campo token.

createFeed

Regenera los feeds de productos del proyecto para Google Merchant Center (XML) y Facebook (CSV). Solo necesita el campo token. Devuelve las URL de los dos ficheros en url y urlfb.

whatsappWidget, cookieWidget y cookieConsent

Las usan los scripts remotos del widget de WhatsApp y del banner de cookies, que se cargan en la web con el token del proyecto. No hace falta llamarlas a mano:

  • whatsappWidget: configuración y horarios del widget de WhatsApp (?project=<token>).
  • cookieWidget: textos y colores del banner de cookies (?project=<token>).
  • cookieConsent: suma una decisión del visitante en el banner (?project=<token>&a=accept_all|reject_all|accept_custom).

10. Ayudas para tipos de datos

Datetime

Los campos de tipo date o datetime aceptan los siguientes formatos:

  • yyyymmdd
  • yyyy-mm-dd
  • yyyy-mm-dd hh:mm:ss
  • yyyy/mm/dd
  • yyyy/mm/dd hh:mm:ss
  • dd/mm/aaaa
  • dd/mm/aaaa hh:mm:ss
  • dd-mm-aaaa
  • dd-mm-aaaa hh:mm:ss