feat: add custom/not_specified shipping modes with cost input for ML publish

- build_item_payload supports shipping_cost for custom mode with costs array
- Add shipping mode selector: me2, custom, not_specified
- Show shipping cost input when custom is selected
- Backend passes shipping_cost through custom_data to payload builder
This commit is contained in:
2026-05-26 06:32:21 +00:00
parent 314075021e
commit 584cc385b9
3 changed files with 31 additions and 7 deletions

View File

@@ -13,7 +13,7 @@
<link rel="manifest" href="/pos/static/pwa/manifest.json" />
<meta name="theme-color" content="#F5A623" />
<link rel="stylesheet" href="/pos/static/css/inventory.css?v=7">
<link rel="stylesheet" href="/pos/static/css/inventory.css?v=8">
</head>
<body>
@@ -871,10 +871,16 @@
</div>
<div class="inv-field">
<label>Modo de Envío</label>
<select id="meliShippingMode">
<select id="meliShippingMode" onchange="onMeliShippingChange()">
<option value="me2" selected>MercadoEnvíos (me2)</option>
<option value="custom">Propio (custom)</option>
<option value="not_specified">No especificado</option>
</select>
<small style="color:var(--color-text-muted);font-size:var(--text-caption);">Tu cuenta requiere ME2 obligatoriamente.</small>
<small style="color:var(--color-text-muted);font-size:var(--text-caption);">Si no puedes activar ME1/ME2 en ML, prueba 'Propio' o 'No especificado'.</small>
</div>
<div class="inv-field" id="meliShippingCostField" style="display:none;">
<label>Costo de Envío (MXN)</label>
<input type="number" id="meliShippingCost" value="150" min="0" step="1" />
</div>
</div>
@@ -908,7 +914,7 @@
<script src="/pos/static/js/pos-utils.js" defer></script>
<script src="/pos/static/js/sidebar.js" defer></script>
<script src="/pos/static/js/virtual-scroll.js?v=2" defer></script>
<script src="/pos/static/js/inventory.js?v=13" defer></script>
<script src="/pos/static/js/inventory.js?v=14" defer></script>
<script src="/pos/static/js/offline-banner.js" defer></script>
<script src="/pos/static/js/sync-engine.js" defer></script>
<script>if('serviceWorker' in navigator){navigator.serviceWorker.register('/pos/sw.js',{scope:'/pos/'});}</script>