Skip to content

Instantly share code, notes, and snippets.

@fmagrosoto
Last active June 30, 2024 17:37
Show Gist options
  • Save fmagrosoto/fa9f1e3d0818b4d90e62139641fc3c85 to your computer and use it in GitHub Desktop.
Save fmagrosoto/fa9f1e3d0818b4d90e62139641fc3c85 to your computer and use it in GitHub Desktop.
Uso de API REST de WooCommerce para importar clientes masivamente
<!DOCTYPE html>
<html lang='es-MX'>
<head>
<meta charset='UTF-8'>
<meta content='width=device-width, initial-scale=1.0' name='viewport'>
<title>Importador de clientes a WooCommerce</title>
</head>
<body>
<h1>Importar clientes a WooCommerce</h1>
<p>
Como sabes, WooCommerce es un plugin gratuito y de código abierto que se instala en WordPress
y agrega funcionalidades de ecommerce al núcleo de WordPress. Es una plataforma especializada en
comercio electrónico, personalizable y basada en WordPress.
</p>
<p>
Como es una tienda en línea, habrá veces que quieras IMPORTAR tus propios clientes que tengas
almacenado en otras partes, como en algún CRM o en algún documento de Excel. Pero la acción
de importar clientes a WooCommerce es algo que se deberá de hacer por medio de <i>plugins</i>
y todos los <i>plugins</i> con de pago. O puedes irlos metiendo a mano, uno por uno.
</p>
<p>
Pero ¿qué pasa si no quieres usar algún <i>plugin</i> de pago y tampoco quieres darlo de alta a mano,
uno por uno? Bueno, WooCommerce pone a disposición métodos RESP API para que puedas utilizar
endpoints para lograr alguna acción como crear clientes, modificarlos, eliminarlos. Y no solo clientes,
sino productos y algunas otras cosas más.
</p>
<p>
Checa el <a href="https://woocommerce.github.io/woocommerce-rest-api-docs/?javascript#" target="_blank">
sitio oficial de REST API de Woocommerce</a> para mayores detalles.
</p>
<p>
Pero aquí muestro la forma sencilla de IMPORTAR MASIVAMENTE a clientes desde un arreglo JSON.
Revisa el código de la página para más detalles.
</p>
</body>
<script>
// Datos de autenticación (reemplaza con tus propias credenciales)
const apiKey = '-tu-propia-credencial-pública'
const apiSecret = 'tu-popia-credencia-privada'
const baseUrl = 'https://cambia-tu-sitio-web.com/wp-json/wc/v3'
// Endpoint para crear un cliente masivamente (hasta 100 clientes por vez)
const endpoint = `${baseUrl}/customers/batch`;
const base64Credentials = btoa(`${apiKey}:${apiSecret}`);
// Lista de clientes en formato JSON
const json_data = {
create: [
{"email":"correo1@correo.com","first_name":"nombre01","last_name":"apellido01"},
{"email":"correo2@correo.com","first_name":"nombre02","last_name":"apellidos02"},
{"email":"correo3@correo.com","first_name":"nombre03","last_name":"apellidos03"},
]
}
/**
* MÉTODO PARA CARGAR DE MANERA MASIVA CLIENTES A WOOCOMMERCE
* Usando el REST API de WooCommerce
*
* @author Fernando Magrosoto Vásquez
* @see https://woocommerce.github.io/woocommerce-rest-api-docs/?javascript#
* @param customerData
*/
function meterCliente(customerData) {
// Configuración de la solicitud
const requestOptions = {
method: 'POST',
headers: {
'Authorization': `Basic ${base64Credentials}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(customerData)
};
// Realiza la solicitud
fetch(endpoint, requestOptions)
.then(response => response.json())
.then(data => console.log('Cliente creado:', data))
.catch(error => console.error('Error al crear el cliente:', error));
}
// Llamada a la función
meterCliente(json_data)
</script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment