Saltar al contenido principal

Integración con Store Credit

Se explica como es la comunicación desde Magento hacia el microservicio de Store Credit.

Consulta de saldo con email

Cuando es la primera vez que Magento consulta el monedero de un cliente entonces hace una consulta de saldo usando el correo electronico del usuario y con esto la respuesta del microservicio regresara el ID generado que guardara en la base de datos de Magento y asi proximas consultas se usara el ID en lugar del correo.

Entonces solo en caso de no existir el monedero es cuando se crea y al mismo tiempo se puede utilizar este endpoint para consultar saldo e historial de un monedero siendo la respuesta igual que cuando se hace Consulta de saldo con ID.

Petición

GET - https://stg-storecredit.gaia.design/balance?email=testp1@test.com

Respuesta

{
"data": {
"email": "testp1@test.com",
"balance": 0,
"updatedAt": "2025-09-15T22:19:15.601Z",
"id": "68c88ea232245b2d9ce1e244",
"transactions": []
}
}
  • El atributo 'balance' indica el saldo actual del cliente.
  • El atributo 'transactions' contiene el historico de movimientos al monedero.

Consulta de saldo con ID

En este ejemplo se envia el ID del monedero en la URL.

Petición

GET - https://stg-storecredit.gaia.design/balance/68c88ea232245b2d9ce1e244

Respuesta

{
"data": {
"email": "testp1@test.com",
"balance": 80,
"updatedAt": "2025-09-15T22:19:15.601Z",
"id": "68c88ea232245b2d9ce1e244",
"transactions": [
{
"_id": "68c890e3fc30cb01e3fe52b7",
"userId": "68c88ea232245b2d9ce1e244",
"email": "testp1@test.com",
"amount": -20,
"balance": 80,
"type": "dim",
"reason": "orden creada",
"reference": "Pedido #SHEXP-002",
"createdBy": "test@test.com",
"createdAt": "2025-09-15T22:19:15.601Z",
},
{
"_id": "68c89013fc30cb01e3fe52b0",
"userId": "68c88ea232245b2d9ce1e244",
"email": "testp1@test.com",
"amount": 100,
"balance": 100,
"type": "add",
"reason": "casback",
"reference": "Pedido #SHEXP-001",
"createdBy": "test@test.com",
"createdAt": "2025-09-15T22:15:47.514Z",
}
]
}
}
  • El atributo 'balance' indica el saldo actual del cliente.
  • El atributo 'transactions' contiene el historico de movimientos al monedero.

Abonar saldo

En este ejemplo se envia el ID del monedero en la URL; Se solicitara agregar $100 al monedero y en el payload se especifica lo siguiente:

  • amount: El monto a sumar el cual debe ser un numero positivo.
  • reason: La razón que origina esta actualizacion como puede ser reembolso, cashback, compensación, etc.
  • reference: Se indica el identificador de referencia que generó este movimiento como puede ser un numero de pedido o nombre de campaña de marketing.
  • createdBy: Correo electronico de quien generó el movimiento. Regularmente se pone el correo del empleado que lo realizo o tambien puede ser el correo del mismo cliente si el hizo su compra.

Petición

POST - https://stg-storecredit.gaia.design/update/68c88ea232245b2d9ce1e244

{
"amount": 100,
"reason": "casback",
"reference": "Pedido #SHEXP-001",
"createdBy": "test@test.com"
}

Respuesta

{
"data": {
"email": "testp1@test.com",
"balance": 100,
"updatedAt": "2025-09-15T22:15:47.514Z",
"id": "68c88ea232245b2d9ce1e244",
"transactions": [
{
"_id": "68c89013fc30cb01e3fe52b0",
"userId": "68c88ea232245b2d9ce1e244",
"email": "testp1@test.com",
"amount": 100,
"balance": 100,
"type": "add",
"reason": "casback",
"reference": "Pedido #SHEXP-001",
"createdBy": "test@test.com",
"createdAt": "2025-09-15T22:15:47.514Z",
},
... // otros movimientos
]
}
}

Consumir saldo

En este ejemplo se envia el ID del monedero en la URL; Se solicitara descontar $20 del monedero y en el payload se especifica lo siguiente:

  • amount: El monto a descontar el cual debe ser un numero negativo. No debe ser mayor al saldo actual del monedero.
  • reason: La razón que origina esta actualizacion como puede ser reembolso, cashback, compensación, etc.
  • reference: Se indica el identificador de referencia que generó este movimiento como puede ser un numero de pedido o nombre de campaña de marketing.
  • createdBy: Correo electronico de quien generó el movimiento. Regularmente se pone el correo del empleado que lo realizo o tambien puede ser el correo del mismo cliente si el hizo su compra.

Petición

POST - https://stg-storecredit.gaia.design/update/68c88ea232245b2d9ce1e244

{
"amount": -20,
"reason": "orden creada",
"reference": "Pedido #SHEXP-002",
"createdBy": "test@test.com"
}

Respuesta

{
"data": {
"email": "testp1@test.com",
"balance": 80,
"updatedAt": "2025-09-15T22:19:15.601Z",
"id": "68c88ea232245b2d9ce1e244",
"transactions": [
{
"_id": "68c890e3fc30cb01e3fe52b7",
"userId": "68c88ea232245b2d9ce1e244",
"email": "testp1@test.com",
"amount": -20,
"balance": 80,
"type": "dim",
"reason": "orden creada",
"reference": "Pedido #SHEXP-002",
"createdBy": "test@test.com",
"createdAt": "2025-09-15T22:19:15.601Z",
},
... // otros movimientos
]
}
}