audit and sync
This commit is contained in:
@@ -73,7 +73,7 @@ class ProductsCrud extends HTMLElement {
|
||||
</div>
|
||||
<div class="toolbar">
|
||||
<input type="text" id="search" placeholder="Buscar por nombre o SKU..." />
|
||||
<button id="syncBtn" class="secondary">Sync Woo</button>
|
||||
<button id="syncBtn" class="secondary" title="Reimportar todos los productos desde WooCommerce (solo emergencias)">Resincronizar</button>
|
||||
</div>
|
||||
<div class="list" id="list">
|
||||
<div class="loading">Cargando productos...</div>
|
||||
@@ -141,19 +141,37 @@ class ProductsCrud extends HTMLElement {
|
||||
}
|
||||
|
||||
async syncFromWoo() {
|
||||
// Mostrar confirmación antes de sincronizar
|
||||
const confirmed = confirm(
|
||||
"⚠️ Resincronización de emergencia\n\n" +
|
||||
"Esto reimportará TODOS los productos desde WooCommerce y sobrescribirá los datos locales.\n\n" +
|
||||
"Usar solo si:\n" +
|
||||
"• La plataforma estuvo caída mientras se hacían cambios en Woo\n" +
|
||||
"• Los webhooks no funcionaron correctamente\n" +
|
||||
"• Necesitás una sincronización completa\n\n" +
|
||||
"¿Continuar?"
|
||||
);
|
||||
|
||||
if (!confirmed) return;
|
||||
|
||||
const btn = this.shadowRoot.getElementById("syncBtn");
|
||||
btn.disabled = true;
|
||||
btn.textContent = "Sincronizando...";
|
||||
|
||||
try {
|
||||
await api.syncProducts();
|
||||
const result = await api.syncFromWoo();
|
||||
if (result.ok) {
|
||||
alert(`Sincronización completada: ${result.synced} productos importados`);
|
||||
} else {
|
||||
alert("Error: " + (result.error || "Error desconocido"));
|
||||
}
|
||||
await this.load();
|
||||
} catch (e) {
|
||||
console.error("Error syncing products:", e);
|
||||
alert("Error sincronizando: " + (e.message || e));
|
||||
} finally {
|
||||
btn.disabled = false;
|
||||
btn.textContent = "Sync Woo";
|
||||
btn.textContent = "Resincronizar";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user