Integración del Sistema

Documentación para integrar con nuestra API de productos. Esta página proporciona información completa sobre el endpoint de sincronización de productos.

API de Sincronización de Productos

Endpoint
GET https://www.combatzonetactical.com/api/products/sync-products
Descripción

Este endpoint devuelve una lista completa de todos los productos disponibles en nuestro sistema, incluyendo sus nombres, descripciones, códigos de referencia, precios y niveles de stock.

Formato de Respuesta

La API devuelve un array JSON conteniendo objetos de productos con la siguiente estructura:

[
  {
    "productName": "Extensión para cargador de gas Raccoon - RCT002",
    "productDescription": "",
    "referenceCode": "5382",
    "msrp": 2.7,
    "stock": 0
  },
  {
    "productName": "OF PARACORD BRACELET Cierre Acero BK",
    "productDescription": "",
    "referenceCode": "5140",
    "msrp": 0,
    "stock": 57
  }
]
Parámetros de Respuesta
CampoTipoDescripción
productNamestringEl nombre del producto
productDescriptionstringDescripción detallada del producto (puede estar vacía)
referenceCodestringCódigo de referencia único del producto
msrpnumberPrecio de venta al público sugerido por el fabricante (0 si no está disponible)
stocknumberCantidad actual en stock
Ejemplos de Uso

Aquí tienes algunos ejemplos de cómo usar este endpoint de la API:

// JavaScript/TypeScript
fetch('https://www.combatzonetactical.com/api/products/sync-products')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

// cURL
curl -X GET "https://www.combatzonetactical.com/api/products/sync-products" \
  -H "Content-Type: application/json"
Notas Importantes
  • Este endpoint no requiere autenticación
  • La respuesta está en caché para optimización del rendimiento
  • Los niveles de stock se actualizan en tiempo real

API de Añadir al Carrito

Endpoint
POST https://www.combatzonetactical.com/api/cart/add
Descripción

Este endpoint te permite añadir productos al carrito de compras de un cliente. Requiere autenticación y devuelve información detallada sobre el artículo del carrito y el total.

Cuerpo de la Petición

La petición debe incluir los siguientes parámetros:

{
  "productId": "5382",
  "quantity": 2,
  "customerId": "customer123"
}
Parámetros de la Petición
CampoTipoDescripción
productIdstringEl identificador único del producto a añadir al carrito
quantitynumberLa cantidad del producto a añadir (debe ser un entero positivo)
customerIdstringEl identificador único del cliente
Formato de Respuesta

La API devuelve un objeto JSON con la siguiente estructura:

{
  "success": true,
  "message": "Product added to cart successfully",
  "cartItem": {
    "id": "cart_item_123",
    "productId": "5382",
    "quantity": 2,
    "price": 5.4,
    "total": 10.8
  },
  "cartTotal": 10.8
}
Ejemplos de Uso

Aquí tienes algunos ejemplos de cómo usar la API de Añadir al Carrito:

// JavaScript/TypeScript
const addToCart = async (productId, quantity, customerId) => {
  try {
    const response = await fetch('https://www.combatzonetactical.com/api/cart/add', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_TOKEN'
      },
      body: JSON.stringify({
        productId,
        quantity,
        customerId
      })
    });
    
    const result = await response.json();
    console.log('Product added to cart:', result);
  } catch (error) {
    console.error('Error adding to cart:', error);
  }
};

// cURL
curl -X POST "https://www.combatzonetactical.com/api/cart/add" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "productId": "5382",
    "quantity": 2,
    "customerId": "customer123"
  }'
Notas Importantes
  • Este endpoint requiere autenticación con un token Bearer válido
  • El cliente debe existir en el sistema antes de añadir artículos al carrito
  • Se verifica la disponibilidad del producto antes de añadirlo al carrito
  • Los totales del carrito se calculan automáticamente incluyendo impuestos y envío

API de Autenticación

Endpoint
POST https://www.combatzonetactical.com/api/auth/login
Descripción

Este endpoint autentica usuarios y devuelve un token JWT para acceder a recursos protegidos. El token debe incluirse en las peticiones posteriores a la API.

Cuerpo de la Petición

La petición debe incluir los siguientes parámetros:

{
  "email": "customer@example.com",
  "password": "your_password"
}
Parámetros de la Petición
CampoTipoDescripción
emailstringLa dirección de correo electrónico del usuario (debe ser un formato de email válido)
passwordstringLa contraseña del usuario (mínimo 6 caracteres)
Formato de Respuesta

La API devuelve un objeto JSON con los detalles de autenticación:

{
  "success": true,
  "message": "Login successful",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "user": {
    "id": "customer123",
    "email": "customer@example.com",
    "name": "John Doe",
    "role": "customer"
  },
  "expiresIn": 3600
}
Ejemplos de Uso

Aquí tienes algunos ejemplos de cómo usar la API de Autenticación:

// JavaScript/TypeScript
const login = async (email, password) => {
  try {
    const response = await fetch('https://www.combatzonetactical.com/api/auth/login', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        email,
        password
      })
    });
    
    const result = await response.json();
    
    if (result.success) {
      // Store token for future requests
      localStorage.setItem('authToken', result.token);
      console.log('Login successful:', result.user);
    } else {
      console.error('Login failed:', result.message);
    }
  } catch (error) {
    console.error('Error during login:', error);
  }
};

// cURL
curl -X POST "https://www.combatzonetactical.com/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "customer@example.com",
    "password": "your_password"
  }'
Notas Importantes
  • El token JWT expira después del tiempo especificado (expiresIn)
  • Almacena el token de forma segura para futuras peticiones autenticadas
  • Incluye el token en el header Authorization: 'Bearer TU_TOKEN'
  • Credenciales inválidas devolverán una respuesta 401 Unauthorized

API de Obtener Carrito

Endpoint
GET https://www.combatzonetactical.com/api/cart
Descripción

Este endpoint obtiene el carrito de compras actual del cliente autenticado. Devuelve todos los artículos del carrito con información detallada incluyendo precios, cantidades y totales.

Headers Requeridos

La petición debe incluir el siguiente header para autenticación:

Authorization: Bearer YOUR_JWT_TOKEN
Formato de Respuesta

La API devuelve un objeto JSON con la información completa del carrito:

{
  "success": true,
  "cart": {
    "id": "cart_123",
    "customerId": "customer123",
    "items": [
      {
        "id": "cart_item_123",
        "productId": "5382",
        "productName": "Extensión para cargador de gas Raccoon - RCT002",
        "quantity": 2,
        "unitPrice": 2.7,
        "totalPrice": 5.4,
        "addedAt": "2024-01-15T10:30:00Z"
      },
      {
        "id": "cart_item_124",
        "productId": "5140",
        "productName": "OF PARACORD BRACELET Cierre Acero BK",
        "quantity": 1,
        "unitPrice": 0,
        "totalPrice": 0,
        "addedAt": "2024-01-15T11:15:00Z"
      }
    ],
    "subtotal": 5.4,
    "taxes": 1.08,
    "shipping": 5.0,
    "total": 11.48,
    "itemCount": 3,
    "lastUpdated": "2024-01-15T11:15:00Z"
  }
}
Parámetros de Respuesta
CampoTipoDescripción
cart.idstringIdentificador único del carrito de compras
cart.customerIdstringIdentificador único del cliente propietario del carrito
cart.itemsarrayArray de artículos del carrito con detalles del producto y cantidades
cart.subtotalnumberPrecio total de todos los artículos antes de impuestos y envío
cart.totalnumberTotal final incluyendo impuestos y envío
Ejemplos de Uso

Aquí tienes algunos ejemplos de cómo usar la API de Obtener Carrito:

// JavaScript/TypeScript
const getCart = async (token) => {
  try {
    const response = await fetch('https://www.combatzonetactical.com/api/cart', {
      method: 'GET',
      headers: {
        'Authorization': `Bearer ${token}`,
        'Content-Type': 'application/json'
      }
    });
    
    if (response.ok) {
      const result = await response.json();
      console.log('Cart retrieved:', result.cart);
      return result.cart;
    } else {
      console.error('Failed to get cart:', response.status);
    }
  } catch (error) {
    console.error('Error getting cart:', error);
  }
};

// Usage
const token = localStorage.getItem('authToken');
const cart = await getCart(token);

// cURL
curl -X GET "https://www.combatzonetactical.com/api/cart" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json"
Notas Importantes
  • Este endpoint requiere un token JWT válido en el header Authorization
  • Devuelve un carrito vacío si el cliente no tiene artículos
  • Los datos del carrito se actualizan en tiempo real y reflejan la disponibilidad actual del stock
  • Tokens expirados o inválidos devolverán una respuesta 401 Unauthorized