feat: WC standard price + sale price with smart sync logic

- Split woo_price into woo_regular_price and woo_sale_price
- Sync to WC: if standard=0 sets regular_price, otherwise sets sale_price
- Validation: standard price cannot be less than sale price
- Both prices shown in mapping UI with sale price highlighted in green
- Refresh Prices pulls both values from WC API

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-03-31 23:19:01 -04:00
parent b1e4ed5ec8
commit 80f9ddd0d6
5 changed files with 127 additions and 26 deletions

View File

@@ -140,7 +140,8 @@
<th>WooCommerce Product</th>
<th>SKU</th>
<th>Odoo Product</th>
<th>WC Price</th>
<th>WC Standard</th>
<th>WC Sale</th>
<th class="text-center"><i class="fa fa-exchange" title="Price Sync"/></th>
<th>Odoo Price</th>
<th>Instance</th>
@@ -167,7 +168,13 @@
</td>
<td><span class="woo-code"><t t-esc="p.woo_sku"/></span></td>
<td><t t-esc="p.odoo_product_name"/></td>
<td class="text-end" t-esc="this.formatPrice(p.woo_price)"/>
<td class="text-end" t-esc="this.formatPrice(p.woo_regular_price)"/>
<td class="text-end">
<t t-if="p.woo_sale_price">
<span class="woo-sale-price" t-esc="this.formatPrice(p.woo_sale_price)"/>
</t>
<t t-else=""><span class="woo-text-muted"></span></t>
</td>
<td class="text-center woo-price-sync-col">
<button class="woo-btn-icon" title="Push WC price to Odoo"
t-on-click.stop="() => this.pushPriceToOdoo(p.id)">