Son los permisos que otorga el Merchant para que la aplicación pueda acceder solo a los datos de los scopes seleccionados.
Estos se pueden otorgar a nivel global o seleccionar un recurso específico perteneciente al alcance. En el JSON del scope podrá encontrar el detalle de acceso según el recurso asociado, se indica con “true” o “false” si la aplicación tiene habilitado ese permiso:
- “all”: La aplicación tendrá permiso a todos los recursos asociados a ese scope.
- “xxxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx”: La aplicación tendrá permiso al _id del recurso asociado al alcance.
Por ejemplo:
El Merchant otorga el alcance “read: stock”. Como el stock varia según la bodega, el Merchant puede seleccionar otorgar acceso a todas sus bodegas o a una/varias bodegas específicas.
- Permiso encendido para leer el Stock de Todas las sucursales y bodegas:
Repsonse:
{
"_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"status": "created",
"OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"scopes": {
"read:stocks": {
"all": true
},
}
"expiresAt": "2024-10-15T19:57:26.468Z",
"refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z",
"updatedAt": "2024-10-15T13:57:26.000Z",
"createdAt": "2024-10-15T13:57:26.000Z",
"token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........."
}
Si el merchant otorga permisos "all", deberá consultar el endpoint correspondiente según sea el caso para obtener el listado de todos los recursos.
- Permiso para acceder solo a una bodega o sucursal:
Response:
{
"_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"status": "created",
"OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"scopes": {
"read:stocks": {
"all": false,
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false,
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX1234": true //Bodega con acceso
},
}
"expiresAt": "2024-10-15T19:57:26.468Z",
"refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z",
"updatedAt": "2024-10-15T13:57:26.000Z",
"createdAt": "2024-10-15T13:57:26.000Z",
"token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........."
}
En este caso en el json del scope el valor del campo “all” es “false” por lo que la aplicación no tiene acceso a todas las bodegas. Pero tiene acceso a la bodega con id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX1234".
- Sin permiso para leer stock de ninguna sucursal o bodega:
Response:
{
"_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"status": "created",
"OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"scopes": {
"read:stocks": {
"all": false,
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false,
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false
},
}
"expiresAt": "2024-10-15T19:57:26.468Z",
"refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z",
"updatedAt": "2024-10-15T13:57:26.000Z",
"createdAt": "2024-10-15T13:57:26.000Z",
"token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........."
}
Tipos de scope:
- Read: Otorga permisos de solo lectura para el scope seleccionado.
- Write: Otorga permisos de escritura para el scope seleccionado.
- Manage: Otorga permisos para administrar(lectura/escritura) los recursos del scope seleccionado de forma global, no permite seleccionar por recurso.
Nota:
El permiso de manage:checkouts es exclusivamente para aplicaciones que integran canales de ventas.
Los diferentes scopes que tenemos disponibles son los siguientes:
- Permisos para consultar/escribir los productos, sus versiones, categorías, color, talla, entre otros. Se otorga acceso global.
-
- read:products
- write:products
-
- Permisos para consultar/escribir el stock de los productos según las bodegas. Se puede otorgar acceso a global o segmentado.
-
- read:stocks
- write:stocks
-
- Permisos para consultar/escribir el precio de los productos según las listas de precios. Se puede otorgar acceso a global o segmentado.
-
- read:prices
- write:prices
-
- Permisos para consultar/escribir/administrar las ventas de los diferentes canales de venta. Se puede otorgar acceso a global o segmentado.
-
- read:checkouts
- write:checkouts
- manage:checkouts Este scope se debe habilitar solo para las aplicaciones que son canales de venta.
-
- Permisos para consultar/escribir/administrar la asociación de una versión de un producto a los diferentes canales de venta. Se puede otorgar acceso a global o segmentado por canal.
-
- read:product_links
- write:product_links
- manage:product_links Este scope se debe habilitar solo para las aplicaciones que son canales de venta.
-
- Permisos para consultar/escribir/administrar las bodegas que tiene creadas el merchant. Se puede otorgar acceso a global o segmentado.
-
- read:warehouses
- write:warehouses
- manage:warehouses
-
- Permisos para consultar/escribir/administrar los clientes que tiene creados el merchant. Se puede otorgar acceso a global.
-
- read:clients
- write:clients
- manage:clients
-
- Permisos para consultar/escribir en las conexiones con couriers que tiene el merchant creada . Se puede otorgar acceso a global o segmentado.
-
- read:couriers
- write:couriers
-
- Permisos para consultar los canales que tiene creados el merchant. Se puede otorgar acceso a global o segmentado.
-
- read:channels
-
- Permisos para generar etiquetas de despacho desde los canales de ventas que permiten esta funcionalidad.
-
- read:channels
- read:checkouts
- write:checkouts
-
Si tienes dudas sobre este tema contáctanos a través de api@multivende.com y estaremos felices de ayudarte.
Equipo Integraciones API Multivende