Commit Graph

7 Commits

Author SHA1 Message Date
gsinghpal
c5b519f8f4 feat: inline-editable prices in product mapping UI
Click any price cell (WC Standard, WC Sale, Odoo Price) to edit inline.
Enter or click away saves and syncs to the source. Escape cancels.
Validation: sale price cannot exceed standard price.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:23:23 -04:00
gsinghpal
80f9ddd0d6 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>
2026-03-31 23:19:01 -04:00
gsinghpal
b1e4ed5ec8 feat: clickable WooCommerce product links in mapping UI
Product names in the mapped table are now links that open the WC product
page in a new tab. Added woo_permalink field, stored during fetch,
returned by search endpoint.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 23:06:27 -04:00
gsinghpal
f9fcb6612b feat: add pagination, individual price sync arrows, and bulk price sync
- Pagination with page nav for mapped, unmatched Odoo, and unmatched WC tabs
- Per-product arrow buttons to push price in either direction
- Bulk price sync buttons: All Prices Odoo→WC and All Prices WC→Odoo
- Server-side offset/limit with total count in search endpoints

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 22:51:07 -04:00
gsinghpal
919dbcb4cf feat: add WC Price and Odoo Price columns to product mapping UI
Added woo_price field to woo.product.map model, populated during fetch.
Search endpoint now returns both odoo_price and woo_price for side-by-side
comparison in the mapped products table.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 22:32:42 -04:00
gsinghpal
7e302b0a27 feat: implement price, inventory, image sync and conflict resolution
- Replace _sync_products placeholder with price comparison logic that
  detects Odoo vs WC changes and creates woo.conflict on both-changed
- Replace _sync_inventory placeholder to push Odoo stock levels to WC
- Add _sync_product_from_wc webhook handler for inbound price updates
- Add action_sync_images on woo.product.map with hash-based comparison
- Add conflict resolution methods: action_use_odoo, action_use_woo,
  action_bulk_resolve_odoo, action_bulk_resolve_woo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 21:01:57 -04:00
gsinghpal
fdd67c9e51 feat: add all remaining models (product map, order, shipment, customer, sync log, conflict, tax/pricelist map, returns)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:08:49 -04:00