Variables
Las variables del contacto guardan los datos de una persona: la ciudad, el ramo elegido, el total del pedido. Las variables globales las comparte todo el bot: la dirección de la tienda, un tipo de cambio, un contador de pedidos. Dónde se muestran y cómo insertarlas en un mensaje se describe en Datos que puedes insertar.
Lo que escriben las funciones se guarda cuando el código termina sin error. Dentro del código, la lectura ya ve lo escrito.
getContactVariable
getContactVariable(name)
Devuelve el valor de una variable del contacto.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
name |
Cadena | El nombre de la variable, como en la ficha del contacto. Se admiten espacios y letras no latinas |
Devuelve el valor como cadena, o undefined si el contacto no tiene esa variable. Envuelve el valor en Number() para hacer cálculos.
var count = Number(getContactVariable('roses_count') || 0);
if (count >= 11) {
setContactVariable('discount', 10);
}
Si la variable la escribió este mismo código, la función devuelve el valor en la forma en que se escribió: un número sigue siendo un número.
setContactVariable
setContactVariable(name, value)
Escribe una variable del contacto. Si la variable no existe, se crea.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
name |
Cadena | El nombre de la variable |
value |
Cadena, número, true o false |
El valor |
No devuelve nada.
Un objeto, un array, null y undefined no se guardan tal cual: la variable recibe un valor vacío. Para guardar un objeto o un array, conviértelo en cadena y vuelve a interpretarlo al leerlo:
setContactVariable('cart', JSON.stringify(['Rosas', 'Tulipanes']));
var cart = JSON.parse(getContactVariable('cart') || '[]');
Es mejor guardar los booleanos como cadenas, como 'sí' y 'no': true y false vuelven como las cadenas '1' y '' la próxima vez que otro bloque los lee.
deleteContactVariable
deleteContactVariable(name)
Elimina una variable del contacto.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
name |
Cadena | El nombre de la variable |
No devuelve nada. Después de eliminarla, getContactVariable con ese nombre devuelve undefined.
deleteContactVariable('promo_code');
getGlobalVariable
getGlobalVariable(name)
Devuelve el valor de una variable global del bot.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
name |
Cadena | El nombre de la variable global |
Devuelve el valor como cadena, o undefined si no existe esa variable.
var freeDelivery = Number(getGlobalVariable('free_delivery_from') || 0);
var sum = Number(getContactVariable('order_total') || 0);
if (sum >= freeDelivery) {
sendMessage('Para ti, el envío es gratis.');
}
setGlobalVariable
setGlobalVariable(name, value)
Escribe una variable global del bot. Si la variable no existe, se crea. El valor es visible de inmediato para todos los contactos del bot.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
name |
Cadena | El nombre de la variable global |
value |
Cualquiera | El valor. Se guarda como cadena: el número 5 pasa a ser '5', y un objeto, '[object Object]', así que convierte los objetos en cadena con JSON.stringify |
No devuelve nada.
var orders = Number(getGlobalVariable('orders_today') || 0);
setGlobalVariable('orders_today', orders + 1);
Advertencia
Si un código con una escritura así se ejecuta para varios contactos a la vez, cada uno lee el mismo valor antiguo y parte de los incrementos se pierde. Un contador así no sirve para contar con exactitud.
deleteGlobalVariable
deleteGlobalVariable(name)
Elimina una variable global del bot.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
name |
Cadena | El nombre de la variable global |
No devuelve nada.
deleteGlobalVariable('deal_of_the_day');