feat: MercadoLibre integration + inventory bulk publish + WhatsApp bridge fixes
- Add MercadoLibre OAuth, listings, orders, webhooks and category search - New marketplace_external_bp.py, meli_service.py, marketplace_external_service.py - New marketplace_external.html/js with ML management UI - Inventory: bulk publish to ML with category autocomplete, listing type and shipping selectors - Inventory: new .btn--meli styles, select/label CSS fixes - WhatsApp bridge: rate limiting, 440/515/408 error handling, stale watchdog - DB migration v3.4_meli_integration.sql for marketplace_listings, orders, sync_queue - Add Celery tasks for ML sync and webhook processing - Sidebar: MercadoLibre navigation link
This commit is contained in:
@@ -349,10 +349,14 @@
|
||||
var cacheKey = 'nexus:brands:' + catalogMode;
|
||||
var cached = sessionStorage.getItem(cacheKey);
|
||||
if (cached) {
|
||||
hideLoading();
|
||||
var data = JSON.parse(cached);
|
||||
renderBrands(data);
|
||||
return;
|
||||
try {
|
||||
hideLoading();
|
||||
var data = JSON.parse(cached);
|
||||
renderBrands(data);
|
||||
return;
|
||||
} catch (e) {
|
||||
sessionStorage.removeItem(cacheKey);
|
||||
}
|
||||
}
|
||||
|
||||
apiFetch(API + '/brands?mode=' + catalogMode).then(function (data) {
|
||||
@@ -1631,8 +1635,13 @@
|
||||
var cacheKey = 'nexus:years-all';
|
||||
var cached = sessionStorage.getItem(cacheKey);
|
||||
if (cached) {
|
||||
var data = JSON.parse(cached);
|
||||
var years = data.data || data || [];
|
||||
try {
|
||||
var data = JSON.parse(cached);
|
||||
var years = data.data || data || [];
|
||||
} catch (e) {
|
||||
sessionStorage.removeItem(cacheKey);
|
||||
var years = [];
|
||||
}
|
||||
if (!years.length) {
|
||||
years = [];
|
||||
for (var y = 2026; y >= 1990; y--) years.push({ id_year: y, year_car: y });
|
||||
|
||||
Reference in New Issue
Block a user