bep40 commited on
Commit
5be33ff
·
verified ·
1 Parent(s): 52db9b7

Upload grob-price-fix.js

Browse files
Files changed (1) hide show
  1. grob-price-fix.js +68 -0
grob-price-fix.js ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * V.AI STUDIO — Grob Price Fix
3
+ * ==============================
4
+ * Fixes incorrect prices from the catalogue-based PDF price list.
5
+ * Fixed as of July 2026 per Grob Vietnam catalogue.
6
+ */
7
+ (function() {
8
+ 'use strict';
9
+ if (window.__GROB_PRICE_FIX__) return;
10
+ window.__GROB_PRICE_FIX__ = true;
11
+
12
+ const PRICE_FIXES = {
13
+ // 0203 | Grob | Bản lề inox - cánh/phủ bì 203mm: 0đ -> 67.000đ
14
+ '0203': { p: '67.000đ', pn: 67000 },
15
+ // 0280 | Grob | Khay chia thìa dĩa nhựa - cánh/phủ bì 280mm: 885.000đ -> 965.000đ
16
+ '0280': { p: '965.000đ', pn: 965000 },
17
+ // 0290 | Grob | Khay chia thìa dĩa nhựa - cánh/phủ bì 290mm: 965.000đ -> 1.018.000đ
18
+ '0290': { p: '1.018.000đ', pn: 1018000 },
19
+ };
20
+
21
+ function patchProduct(prod) {
22
+ if (!prod) return;
23
+ var name = prod.n || prod.name || '';
24
+ for (var code in PRICE_FIXES) {
25
+ if (name.indexOf(code) === 0 && name.indexOf('Grob') !== -1) {
26
+ var fix = PRICE_FIXES[code];
27
+ if (prod.p) prod.p = fix.p;
28
+ if (prod.pn !== undefined) prod.pn = fix.pn;
29
+ if (prod.price) prod.price = fix.p;
30
+ if (prod.priceNum !== undefined) prod.priceNum = fix.pn;
31
+ return true;
32
+ }
33
+ }
34
+ return false;
35
+ }
36
+
37
+ // Patch after D is populated
38
+ function patchD() {
39
+ if (typeof window.D !== 'undefined' && Array.isArray(window.D)) {
40
+ var patched = 0;
41
+ window.D.forEach(function(p) {
42
+ if (patchProduct(p)) patched++;
43
+ });
44
+ if (patched > 0) {
45
+ console.log('[Grob Price Fix] Patched ' + patched + ' product(s) in D');
46
+ if (typeof window.refreshUI === 'function') window.refreshUI();
47
+ }
48
+ }
49
+ }
50
+
51
+ // Try patching at various intervals as data loads
52
+ function onReady() {
53
+ setTimeout(patchD, 200);
54
+ setTimeout(patchD, 500);
55
+ setTimeout(patchD, 1000);
56
+ setTimeout(patchD, 2000);
57
+ setTimeout(patchD, 3000);
58
+ setTimeout(patchD, 5000);
59
+ }
60
+
61
+ if (document.readyState === 'loading') {
62
+ document.addEventListener('DOMContentLoaded', onReady);
63
+ } else {
64
+ onReady();
65
+ }
66
+
67
+ console.log('[Grob Price Fix] Loaded: 02.03=67k, 02.80=965k, 02.90=1,018k');
68
+ })();