Store: prix barré par produit via champ Item.store_regular_price
Affiché barré (gris) si > prix de vente (Item Price), sur produits simples + variantes (les bundles gardent barré=somme des composants). Catalogue lit le champ; page rend <s>. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
5807d58913
commit
a855e11476
|
|
@ -166,8 +166,8 @@ a{color:inherit}
|
|||
<div class=cname>{{ p.name }}</div>
|
||||
<div class=cprice>
|
||||
<template v-if="p.bundle"><s>{{ money(p.sum) }}</s>{{ money(p.price) }}</template>
|
||||
<template v-else-if="p.options"><span class=from>dès </span>{{ money(fromPrice(p)) }}</template>
|
||||
<template v-else>{{ money(p.base) }}</template>
|
||||
<template v-else-if="p.options"><s v-if="p.reg">{{ money(p.reg) }}</s> <span class=from>dès </span>{{ money(fromPrice(p)) }}</template>
|
||||
<template v-else><s v-if="p.reg">{{ money(p.reg) }}</s> {{ money(p.base) }}</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -189,7 +189,7 @@ a{color:inherit}
|
|||
<div class=mdesc>{{ sel.desc }}</div>
|
||||
|
||||
<div class=mprice>
|
||||
<s v-if="sel.bundle">{{ money(sel.sum) }}</s>{{ money(curPrice) }}
|
||||
<s v-if="sel.bundle">{{ money(sel.sum) }}</s><s v-else-if="sel.reg && sel.reg > curPrice">{{ money(sel.reg) }}</s> {{ money(curPrice) }}
|
||||
</div>
|
||||
<div class=stock :class="stockClass">{{ stockLabel }}</div>
|
||||
|
||||
|
|
@ -402,7 +402,7 @@ async function nameOf (code) {
|
|||
async function buildCatalog () {
|
||||
const items = await erp.list('Item', {
|
||||
filters: [['show_in_store', '=', 1], ['disabled', '=', 0]],
|
||||
fields: ['name', 'item_name', 'item_group', 'image', 'description', 'standard_rate', 'has_variants', 'variant_of'],
|
||||
fields: ['name', 'item_name', 'item_group', 'image', 'description', 'standard_rate', 'has_variants', 'variant_of', 'store_regular_price'],
|
||||
limit: 200,
|
||||
})
|
||||
const bundles = await erp.list('Product Bundle', { fields: ['name'], limit: 200 })
|
||||
|
|
@ -434,6 +434,7 @@ async function buildCatalog () {
|
|||
const prices = info.map(v => v.price).filter(n => n > 0)
|
||||
const baseP = prices.length ? Math.min(...prices) : (round2(it.standard_rate) || 0)
|
||||
p.base = baseP
|
||||
const rg = round2(it.store_regular_price); if (rg > baseP) p.reg = rg
|
||||
const attrNames = [...new Set(info.flatMap(v => v.attrs.map(a => a.attribute)))]
|
||||
p.options = attrNames.map(an => {
|
||||
const isColor = /couleur|color/i.test(an)
|
||||
|
|
@ -452,6 +453,7 @@ async function buildCatalog () {
|
|||
} else {
|
||||
p.base = (await priceOf(it.name)) || round2(it.standard_rate) || 0
|
||||
p.stock = await stockOf(it.name)
|
||||
const rg = round2(it.store_regular_price); if (rg > p.base) p.reg = rg
|
||||
}
|
||||
out.push(p)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user