PageSourceSearch

https://www.thealign.co/collections/feature-on-homepage/products/personalisation-service-

html thealign.co collected 2026-09-28 14:49:18 UTC 227,843 bytes, 4,703 lines download raw bytes

1<!doctype html>
2<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
3<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]-->
5<!--[if IE 9 ]><html class="ie9 no-js"> <![endif]-->
6<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js"> <!--<![endif]-->
7<head>
8
9  <!-- Basic page needs ================================================== -->
10  <meta charset="utf-8">
11  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
12
13  
14  <link rel="icon" href="https://cdn.store-assets.com/s/805787/f/7492102.jpeg" />
15  
16
17  <!-- Title and description ================================================== -->
18  <title>
19  Personalisation Service  &ndash; Align Co | Leather Goods Malaysia
20  </title>
21
22  
23  <meta name="description" content="*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary. Personalize with up to five (5) characters which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave ">
24  
25
26  <!-- Social meta ================================================== -->
27  
28
29  <meta property="og:type" content="product">
30  <meta property="og:title" content="Personalisation Service ">
31  <meta property="og:url" content="https://www.thealign.co/products/personalisation-service-">
32  
33  <meta property="og:image" content="https://cdn.store-assets.com/s/805787/i/49032432.png?width=480&format=webp">
34  <meta property="og:image:secure_url" content="https://cdn.store-assets.com/s/805787/i/49032432.png?width=480&format=webp">
35  
36  <meta property="og:price:amount" content="10">
37  <meta property="og:price:currency" content="MYR">
38
39
40<meta property="og:description" content="*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary. Personalize with up to five (5) characters which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave ">
41<meta property="og:site_name" content="Align Co | Leather Goods Malaysia">
42
43
44
45  <meta name="twitter:card" content="summary">
46
47
48
49
50  <meta name="twitter:title" content="Personalisation Service ">
51  <meta name="twitter:description" content="*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&amp;nbsp;Personalize with up to five (5) characters which are carefully hand sta">
52  <meta name="twitter:image" content="">
53  <meta name="twitter:image:width" content="480">
54  <meta name="twitter:image:height" content="480">
55
56
57
58
59  <!-- Helpers ================================================== -->
60  <link rel="canonical" href="https://www.thealign.co/products/personalisation-service-">
61  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0">
62  <meta name="theme-color" content="">
63
64  <!-- CSS ================================================== -->
65  <link href="https://store-themes.easystore.co/805787/themes/2877/assets/timber.css?t=1787076064" rel="stylesheet" type="text/css" media="screen" />
66  <link href="https://store-themes.easystore.co/805787/themes/2877/assets/theme.css?t=1787076064" rel="stylesheet" type="text/css" media="screen" />
67
68  
69
70
71
72<link href="https://fonts.googleapis.com/css?family=Rajdhani:400,600&display=swap" rel="stylesheet">
73
74
75  
75<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
75
76  <!-- Header hook for plugins ================================================== -->
77  
78<!-- ScriptTags -->
79<script>window.__st={p: "product",cid: null,cem: null,cph: null,cfn: null,cln: null,cge: null,cdb: null,ccc: null};</script>
79<script src='/assets/events.js'></script>
79<script>(function(){function asyncLoad(){var urls=['/assets/traffic.js?v=1','https://apps.easystore.co/sales-pop/script.js?shop=alignco.easy.co','https://apps.easystore.co/instagram-feed/script.js?shop=alignco.easy.co&t=1702321519','https://smartarget.online/loader.js?type=int&u=7b9026f3c6367767120a13b4d02b28fded0fcbd3&source=easystore_whatsapp'];for(var i=0;i<urls.length;i++){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=urls[i];var x=document.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);}}window.attachEvent ? window.attachEvent('onload', asyncLoad) : window.addEventListener('load', asyncLoad, false);})();</script>
79
80<!-- /ScriptTags -->
81
82
83  
84<!--[if lt IE 9]>
85<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript" ></script>
vendor: 2 bytes, line 85
85
86<script src="https://store-themes.easystore.co/805787/themes/2877/assets/respond.min.js?t=1787076064" type="text/javascript" ></script>
86
87<link href="https://store-themes.easystore.co/805787/themes/2877/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
88<link href="//www.thealign.co/search?q=ba15d675e03dc6776d1453d440c16066" id="respond-redirect" rel="respond-redirect" />
89<script src="//www.thealign.co/search?q=ba15d675e03dc6776d1453d440c16066" type="text/javascript"></script>
89
90<![endif]-->
91
92
93
94  
94<script src="https://store-themes.easystore.co/805787/themes/2877/assets/modernizr.min.js?t=1787076064" type="text/javascript" ></script>
94
95
96  
97  
98  
98<script>
99  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
100  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
101  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
102  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
103
104  ga('create', '', 'auto','myTracker');
105  ga('myTracker.send', 'pageview');
106
107  </script>
107
108  
109<!-- Snippet:global/head: Instagram Feed -->
110<link rel="stylesheet" href="https://apps.easystore.co/assets/css/instagram-feed/insta-feed-style.css?v3">
111<!-- /Snippet -->
112
113</head>
114
115<body id="personalisation-service-" class="template-product  has-sticky-btm-bar" >
116
117  <ul id="MobileNav" class="mobile-nav">
118  
119  <li class="mobile-nav_icon-x">
120    
121      
122
123
124
125
126  	
127  	<span class="MobileNavTrigger icon icon-x"></span>
128  </li>
129  
130  
131  <li class="mobile-nav__link" aria-haspopup="true">
132    
133    <a href="/" >
134      Home
135    </a>
136    
137  </li>
138  
139  
140  <li class="mobile-nav__link" aria-haspopup="true">
141    
142    
143    <a href="/collections/all" class="mobile-nav__parent-link">
144      Shop
145    </a>
146    <span class="mobile-nav__sublist-trigger">
147      <span class="icon-fallback-text mobile-nav__sublist-expand">
148  <span class="icon icon-plus" aria-hidden="true"></span>
149  <span class="fallback-text">+</span>
150</span>
151<span class="icon-fallback-text mobile-nav__sublist-contract">
152  <span class="icon icon-minus" aria-hidden="true"></span>
153  <span class="fallback-text">-</span>
154</span>
155
156    </span>
157    <ul class="mobile-nav__sublist">
158      
159      
160      <li class="mobile-nav__sublist-link" aria-haspopup="true">
161        
162        <a href="/collections/journals-books" >
163          Journals
164        </a>
165        
166      </li>
167      
168      
169      <li class="mobile-nav__sublist-link" aria-haspopup="true">
170        
171        <a href="/collections/key-related" >
172          Keys
173        </a>
174        
175      </li>
176      
177      
178      <li class="mobile-nav__sublist-link" aria-haspopup="true">
179        
180        <a href="/collections/travel-related" >
181          Travels
182        </a>
183        
184      </li>
185      
186      
187      <li class="mobile-nav__sublist-link" aria-haspopup="true">
188        
189        <a href="/collections/home-organization" >
190          Home/Office
191        </a>
192        
193      </li>
194      
195      
196      <li class="mobile-nav__sublist-link" aria-haspopup="true">
197        
198        <a href="/collections/wallets-cardholders" >
199          Wallets/Cardholders
200        </a>
201        
202      </li>
203      
204      
205      <li class="mobile-nav__sublist-link" aria-haspopup="true">
206        
207        <a href="/collections/new-arrival" >
208          Leather Gift Set
209        </a>
210        
211      </li>
212      
213      
214      <li class="mobile-nav__sublist-link" aria-haspopup="true">
215        
216        <a href="/collections/hot-selling" >
217          Others
218        </a>
219        
220      </li>
221      
222      
223      <li class="mobile-nav__sublist-link" aria-haspopup="true">
224        
225        <a href="/collections/clearance" >
226          Clearance
227        </a>
228        
229      </li>
230      
231      
232      <li class="mobile-nav__sublist-link" aria-haspopup="true">
233        
234        <a href="/collections/beyond-leather" >
235          Beyond Leather - Catalog
236        </a>
237        
238      </li>
239      
240    </ul>
241    
242  </li>
243  
244  
245  <li class="mobile-nav__link" aria-haspopup="true">
246    
247    
248    <a href="https://www.thealign.co/pages/corporate" class="mobile-nav__parent-link">
249      Corporate
250    </a>
251    <span class="mobile-nav__sublist-trigger">
252      <span class="icon-fallback-text mobile-nav__sublist-expand">
253  <span class="icon icon-plus" aria-hidden="true"></span>
254  <span class="fallback-text">+</span>
255</span>
256<span class="icon-fallback-text mobile-nav__sublist-contract">
257  <span class="icon icon-minus" aria-hidden="true"></span>
258  <span class="fallback-text">-</span>
259</span>
260
261    </span>
262    <ul class="mobile-nav__sublist">
263      
264      
265      <li class="mobile-nav__sublist-link" aria-haspopup="true">
266        
267        <a href="/pages/corporate" >
268          Corporate Portfolio
269        </a>
270        
271      </li>
272      
273      
274      <li class="mobile-nav__sublist-link" aria-haspopup="true">
275        
276        <a href="/pages/leather-personalised-corporate-gifts" >
277          Corporate Gifts
278        </a>
279        
280      </li>
281      
282      
283      <li class="mobile-nav__sublist-link" aria-haspopup="true">
284        
285        <a href="/pages/offcut-leather-mosaic-masterpieces-workshop" >
286          Offcut Leather Workshops
287        </a>
288        
289      </li>
290      
291      
292      <li class="mobile-nav__sublist-link" aria-haspopup="true">
293        
294        <a href="/pages/leather-corporate-workshops" >
295          Corporate Workshops
296        </a>
297        
298      </li>
299      
300    </ul>
301    
302  </li>
303  
304  
305  <li class="mobile-nav__link" aria-haspopup="true">
306    
307    
308    <a href="/pages/leather-personalisation-events" class="mobile-nav__parent-link">
309      On-Site Events
310    </a>
311    <span class="mobile-nav__sublist-trigger">
312      <span class="icon-fallback-text mobile-nav__sublist-expand">
313  <span class="icon icon-plus" aria-hidden="true"></span>
314  <span class="fallback-text">+</span>
315</span>
316<span class="icon-fallback-text mobile-nav__sublist-contract">
317  <span class="icon icon-minus" aria-hidden="true"></span>
318  <span class="fallback-text">-</span>
319</span>
320
321    </span>
322    <ul class="mobile-nav__sublist">
323      
324      
325      <li class="mobile-nav__sublist-link" aria-haspopup="true">
326        
327        <a href="/pages/on-site-personalisation-event-q-a" >
328          On-Site Personalisation Event (Q&A)
329        </a>
330        
331      </li>
332      
333      
334      <li class="mobile-nav__sublist-link" aria-haspopup="true">
335        
336        <a href="/pages/laser-engraving-personalization" >
337          Laser Engraving Personalization
338        </a>
339        
340      </li>
341      
342      
343      <li class="mobile-nav__sublist-link" aria-haspopup="true">
344        
345        <a href="/pages/events-past" >
346          Past Events
347        </a>
348        
349      </li>
350      
351    </ul>
352    
353  </li>
354  
355  
356  <li class="mobile-nav__link" aria-haspopup="true">
357    
358    <a href="/a/contact-form" >
359      Contact
360    </a>
361    
362  </li>
363  
364  
365  <li class="mobile-nav__link" aria-haspopup="true">
366    
367    
368    <a href="/pages/about-us" class="mobile-nav__parent-link">
369      About Us
370    </a>
371    <span class="mobile-nav__sublist-trigger">
372      <span class="icon-fallback-text mobile-nav__sublist-expand">
373  <span class="icon icon-plus" aria-hidden="true"></span>
374  <span class="fallback-text">+</span>
375</span>
376<span class="icon-fallback-text mobile-nav__sublist-contract">
377  <span class="icon icon-minus" aria-hidden="true"></span>
378  <span class="fallback-text">-</span>
379</span>
380
381    </span>
382    <ul class="mobile-nav__sublist">
383      
384      
385      <li class="mobile-nav__sublist-link" aria-haspopup="true">
386        
387        
388        <a href="/pages/interview-feature" class="mobile-nav__parent-link">
389          Interview/ Feature
390        </a>
391        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
392  <span class="icon icon-plus" aria-hidden="true"></span>
393  <span class="fallback-text">+</span>
394</span>
395<span class="icon-fallback-text mobile-nav__sublist-contract">
396  <span class="icon icon-minus" aria-hidden="true"></span>
397  <span class="fallback-text">-</span>
398</span>
399</span>
400        <ul class="mobile-nav__sublist"> 
401          
402          
403          <li class="mobile-nav__sublist-link" aria-haspopup="true">
404            
405            <a href="https://www.optionstheedge.com/topic/people/align-cos-personalised-leather-crafted-items-make-meaningful-gifts-corporate-and"  target="_blank" >
406              Interview with The Edge
407            </a>
408            
409          </li>
410          
411          
412          <li class="mobile-nav__sublist-link" aria-haspopup="true">
413            
414            <a href="https://vulcanpost.com/760038/align-collection-handmade-leather-products-malaysia/?fbclid=IwAR2yfSqA7iN-W8XFYVbxBdP8LpGh4MZoFGLVU2fRyGeeykpCnoNb4f_-iM4"  target="_blank" >
415              Interview with Vulcan Post
416            </a>
417            
418          </li>
419          
420          
421          <li class="mobile-nav__sublist-link" aria-haspopup="true">
422            
423            <a href="/www.instagram.com/tv/CECAzGWg2Zp/?utm_source=ig_web_copy_link" >
424              Feature: The Ming Thing
425            </a>
426            
427          </li>
428          
429          
430          <li class="mobile-nav__sublist-link" aria-haspopup="true">
431            
432            <a href="/www.ataspagar.my/post/ingin-berikan-hadiah-yang-bermakna-kepada-yang-tersayang-1"  target="_blank" >
433              Interview with Atas Pagar
434            </a>
435            
436          </li>
437          
438          
439          <li class="mobile-nav__sublist-link" aria-haspopup="true">
440            
441            <a href="/www.newsociety.my/post/homegrown-malaysian-leather-goods-brand-makes-meaningful-personalised-gifts-for-your-loved-ones"  target="_blank" >
442              Interview with New Society
443            </a>
444            
445          </li>
446          
447          
448          <li class="mobile-nav__sublist-link" aria-haspopup="true">
449            
450            <a href="http://lexicontaylors.wixsite.com/lexicon/post/beyond-the-law-eunice-yeoh"  target="_blank" >
451              Interview with Taylors University (TLS)
452            </a>
453            
454          </li>
455          
456          
457          <li class="mobile-nav__sublist-link" aria-haspopup="true">
458            
459            <a href="https://mcomart.my/blog/faces-behind-the-business.html"  target="_blank" >
460              Interview with MCO Mart
461            </a>
462            
463          </li>
464          
465        </ul>
466        
467      </li>
468      
469      
470      <li class="mobile-nav__sublist-link" aria-haspopup="true">
471        
472        <a href="/blogs/blog" >
473          Blog Posts
474        </a>
475        
476      </li>
477      
478    </ul>
479    
480  </li>
481  
482  
483  <li class="mobile-nav__link" aria-haspopup="true">
484    
485    
486    <a href="/pages/faq" class="mobile-nav__parent-link">
487      FAQ
488    </a>
489    <span class="mobile-nav__sublist-trigger">
490      <span class="icon-fallback-text mobile-nav__sublist-expand">
491  <span class="icon icon-plus" aria-hidden="true"></span>
492  <span class="fallback-text">+</span>
493</span>
494<span class="icon-fallback-text mobile-nav__sublist-contract">
495  <span class="icon icon-minus" aria-hidden="true"></span>
496  <span class="fallback-text">-</span>
497</span>
498
499    </span>
500    <ul class="mobile-nav__sublist">
501      
502      
503      <li class="mobile-nav__sublist-link" aria-haspopup="true">
504        
505        <a href="/pages/our-leather" >
506          Our Leather
507        </a>
508        
509      </li>
510      
511      
512      <li class="mobile-nav__sublist-link" aria-haspopup="true">
513        
514        <a href="/pages/lead-time" >
515          Lead Time
516        </a>
517        
518      </li>
519      
520      
521      <li class="mobile-nav__sublist-link" aria-haspopup="true">
522        
523        <a href="/pages/shipping" >
524          Shipping
525        </a>
526        
527      </li>
528      
529      
530      <li class="mobile-nav__sublist-link" aria-haspopup="true">
531        
532        <a href="/pages/orders" >
533          Orders
534        </a>
535        
536      </li>
537      
538      
539      <li class="mobile-nav__sublist-link" aria-haspopup="true">
540        
541        <a href="/pages/name-embossing" >
542          Name Embossing
543        </a>
544        
545      </li>
546      
547      
548      <li class="mobile-nav__sublist-link" aria-haspopup="true">
549        
550        <a href="/pages/leather-care" >
551          Leather Care
552        </a>
553        
554      </li>
555      
556      
557      <li class="mobile-nav__sublist-link" aria-haspopup="true">
558        
559        <a href="/pages/returns-exchange" >
560          Returns & Exchange
561        </a>
562        
563      </li>
564      
565    </ul>
566    
567  </li>
568  
569  
570  <li class="mobile-nav__link" aria-haspopup="true">
571    
572    <a href="/collections/beyond-leather" >
573      Beyond Leather - Catalog
574    </a>
575    
576  </li>
577  
578
579  
580
581  
582  
583  
584  <li class="mobile-nav__link">
585    <a href="/account/login">Log in</a>
586  </li>
587  
588  <li class="mobile-nav__link">
589    <a href="/account/register">Create account</a>
590  </li>
591  
592  
593  
594  
595  <li class="mobile-nav__link header-bar__search-wrapper">
596    
597    <div class="header-bar__module header-bar__search mobile-nav_search">
598      
599  <form action="/search" method="get" class="header-bar__search-form clearfix" role="search">
600    
601    <button type="submit" class="btn icon-fallback-text header-bar__search-submit">
602      <span class="icon icon-search" aria-hidden="true"></span>
603      <span class="fallback-text">Search</span>
604    </button>
605    <input type="search" name="q" value="" aria-label="Search" class="header-bar__search-input" placeholder="Search" autocomplete="off">
606    <div class="dropdown" id="searchDropdown"></div>
607    <input type="hidden" name="search_history" id="search_history">
608  </form>
609
610
611
612
613<script>
614  var _search_history_listings = ""
615  if(_search_history_listings != "") localStorage.setItem('searchHistory', JSON.stringify(_search_history_listings));
616
617  function clearAll() {
618    localStorage.removeItem('searchHistory');
619  
620    var customer = "";
621    if(customer) {
622      // Your logic to clear all data or call an endpoint
623      fetch('/account/search_histories', {
624          method: 'DELETE',
625          headers: {
626            "Content-Type": "application/json",
627            "X-Requested-With": "XMLHttpRequest"
628          },
629          body: JSON.stringify({
630            _token: "4UoFnQCstd0lexzwdULTxJc3fbQgYFBBG9MoN7np"
631          }),
632      })
633      .then(response => response.json())
634    }
635  }
636  // End - store view history in local storage
637  
638  // search history dropdown  
639  var searchInputs = document.querySelectorAll('input[type=search]');
640  
641  if(searchInputs.length > 0) {
642    
643    searchInputs.forEach((searchInput)=>{
644    
645      searchInput.addEventListener('focus', function() {
646        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
647        searchDropdown.innerHTML = ''; // Clear existing items
648  
649        // retrieve data from local storage
650        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
651  
652        // Convert JSON to string
653        var search_history_json = JSON.stringify(searchHistoryData);
654  
655        // Set the value of the hidden input
656        searchInput.closest('form').querySelector("#search_history").value = search_history_json;
657  
658        // create dropdown items
659        var clearAllItem = document.createElement('div');
660        clearAllItem.className = 'dropdown-item clear-all';
661        clearAllItem.textContent = 'Clear';
662        clearAllItem.addEventListener('click', function() {
663            clearAll();
664            searchDropdown.style.display = 'none';
665            searchInput.classList.remove('is-focus');
666        });
667        searchDropdown.appendChild(clearAllItem);
668  
669        // create dropdown items
670        searchHistoryData.forEach(function(item) {
671          var dropdownItem = document.createElement('div');
672          dropdownItem.className = 'dropdown-item';
673          dropdownItem.textContent = item.term;
674          dropdownItem.addEventListener('click', function() {
675            searchInput.value = item.term;
676            searchDropdown.style.display = 'none';
677          });
678          searchDropdown.appendChild(dropdownItem);
679        });
680  
681        if(searchHistoryData.length > 0){
682          // display the dropdown
683          searchInput.classList.add('is-focus');
684          document.body.classList.add('search-input-focus');
685          searchDropdown.style.display = 'block';
686        }
687      });
688  
689      searchInput.addEventListener("focusout", (event) => {
690        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
691        searchInput.classList.remove('is-focus');
692        searchDropdown.classList.add('transparent');
693        setTimeout(()=>{
694          searchDropdown.style.display = 'none';
695          searchDropdown.classList.remove('transparent');
696          document.body.classList.remove('search-input-focus');
697        }, 400);
698      });
699    })
700  }
701  // End - search history dropdown
702</script>
702
703    </div>
704    
705  </li>
706  
707  
708</ul>
709<div id="MobileNavOutside" class="mobile-nav-outside"></div>
710
711
712<div id="PageContainer" class="page-container">
713  
714<!-- Snippet:global/body_start: Announcement Bar -->
715<link rel="stylesheet" href="https://apps.easystore.co/assets/css/annoucement-bar/slider.css?v1.01">
716
717<input type="hidden" id="total_announcement_left" name="total_announcement_left" value="1">
718<input type="hidden" id="locale" name="locale" value="en_US">
719
720<slider-announcement-bar-app id="announcement-bar" name="announcement-bar" style="
721    border: unset;
722    padding: 4px 0px;
723    margin: 0px;
724    z-index:2999;
725    background:rgb(0, 0, 0);
726    color:rgb(255, 255, 255);
727    position: -webkit-sticky; position: sticky; top: 0;
728">
729
730  <div style="
731    display: flex;
732    justify-content: space-between;
733    align-items: center;
734    padding: 0px 0px;
735    border-top: 0px;
736    border-bottom: 0px;
737    border-color: transparent;
738  ">
739    <div style="height: 24px;">
740          </div>
741
742    <ul style="flex-grow: 2; margin: 0px;">
743            <li id="announcement_bar_0" style="
744          display: flex;
745          justify-content: center;
746          align-items: center;
747          flex-wrap: wrap;
748          margin: 0px;
749          width: 100%;
750          word-wrap: break-word;
751        ">
752        Personalized masterpieces, ready within 5-10 working days. For on-site personalisation at your events, head on to at www.thealign.live.
753                        <input type="hidden" id="expired_at_0" name="expired_at_0" value="2022-03-31 00:00">
754      </li>
755          </ul>
756
757    <div style="display: flex;">
758                </div>
759  </div>
760
761
762</slider-announcement-bar-app>
763
764<script>
765  $(function() {
766    var is_top_enabled =  1;
767
768    const loadScript = function(url, callback) {
769      const script = document.createElement("script");
770      script.type = "text/javascript";
771      // If the browser is Internet Explorer.
772      if (script.readyState) {
773        script.onreadystatechange = function() {
774          if (script.readyState == "loaded" || script.readyState == "complete") {
775            script.onreadystatechange = null;
776            callback();
777          }
778        };
779        // For any other browser.
780      } else {
781        script.onload = function() {
782          callback();
783        };
784      }
785      script.src = url;
786      document.getElementsByTagName("head")[0].appendChild(script);
787    };
788
789    const announcementBarAppJS = function($) {
790
791      $('#announcement-close-button').on('click', function() {
792        $('#announcement-bar, #announcement-bar-top').hide();
793        $('#easystore-section-header, .sticky-topbar').css('top', '');
794      });
795    }
796
797    if (typeof jQuery === 'undefined') {
798      loadScript('//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', function() {
799        jQuery = jQuery.noConflict(true);
800        announcementBarAppJS(jQuery);
801      });
802    } else {
803      announcementBarAppJS(jQuery);
804    }
805
806
807    
808    if(is_top_enabled){
809      // Prevent announcement bar block header
810      setTimeout(()=>{
811        $('#easystore-section-header, .sticky-topbar').css('top', $('#announcement-bar').height()+'px');
812      }, 2000);
813    }
814  });
815
816  setInterval(function() {
817    const total_announcement = "1"
818    var total_announcement_left = $("#total_announcement_left").val();
819
820    for (let i = 0; i <= total_announcement; i++) {
821      const startDate = new Date();
822      const endDateStr = $("#expired_at_" + i).val();
823      const endDate = endDateStr == undefined ? new Date() : new Date(endDateStr.replace(/-/g, "/"));
824      const seconds = (endDate.getTime() - startDate.getTime()) / 1000;
825
826      const days = parseInt(seconds / 86400);
827      const hours = parseInt((seconds % 86400) / 3600);
828      const mins = parseInt((seconds % 86400 % 3600) / 60);
829      const secs = parseInt((seconds % 86400 % 3600) % 60);
830
831      // use to translate countdown unit
832      // (translate based on the preferred language when save announcement bar setting)
833      String.prototype.translate = function() {
834        try {
835          if ($("#locale").val() == "zh_TW") {
836            if (this.toString() === 'day') {
837              return "天";
838            }
839            if (this.toString() === 'hour') {
840              return "小時";
841            }
842            if (this.toString() === 'min') {
843              return "分鐘";
844            }
845            if (this.toString() === 'sec') {
846              return "秒";
847            }
848          } else {
849            if (this.toString() === 'day') {
850              if (days > 0) {
851                return "Days";
852              } else {
853                return "Day";
854              }
855            } else if (this.toString() === 'hour') {
856              if (hours > 0) {
857                return "Hours";
858              } else {
859                return "Hour";
860              }
861            } else if (this.toString() === 'min') {
862              if (mins > 0) {
863                return "Mins";
864              } else {
865                return "Min";
866              }
867            } else if (this.toString() === 'sec') {
868              if (secs > 0) {
869                return "Secs";
870              } else {
871                return "Sec";
872              }
873            }
874          }
875        } catch (error) {
876          console.log("Some errors heres", error);
877        }
878      };
879
880      const announcementBar_countdown = document.getElementById("announcementBar_countdown_" + i);
881      if (announcementBar_countdown && seconds > 0) {
882
883        $(announcementBar_countdown).show()
884        announcementBar_countdown.innerHTML = `
885          <div>
886            ${days} <small>${'day'.translate()}</small>
887          </div>
888          <div>
889            ${hours} <small>${'hour'.translate()}</small>
890          </div>
891          <div>
892            ${mins} <small>${'min'.translate()}</small>
893          </div>
894          <div>
895            ${secs} <small>${'sec'.translate()}</small>
896          </div>
897        `;
898
899
900      } else if (announcementBar_countdown && seconds <= 0) {
901        $("#announcement_bar_" + i).remove();
902        total_announcement_left = total_announcement_left - 1;
903        $("#total_announcement_left").val(total_announcement_left);
904      }
905    }
906
907    showOrHide(total_announcement_left);
908  }, 1000);
909
910
911  function showOrHide(total_announcement_left) {
912    if (total_announcement_left <= 1) {
913      $("#previous-announcement-bar-button,#next-announcement-bar-button").hide();
914    } else {
915      $("#previous-announcement-bar-button,#next-announcement-bar-button").show();
916    }
917
918    if (total_announcement_left == 0) {
919      $("#announcement-close-button").hide();
920      $("#announcement-bar").hide();
921      $('#announcement-bar-top').hide();
922      $('#easystore-section-header, .sticky-topbar').css('top', '');
923    }
924  };
925
926  let annoucementBarAutoMoveInterval = '';
927  class AnnouncementBarAppSlider extends HTMLElement {
928    constructor() {
929      super();
930      this.slider = this.querySelector('ul');
931      this.sliderItems = this.querySelectorAll('li');
932      this.prevButton = this.querySelector('a[name="previous"]');
933      this.nextButton = this.querySelector('a[name="next"]');
934
935      if (!this.slider || !this.nextButton) return;
936
937      const resizeObserver = new ResizeObserver(entries => this.initPages());
938      resizeObserver.observe(this.slider);
939
940      this.slider.addEventListener('scroll', this.update.bind(this));
941      this.prevButton.addEventListener('click', this.onButtonClick.bind(this));
942      this.nextButton.addEventListener('click', this.onButtonClick.bind(this));
943
944
945    }
946
947    initPages() {
948      const sliderItemsToShow = Array.from(this.sliderItems).filter(element => element.clientWidth > 0);
949      this.sliderLastItem = sliderItemsToShow[sliderItemsToShow.length - 1];
950      if (sliderItemsToShow.length === 0) return;
951      this.slidesPerPage = Math.floor(this.slider.clientWidth / sliderItemsToShow[0].clientWidth);
952      this.totalPages = sliderItemsToShow.length - this.slidesPerPage + 1;
953      this.update();
954      let self = this
955      var total_announcement_left = $("#total_announcement_left").val();
956      annoucementBarAutoMoveInterval = setInterval(function() {
957        if (total_announcement_left > 1) {
958          self.moveSlide('next')
959        }
960      }, 5000)
961    }
962
963    update() {
964      this.currentPage = Math.round(this.slider.scrollLeft / this.sliderLastItem.clientWidth) + 1;
965    }
966
967    onButtonClick(event) {
968      event.preventDefault();
969      let self = this;
970      self.moveSlide(event.currentTarget.name);
971    }
972
973
974    moveSlide(move_to) {
975
976      clearInterval(annoucementBarAutoMoveInterval);
977      let self = this;
978      annoucementBarAutoMoveInterval = setInterval(function() {
979        self.moveSlide('next');
980      }, 5000)
981
982      if (move_to === 'previous' && this.currentPage === 1) {
983        this.slider.scrollTo({
984          left: this.sliderLastItem.clientWidth * (this.totalPages - 1)
985        });
986      } else if (move_to === 'next' && this.currentPage === this.totalPages) {
987        this.slider.scrollTo({
988          left: 0
989        });
990      } else {
991        const slideScrollPosition = move_to === 'next' ? this.slider.scrollLeft + this.sliderLastItem
992          .clientWidth : this.slider.scrollLeft - this.sliderLastItem.clientWidth;
993        this.slider.scrollTo({
994          left: slideScrollPosition
995        });
996      }
997    }
998
999  }
1000
1001  customElements.define('slider-announcement-bar-app', AnnouncementBarAppSlider);
1002</script>
1002
1003
1004<!-- /Snippet -->
1005
1006<!-- Snippet:global/body_start: Console Extension -->
1007<div id='es_console' style='display: none;'>805787</div>
1008<!-- /Snippet -->
1009
1010  
1011    <style>
1012  .search-modal__form{
1013    position: relative;
1014  }
1015  
1016  .dropdown-wrapper {
1017    position: relative;
1018  }
1019  
1020  .dropdown-wrapper:hover .dropdown {
1021    display: block;
1022  }
1023  
1024  .header-icon-nav .dropdown {
1025    left: -80px;
1026  }
1027  
1028  .dropdown {
1029    display: none;
1030    position: absolute;
1031    top: 100%;
1032    left: 0px;
1033    width: 100%;
1034    padding: 8px;
1035    background-color: #fff;
1036    z-index: 1000;
1037    border-radius: 5px;
1038    border: 1px solid rgba(var(--color-foreground), 1);
1039    border-top: none;
1040    overflow-x: hidden;
1041    overflow-y: auto;
1042    max-height: 350px;
1043    min-width: 150px;
1044    box-shadow: 0 0 5px rgba(0,0,0,0.1);
1045  }
1046    
1047  .dropdown a{
1048    text-decoration: none;
1049    color: #000 !important;
1050  }
1051  
1052  .dropdown-item {
1053    padding: 0.4rem 2rem;
1054    cursor: pointer;
1055    line-height: 1.4;
1056    overflow: hidden;
1057    text-overflow: ellipsis;
1058    white-space: nowrap;
1059  }
1060  
1061  .dropdown-item:hover{
1062    background-color: #f3f3f3;
1063  }
1064  
1065  .search__input.is-focus{
1066    border-radius: 15px;
1067    border-bottom-left-radius: 0;
1068    border-bottom-right-radius: 0;
1069    border: 1px solid rgba(var(--color-foreground), 1);
1070    border-bottom: none;
1071    box-shadow: none;
1072  }
1073  
1074  .clear-all {
1075    text-align: right;
1076    padding: 0 2rem 0.2rem;
1077    line-height: 1;
1078    font-size: 70%;
1079    margin-bottom: -2px;
1080  }
1081  
1082  .clear-all:hover{
1083    background-color: #fff;
1084  }
1085  
1086  .referral-notification {
1087    position: absolute;
1088    top: 100%;
1089    right: -12px;
1090    background: white;
1091    border: 1px solid #e0e0e0;
1092    border-radius: 8px;
1093    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1094    width: 280px;
1095    z-index: 1000;
1096    padding: 16px;
1097    margin-top: 8px;
1098    font-size: 14px;
1099    line-height: 1.4;
1100  }
1101  
1102  .referral-notification::before {
1103    content: '';
1104    position: absolute;
1105    top: -8px;
1106    right: 20px;
1107    width: 0;
1108    height: 0;
1109    border-left: 8px solid transparent;
1110    border-right: 8px solid transparent;
1111    border-bottom: 8px solid white;
1112  }
1113  
1114  .referral-notification::after {
1115    content: '';
1116    position: absolute;
1117    top: -9px;
1118    right: 20px;
1119    width: 0;
1120    height: 0;
1121    border-left: 8px solid transparent;
1122    border-right: 8px solid transparent;
1123    border-bottom: 8px solid #e0e0e0;
1124  }
1125  
1126  .referral-notification h4 {
1127    margin: 0 0 8px 0;
1128    color: #2196F3;
1129    font-size: 16px;
1130    font-weight: 600;
1131  }
1132  
1133  .referral-notification p {
1134    margin: 0 0 12px 0;
1135    color: #666;
1136  }
1137  
1138  .referral-notification .referral-code {
1139    background: #f5f5f5;
1140    padding: 8px;
1141    border-radius: 4px;
1142    font-family: monospace;
1143    font-size: 13px;
1144    text-align: center;
1145    margin: 8px 0;
1146    border: 1px solid #ddd;
1147  }
1148  
1149  .referral-notification .close-btn {
1150    position: absolute;
1151    top: 8px;
1152    right: 8px;
1153    background: none;
1154    border: none;
1155    font-size: 18px;
1156    color: #999;
1157    cursor: pointer;
1158    padding: 0;
1159    width: 20px;
1160    height: 20px;
1161    line-height: 1;
1162  }
1163  
1164  .referral-notification .close-btn:hover {
1165    color: #333;
1166  }
1167  
1168  .referral-notification .action-btn {
1169    background: #2196F3;
1170    color: white;
1171    border: none;
1172    padding: 8px 16px;
1173    border-radius: 4px;
1174    cursor: pointer;
1175    font-size: 12px;
1176    margin-right: 8px;
1177    margin-top: 8px;
1178  }
1179  
1180  .referral-notification .action-btn:hover {
1181    background: #1976D2;
1182  }
1183  
1184  .referral-notification .dismiss-btn {
1185    background: transparent;
1186    color: #666;
1187    border: 1px solid #ddd;
1188    padding: 8px 16px;
1189    border-radius: 4px;
1190    cursor: pointer;
1191    font-size: 12px;
1192    margin-top: 8px;
1193  }
1194  
1195  .referral-notification .dismiss-btn:hover {
1196    background: #f5f5f5;
1197  }
1198  .referral-modal__dialog {
1199    transform: translate(-50%, 0);
1200    transition: transform var(--duration-default) ease, visibility 0s;
1201    z-index: 10000;
1202    position: fixed;
1203    top: 20vh;
1204    left: 50%;
1205    width: 100%;
1206    max-width: 350px;
1207    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1208    border-radius: 12px;
1209    background-color: #fff;
1210    color: #000;
1211    padding: 20px;
1212    text-align: center;
1213  }
1214  .modal-overlay.referral-modal-overlay {
1215    position: fixed;
1216    top: 0;
1217    left: 0;
1218    width: 100%;
1219    height: 100%;
1220    background-color: rgba(0, 0, 0, 0.7);
1221    z-index: 2001;
1222    display: block;
1223    opacity: 1;
1224    transition: opacity var(--duration-default) ease, visibility 0s;
1225  }
1226</style>
1227
1228<header class="header-bar  sticky-topbar">
1229  <div class="header-bg-wrapper">
1230    <div class="header-wrapper wrapper">
1231      
1232
1233      <div class="logo-header" role="banner">
1234
1235              
1236                    <div class="h1 site-header__logo" itemscope itemtype="http://schema.org/Organization">
1237              
1238                    
1239                        
1240                      	
1241                          <a href="/" class="logo-wrapper" itemprop="url">
1242                            <img src="https://cdn.store-assets.com/s/805787/f/7492098.jpeg?width=350&format=webp" alt="Align Co | Leather Goods Malaysia" itemprop="logo">
1243                          </a>
1244                        
1245
1246                    
1247              
1248                </div>
1249              
1250
1251      </div>
1252
1253      <div class="header-nav-bar medium-down--hide">
1254          
1255<ul class="site-nav large--text-center" id="AccessibleNav">
1256  
1257    
1258    
1259      <li >
1260        <a href="/"  class="site-nav__link">Home</a>
1261      </li>
1262    
1263  
1264    
1265    
1266      
1267      <li class="site-nav--has-dropdown" aria-haspopup="true">
1268        <a href="/collections/all"  class="site-nav__link">
1269          Shop
1270          <span class="arrow-icon">
1271            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1272          </span>
1273        </a>
1274        <ul class="site-nav__dropdown">
1275          
1276            
1277            
1278              <li >
1279                <a href="/collections/journals-books"  class="site-nav__link">Journals</a>
1280              </li>
1281            
1282          
1283            
1284            
1285              <li >
1286                <a href="/collections/key-related"  class="site-nav__link">Keys</a>
1287              </li>
1288            
1289          
1290            
1291            
1292              <li >
1293                <a href="/collections/travel-related"  class="site-nav__link">Travels</a>
1294              </li>
1295            
1296          
1297            
1298            
1299              <li >
1300                <a href="/collections/home-organization"  class="site-nav__link">Home/Office</a>
1301              </li>
1302            
1303          
1304            
1305            
1306              <li >
1307                <a href="/collections/wallets-cardholders"  class="site-nav__link">Wallets/Cardholders</a>
1308              </li>
1309            
1310          
1311            
1312            
1313              <li >
1314                <a href="/collections/new-arrival"  class="site-nav__link">Leather Gift Set</a>
1315              </li>
1316            
1317          
1318            
1319            
1320              <li >
1321                <a href="/collections/hot-selling"  class="site-nav__link">Others</a>
1322              </li>
1323            
1324          
1325            
1326            
1327              <li >
1328                <a href="/collections/clearance"  class="site-nav__link">Clearance</a>
1329              </li>
1330            
1331          
1332            
1333            
1334              <li >
1335                <a href="/collections/beyond-leather"  class="site-nav__link">Beyond Leather - Catalog</a>
1336              </li>
1337            
1338          
1339        </ul>
1340      </li>
1341    
1342  
1343    
1344    
1345      
1346      <li class="site-nav--has-dropdown" aria-haspopup="true">
1347        <a href="https://www.thealign.co/pages/corporate"  class="site-nav__link">
1348          Corporate
1349          <span class="arrow-icon">
1350            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1351          </span>
1352        </a>
1353        <ul class="site-nav__dropdown">
1354          
1355            
1356            
1357              <li >
1358                <a href="/pages/corporate"  class="site-nav__link">Corporate Portfolio</a>
1359              </li>
1360            
1361          
1362            
1363            
1364              <li >
1365                <a href="/pages/leather-personalised-corporate-gifts"  class="site-nav__link">Corporate Gifts</a>
1366              </li>
1367            
1368          
1369            
1370            
1371              <li >
1372                <a href="/pages/offcut-leather-mosaic-masterpieces-workshop"  class="site-nav__link">Offcut Leather Workshops</a>
1373              </li>
1374            
1375          
1376            
1377            
1378              <li >
1379                <a href="/pages/leather-corporate-workshops"  class="site-nav__link">Corporate Workshops</a>
1380              </li>
1381            
1382          
1383        </ul>
1384      </li>
1385    
1386  
1387    
1388    
1389      
1390      <li class="site-nav--has-dropdown" aria-haspopup="true">
1391        <a href="/pages/leather-personalisation-events"  class="site-nav__link">
1392          On-Site Events
1393          <span class="arrow-icon">
1394            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1395          </span>
1396        </a>
1397        <ul class="site-nav__dropdown">
1398          
1399            
1400            
1401              <li >
1402                <a href="/pages/on-site-personalisation-event-q-a"  class="site-nav__link">On-Site Personalisation Event (Q&A)</a>
1403              </li>
1404            
1405          
1406            
1407            
1408              <li >
1409                <a href="/pages/laser-engraving-personalization"  class="site-nav__link">Laser Engraving Personalization</a>
1410              </li>
1411            
1412          
1413            
1414            
1415              <li >
1416                <a href="/pages/events-past"  class="site-nav__link">Past Events</a>
1417              </li>
1418            
1419          
1420        </ul>
1421      </li>
1422    
1423  
1424    
1425    
1426      <li >
1427        <a href="/a/contact-form"  class="site-nav__link">Contact</a>
1428      </li>
1429    
1430  
1431    
1432    
1433      
1434      <li class="site-nav--has-dropdown" aria-haspopup="true">
1435        <a href="/pages/about-us"  class="site-nav__link">
1436          About Us
1437          <span class="arrow-icon">
1438            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1439          </span>
1440        </a>
1441        <ul class="site-nav__dropdown">
1442          
1443            
1444            
1445              
1446              <li class="site-nav_has-child">
1447                <a href="/pages/interview-feature"  class="site-nav__link">
1448                  Interview/ Feature
1449                </a>
1450                <ul class="site-nav__dropdown_level-3">
1451                  
1452                    
1453                    
1454                      <li >
1455                        <a href="https://www.optionstheedge.com/topic/people/align-cos-personalised-leather-crafted-items-make-meaningful-gifts-corporate-and"  target="_blank"  class="site-nav__link">Interview with The Edge</a>
1456                      </li>
1457                    
1458                  
1459                    
1460                    
1461                      <li >
1462                        <a href="https://vulcanpost.com/760038/align-collection-handmade-leather-products-malaysia/?fbclid=IwAR2yfSqA7iN-W8XFYVbxBdP8LpGh4MZoFGLVU2fRyGeeykpCnoNb4f_-iM4"  target="_blank"  class="site-nav__link">Interview with Vulcan Post</a>
1463                      </li>
1464                    
1465                  
1466                    
1467                    
1468                      <li >
1469                        <a href="/www.instagram.com/tv/CECAzGWg2Zp/?utm_source=ig_web_copy_link"  class="site-nav__link">Feature: The Ming Thing</a>
1470                      </li>
1471                    
1472                  
1473                    
1474                    
1475                      <li >
1476                        <a href="/www.ataspagar.my/post/ingin-berikan-hadiah-yang-bermakna-kepada-yang-tersayang-1"  target="_blank"  class="site-nav__link">Interview with Atas Pagar</a>
1477                      </li>
1478                    
1479                  
1480                    
1481                    
1482                      <li >
1483                        <a href="/www.newsociety.my/post/homegrown-malaysian-leather-goods-brand-makes-meaningful-personalised-gifts-for-your-loved-ones"  target="_blank"  class="site-nav__link">Interview with New Society</a>
1484                      </li>
1485                    
1486                  
1487                    
1488                    
1489                      <li >
1490                        <a href="http://lexicontaylors.wixsite.com/lexicon/post/beyond-the-law-eunice-yeoh"  target="_blank"  class="site-nav__link">Interview with Taylors University (TLS)</a>
1491                      </li>
1492                    
1493                  
1494                    
1495                    
1496                      <li >
1497                        <a href="https://mcomart.my/blog/faces-behind-the-business.html"  target="_blank"  class="site-nav__link">Interview with MCO Mart</a>
1498                      </li>
1499                    
1500                  
1501                </ul>
1502              </li>
1503            
1504          
1505            
1506            
1507              <li >
1508                <a href="/blogs/blog"  class="site-nav__link">Blog Posts</a>
1509              </li>
1510            
1511          
1512        </ul>
1513      </li>
1514    
1515  
1516    
1517    
1518      
1519      <li class="site-nav--has-dropdown" aria-haspopup="true">
1520        <a href="/pages/faq"  class="site-nav__link">
1521          FAQ
1522          <span class="arrow-icon">
1523            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1524          </span>
1525        </a>
1526        <ul class="site-nav__dropdown">
1527          
1528            
1529            
1530              <li >
1531                <a href="/pages/our-leather"  class="site-nav__link">Our Leather</a>
1532              </li>
1533            
1534          
1535            
1536            
1537              <li >
1538                <a href="/pages/lead-time"  class="site-nav__link">Lead Time</a>
1539              </li>
1540            
1541          
1542            
1543            
1544              <li >
1545                <a href="/pages/shipping"  class="site-nav__link">Shipping</a>
1546              </li>
1547            
1548          
1549            
1550            
1551              <li >
1552                <a href="/pages/orders"  class="site-nav__link">Orders</a>
1553              </li>
1554            
1555          
1556            
1557            
1558              <li >
1559                <a href="/pages/name-embossing"  class="site-nav__link">Name Embossing</a>
1560              </li>
1561            
1562          
1563            
1564            
1565              <li >
1566                <a href="/pages/leather-care"  class="site-nav__link">Leather Care</a>
1567              </li>
1568            
1569          
1570            
1571            
1572              <li >
1573                <a href="/pages/returns-exchange"  class="site-nav__link">Returns & Exchange</a>
1574              </li>
1575            
1576          
1577        </ul>
1578      </li>
1579    
1580  
1581    
1582    
1583      <li >
1584        <a href="/collections/beyond-leather"  class="site-nav__link">Beyond Leather - Catalog</a>
1585      </li>
1586    
1587  
1588  
1589  
1590      
1591        
1592          
1593        
1594          
1595        
1596      
1597  
1598  
1599  
1600</ul>
1601
1602      </div>
1603
1604      <div class="desktop-header-nav medium-down--hide">
1605
1606
1607        <div class="header-subnav">
1608          
1609
1610
1611
1612
1613
1614
1615          <div class="header-icon-nav">
1616
1617                
1618
1619                
1620
1621
1622                
1623                  
1624                    <div class="header-bar__module">
1625                      
1626  <a class="popup-with-form" href="#search-form">
1627    
1628
1629
1630
1631	<svg class="icon-search svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-search</title><path d="M68.5,65.87a35.27,35.27,0,1,0-5.4,4.5l23.11,23.1a3.5,3.5,0,1,0,5-4.94ZM14.82,41A28.47,28.47,0,1,1,43.28,69.43,28.5,28.5,0,0,1,14.82,41Z"/></svg>    
1632
1633  
1634
1635  </a>
1636
1637
1638
1639<!-- form itself -->
1640<div id="search-form" class="white-popup-block mfp-hide popup-search">
1641  <div class="popup-search-content">
1642    <form action="/search" method="get" class="input-group search-bar" role="search">
1643      
1644      <input type="search" name="q" value="" placeholder="Search" class="input-group-field" aria-label="Search" placeholder="Search" autocomplete="off">
1645      <div class="dropdown" id="searchDropdown"></div>
1646      <input type="hidden" name="search_history" id="search_history">
1647      <span class="input-group-btn">
1648        <button type="submit" class="btn icon-fallback-text">
1649          <span class="icon icon-search" aria-hidden="true"></span>
1650          <span class="fallback-text">Search</span>
1651        </button>
1652      </span>
1653    </form>
1654  </div>
1655</div>
1656
1657<script src="https://store-themes.easystore.co/805787/themes/2877/assets/magnific-popup.min.js?t=1787076064" type="text/javascript" ></script>
vendor: 1 bytes, line 1657
1657
1658<script>
1659$(document).ready(function() {
1660	$('.popup-with-form').magnificPopup({
1661		type: 'inline',
1662		preloader: false,
1663		focus: '#name',
1664      	mainClass: 'popup-search-bg-wrapper',
1665
1666		// When elemened is focused, some mobile browsers in some cases zoom in
1667		// It looks not nice, so we disable it:
1668		callbacks: {
1669			beforeOpen: function() {
1670				if($(window).width() < 700) {
1671					this.st.focus = false;
1672				} else {
1673					this.st.focus = '#name';
1674				}
1675			}
1676		}
1677	});
1678  	$('.popup-search-content').click(function(event) {
1679      	if($(event.target).attr('class') == "popup-search-content") {
1680          $.magnificPopup.close();
1681        }
1682    });
1683});
1684</script>
1684
1685
1686
1687<script>
1688  var _search_history_listings = ""
1689  if(_search_history_listings != "") localStorage.setItem('searchHistory', JSON.stringify(_search_history_listings));
1690
1691  function clearAll() {
1692    localStorage.removeItem('searchHistory');
1693  
1694    var customer = "";
1695    if(customer) {
1696      // Your logic to clear all data or call an endpoint
1697      fetch('/account/search_histories', {
1698          method: 'DELETE',
1699          headers: {
1700            "Content-Type": "application/json",
1701            "X-Requested-With": "XMLHttpRequest"
1702          },
1703          body: JSON.stringify({
1704            _token: "4UoFnQCstd0lexzwdULTxJc3fbQgYFBBG9MoN7np"
1705          }),
1706      })
1707      .then(response => response.json())
1708    }
1709  }
1710  // End - store view history in local storage
1711  
1712  // search history dropdown  
1713  var searchInputs = document.querySelectorAll('input[type=search]');
1714  
1715  if(searchInputs.length > 0) {
1716    
1717    searchInputs.forEach((searchInput)=>{
1718    
1719      searchInput.addEventListener('focus', function() {
1720        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
1721        searchDropdown.innerHTML = ''; // Clear existing items
1722  
1723        // retrieve data from local storage
1724        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
1725  
1726        // Convert JSON to string
1727        var search_history_json = JSON.stringify(searchHistoryData);
1728  
1729        // Set the value of the hidden input
1730        searchInput.closest('form').querySelector("#search_history").value = search_history_json;
1731  
1732        // create dropdown items
1733        var clearAllItem = document.createElement('div');
1734        clearAllItem.className = 'dropdown-item clear-all';
1735        clearAllItem.textContent = 'Clear';
1736        clearAllItem.addEventListener('click', function() {
1737            clearAll();
1738            searchDropdown.style.display = 'none';
1739            searchInput.classList.remove('is-focus');
1740        });
1741        searchDropdown.appendChild(clearAllItem);
1742  
1743        // create dropdown items
1744        searchHistoryData.forEach(function(item) {
1745          var dropdownItem = document.createElement('div');
1746          dropdownItem.className = 'dropdown-item';
1747          dropdownItem.textContent = item.term;
1748          dropdownItem.addEventListener('click', function() {
1749            searchInput.value = item.term;
1750            searchDropdown.style.display = 'none';
1751          });
1752          searchDropdown.appendChild(dropdownItem);
1753        });
1754  
1755        if(searchHistoryData.length > 0){
1756          // display the dropdown
1757          searchInput.classList.add('is-focus');
1758          document.body.classList.add('search-input-focus');
1759          searchDropdown.style.display = 'block';
1760        }
1761      });
1762  
1763      searchInput.addEventListener("focusout", (event) => {
1764        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
1765        searchInput.classList.remove('is-focus');
1766        searchDropdown.classList.add('transparent');
1767        setTimeout(()=>{
1768          searchDropdown.style.display = 'none';
1769          searchDropdown.classList.remove('transparent');
1770          document.body.classList.remove('search-input-focus');
1771        }, 400);
1772      });
1773    })
1774  }
1775  // End - search history dropdown
1776</script>
1776
1777                    </div>
1778                  
1779                
1780
1781
1782
1783
1784                
1785                  <div class="header-bar__module dropdown-wrapper">
1786                    
1787                      <a href="/account/login">
1788
1789
1790
1791    <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-profile</title><path d="M50,51.8A24.4,24.4,0,1,0,25.6,27.4,24.43,24.43,0,0,0,50,51.8ZM50,10A17.4,17.4,0,1,1,32.6,27.4,17.43,17.43,0,0,1,50,10Z"/><path d="M62.66,57.66H37.34a30.54,30.54,0,0,0-30.5,30.5V93.5a3.5,3.5,0,0,0,3.5,3.5H89.66a3.5,3.5,0,0,0,3.5-3.5V88.16A30.54,30.54,0,0,0,62.66,57.66ZM86.16,90H13.84V88.16a23.53,23.53,0,0,1,23.5-23.5H62.66a23.53,23.53,0,0,1,23.5,23.5Z"/></svg>
1792
1793  
1794</a>
1795
1796                      <!-- Referral Notification Popup for Desktop -->
1797                      <div id="referralNotification" class="referral-notification" style="display: none;">
1798                        <button class="close-btn" onclick="dismissReferralNotification()">&times;</button>
1799                        <div style="text-align: center; margin-bottom: 16px;">
1800                          <div style="width: 100px; height: 100px; margin: 0 auto;">
1801                            <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg">
1802                          </div>
1803                        </div>
1804                        <p id="referralSignupMessage" style="text-align: center; font-size: 14px; color: #666; margin: 0 0 20px 0;">
1805                          Your friend gifted you   credit! Sign up now to redeem.
1806                        </p>
1807                        <div style="text-align: center;">
1808                          <button class="btn" onclick="goToSignupPage()" style="width: 100%; color: #fff;">
1809                            Sign Up
1810                          </button>
1811                        </div>
1812                      </div>
1813                    
1814                  </div>
1815                
1816
1817                <div class="header-bar__module cart-page-link-wrapper">
1818                  <span class="header-bar__sep" aria-hidden="true"></span>
1819                  <a class="CartDrawerTrigger cart-page-link">
1820                    
1821
1822
1823
1824	<svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-bag</title><path d="M91.78,93.11,84.17,24.44a3.5,3.5,0,0,0-3.48-3.11H69.06C67.53,10.94,59.57,3,50,3S32.47,10.94,30.94,21.33H19.31a3.5,3.5,0,0,0-3.48,3.11L8.22,93.11A3.49,3.49,0,0,0,11.69,97H88.31a3.49,3.49,0,0,0,3.47-3.89ZM50,10c5.76,0,10.6,4.83,12,11.33H38.05C39.4,14.83,44.24,10,50,10ZM15.6,90l6.84-61.67h8.23v9.84a3.5,3.5,0,0,0,7,0V28.33H62.33v9.84a3.5,3.5,0,0,0,7,0V28.33h8.23L84.4,90Z"/></svg>	
1825
1826  
1827
1828                    <span class="cart-count header-bar__cart-count hidden-count">0</span>
1829                  </a>
1830                </div>
1831
1832          </div>
1833        </div>
1834
1835
1836
1837      </div>
1838      
1839	  <div class="mobile-header-icons large--hide">
1840        
1841        <div class="large--hide">
1842          
1843  <a class="popup-with-form" href="#search-form">
1844    
1845
1846
1847
1848	<svg class="icon-search svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-search</title><path d="M68.5,65.87a35.27,35.27,0,1,0-5.4,4.5l23.11,23.1a3.5,3.5,0,1,0,5-4.94ZM14.82,41A28.47,28.47,0,1,1,43.28,69.43,28.5,28.5,0,0,1,14.82,41Z"/></svg>    
1849
1850  
1851
1852  </a>
1853
1854
1855
1856<!-- form itself -->
1857<div id="search-form" class="white-popup-block mfp-hide popup-search">
1858  <div class="popup-search-content">
1859    <form action="/search" method="get" class="input-group search-bar" role="search">
1860      
1861      <input type="search" name="q" value="" placeholder="Search" class="input-group-field" aria-label="Search" placeholder="Search" autocomplete="off">
1862      <div class="dropdown" id="searchDropdown"></div>
1863      <input type="hidden" name="search_history" id="search_history">
1864      <span class="input-group-btn">
1865        <button type="submit" class="btn icon-fallback-text">
1866          <span class="icon icon-search" aria-hidden="true"></span>
1867          <span class="fallback-text">Search</span>
1868        </button>
1869      </span>
1870    </form>
1871  </div>
1872</div>
1873
1874<script src="https://store-themes.easystore.co/805787/themes/2877/assets/magnific-popup.min.js?t=1787076064" type="text/javascript" ></script>
vendor: 1 bytes, line 1874
1874
1875<script>
1876$(document).ready(function() {
1877	$('.popup-with-form').magnificPopup({
1878		type: 'inline',
1879		preloader: false,
1880		focus: '#name',
1881      	mainClass: 'popup-search-bg-wrapper',
1882
1883		// When elemened is focused, some mobile browsers in some cases zoom in
1884		// It looks not nice, so we disable it:
1885		callbacks: {
1886			beforeOpen: function() {
1887				if($(window).width() < 700) {
1888					this.st.focus = false;
1889				} else {
1890					this.st.focus = '#name';
1891				}
1892			}
1893		}
1894	});
1895  	$('.popup-search-content').click(function(event) {
1896      	if($(event.target).attr('class') == "popup-search-content") {
1897          $.magnificPopup.close();
1898        }
1899    });
1900});
1901</script>
1901
1902
1903
1904<script>
1905  var _search_history_listings = ""
1906  if(_search_history_listings != "") localStorage.setItem('searchHistory', JSON.stringify(_search_history_listings));
1907
1908  function clearAll() {
1909    localStorage.removeItem('searchHistory');
1910  
1911    var customer = "";
1912    if(customer) {
1913      // Your logic to clear all data or call an endpoint
1914      fetch('/account/search_histories', {
1915          method: 'DELETE',
1916          headers: {
1917            "Content-Type": "application/json",
1918            "X-Requested-With": "XMLHttpRequest"
1919          },
1920          body: JSON.stringify({
1921            _token: "4UoFnQCstd0lexzwdULTxJc3fbQgYFBBG9MoN7np"
1922          }),
1923      })
1924      .then(response => response.json())
1925    }
1926  }
1927  // End - store view history in local storage
1928  
1929  // search history dropdown  
1930  var searchInputs = document.querySelectorAll('input[type=search]');
1931  
1932  if(searchInputs.length > 0) {
1933    
1934    searchInputs.forEach((searchInput)=>{
1935    
1936      searchInput.addEventListener('focus', function() {
1937        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
1938        searchDropdown.innerHTML = ''; // Clear existing items
1939  
1940        // retrieve data from local storage
1941        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
1942  
1943        // Convert JSON to string
1944        var search_history_json = JSON.stringify(searchHistoryData);
1945  
1946        // Set the value of the hidden input
1947        searchInput.closest('form').querySelector("#search_history").value = search_history_json;
1948  
1949        // create dropdown items
1950        var clearAllItem = document.createElement('div');
1951        clearAllItem.className = 'dropdown-item clear-all';
1952        clearAllItem.textContent = 'Clear';
1953        clearAllItem.addEventListener('click', function() {
1954            clearAll();
1955            searchDropdown.style.display = 'none';
1956            searchInput.classList.remove('is-focus');
1957        });
1958        searchDropdown.appendChild(clearAllItem);
1959  
1960        // create dropdown items
1961        searchHistoryData.forEach(function(item) {
1962          var dropdownItem = document.createElement('div');
1963          dropdownItem.className = 'dropdown-item';
1964          dropdownItem.textContent = item.term;
1965          dropdownItem.addEventListener('click', function() {
1966            searchInput.value = item.term;
1967            searchDropdown.style.display = 'none';
1968          });
1969          searchDropdown.appendChild(dropdownItem);
1970        });
1971  
1972        if(searchHistoryData.length > 0){
1973          // display the dropdown
1974          searchInput.classList.add('is-focus');
1975          document.body.classList.add('search-input-focus');
1976          searchDropdown.style.display = 'block';
1977        }
1978      });
1979  
1980      searchInput.addEventListener("focusout", (event) => {
1981        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
1982        searchInput.classList.remove('is-focus');
1983        searchDropdown.classList.add('transparent');
1984        setTimeout(()=>{
1985          searchDropdown.style.display = 'none';
1986          searchDropdown.classList.remove('transparent');
1987          document.body.classList.remove('search-input-focus');
1988        }, 400);
1989      });
1990    })
1991  }
1992  // End - search history dropdown
1993</script>
1993
1994        </div>
1995
1996
1997        <!--  Mobile cart  -->
1998        <div class="large--hide">
1999          <a class="CartDrawerTrigger cart-page-link mobile-cart-page-link">
2000            
2001
2002
2003
2004	<svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-bag</title><path d="M91.78,93.11,84.17,24.44a3.5,3.5,0,0,0-3.48-3.11H69.06C67.53,10.94,59.57,3,50,3S32.47,10.94,30.94,21.33H19.31a3.5,3.5,0,0,0-3.48,3.11L8.22,93.11A3.49,3.49,0,0,0,11.69,97H88.31a3.49,3.49,0,0,0,3.47-3.89ZM50,10c5.76,0,10.6,4.83,12,11.33H38.05C39.4,14.83,44.24,10,50,10ZM15.6,90l6.84-61.67h8.23v9.84a3.5,3.5,0,0,0,7,0V28.33H62.33v9.84a3.5,3.5,0,0,0,7,0V28.33h8.23L84.4,90Z"/></svg>	
2005
2006  
2007
2008            <span class="cart-count hidden-count">0</span>
2009          </a>
2010        </div>
2011
2012        <!--  Mobile hamburger  -->
2013        <div class="large--hide">
2014          <a class="mobile-nav-trigger MobileNavTrigger">
2015            
2016
2017
2018
2019    <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-nav-menu</title><path d="M6.7,26.34H93a3.5,3.5,0,0,0,0-7H6.7a3.5,3.5,0,0,0,0,7Z"/><path d="M93.3,46.5H7a3.5,3.5,0,0,0,0,7H93.3a3.5,3.5,0,1,0,0-7Z"/><path d="M93.3,73.66H7a3.5,3.5,0,1,0,0,7H93.3a3.5,3.5,0,0,0,0-7Z"/></svg>
2020
2021  
2022
2023          </a>
2024        </div>
2025      
2026        
2027          
2028          <!-- Referral Notification Modal for Mobile -->
2029          <details-modal class="referral-modal" id="referralMobileModal">
2030            <details>
2031              <summary class="referral-modal__toggle" aria-haspopup="dialog" aria-label="Open referral modal" style="display: none;">
2032              </summary>
2033              <div class="modal-overlay referral-modal-overlay"></div>
2034              <div class="referral-modal__dialog" role="dialog" aria-modal="true" aria-label="Referral notification">
2035                <div class="referral-modal__content">
2036                  <button type="button" class="modal__close-button" aria-label="Close" onclick="closeMobileReferralModal()" style="position: absolute; top: 16px; right: 16px; background: none; border: none; font-size: 24px; cursor: pointer;">
2037                    &times;
2038                  </button>
2039
2040                  <div style="margin-bottom: 24px;">
2041                    <div style="width: 120px; height: 120px; margin: 0 auto 20px;">
2042                      <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg" style="width: 100%; height: 100%;">
2043                    </div>
2044                  </div>
2045
2046                  <p id="referralSignupMessageMobile" style="font-size: 16px; color: #333; margin: 0 0 30px 0; line-height: 1.5;">
2047                    Your friend gifted you   credit! Sign up now to redeem.
2048                  </p>
2049
2050                  <button type="button" class="btn" onclick="goToSignupPageFromMobile()" style="width: 100%; color: #fff;">
2051                    Sign Up
2052                  </button>
2053                </div>
2054              </div>
2055            </details>
2056          </details-modal>
2057          
2058        
2059      
2060      </div>
2061
2062
2063    </div>
2064  </div>
2065</header>
2066
2067
2068
2069
2070
2071
2072    
2073    <main class="wrapper main-content" role="main">
2074      <div class="grid">
2075          <div class="grid__item">
2076            
2077  
2078            
2079<div itemscope itemtype="http://schema.org/Product">
2080
2081  <meta itemprop="url" content="https://www.thealign.co/products/personalisation-service-">
2082  <meta itemprop="image" content="https://cdn.store-assets.com/s/805787/i/49032432.png?width=480&format=webp">
2083  
2084
2085  <div class="section-header section-header--breadcrumb medium--hide small--hide">
2086    
2087<nav class="breadcrumb" role="navigation" aria-label="breadcrumbs">
2088  <a href="/" title="Back to the homepage">Home</a>
2089
2090  
2091
2092    
2093      <span aria-hidden="true" class="breadcrumb__sep">&rsaquo;</span>
2094      
2095        
2096        <a href="/collections/feature-on-homepage">Feature on homepage</a>
2097      
2098    
2099    <span aria-hidden="true" class="breadcrumb__sep">&rsaquo;</span>
2100    <span>Personalisation Service </span>
2101
2102  
2103</nav>
2104
2105
2106  </div>
2107  
2108  <div class="product-single">
2109    <div class="grid product-single__hero">
2110      <div class="grid__item large--seven-twelfths">
2111        
2112        <div id="ProductPhoto" class="product-slider ">
2113          <div id="overlayZoom"></div>
2114          
2115          <div class="flexslider transparent">
2116            <ul class="slides">
2117              
2118              <li data-thumb="https://cdn.store-assets.com/s/805787/i/49032432.png?width=1024&format=webp" id="image-id-49032432">
2119                <div class="slide-img product-zoomable mfp-Images" data-image-id="49032432" data-image-type="Images" href="https://cdn.store-assets.com/s/805787/i/49032432.png?width=1024&format=webp">
2120                  <img src="https://cdn.store-assets.com/s/805787/i/49032432.png?width=1024&format=webp" alt="Screenshot 2022-10-23 at 11.42.45 PM" onmousemove="zoomIn(event)" onmouseout="zoomOut()">
2121                </div>
2122              </li>
2123              
2124            </ul>
2125          </div>
2126          
2127        </div>
2128
2129
2130        
2131        <ul class="gallery hidden">
2132          
2133            
2134            
2135              <li data-image-id="49032432" class="gallery__item" data-mfp-src="https://cdn.store-assets.com/s/805787/i/49032432.png?width=1024&format=webp">
2136              </li>
2137            
2138
2139          
2140          
2141        </ul>
2142        
2143
2144        
2145      </div>
2146      <div class="grid__item large--five-twelfths">
2147          <div class="product_option-detail option_tags-wrapper">
2148
2149            
2150            <h1 itemprop="name">Personalisation Service </h1>
2151
2152            <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2153              
2154
2155              <meta itemprop="priceCurrency" content="MYR">
2156              <link itemprop="availability" href="http://schema.org/InStock">
2157
2158              <div class="product-single__prices">
2159                <span id="ProductPrice" class="product-single__price" itemprop="price" content="10">
2160                  <span class=money data-ori-price='10.00'>RM 10.00 </span>
2161                </span>
2162
2163                <s style="display: none;" id="ComparePrice" class="product-single__sale-price" data-expires="">
2164                  <span class=money data-ori-price='0.00'>RM 0.00 </span>
2165                </s>
2166                <span id="ComparePricePercent" class="product-single__sale-percent"></span>
2167              </div>
2168
2169              <form action="/cart/add" method="post" enctype="multipart/form-data" data-addtocart='{"id":8506181,"name":"Personalisation Service ","sku":"","price":10.0,"quantity":1,"variant":"Default Title","category":"Feature on homepage","brands":""}' id="AddToCartForm">
2170                <input type="hidden" name="_token" value="4UoFnQCstd0lexzwdULTxJc3fbQgYFBBG9MoN7np">
2171                  <style>
2172.sf_promo-promo-label, #sf_promo-view-more-tag, .sf_promo-label-unclickable:hover {
2173    color: #4089e4
2174}
2175</style>
2176<div class="sf_promo-tag-wrapper">
2177    <div id="sf_promo-tag-label"></div>
2178    <div class="sf_promo-tag-container">
2179        <div id="sf_promo-tag"></div>
2180        <a id="sf_promo-view-more-tag" class="sf_promo-promo-label hide" onclick="getPromotionList(true)">View More</a>
2181    </div>
2182</div>
2183
2184
2185
2186				<div class="product-option-wrapper">
2187                  
2188
2189
2190
2191
2192                  <select name="id" id="productSelect" class="product-single__variants">
2193                    
2194                      
2195
2196                        <option  selected="selected"  data-sku="" value="38601122">Default Title - <span class=money data-ori-price='1,000.00'>RM 1,000.00 </span></option>
2197
2198                      
2199                    
2200                  </select>
2201
2202                  
2203				
2204                  <div class="product-single__quantity">
2205                    <label for="Quantity">Quantity</label>
2206                    <div>
2207                      <div class="cart-qty-adjust">
2208                        <span class="product-single__btn-qty-adjust" data-adjust="0">
2209                          -
2210                        </span>
2211                        <input type="number" id="Quantity" name="quantity" value="1" min="1" class="quantity-selector cart__quantity-selector">
2212                        <span class="product-single__btn-qty-adjust" data-adjust="1">
2213                          +
2214                        </span>
2215                      </div>
2216                    </div>
2217                  </div>
2218
2219                </div>
2220                
2221
2222                <button type="submit" name="add" id="AddToCart" class="btn addToCart-btn">
2223                  <span id="AddToCartText">Add to Cart</span>
2224                </button>
2225                <a class="btn addToCart-btn top-addToCart-btn hide medium--hide small--hide">
2226                  
2227
2228
2229
2230	<svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-bag</title><path d="M91.78,93.11,84.17,24.44a3.5,3.5,0,0,0-3.48-3.11H69.06C67.53,10.94,59.57,3,50,3S32.47,10.94,30.94,21.33H19.31a3.5,3.5,0,0,0-3.48,3.11L8.22,93.11A3.49,3.49,0,0,0,11.69,97H88.31a3.49,3.49,0,0,0,3.47-3.89ZM50,10c5.76,0,10.6,4.83,12,11.33H38.05C39.4,14.83,44.24,10,50,10ZM15.6,90l6.84-61.67h8.23v9.84a3.5,3.5,0,0,0,7,0V28.33H62.33v9.84a3.5,3.5,0,0,0,7,0V28.33h8.23L84.4,90Z"/></svg>	
2231
2232  
2233<span id="AddToCartText">Add to Cart</span>
2234                </a>
2235                
2236
2237                <div id="floating_action-bar" class="floating-action-bar large--hide">
2238                  <div class="floating-action-bar-wrapper">
2239                    
2240                      
2241                      
2242                      
2243                      
2244                      
2245                      <a href="/" class="btn btn-back-home">
2246                        <img src="https://cdn.easystore.blue/s/201/f/5590.png?width=150&format=webp"/>
2247                        <div>
2248                          Home
2249                        </div>
2250                      </a>
2251                      
2252                    
2253                    <button type="submit" id="MobileAddToCart" name="add" class="btn addToCart-btn" data-float-btn="1">
2254                      <span id="AddToCartText" class="AddToCartTexts">Add to Cart</span>
2255                    </button>
2256                  </div>
2257                </div>
2258
2259              </form>
2260
2261              
2262                
2263  
2264  
2265
2266
2267
2268
2269
2270<div class="social-sharing is-clean" data-permalink="https://www.thealign.co/products/personalisation-service-">
2271
2272  
2273    <a target="_blank" href="//www.facebook.com/sharer.php?u=https://www.thealign.co/products/personalisation-service-" class="share-facebook">
2274      
2275
2276
2277
2278    <svg class="facebook-share-icon-svg circle-share-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1024 1024"><defs><clipPath id="clip-path"><rect x="62.11" y="62.04" width="899.89" height="899.96" fill="none"/></clipPath></defs><title>Facebook</title><g id="Layer_1" data-name="Layer 1"><g clip-path="url(#clip-path)"><path d="M962,512C962,263.47,760.53,62,512,62S62,263.47,62,512c0,224.61,164.56,410.77,379.69,444.53V642.08H327.43V512H441.69V412.86c0-112.78,67.18-175.08,170-175.08,49.23,0,100.73,8.79,100.73,8.79V357.31H655.65c-55.9,0-73.34,34.69-73.34,70.28V512H707.12l-20,130.08H582.31V956.53C797.44,922.77,962,736.61,962,512Z" fill="#1877f2"/></g><path d="M687.17,642.08l20-130.08H582.31V427.59c0-35.59,17.44-70.28,73.34-70.28h56.74V246.57s-51.5-8.79-100.73-8.79c-102.79,0-170,62.3-170,175.08V512H327.43V642.08H441.69V956.53a454.61,454.61,0,0,0,140.62,0V642.08Z" fill="#fff"/></g></svg>
2279
2280  
2281
2282    </a>
2283  
2284
2285  
2286    <a target="_blank" href="//twitter.com/share?text=Personalisation Service &amp;url=https://www.thealign.co/products/personalisation-service-" class="share-twitter">
2287      
2288
2289
2290
2291    <svg class="twitter-share-icon-svg circle-share-icon" viewBox="0 0 24 24" style="padding: 4px;background: #e9e9e9;border-radius: 50%;" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
2292      <path stroke="none" d="M0 0h24v24H0z" fill="none" style="fill: none;"/>
2293      <path d="M4 4l11.733 16h4.267l-11.733 -16z" style="fill: none;" />
2294      <path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772" style="fill: none;" />
2295    </svg>
2296
2297  
2298
2299    </a>
2300  
2301
2302  
2303
2304    
2305      <a target="_blank" href="//pinterest.com/pin/create/button/?url=https://www.thealign.co/products/personalisation-service-&amp;media=&amp;description=Personalisation Service " class="share-pinterest">
2306        
2307
2308
2309
2310    <svg class="pinterest-share-icon-svg circle-share-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><title>Pinterest</title><g id="Layer_1" data-name="Layer 1"><circle cx="512" cy="512" r="450" fill="#fff"/><path d="M536,962H488.77a23.77,23.77,0,0,0-3.39-.71,432.14,432.14,0,0,1-73.45-10.48c-9-2.07-18-4.52-26.93-6.8a7.6,7.6,0,0,1,.35-1.33c.6-1,1.23-2,1.85-3,18.19-29.57,34.11-60.23,43.17-93.95,7.74-28.83,14.9-57.82,22.3-86.74,2.91-11.38,5.76-22.77,8.77-34.64,2.49,3.55,4.48,6.77,6.83,9.69,15.78,19.58,36.68,31.35,60.16,39,25.41,8.3,51.34,8.07,77.41,4.11C653.11,770,693.24,748.7,726.79,715c32.57-32.73,54.13-72.14,68.33-115.76,12-37,17.81-75.08,19.08-114,1-30.16-1.94-59.73-11.72-88.36C777.38,323.39,728.1,271.81,658,239.82c-45.31-20.67-93.27-28.06-142.89-26.25a391.16,391.16,0,0,0-79.34,10.59c-54.59,13.42-103.37,38.08-143.29,78-61.1,61-91.39,134.14-83.34,221.41,2.3,25,8.13,49.08,18.84,71.86,15.12,32.14,37.78,56.78,71,70.8,11.87,5,20.67.54,23.82-12,2.91-11.56,5.5-23.21,8.88-34.63,2.72-9.19,1.2-16.84-5.15-24-22.84-25.84-31.36-56.83-30.88-90.48A238.71,238.71,0,0,1,300,462.16c10.93-55.27,39.09-99.84,85.3-132.46,33.39-23.56,71-35.54,111.53-38.54,30.47-2.26,60.5,0,89.89,8.75,27.38,8.16,51.78,21.59,71.77,42.17,31.12,32,44.38,71.35,45.61,115.25a383.11,383.11,0,0,1-3.59,61.18c-4.24,32-12.09,63-25.45,92.47-11.37,25.09-26,48-47.45,65.79-23.66,19.61-50.51,28.9-81.43,23.69-34-5.75-57.66-34-57.56-68.44,0-13.46,4.16-26.09,7.8-38.78,8.67-30.19,18-60.2,26.45-90.46,5.26-18.82,9.13-38,6.91-57.8-1.58-14.1-5.77-27.31-15.4-38-16.55-18.4-37.68-22.29-60.75-17-23.26,5.3-39.56,20.36-51.58,40.26-15,24.89-20.26,52.22-19.2,81a179.06,179.06,0,0,0,13.3,62.7,9.39,9.39,0,0,1,.07,5.31c-17.12,72.65-33.92,145.37-51.64,217.87-9.08,37.
231015-14.72,74.52-13.67,112.8.13,4.55,0,9.11,0,14.05-1.62-.67-3.06-1.22-4.46-1.86A452,452,0,0,1,103.27,700.4,441.83,441.83,0,0,1,63.54,547.58c-.41-5.44-1-10.86-1.54-16.29V492.71c.51-5.3,1.13-10.58,1.52-15.89A436.78,436.78,0,0,1,84,373,451.34,451.34,0,0,1,368.54,85.49a439.38,439.38,0,0,1,108.28-22c5.31-.39,10.59-1,15.89-1.52h38.58c1.64.28,3.26.65,4.9.81,14.34,1.42,28.77,2.2,43,4.3a439.69,439.69,0,0,1,140.52,45.62c57.3,29.93,106.14,70.19,146,121.07Q949,340.12,960.52,474.86c.4,4.64,1,9.27,1.48,13.91v46.46a22.06,22.06,0,0,0-.7,3.36,426.12,426.12,0,0,1-10.51,74.23C930,702,886.41,778.26,819.48,840.65c-75.94,70.81-166,110.69-269.55,119.84C545.29,960.91,540.65,961.49,536,962Z" fill="#e60023"/></g></svg>
2311
2312  
2313
2314      </a>
2315    
2316
2317  
2318  
2319  
2320    <a target="_blank" href="//social-plugins.line.me/lineit/share?url=https://www.thealign.co/products/personalisation-service-" class="share-line">
2321      
2322
2323
2324
2325    <svg class="line-share-icon-svg circle-share-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><title>LINE</title><g id="Layer_1" data-name="Layer 1"><circle cx="512" cy="512" r="450" fill="#00b900"/><g id="TYPE_A" data-name="TYPE A"><path d="M811.32,485c0-133.94-134.27-242.9-299.32-242.9S212.68,351,212.68,485c0,120.07,106.48,220.63,250.32,239.65,9.75,2.1,23,6.42,26.37,14.76,3,7.56,2,19.42,1,27.06,0,0-3.51,21.12-4.27,25.63-1.3,7.56-6,29.59,25.93,16.13s172.38-101.5,235.18-173.78h0c43.38-47.57,64.16-95.85,64.16-149.45" fill="#fff"/><path d="M451.18,420.26h-21a5.84,5.84,0,0,0-5.84,5.82V556.5a5.84,5.84,0,0,0,5.84,5.82h21A5.83,5.83,0,0,0,457,556.5V426.08a5.83,5.83,0,0,0-5.83-5.82" fill="#00b900"/><path d="M595.69,420.26h-21a5.83,5.83,0,0,0-5.83,5.82v77.48L509.1,422.85a5.39,5.39,0,0,0-.45-.59l0,0a4,4,0,0,0-.35-.36l-.11-.1a3.88,3.88,0,0,0-.31-.26l-.15-.12-.3-.21-.18-.1-.31-.17-.18-.09-.34-.15-.19-.06c-.11-.05-.23-.08-.34-.12l-.21-.05-.33-.07-.25,0a3,3,0,0,0-.31,0l-.3,0H483.26a5.83,5.83,0,0,0-5.83,5.82V556.5a5.83,5.83,0,0,0,5.83,5.82h21a5.83,5.83,0,0,0,5.83-5.82V479l59.85,80.82a5.9,5.9,0,0,0,1.47,1.44l.07,0c.11.08.23.15.35.22l.17.09.28.14.28.12.18.06.39.13.09,0a5.58,5.58,0,0,0,1.49.2h21a5.83,5.83,0,0,0,5.84-5.82V426.08a5.83,5.83,0,0,0-5.84-5.82" fill="#00b900"/><path d="M400.57,529.66H343.52V426.08a5.81,5.81,0,0,0-5.82-5.82h-21a5.82,5.82,0,0,0-5.83,5.82V556.49h0a5.75,5.75,0,0,0,1.63,4,.34.34,0,0,0,.08.09l.09.08a5.75,5.75,0,0,0,4,1.63h83.88a5.82,5.82,0,0,0,5.82-5.83v-21a5.82,5.82,0,0,0-5.82-5.83" fill="#00b900"/><path d="M711.64,452.91a5.81,5.81,0,0,0,5.82-5.83v-21a5.82,5.82,0,0,0-5.82-5.83H627.76a5.79,5.79,0,0,0-4,1.64l-.06.06-.1.11a5.8,5.8,0,0,0-1.61,4h0v130.4h0a5.75,5.75,0,0,0,1.63,4,.34.34,0,0,0,.08.09l.08.08a5.78,5.78,0,0,0,4,1.63h83.88a5.82,5.82,0,0,0,5.82-5.83v-21a5.82,5.82,0,0,0-5.82-5.83h-57v-22h57a5.82,5.82,0,0,0,5.82-5.84v-21a5.82,5.82,0,0,0-5.82-5.83h-57v-22Z" fill="#00b900"/></g></g></svg>
2326
2327  
2328
2329    </a>
2330  
2331
2332</div>
2333
2334              
2335              <hr class="hr--clear hr--small">
2336            </div>
2337
2338            
2339          </div>
2340      </div>
2341      
2342      <div class="grid__item">
2343        <link href="/assets/css/promotion.css?v2.94" rel="stylesheet" type="text/css" media="screen" />
2344 <style>
2345.sf_promo-ribbon{
2346  color: #4089e4;
2347  background-color: #4089e4
2348}
2349.sf_promo-ribbon-text,
2350.sf_promo-ribbon-text span{
2351  color: #fff;
2352  color: #fff;
2353}
2354
2355</style>
2356
2357
2358  <div id="promotion-section" class="sf_promo-container">
2359    <div id="sf_promo-container" >
2360    </div>
2361    <div class="text-center">
2362      <button id="get-more-promotion" class="btn btn--secondary hide" onclick="getPromotionList(true)">View More</button>
2363    </div>
2364  </div>
2365  <div class="text-center">
2366    <button id="view-more-promotion" class="btn btn--secondary hide" onclick="expandPromoSection()">View More</button>
2367  </div>
2368
2369
2370<script>var shop_money_format = "<span class=money data-ori-price='{{amount}}'>RM {{amount}} </span>";</script>
vendor: 1 bytes, line 2370
2370
2371<script src="/assets/js/promotion/promotion.js?v1.11" type="text/javascript"></script>
2371
2372
2373<script>
2374
2375  var param = {limit:5, page:1};
2376
2377  function getPromotionList(load_more){
2378
2379    var element = document.getElementById("sf_promo-container"),
2380        promo_section = document.getElementById("promotion-section"),
2381        promo_btn = document.getElementById("get-more-promotion"),
2382        view_more_btn = document.getElementById("view-more-promotion"),
2383        view_more_tag_btn = document.getElementById("sf_promo-view-more-tag"),
2384        page_value = parseInt(param.page);
2385
2386    if(load_more) {
2387      view_more_tag_btn.classList.add("sf_promo-is-loading");
2388      promo_btn.classList.add("btn--loading");
2389    }
2390
2391    $.ajax({
2392      type: "GET",
2393      data: param,
2394      dataType: 'json',
2395      url: "/products/personalisation-service-/promotions",
2396      success: function(response){
2397
2398        document.getElementById("sf_promo-container").innerHTML += response.html;
2399
2400
2401        var promotion_tag_html = "";
2402        var promotion_tag_label_html = "";
2403
2404        var total_addon_discount = 0;
2405
2406        if(response.data.total_promotions > 0){
2407          promotion_tag_label_html += `<div style="display:block;"><label>Promotions</label></div>`;
2408
2409          for (let promotion of response.data.promotions) {
2410            var label_class = "sf_promo-label-unclickable",
2411                svg_icon = "";
2412            if(promotion.promotion_applies_to == "add_on_item" && (promotion.is_free_gift == false || promotion.prerequisite_subtotal_range == null)) { 
2413              total_addon_discount += 1;
2414              label_class = "sf_promo-label-clickable";
2415              svg_icon = `<svg class="sf_promo-svg-icon" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-right" viewBox="0 0 24 24" stroke-width="2.8" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
2416                            <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
2417                            <polyline points="9 6 15 12 9 18" />
2418                          </svg>`;
2419            }
2420            promotion_tag_html +=
2421            ` <a onclick="promoScrollToView('${promotion.id}')" class="sf_promo-promo-label ${label_class}">
2422                <b class="sf_promo-tag-label-title">${promotion.title.replace('&', '&amp;').replace('>','&gt;').replace('<','&lt;').replace('/','&sol;').replace('“', '&quot;').replace("'","&#39;") }</b>${svg_icon}
2423              </a>
2424            `;
2425          }
2426        }
2427
2428        if(total_addon_discount > 1 && !load_more){
2429          promo_section.classList.add('sf_promo-container-height-opacity','sf_promo-container-white-gradient')
2430          view_more_btn.classList.remove("hide");
2431        }else{
2432          promo_section.classList.remove('sf_promo-container-height-opacity','sf_promo-container-white-gradient')
2433          view_more_btn.classList.add("hide");
2434        }
2435
2436        if(response.data.page_count > param.page) {
2437          view_more_tag_btn.classList.remove("hide");
2438          promo_btn.classList.remove("hide");
2439        }else{
2440          view_more_tag_btn.classList.add("hide");
2441          promo_btn.classList.add("hide");
2442        }
2443
2444        document.getElementById("sf_promo-tag-label").innerHTML = promotion_tag_label_html;
2445        document.getElementById("sf_promo-tag").innerHTML += promotion_tag_html;
2446
2447        view_more_tag_btn.classList.remove("sf_promo-is-loading");
2448        promo_btn.classList.remove("btn--loading");
2449
2450
2451        promoVariantDetailInitial()
2452
2453        page_value = isNaN(page_value) ? 0 : page_value;
2454        page_value++;
2455
2456        param.page = page_value;
2457      },
2458      error: function(xhr){
2459
2460      }
2461    });
2462  }
2463
2464  var is_show_product_page = "1"
2465
2466  if(is_show_product_page){
2467    getPromotionList();
2468  }
2469</script>
2469
2470
2471        <div class="product-description rte" itemprop="description">
2472          <link href='/assets/css/froala_style.min.css' rel='stylesheet' type='text/css'/><div class='fr-view'><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;</p><p id="isPasted" style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px;'>Personalize with up to <strong style="box-sizing: border-box; outline: none;"><u style="box-sizing: border-box; outline: none;">five (5) characters</u></strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the "<strong style="box-sizing: border-box; outline: none;">Remark</strong>" section after checking out. &nbsp;</p><p style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px;'>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, ♡ (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.</p><p><br></p><p><strong><u><span style="font-size: 18px;">How do I personalize my product?</span>&nbsp;</u></strong></p><p>Most of our products come with complimentary name embossing option!&nbsp;</p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;</em><a href="https://www.thealign.co/products/personalisation-service-" id="isPasted"><em>https://www.thealign.co/products/personalisation-service-</em></a></p><p>Personalize with up to <strong><u>five (5) characters</u></strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the "<strong>Remark</strong>" section after checking out. &nbsp;</p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and ♡ (heart), # (hashtag) are available.</p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;</p><p><br></p><p><strong><u><span style="font-size: 18px;">The Gifting Experience&nbsp;</span></u></strong></p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id="isPasted" style='font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, sans-serif;'>our exclusive Premium Keepsake Pine Wood Box,</span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;</p><p><img src="https://cdn.store-assets.com/s/805787/f/7581523.jpeg" alt="IMG_8998_jpg.JPG" title="IMG_8998_jpg.JPG" class="fr-fic fr-dii"><br></p></div>
2473        </div>       
2474        
2475
2476      </div>
2477    </div>
2478  </div>
2479
2480  
2481    <div id="recommend-products-content" class="wrapper">
2482</div>
2483<script>
2484  $(function() {
2485    console.log("Product recommendation enabled.");
2486    $.ajax({
2487      url: "/products/personalisation-service-/recommend",
2488      type: 'GET',
2489      dataType: "json",
2490      success: function(res){
2491        if(res.status == "success"){
2492          console.log("Success");
2493          $('#recommend-products-content').html(res.html);
2494          theme.cache.$productGridImages = $('body').find('.grid-link__image--product');
2495          theme.equalHeights();
2496
2497          var allCookies = document.cookie.split(";");
2498          var cookies = {};
2499          for (var i=0; i<allCookies.length; i++){
2500            var pair = allCookies[i].split("=");
2501            cookies[(pair[0]+'').trim()] = unescape(pair[1]);
2502          }
2503          var shopCurrency = 'MYR';
2504          var selectedCurrency = cookies['currency'] != undefined ? cookies['currency'] : 'MYR';
2505          Currency.convertAll(shopCurrency, selectedCurrency);
2506        }
2507        else{
2508          console.log("Not Success");
2509        }
2510      },
2511      fail: function(){
2512        console.log("Failed");
2513      }
2514    });
2515  });
2516</script>
2516
2517
2518
2519  
2520
2521</div>
2522
2523
2524
2525
2526<script src="https://store-themes.easystore.co/805787/themes/2877/assets/jquery.flexslider.min.js?t=1787076064" type="text/javascript" ></script>
2526
2527
2528<script type="text/javascript">
2529  $(".flexslider").addClass("transparent");
2530    var mobileSize = true;
2531	if(window.innerWidth > 768){
2532      	mobileSize = false;
2533    }
2534  window.timberSlider = window.timberSlider || {};
2535
2536  timberSlider.cacheSelectors = function () {
2537    timberSlider.cache = {
2538      $slider: $('.flexslider')
2539    }
2540  };
2541
2542  timberSlider.init = function () {
2543    timberSlider.cacheSelectors();
2544    timberSlider.sliders(); 
2545    $(".flexslider").removeClass("transparent");
2546    
2547  };
2548
2549  timberSlider.sliders = function () {
2550    var $slider = timberSlider.cache.$slider,
2551        sliderArgs = {
2552          animation: 'slide',
2553          animationSpeed: 500,
2554          pauseOnHover: true,
2555          keyboard: false,
2556          slideshow: false,
2557          slideshowSpeed: '4000',
2558          smoothHeight: false,
2559          touch: true,
2560          animationLoop: false,
2561          controlNav: true ,
2562        };
2563
2564    if ($slider.length) {
2565
2566      if ($slider.find('li').length === 1) {
2567        sliderArgs.slideshow = false;
2568        sliderArgs.slideshowSpeed = 0;
2569        sliderArgs.controlNav = false;
2570        sliderArgs.directionNav = false;
2571      }
2572
2573      $slider.flexslider(sliderArgs);
2574    }    
2575  };
2576  
2577
2578  // Initialize slider on doc ready
2579  
2580  $(document).ready(function() {
2581    timberSlider.init();
2582  });
2583
2584</script>
2584
2585
2586
2587
2588
2589	
2589<script src="/assets/option_selection_tag.js?v2" type="text/javascript" ></script>
2589
2590
2591
2592<script>
2593  $(document).ready(function(){
2594     // Hide the add to cart button when price less than 0
2595    var money = $("#ProductPrice").find(".money").text();
2596    var price = Number(money.replace(/[^0-9\.]+/g,""));
2597    var d = $("[data-addtocart]").data("addtocart");
2598    var app_currency = $( "[name='currencies'] option:selected" ).val();
2599    d.currency = app_currency;
2600
2601    
2602
2603    view_cart = "View cart";
2604    continue_shopping = "Continue shopping";
2605
2606    $("#Quantity").change(function(){
2607      var d = $("[data-addtocart]").data("addtocart");
2608      var new_val = $(this).val();  
2609      var app_currency = $( "[name='currencies'] option:selected" ).val();
2610
2611      d.currency = app_currency; 
2612      d.quantity = new_val;
2613      $("[data-addtocart]").data("addtocart",d);
2614    });
2615
2616    $("body").on("change",".single-option-selector",function(){
2617
2618      var money = $("#ProductPrice").find(".money").text();
2619      var price = Number(money.replace(/[^0-9\.]+/g,""));
2620      var app_currency = $( "[name='currencies'] option:selected" ).val();
2621      var v = "";
2622      $(".single-option-selector input:checked").each(function( index ) {
2623        v += ","+ $(this).val();
2624      });
2625
2626      d.variant = v.substring(1);
2627      d.price = price;
2628      d.currency = app_currency;
2629      
2630      if(price <= 0){
2631        $(".addToCart-btn, .BuyNowButton").hide();
2632        $("#floating_action-bar").hide();
2633        $(".product-single__quantity").addClass('is-hide');    
2634      }else{
2635        $(".addToCart-btn, .BuyNowButton").show();  
2636        $("#floating_action-bar").show();  
2637        $(".product-single__quantity").removeClass('is-hide');  
2638        $("[data-addtocart]").data("addtocart",d);
2639      }
2640
2641    });
2642
2643    // retrieve & store view history in local storage
2644    var productViewHistoryData = [];
2645    var storedProductViewHistory = localStorage.getItem('productViewHistory');
2646
2647    if(storedProductViewHistory !== null) {
2648    	productViewHistoryData = JSON.parse(storedProductViewHistory);
2649    }
2650
2651    if(productViewHistoryData.length > 0) {
2652      var currentViewedProduct = {"product_id":8506181,"viewed_at":"2026-09-28T22:49:16.608+08:00"}
2653      var currentViewedAt = new Date(currentViewedProduct.viewed_at);
2654      var matchProductID = false;
2655    
2656      productViewHistoryData.forEach(data => {
2657        // Check if product_id is similar
2658        if (data.product_id == currentViewedProduct.product_id) {
2659          var previousViewedAt = new Date(data.viewed_at);
2660          if (currentViewedAt > previousViewedAt) {
2661            data.viewed_at = currentViewedProduct.viewed_at;
2662          }
2663          matchProductID = true;
2664        }
2665      });
2666    
2667      // sort "viewed_at" desc
2668      productViewHistoryData.sort((a, b) => {
2669        var viewedAt1 = new Date(a.viewed_at);
2670        var viewedAt2 = new Date(b.viewed_at);
2671        return viewedAt2 - viewedAt1;
2672      });
2673    	
2674      if (!matchProductID) {
2675        productViewHistoryData.unshift(currentViewedProduct);
2676      }
2677    }
2678    else {
2679    	productViewHistoryData.push({"product_id":8506181,"viewed_at":"2026-09-28T22:49:16.608+08:00"});
2680    }
2681    
2682    productViewHistoryData = JSON.stringify(productViewHistoryData);
2683    localStorage.setItem('productViewHistory', productViewHistoryData);
2684  
2685    // End - retrieve & store view history in local storage
2686  });
2687
2688EasyStore.money_format = "<span class=money data-ori-price='{{amount}}'>RM {{amount}} </span>";
2689var selectCallback = function(variant, selector) {
2690  // console.log('variant, selector',variant, selector);
2691  timber.productPage({
2692    money_format: "<span class=money data-ori-price='{{amount}}'>RM {{amount}} </span>",
2693    variant: variant,
2694    selector: selector,
2695    translations: {
2696      add_to_cart : "Add to Cart",
2697      sold_out : "Sold Out",
2698      unavailable : "Unavailable"
2699    }
2700  });
2701};
2702
2703jQuery(function($) {
2704  // new EasyStore.OptionSelectors('productSelectTag', {
2705  // 	product: {"id":8506181,"handle":"personalisation-service-","name":"Personalisation Service ","title":"Personalisation Service ","url":"\/products\/personalisation-service-","share_url":"https:\/\/www.thealign.co\/products\/pers
2705onalisation-service-","price":10,"price_min":"10.0","price_max":"10.0","price_varies":false,"compare_at_price":0,"compare_at_price_min":"0.0","compare_at_price_max":"0.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":38601122,"variants":[{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null}],"selected_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"selected_or_first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"media":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"featured_media":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"metafields":[],"expires":null,"published_at":"2023-03-09T16:29:17.000+08:00","created_at":"2022-10-23T23:41:48.000+08:00","is_wishlisted":null,"content":"<link href='\/assets\/css\/froala_style.min.css' rel='stylesheet' type='text\/css'\/><div class='fr-view'><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;'>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;'>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em>
2705<a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style='font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;'>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","description":"<link href='\/assets\/css\/froala_style.min.css' rel='stylesheet' type='text\/css'\/><div class='fr-view'><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;'>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;'>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em><a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style='font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;'>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","meta_description":"*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary. Personalize with up to five (5) characters which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave ","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"highlight":{"data":null,"state":null,"is_auto_generation_required":false},"common_questions":{"data":null,"state":null,"is_auto_generation_required":false},"view_history":{"product_id":8506181,"viewed_at":"2026-09-28T22:49:16.608+08:00"},"cache_source":"live_api","promotions":[]}
2706  // });
2707  new EasyStore.OptionSelectors('productSelect', {
2708    product: {"id":8506181,"handle":"personalisation-service-","name":"Personalisation Service ","title":"Personalisation Service ","url":"\/products\/pers
2708onalisation-service-","share_url":"https:\/\/www.thealign.co\/products\/personalisation-service-","price":10,"price_min":"10.0","price_max":"10.0","price_varies":false,"compare_at_price":0,"compare_at_price_min":"0.0","compare_at_price_max":"0.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":38601122,"variants":[{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null}],"selected_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"selected_or_first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"media":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"featured_media":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"metafields":[],"expires":null,"published_at":"2023-03-09T16:29:17.000+08:00","created_at":"2022-10-23T23:41:48.000+08:00","is_wishlisted":null,"content":"<link href='\/assets\/css\/froala_style.min.css' rel='stylesheet' type='text\/css'\/><div class='fr-view'><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;'>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;'>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em>
2708<a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style='font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;'>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","description":"<link href='\/assets\/css\/froala_style.min.css' rel='stylesheet' type='text\/css'\/><div class='fr-view'><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;'>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style='box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;'>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em><a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style='font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;'>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","meta_description":"*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary. Personalize with up to five (5) characters which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave ","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"highlight":{"data":null,"state":null,"is_auto_generation_required":false},"common_questions":{"data":null,"state":null,"is_auto_generation_required":false},"view_history":{"product_id":8506181,"viewed_at":"2026-09-28T22:49:16.608+08:00"},"cache_source":"live_api","promotions":[]},
2709    onVariantSelected: selectCallback,
2710    enableHistoryState: false
2711  });
2712  
2713  // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
2714  
2715
2716  // Hide selectors if we only have 1 variant and its title contains 'Default'.
2717  
2718  $('.selector-wrapper').hide();
2719  
2720});
2721   
2722   
2723//    $('body').on("click", ".selector-wrapper", function(event) {
2724//     console.log($(this).find('.single-option-selector').eq(1));
2725//     // $(this).find('select').eq(1).focus();
2726//      $(this).find('.single-option-selector').eq(0).focus();
2727//      event.preventDefault();
2728//   });
2729   
2730//    BuyNow START
2731   
2732if($('#BuyNowButton').length){
2733  var buyNowText = $('#BuyNowButton').text(),
2734      buyNowCSS = $('#BuyNowButton').attr('style');
2735   $('#MobileAddToCart').before( "<a class='BuyNowButton btn btn--secondary' style='"+ buyNowCSS +"'>"+ buyNowText +"</a>" );  
2736}
2737$("body").on("click",".BuyNowButton",function(){
2738    // Check required field validation for product properties
2739    var requiredFields = $("input[name^='properties'][required], select[name^='properties'][required]");
2740    for (var i = 0; i < requiredFields.length; i++) {
2741      if (!requiredFields[i].checkValidity()) {
2742        requiredFields[i].reportValidity();
2743        return false;
2744      }
2745    }
2746
2747    $(this).addClass('btn--loading');
2748    var v_id = Number($('#productSelect').val()),
2749        v_qty = Number($('#Quantity').val()),
2750        token = '4UoFnQCstd0lexzwdULTxJc3fbQgYFBBG9MoN7np',
2751        currency = $( "[name='currencies'] option:selected" ).val();
2752        input_properties = null,
2753        select_properties = null,
2754        app_id = null;
2755    
2756    input_properties = $("input[name^='properties']");
2757    select_properties = $("select[name^='properties']");
2758    app_id = $( "input[name='app_id']" ).val();
2759
2760    let propertiesParam = {};
2761
2762    for( i = 0; i < input_properties.length ; i++){
2763
2764      let type = input_properties[i].type;
2765      let name = input_properties[i].name;
2766      let value = input_properties[i].value;
2767
2768      name = name.slice(11, name.length - 1);
2769
2770      if(type == 'radio'){
2771
2772        let isChecked = input_properties[i].checked;
2773
2774        if(isChecked == true){
2775
2776          propertiesParam[name] = value;
2777
2778        }
2779
2780      }
2781      else{
2782
2783        propertiesParam[name] = value;
2784
2785      }
2786
2787    }
2788
2789    for( i = 0; i < select_properties.length ; i++){
2790
2791      let name = select_properties[i].name;
2792      let value = select_properties[i].value;
2793
2794      name = name.slice(11, name.length - 1);
2795      propertiesParam[name] = value;
2796
2797    }
2798
2799    let dataParam = {
2800      id: v_id,
2801      quantity: v_qty,
2802      _token: token
2803    };
2804
2805    if(Object.keys(propertiesParam).length > 0){
2806
2807      dataParam.properties = propertiesParam;
2808
2809      if(app_id){
2810
2811        dataParam.app_id = app_id;
2812
2813      }
2814    }
2815
2816    $.ajax({
2817          type: "POST",
2818          dataType: 'json',
2819          url: "/cart/add?retrieve=true",
2820          data: dataParam,
2821        success: function(response){
2822            console.log('success',response);
2823
2824            var data_id = [],
2825                data_qty = [],
2826                cartCount = $('.cart-count'),
2827                cartItems = response.items;
2828
2829            $.each(cartItems, function( index, b ) {
2830
2831                if(b.promotion_id != undefined){
2832                    $.each(b.items, function( index, c ) {
2833                        if(v_id != c.variant.id){
2834                            data_id.push(c.variant.id);
2835                            data_qty.push(0);
2836                        }
2837                    });
2838                }
2839                else if(v_id != b.variant_id){
2840
2841                    data_id.push(b.variant_id);
2842                    data_qty.push(0);
2843
2844                }
2845
2846            });
2847
2848            data_id.push(v_id);
2849            data_qty.push(v_qty);
2850
2851
2852            cartCount.text(response.item_count);
2853
2854            $.ajax({
2855                      type: "POST",
2856                      dataType: 'json',
2857                      url: "/cart",
2858                      data:{
2859                        _token: token,
2860                        ids: data_id,
2861                        updates: data_qty,
2862                        checkout: '',
2863                        current_currency: currency
2864                    },
2865                    success: function(response){
2866                        console.log('success',response);
2867
2868                        if(response.status == 'success'){
2869                            window.location.href = '/checkout/index';
2870                        }else{
2871                            window.location.href = '/cart';
2872                        }
2873                    },
2874                    error: function(xhr){
2875                        console.log('error',xhr);
2876                        window.location.href = '/cart';
2877                    }
2878            });
2879
2880        },
2881        error: function(xhr){
2882            console.log('error',xhr);
2883            $('.BuyNowButton').removeClass('btn--loading');
2884
2885            var data = eval('(' + xhr.responseText + ')'),
2886                response = data.description;
2887
2888            $('#BuyNowButtonError').remove();
2889            $('#BuyNowButton').before('<p id="BuyNowButtonError" class="note errors">'+response+'</p>');
2890
2891        }
2892    });
2893
2894});
2895
2896
2897
2898$( document ).ready(function() {
2899  function checkProduct(){
2900      var money = $("#ProductPrice").find(".money").text(),
2901          price = Number(money.replace(/[^0-9\.]+/g,"")),
2902          disabled = $('#AddToCart').attr('disabled');
2903
2904      if(!$('#productSelect').val() || price <= 0 || disabled != undefined){
2905          $( ".BuyNowButton" ).hide();
2906      }else{
2907          $( ".BuyNowButton" ).show();
2908      }
2909  };checkProduct();
2910
2911  $("body").on("change",".single-option-selector",function(){
2912      checkProduct();
2913  });
2914});
2915//    BuyNow END
2916
2917$( document ).ready(function() {
2918    var winScroll = $(this).scrollTop(),
2919        addToCartBtn = $('#AddToCart'),
2920        topAddToCartBtn = $('.top-addToCart-btn'),
2921        headerBarHeight = $('.header-bar').height();
2922	
2923  	
2924  
2925    $(window).scroll(function(){
2926      var winScroll = $(this).scrollTop();
2927	  
2928      if(winScroll > (addToCartBtn.offset().top * 1.2) && topAddToCartBtn.length){
2929        topAddToCartBtn.removeClass('hide');
2930        topAddToCartBtn.css('top', (headerBarHeight + 40) + 'px');
2931      }else{
2932        topAddToCartBtn.addClass('hide');
2933      }
2934
2935    });
2936  
2937  if(window.innerWidth > 768 && $('.flexslider-has-thumbs').length){
2938    var slider_thumbs_child = $(".flex-control-thumbs li").length;
2939    var slider_thumbs_height = ((slider_thumbs_child / 6) * 80) + 80 ;
2940    $(".product-slider.flexslider-has-thumbs").css("margin-bottom", slider_thumbs_height);
2941    
2942    $("body").on("mouseover",".flex-control-thumbs img",function(){
2943		$(this).trigger( "click" );
2944    });
2945  }
2946});
2947
2948function zoomIn(event) {
2949  if(window.innerWidth > 768){
2950    var element = document.getElementById("overlayZoom");
2951    element.style.display = "inline-block";
2952    var img = $(".flex-active-slide img");
2953    var posX = event.offsetX ? (event.offsetX) : event.pageX - img.offsetLeft;
2954    var posY = event.offsetY ? (event.offsetY) : event.pageY - img.offsetTop;
2955    element.style.backgroundPosition = (-posX ) + "px " + (-posY ) + "px";
2956    element.style.backgroundImage = "url('" + img.attr("src") + "')";
2957    element.style.width = img.width() + "px";
2958    element.style.height = img.height() + "px";
2959    element.className = "active";
2960  }
2961}
2962
2963function zoomOut() {
2964  var element = document.getElementById("overlayZoom");
2965  element.style.display = "none";
2966  element.className = "";
2967}
2968   
2969$('body').on("click", ".product-single__btn-qty-adjust", function() {
2970
2971  var $button = $(this);
2972  var oldValue = $button.parent().find("input.cart__quantity-selector").val();
2973
2974  if ($button.attr('data-adjust') == 1) {
2975    var newVal = parseFloat(oldValue) + 1;
2976  } else {
2977   // Don't allow decrementing below zero
2978    if (oldValue > 1) {
2979      var newVal = parseFloat(oldValue) - 1;
2980    } else {
2981      newVal = 1;
2982    }
2983  }
2984
2985  $button.parent().find("input.cart__quantity-selector").val(newVal);
2986  
2987});
2988   
2989</script>
2989
2990
2991  
2992            
2993          </div>
2994      </div>
2995      
2996      
2997  
2998    </main>
2999  
3000    <footer class="site-footer small--text-center" role="contentinfo">
3001      
3002      
3003        <div class="logo-list-section">
3004  	<h2 class="section-header__title">As Featured On</h2>
3005	<ul class="logo-list-wrapper">
3006      	
3007      		
3008      		
3009            
3010                  <li class="logo-list-item">
3011                    
3012                    <a href="https://vulcanpost.com/760038/align-collection-handmade-leather-products-malaysia/?fbclid=IwAR3HzTMWeHiaaVHXigOxaSRvGQaHQ8ikCKUB6dtkb2H2Wf-OO1BkI4iWc0M"></a>
3013                    
3014                    <img src="https://cdn.store-assets.com/s/805787/f/7581304.png?width=350&format=webp"/>
3015                  </li>
3016            
3017      	
3018      		
3019      		
3020            
3021                  <li class="logo-list-item">
3022                    
3023                    <a href="https://www.optionstheedge.com/topic/people/align-cos-personalised-leather-crafted-items-make-meaningful-gifts-corporate-and"></a>
3024                    
3025                    <img src="https://cdn.store-assets.com/s/805787/f/7581311.png?width=350&format=webp"/>
3026                  </li>
3027            
3028      	
3029      		
3030      		
3031            
3032                  <li class="logo-list-item">
3033                    
3034                    <a href="https://www.instagram.com/tv/CECAzGWg2Zp/?utm_source=ig_web_copy_link"></a>
3035                    
3036                    <img src="https://cdn.store-assets.com/s/805787/f/7581320.jpeg?width=350&format=webp"/>
3037                  </li>
3038            
3039      	
3040      		
3041      		
3042            
3043                  <li class="logo-list-item">
3044                    
3045                    <a href="https://alignco.easy.co/collections/all"></a>
3046                    
3047                    <img src="https://cdn.store-assets.com/s/805787/f/7581313.png?width=350&format=webp"/>
3048                  </li>
3049            
3050      	
3051      		
3052      		
3053            
3054                  <li class="logo-list-item">
3055                    
3056                    <a href="https://alignco.easy.co/collections/all"></a>
3057                    
3058                    <img src="https://cdn.store-assets.com/s/805787/f/7503276.png?width=350&format=webp"/>
3059                  </li>
3060            
3061      	
3062      		
3063      		
3064            
3065                  <li class="logo-list-item">
3066                    
3067                    <img src="https://cdn.store-assets.com/s/805787/f/7581324.png?width=350&format=webp"/>
3068                  </li>
3069            
3070      	
3071      		
3072      		
3073            
3074      	
3075      		
3076      		
3077            
3078                  <li class="logo-list-item">
3079                    
3080                    <a href="https://mcomart.my/blog/faces-behind-the-business.html"></a>
3081                    
3082                    <img src="https://cdn.store-assets.com/s/805787/f/7503274.png?width=350&format=webp"/>
3083                  </li>
3084            
3085      	
3086	</ul>
3087</div>
3088
3089      
3090      
3091      <div class="wrapper">
3092  
3093        <div class="grid-uniform">
3094  
3095          
3096          
3097          
3098          
3099            
3100          
3101          
3102          
3103            
3104          
3105          
3106          
3107  
3108          
3109              
3110            
3111  
3112          
3113      
3114          
3115          
3116          <div class="grid__item large--one-half ">
3117            <a href="/" class="logo-wrapper" itemprop="url" >
3118              
3119                <img style="max-width: 250px" src="https://cdn.store-assets.com/s/805787/f/7581383.png?width=350&format=webp" alt="Align Co | Leather Goods Malaysia" itemprop="logo">
3120              
3121            </a>
3122            <p class="site-footer__links">© 2026 Align Collection 202003083338 (003094081-D)</p>
3123          </div>
3124          
3125          
3126            <div class="grid__item large--one-quarter medium--one-half">
3127              
3128              <h4>Quick Links</h4>
3129              
3130              <ul class="site-footer__links">
3131                
3132                  <li><a href="/pages/laser-engraving-personalization" >Laser Engraving Personalization</a></li>
3133                
3134                  <li><a href="/pages/personalisation-service-individual" >Personalisation Service (Individual)</a></li>
3135                
3136                
3137              </ul>
3138            </div>
3139          
3140  
3141          
3142            <div class="grid__item large--one-quarter medium--one-half">
3143              <h4>Follow Us</h4>
3144                
3145                <ul class="inline-list social-icons">
3146  
3147  
3148    <li>
3149      <a class="icon-fallback-text" href="https://www.facebook.com/align.co.my" title="Align Co | Leather Goods Malaysia on Facebook" target="_blank">
3150        
3151
3152
3153
3154    <svg xmlns="http://www.w3.org/2000/svg" class="facebook-icon-svg social-icon-svg" viewBox="0 0 1024 1024">
3155        <title>icon-facebook</title>
3156        <path d="M837.66,223.9a33.73,33.73,0,0,0-3.11-15c-6.78-13.85-17.87-21.09-33.37-21.09q-288.46,0-576.91,0c-.62,0-1.24,0-1.85,0a34.51,34.51,0,0,0-25.88,12.11c-6.31,7.13-8.85,15.57-8.85,25.07q.08,287.7,0,575.4c0,1,0,1.9,0,2.86A32.93,32.93,0,0,0,190,814.71c4.45,11.79,16.3,23.11,35,23.1q153.61-.1,307.24,0c2.36,0,2.36,0,2.36-2.37q0-123.3,0-246.6c0-2.55,0-2.55-2.53-2.55H452.27c-2.26,0-2.26,0-2.26-2.17v-96.3h84.63v-2.46c0-22.12-.11-44.24.06-66.36.07-8.29.57-16.59,1.28-24.85a129.58,129.58,0,0,1,7.43-33c10.86-30,30.59-51.74,60-64.51A133.44,133.44,0,0,1,653,285.82c12.45-.37,24.93,0,37.38.34,9.64.27,19.27.95,28.9,1.6,5.36.36,10.7,1.07,16.06,1.5,1.46.12,1.65.75,1.65,2q0,42.2,0,84.39c0,.59-.06,1.18-.09,1.85h-2.39c-16.28,0-32.56,0-48.84.05-7.63,0-15.23.54-22.65,2.61-11.61,3.23-19.86,10.09-23.65,21.78a55.66,55.66,0,0,0-2.74,16.86c-.14,22.23-.1,44.47-.13,66.7,0,2.25,0,2.25,2.31,2.25h94.66a15.13,15.13,0,0,1,0,1.54c-.38,2.94-.81,5.88-1.18,8.82-1.17,9.16-2.3,18.33-3.48,27.5-1.29,10-2.63,20-3.94,30-1.23,9.44-2.43,18.88-3.67,28.32-.31,2.32-.35,2.32-2.78,2.32h-79a4.62,4.62,0,0,0-1.67,0,2.5,2.5,0,0,0-1.2,1.16,3.68,3.68,0,0,0,0,1.49V835.21c0,2.56,0,2.56,2.53,2.56H797.83c2.13,0,4.27-.07,6.39-.21,11.56-.78,20.61-6.07,27.23-15.48,4.66-6.6,6.24-14.09,6.24-22.11q-.06-287.19,0-574.38Z" fill="#999"/>
3157    </svg>
3158
3159  
3160
3161        <span class="fallback-text">Facebook</span>
3162      </a>
3163    </li>
3164  
3165  
3166  
3167    <li>
3168      <a class="icon-fallback-text" href="https://www.instagram.com/thealign.co/" title="Align Co | Leather Goods Malaysia on Instagram" target="_blank">
3169        
3170
3171
3172
3173    <svg xmlns="http://www.w3.org/2000/svg" class="instagram-icon-svg social-icon-svg" viewBox="0 0 1024 1024">
3174        <title>icon-instagram</title>
3175        <path d="M834.35,341.22a231.23,231.23,0,0,0-9.59-46.45,166.71,166.71,0,0,0-52.17-78.33c-17-14.41-36.33-24.44-57.44-31.3-21.52-7-43.69-10.21-66.19-11.12-22.28-.9-44.58-1.73-66.87-1.85-47.68-.26-95.37-.16-143.06,0-27.47.11-54.95.69-82.32,3.39a220.7,220.7,0,0,0-37.43,6.95c-26.2,7.26-50,19-70.24,37.45-18.06,16.4-32.3,35.52-41.87,58.05-9.89,23.29-15.13,47.68-16.69,72.82-1.23,19.78-2.06,39.6-2.32,59.41-.38,28.91-.1,57.82-.1,86.73-.23,39.92-.67,79.85,1,119.76.72,17.66,1.57,35.3,4.6,52.76,3.22,18.52,8.32,36.51,16.71,53.34C232.83,768,268.81,797,317.12,811a246.28,246.28,0,0,0,59.24,9.11c25.3.95,50.63,1.78,75.95,1.94,43.83.28,87.66.1,131.5,0,26-.08,52.08-.72,78.06-2.74a234.52,234.52,0,0,0,45.76-8c24.54-6.92,46.82-18.12,66.22-34.79,24.65-21.17,41.5-47.44,51.3-78.36,6.7-21.14,9.83-42.88,10.73-64.94.9-21.84,1.73-43.69,1.82-65.55q.33-78.21-.15-156.44C837.42,387.82,836.72,364.47,834.35,341.22Zm-55.3,232.84c-.12,20.41-1,40.84-2,61.24-1,19.2-4.13,38.08-11.74,55.92q-18.43,43.24-62.47,60c-14.36,5.48-29.3,8.3-44.55,9.53-27.07,2.18-54.21,2.63-81.36,2.73-21.31.07-42.62,0-63.93,0v-.16c-28.47,0-56.94.22-85.4-.09-17.5-.18-35-1-52.49-1.89-19.94-1-39.51-4.31-57.95-12.38q-41.6-18.2-58-60.68a162.37,162.37,0,0,1-9.95-45.62c-2-24.66-2.62-49.38-2.66-74.1-.09-50.88-.16-101.77.12-152.65.11-19,1-38.09,2-57.11a180,180,0,0,1,8.78-48.23c8.32-24.84,23.63-44.14,45.66-58.12,11.78-7.48,24.85-11.91,38.36-15,15.57-3.61,31.43-4.65,47.34-5.32,54.32-2.28,108.68-1.46,163-1.5,18.67,0,37.34.12,56,.56,15.84.38,31.7,1,47.51,2,18.33,1.18,36.27,4.59,53.19,12q41.67,18.25,58.1,60.83c5.67,14.7,8.64,30,9.91,45.63,2,25,2.63,50,2.67,75.09C779.25,475.82,779.35,524.94,779.05,574.06Z" fill="#999"/><path d="M513,330.12c-92-.34-167,74.55-167.08,166.87s74.71,167,167,167A166.86,166.86,0,0,0,679.77,497.12C679.87,405,605.46,330.45,513,330.12Zm-.29,275.31A108.38,108.38,0,1,1,621.21,497.15,108.38,108.38,0,0,1,512.7,605.43Z" fill="#999"/><path d="M686.47,284.5a39,39,0,1,0,38.92,39.14A39,39,0,0,0,686.47,284.5Z" fill="#999"/>
3176    </svg>
3177
3178  
3179
3180        <span class="fallback-text">Instagram</span>
3181      </a>
3182    </li>
3183  
3184  
3185  
3186    <li>
3187      <a class="icon-fallback-text" href="https://www.youtube.com/watch?v=kMCbWOCf3R8" title="Align Co | Leather Goods Malaysia on YouTube" target="_blank">
3188        
3189
3190
3191
3192    <svg xmlns="http://www.w3.org/2000/svg" class="youtube-icon-svg social-icon-svg" viewBox="0 0 1024 1024">
3193        <title>icon-youtube</title>
3194        <path d="M870.81,327.93c-7.44-35.32-28.1-59.52-60.39-71.9-16.32-6.27-33.58-8-50.71-9.35-31.74-2.54-63.52-4.94-95.32-6.05q-68.85-2.41-137.75-2.8c-75.45-.43-150.91.42-226.25,5.31a672.25,672.25,0,0,0-68,7.84c-35.52,6-75.56,36.22-83.33,86.62a946.72,946.72,0,0,0-10.15,116.2c-1.48,49.67-1.33,99.34,1.42,149,1.57,28.34,4.16,56.51,9,84.49,6.1,35.11,25.46,59,54.45,75.29,17.17,9.66,36,12.91,54.91,14.37,38.69,3,77.44,5.58,116.21,7,42.47,
31941.56,85,1.63,127.49,2.35v-.91c27.2,0,54.4.26,81.6-.06,59.05-.68,118.09-1.91,176.89-8.23,14.61-1.57,29.51-3.48,43.44-8.06,29.6-9.75,52.29-29.47,63.23-60.8,5.32-15.27,7.62-31.93,9.82-48.18,5.81-43.06,7.61-86.47,8.39-129.92a1196.45,1196.45,0,0,0-5.15-133.62C878.49,373.5,875.55,350.44,870.81,327.93ZM440.45,633.7V390L627.17,511.81Z" fill="#999"/>
3195    </svg>
3196
3197  
3198
3199        <span class="fallback-text">YouTube</span>
3200      </a>
3201    </li>
3202  
3203  
3204  
3205  
3206    <li>
3207      <a class="icon-fallback-text" href="https://wa.me/message/POBK4PFK5EWWE1" title="Align Co | Leather Goods Malaysia on Whatsapp" target="_blank">
3208        
3209
3210
3211
3212    <svg xmlns="http://www.w3.org/2000/svg" class="whatsapp-icon-svg social-icon-svg" viewBox="0 0 1024 1024">
3213        <title>icon-whatsapp</title>
3214        <path d="M816.7,348.82A345.81,345.81,0,0,0,694.1,218.71c-44.79-28-93.6-44.39-146.07-49.88a345.45,345.45,0,0,0-92,2.72,339.05,339.05,0,0,0-94.38,29.87A343.85,343.85,0,0,0,238,302.05Q177.25,381,167.56,480.22a345,345,0,0,0,43.29,203.46,6.68,6.68,0,0,1,.57,4.56q-16.36,60.35-32.93,120.63c-5.08,18.56-10.2,37.12-15.43,56.13,1.15-.24,1.8-.34,2.43-.51Q254.72,841.08,344,817.7a7.88,7.88,0,0,1,4.84.57c11.92,5.41,23.56,11.5,35.68,16.39a344.42,344.42,0,0,0,274.43-8.3,343.9,343.9,0,0,0,122.89-97q64.35-80.48,74.57-183.1a344.59,344.59,0,0,0-2.88-89.12A336.49,336.49,0,0,0,816.7,348.82ZM799.12,528.11c-3.35,60.82-23.74,115.33-61.56,163C695.72,743.88,641.71,778,576.15,793.47A277.11,277.11,0,0,1,491.09,800a284.89,284.89,0,0,1-129.36-41.68,16.37,16.37,0,0,0-14.17-2c-33.08,8.93-66.26,17.47-99.4,26.13-.46.12-.93.19-2,.42,1.61-5.94,3.07-11.39,4.56-16.83q11.91-43.44,23.73-86.9a6.64,6.64,0,0,0-.91-4.73c-11.53-18-21.73-36.58-29.45-56.51a287.49,287.49,0,0,1-17.41-68.71c-5.7-46-.87-90.81,15-134.35a287.26,287.26,0,0,1,479.82-98.72c32.53,34.66,55.29,74.85,67.86,120.72A284,284,0,0,1,799.12,528.11Z" fill="#999"/><path d="M679.23,590c-12.9-6.08-25.57-12.63-38.44-18.75-10.69-5.09-21.41-10.15-32.36-14.63-8.48-3.47-12.2-1.6-17.82,5.65-8.75,11.27-17.79,22.32-26.93,33.28-4.38,5.25-8.82,6.33-15,3.54-11.48-5.18-23.13-10.16-34.09-16.32C477.68,562,449.73,532.17,428.22,496c-4.54-7.64-4-11.33,2-17.83,8.45-9.23,17.15-18.29,22.45-29.93a16.29,16.29,0,0,0,.44-13.68c-8.9-21.42-17.75-42.87-26.8-64.23a70.6,70.6,0,0,0-6.52-11.83c-2.39-3.56-6.15-5.12-10.51-5-3.28,0-6.56,0-9.84,0,0-.17,0-.34,0-.52-5.1.27-10.26.1-15.27.89-8.07,1.27-14,6.29-19.53,12.06-23.72,24.67-32.22,53.95-26.71,87.44a135.88,135.88,0,0,0,19.34,50.09c9.28,14.85,19.38,29.25,29.94,43.23a405.65,405.65,0,0,0,65.73,68.21c29.34,24.26,62.45,41.51,98.38,53.66,15,5.07,29.89,10.33,46,10.64,10.73.21,21.46.08,31.83-3a103.21,103.21,0,0,0,39.24-22c5.11-4.48,9.77-9.49,12.29-15.89a103.2,103.2,0,0,0,7.06-34.67C687.88,597,685.22,592.79,679.23,590Z" fill="#999"/>
3215    </svg>
3216
3217  
3218
3219        <span class="fallback-text">Whatsapp</span>
3220      </a>
3221    </li>
3222    
3223  
3224  
3225    <li>
3226      <a class="icon-fallback-text" href="https://thealignco.wixsite.com/launch" title="Align Co | Leather Goods Malaysia on RSS" target="_blank">
3227        <span class="icon icon-rss" aria-hidden="true"></span>
3228        <span class="fallback-text">RSS</span>
3229      </a>
3230    </li>
3231  
3232  
3233</ul>
3234
3235            </div>
3236          
3237        </div>
3238  
3239        <hr class="hr--small hr--clear">
3240  
3241        
3242          <div class="grid">
3243            
3244             
3245             <div class="grid__item text-center">
3246               <ul class="inline-list payment-icons">
3247                 
3248                    <li>
3249                    <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_bank-transfer.svg" alt="payment_bank-transfer">
3250                    </li>
3251                 
3252                    <li>
3253                    <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_grabpay-qr.svg" alt="payment_grabpay-qr">
3254                    </li>
3255                 
3256                    <li>
3257                    <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_tngpay.svg" alt="payment_tngpay">
3258                    </li>
3259                 
3260               </ul>
3261             </div>
3262            
3263           
3264           </div>
3265         
3266  
3267         <div class="grid">
3268           <div class="grid__item text-center">
3269             
3270             
3271             <p class="site-footer__links">
3272              
3273              
3274                
3275                  <a href="/legal/terms-of-service">Terms of Service</a>
3276                
3277                
3278              
3279                
3280                  | <a href="/legal/privacy-policy">Privacy Policy</a>
3281                
3282                
3283              
3284                
3285                  | <a href="/legal/refund-policy">Refund Policy</a>
3286                
3287                
3288              
3289                
3290                  | <a href="/legal/shipping">Shipping</a>
3291                
3292                
3293              
3294                
3295                  | <a href="/legal/about-our-leather">Our Leather</a>
3296                
3297                
3298              
3299                
3300                  | <a href="/legal/faq">FAQ</a>
3301                
3302                
3303              
3304             </p>
3305             
3306           </div>
3307         </div>
3308  
3309      </div>
3310    </footer>
3311    
3312
3313    
3314    
3315      <div id="scrollTopButton" class="on-right" style="display: none">
3316        <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3316<path d="M22,18.25a1.21,1.21,0,0,1-.88-.37L12,8.77,2.88,17.88a1.24,1.24,0,0,1-1.76-1.76l10-10a1.24,1.24,0,0,1,1.76,0l10,10a1.24,1.24,0,0,1,0,1.76A1.21,1.21,0,0,1,22,18.25Z"/></svg>
3317      </div>
3318      
3318<script>
3319        $( document ).ready(function() {
3320          var winScroll = $(this).scrollTop(),
3321          this_el = $("#scrollTopButton");
3322
3323          // Header bar
3324          if(winScroll > 400){
3325            this_el.fadeIn();
3326          }else{
3327            this_el.fadeOut();
3328          }
3329
3330          $("#scrollTopButton").click(function() {
3331            $('html,body').animate({ scrollTop: 0 });
3332          });
3333
3334          $(window).scroll(function(){
3335            var winScroll = $(this).scrollTop();
3336
3337            // Header bar
3338            if(winScroll > 400){
3339              this_el.fadeIn();
3340            }else{
3341              this_el.fadeOut();
3342            }
3343
3344          });
3345        });
3346      </script>
3346
3347    
3348
3349  
3350    
3351  
3352    
3352<script src="https://store-themes.easystore.co/805787/themes/2877/assets/fastclick.min.js?t=1787076064" type="text/javascript" ></script>
3352
3353    
3353<script src="https://store-themes.easystore.co/805787/themes/2877/assets/timber.js?v1.1?t=1787076064" type="text/javascript" ></script>
3353
3354    
3354<script src="https://store-themes.easystore.co/805787/themes/2877/assets/theme.js?t=1787076064" type="text/javascript" ></script>
3354
3355  
3356    
3357      
3358        
3358<script src="https://store-themes.easystore.co/805787/themes/2877/assets/magnific-popup.min.js?t=1787076064" type="text/javascript" ></script>
3358
3359      
3360    
3361  
3362    
3363      
3364        
3364<script src="https://store-themes.easystore.co/805787/themes/2877/assets/social-buttons.js?t=1787076064" type="text/javascript" ></script>
3364
3365      
3366    
3367  
3368    
3369
3370<script src="/assets/currencies.js" type="text/javascript" ></script>
vendor: 1 bytes, line 3370
3370
3371<script src="/assets/jquery.currencies.min.js" type="text/javascript" ></script>
vendor: 1 bytes, line 3371
3371
3372<script src="/assets/currencies_format.js" type="text/javascript" ></script>
3372
3373
3374<script>
3375Currency.format = "money_with_currency_format";
3376var shopCurrency = 'MYR';
3377var selectedCurrency = '';
3378
3379
3380  Currency.convert = function(amount, from, to) {
3381    return amount;
3382  };
3383
3384  
3385if( $.cookie("currency") == null ){
3386  
3387  if( selectedCurrency != false ) {
3388
3389  Currency.convertAll(shopCurrency, selectedCurrency);
3390  jQuery('.selected-currency').text(Currency.currentCurrency);  
3391
3392  }
3393
3394}
3395
3396/* Sometimes merchants change their shop currency, let's tell our JavaScript file */
3397// Currency.moneyFormats[shopCurrency].money_with_currency_format = "";
3398// Currency.moneyFormats[shopCurrency].money_format = "RM {{amount}} ";
3399  
3400/* Default currency */
3401var defaultCurrency = 'MYR';
3402  
3403/* Cookie currency */
3404var cookieCurrency = Currency.cookie.read();
3405
3406  cookieCurrency = shopCurrency;
3407
3408$("input[name=current_currency]").val(cookieCurrency);
3409if(cookieCurrency == null){
3410  cookieCurrency = shopCurrency;
3411  Currency.cookie.write(shopCurrency);
3412}
3413/* Fix for customer account pages */
3414jQuery('span.money span.money').each(function() {
3415  jQuery(this).parents('span.money').removeClass('money');
3416});
3417/* Saving the current price */
3418jQuery('span.money').each(function() {
3419  jQuery(this).attr('data-currency-MYR', jQuery(this).html());
3420});
3421// If there's no cookie.
3422if (cookieCurrency == null) {
3423  if (shopCurrency !== defaultCurrency) {
3424    Currency.convertAll(shopCurrency, defaultCurrency);
3425  }
3426  else {
3427    Currency.currentCurrency = defaultCurrency;
3428  }
3429}
3430// If the cookie value does not correspond to any value in the currency dropdown.
3431else if (jQuery('[name=currencies]').size() && jQuery('[name=currencies] option[value=' + cookieCurrency + ']').size() === 0) {
3432  Currency.currentCurrency = shopCurrency;
3433  Currency.cookie.write(shopCurrency);
3434}
3435else if (cookieCurrency === shopCurrency) {
3436  Currency.currentCurrency = shopCurrency;
3437  Currency.convertAll(shopCurrency, cookieCurrency);
3438}
3439else {
3440  Currency.convertAll(shopCurrency, cookieCurrency);
3441}
3442jQuery('[name=currencies]').val(Currency.currentCurrency).change(function() {
3443  var newCurrency = jQuery(this).val();
3444  
3445  
3446    Currency.cookie.write(newCurrency)
3447    if ('product' == 'cart') {
3448      const params = new URLSearchParams(window.location.search);
3449      params.set('delete_cache', 1);
3450      window.location.search = params;
3451    } else {
3452      window.location.reload();
3453    }
3454  
3455});
3456var original_selectCallback = window.selectCallback;
3457var selectCallback = function(variant, selector) {
3458  var currencies = null;
3459  original_selectCallback(variant, selector);
3460  if(typeof jQuery('[name=currencies]').val() == "undefined"){
3461    currencies = shopCurrency;
3462  }
3463  else{
3464    currencies = jQuery('[name=currencies]').val();
3465  }
3466  Currency.convertAll(shopCurrency, currencies);
3467  jQuery('.selected-currency').text(Currency.currentCurrency);
3468};
3469$('body').on('ajaxCart.afterCartLoad', function(cart) {
3470  Currency.convertAll(shopCurrency, jQuery('[name=currencies]').val());
3471  jQuery('.selected-currency').text(Currency.currentCurrency);  
3472});
3473jQuery('.selected-currency').text(Currency.currentCurrency);
3474</script>
3474
3475
3476
3477  
3477<script>
3478
3479  /*
3480
3481    ------
3482    Events
3483    ------
3484
3485    pages/viewed
3486
3487    customers/signup
3488
3489    customers/login
3490
3491    products/searched
3492
3493    collections/viewed
3494
3495    products/viewed
3496
3497    products/shared
3498
3499    wishlists/item_added
3500
3501    carts/items_added
3502
3503    carts/viewed
3504
3505    carts/item_removed
3506
3507    checkouts/initiated
3508
3509    checkouts/shipping_info_added
3510
3511    checkouts/payment_info_added
3512
3513    checkouts/completed
3514
3515    orders/placed
3516
3517    orders/purchased
3518
3519    payments/captured
3520
3521    payments/failed
3522
3523  */
3524
3525  window.__latest_cart = window.__latest_cart || null;
3526
3527  const _selector = document.querySelector.bind(document),
3528        _selectorAll = document.querySelectorAll.bind(document)
3529
3530  document.addEventListener('DOMContentLoaded', (event) => {
3531
3532    const default_currency = getCookie("currency")
3533    const customer_id = window.__st.cid
3534    const template    = window.__st.p
3535
3536    onPageView()
3537
3538    //-----------------------//
3539    //        Configs        //
3540    //-----------------------//
3541
3542    window.dataLayer = window.dataLayer || []
3543
3544    Array.prototype.last = Array.prototype.last || function() {
3545      return this[this.length - 1] || null
3546    }
3547
3548    Array.prototype.first = Array.prototype.first || function() {
3549      return this[0] || null
3550    }
3551
3552    //----------------------//
3553    //       Triggers       //
3554    //----------------------//
3555
3556    const XHR = window.XMLHttpRequest
3557
3558    function xhr() {
3559
3560      const xhr = new XHR()
3561
3562      xhr.addEventListener("readystatechange", function() {
3563
3564        if(xhr.readyState != 4) return
3565
3566        try {
3567
3568          const response_url = xhr.responseURL
3569
3570          if (response_url.includes("cart/add")) {
3571
3572            window.__latest_cart = JSON.parse(xhr.response)
3573
3574            onCartItemsAdded() // ok
3575
3576          }
3577
3578          if (response_url.includes("cart/remove_item_quantity")) {
3579
3580            window.__latest_cart = JSON.parse(xhr.response)
3581
3582            onCartItemRemoved() // ok
3583
3584          }
3585
3586          if (response_url.includes("new_cart?retrieve=true")) {
3587
3588            result = JSON.parse(xhr.response)
3589
3590            if (result.cart) {
3591              window.__latest_cart = result.cart
3592            }
3593
3594          }
3595
3596        } catch(e) {
3597
3598          console.error(e)
3599
3600        }
3601
3602      }, false);
3603
3604      return xhr
3605
3606    }
3607
3608    window.XMLHttpRequest = xhr
3609
3610    switch(template) {
3611
3612      case 'cart': onCartView() // ok
3613      break
3614      case 'product': onProductView() // ok
3615      break
3616      case 'collection': onCollectionView() // ok
3617      break
3618      case 'blog': onBlogView()
3619      break
3620      case 'article': onArticleView()
3621      break
3622      case 'payment_completed': onOrderPlace()
3623      break
3624      case 'payment_fail': onPaymentFail()
3625      break
3626
3627    }
3628
3629    // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]')))
3630    if (_selector('form[action="/checkout/detail"]'))                            _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))})  // ok
3631    if (_selector('form[action="/checkout/shipping"]'))                          _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))})  // ok
3632    if (_selector('form[action="/account/register"]'))                           _selector('form[action="/account/register"]').addEventListener("submit", onSignUp)  // ok
3633    if (_selector('form[action="/account/login"]'))                              _selector('form[action="/account/login"]').addEventListener("submit", onLogin)  // ok
3634    if (_selector('form[action="/search"]'))                                     _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok
3635    if (_selector('#line-login-btn'))                                            _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok
3636    if (_selector('#PlaceOrder'))                                                _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))});  // ok
3637    if (_selector('#add_wishlist'))                                              _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok
3638    if (_selectorAll('a[href="/account/logout"]'))                               _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok
3639    if (_selector('.CartDrawerTrigger.cart-page-link'))                          _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok
3640    if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link'))    _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok
3641    if (_selectorAll('a[class^="share-"]'))                                      _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok
3642    if (_selectorAll('[name$="checkout"]'))                                      _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
3643
3644    // For append elements
3645    const bodyMutationObserver = new MutationObserver(() => {
3646      if (_selector('#form__spc #PlaceOrder'))             _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok
3647      if (_selectorAll('[name$="checkout"]'))              _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
3648    });
3649    bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true});
3650
3651    //------------------------------//
3652    //        Event handlers        //
3653    //------------------------------//
3654
3655    function onPageView() {
3656
3657      EasyStore.Event.dispatch('pages/viewed', {
3658        page: {
3659          type: template,
3660          title: document.title,
3661          description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null,
3662          url: location.href,
3663        }
3664      })
3665
3666    }
3667
3668    function onSignUp() {
3669
3670      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
3671      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
3672
3673      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
3674
3675      let data = {}
3676
3677      if (email_regex.test(email_or_phone)) {
3678        data.method = 'email'
3679        data.email = email_or_phone
3680      }
3681
3682      if (phone_regex.test(email_or_phone)) {
3683        data.method = "phone"
3684        data.phone = email_or_phone
3685      }
3686
3687      if (!data.method) return
3688
3689      EasyStore.Event.dispatch('customers/signup', data)
3690
3691    }
3692
3693    function onLogin() {
3694
3695      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
3696      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
3697
3698      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
3699
3700      let data = {}
3701
3702      if (email_regex.test(email_or_phone)) {
3703        data.method = 'email'
3704        data.email = email_or_phone
3705      }
3706
3707      if (phone_regex.test(email_or_phone)) {
3708        data.method = "phone"
3709        data.phone = email_or_phone
3710      }
3711
3712      if (!data.method) return
3713
3714      EasyStore.Event.dispatch('customers/login', data)
3715
3716    }
3717
3718    function onLineLogin() {
3719
3720      EasyStore.Event.dispatch('customers/login', { method: 'line' })
3721
3722    }
3723
3724    function onLogout() {
3725
3726      EasyStore.Event.dispatch('customers/logout', { customer_id })
3727
3728    }
3729
3730    function onBlogView() {
3731
3732      const blog = ""
3733
3734      EasyStore.Event.dispatch('blogs/viewed', { blog })
3735
3736    }
3737
3738    function onArticleView() {
3739
3740      const article = ""
3741
3742      EasyStore.Event.dispatch('articles/viewed', { article })
3743
3744    }
3745
3746    function onProductSearch() {
3747
3748      const query = _selector('input[name=q]').value
3749
3750      if (!query) return
3751
3752      EasyStore.Event.dispatch('products/searched', { query })
3753
3754    }
3755
3756    function onCollectionView() {
3757
3758      const collection = {"id":2195326,"store_id":805787,"parent_id":0,"reference_id":null,"name":"Feature on homepage","title":"Feature on homepage","handle":"feature-on-homepage","image_url":null,"origin_image_url":null,"description":null,"body_html":null,"origin_body_html":null,"position":6,"is_locked":true,"is_published":true,"published_at":"2021-09-10T13:35:55.000+08:00","updated_at":"2023-10-07T06:40:49.000+08:00","created_at":"2021-09-10T13:35:55.000+08:00","url":"\/collections\/feature-on-homepage"}
3759
3760      EasyStore.Event.dispatch('collections/viewed', { collection })
3761
3762    }
3763
3764    function onProductView() {
3765
3766      const product = {"id":8506181,"handle":"personalisation-service-","name":"Personalisation Service ","title":"Personalisation Service ","url":"\/products\/pers
3766onalisation-service-","share_url":"https:\/\/www.thealign.co\/products\/personalisation-service-","price":10,"price_min":"10.0","price_max":"10.0","price_varies":false,"compare_at_price":0,"compare_at_price_min":"0.0","compare_at_price_max":"0.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":38601122,"variants":[{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null}],"selected_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"selected_or_first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"media":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"featured_media":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"metafields":[],"expires":null,"published_at":"2023-03-09T16:29:17.000+08:00","created_at":"2022-10-23T23:41:48.000+08:00","is_wishlisted":null,"content":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em>
3766<a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style=\u0027font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\u0027>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em><a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style=\u0027font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\u0027>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","meta_description":"*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary. Personalize with up to five (5) characters which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave ","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"highlight":{"data":null,"state":null,"is_auto_generation_required":false},"common_questions":{"data":null,"state":null,"is_auto_generation_required":false},"view_history":{"product_id":8506181,"viewed_at":"2026-09-28T22:49:16.608+08:00"},"cache_source":"live_api","promotions":[]}
3767
3768      EasyStore.Event.dispatch("products/viewed", { product })
3769
3770    }
3771
3772    function onProductShare(el) {
3773
3774      const product = {"id":8506181,"handle":"personalisation-service-","name":"Personalisation Service ","title":"Personalisation Service ","url":"\/products\/pers
3774onalisation-service-","share_url":"https:\/\/www.thealign.co\/products\/personalisation-service-","price":10,"price_min":"10.0","price_max":"10.0","price_varies":false,"compare_at_price":0,"compare_at_price_min":"0.0","compare_at_price_max":"0.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":38601122,"variants":[{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null}],"selected_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"selected_or_first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"media":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"featured_media":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"metafields":[],"expires":null,"published_at":"2023-03-09T16:29:17.000+08:00","created_at":"2022-10-23T23:41:48.000+08:00","is_wishlisted":null,"content":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em>
3774<a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style=\u0027font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\u0027>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em><a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style=\u0027font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\u0027>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","meta_description":"*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary. Personalize with up to five (5) characters which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave ","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"highlight":{"data":null,"state":null,"is_auto_generation_required":false},"common_questions":{"data":null,"state":null,"is_auto_generation_required":false},"view_history":{"product_id":8506181,"viewed_at":"2026-09-28T22:49:16.608+08:00"},"cache_source":"live_api","promotions":[]}
3775
3776      const channel = el.getAttribute("class").split("-").last()
3777
3778      EasyStore.Event.dispatch('products/shared', { product, channel })
3779
3780    }
3781
3782    function onWishlistItemAdded() {
3783
3784      let product  = {"id":8506181,"handle":"personalisation-service-","name":"Personalisation Service ","title":"Personalisation Service ","url":"\/products\/pers
3784onalisation-service-","share_url":"https:\/\/www.thealign.co\/products\/personalisation-service-","price":10,"price_min":"10.0","price_max":"10.0","price_varies":false,"compare_at_price":0,"compare_at_price_min":"0.0","compare_at_price_max":"0.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":38601122,"variants":[{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null}],"selected_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"selected_or_first_available_variant":{"id":38601122,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"infinite_stock":true,"featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"price":1000,"compare_at_price":0,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null,"points":null},"img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","featured_image":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"media":[{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"}],"featured_media":{"id":49032432,"alt":"Screenshot 2022-10-23 at 11.42.45 PM","img_url":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","src":"https:\/\/cdn.store-assets.com\/s\/805787\/i\/49032432.png","height":1154,"width":1176,"position":1,"type":"Images"},"metafields":[],"expires":null,"published_at":"2023-03-09T16:29:17.000+08:00","created_at":"2022-10-23T23:41:48.000+08:00","is_wishlisted":null,"content":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em>
3784<a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style=\u0027font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\u0027>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary.&nbsp;<\/p><p id=\"isPasted\" style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>Personalize with up to <strong style=\"box-sizing: border-box; outline: none;\"><u style=\"box-sizing: border-box; outline: none;\">five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong style=\"box-sizing: border-box; outline: none;\">Remark<\/strong>\" section after checking out. &nbsp;<\/p><p style=\u0027box-sizing: border-box; outline: none; margin: 0px 0px 15px; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 15px;\u0027>The available characters include letters A-Z and a-z, numbers 0-9, basic punctuation marks, \u2661 (heart), and # (hashtag). If you need more than five characters, please contact us via WhatsApp at 0111-032 3702 or by clicking on the WhatsApp icon.<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">How do I personalize my product?<\/span>&nbsp;<\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option!&nbsp;<\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select &ldquo;personalisation service&rdquo; on the website.&nbsp;<\/em><a href=\"https:\/\/www.thealign.co\/products\/personalisation-service-\" id=\"isPasted\"><em>https:\/\/www.thealign.co\/products\/personalisation-service-<\/em><\/a><\/p><p>Personalize with up to <strong><u>five (5) characters<\/u><\/strong> which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave your desired monogram in the \"<strong>Remark<\/strong>\" section after checking out. &nbsp;<\/p><p>Letters A-Z, a-z, numbers 0-9, basic punctuation marks, and \u2661 (heart), # (hashtag) are available.<\/p><p>If you require more than 5 characters, kindly Whatsapp Us at +60 10-657 8935. Or you could click on the Whatsapp icon!&nbsp;<\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience&nbsp;<\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That&rsquo;s why all your leather will arrive you in a kraft box OR <span id=\"isPasted\" style=\u0027font-family: HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\u0027>our exclusive Premium Keepsake Pine Wood Box,<\/span>&nbsp;adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them!&nbsp;<\/p><p><img src=\"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581523.jpeg\" alt=\"IMG_8998_jpg.JPG\" title=\"IMG_8998_jpg.JPG\" class=\"fr-fic fr-dii\"><br><\/p><\/div>","meta_description":"*Only for discounted products (Ongoing Promotions). Unless otherwise mentioned, personalisation services are complimentary. Personalize with up to five (5) characters which are carefully hand stamped with metallic gold, adding a touch of luxe. Leave ","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"highlight":{"data":null,"state":null,"is_auto_generation_required":false},"common_questions":{"data":null,"state":null,"is_auto_generation_required":false},"view_history":{"product_id":8506181,"viewed_at":"2026-09-28T22:49:16.608+08:00"},"cache_source":"live_api","promotions":[]}
3785      const quantity = _selector("#Quantity").value
3786
3787      EasyStore.Event.dispatch('wishlists/item_added', { product })
3788
3789    }
3790
3791    async function onCartItemsAdded() {
3792
3793      const cart = await getCart()
3794
3795      if(cart && cart.items != undefined && cart.items.length > 0) {
3796
3797        EasyStore.Event.dispatch('carts/item_added', { cart })
3798
3799      }
3800
3801    }
3802
3803    async function onCartView() {
3804
3805      const cart = await getCart()
3806
3807      EasyStore.Event.dispatch('carts/viewed', { cart })
3808
3809    }
3810
3811    async function onCartItemRemoved() {
3812
3813      const cart = await getCart()
3814
3815      cart.items = []
3816
3817      if(cart) {
3818
3819        EasyStore.Event.dispatch('carts/item_removed', { cart })
3820
3821      }
3822
3823    }
3824
3825    async function onCheckoutInitiate() {
3826
3827      const cart = await getCart()
3828
3829      EasyStore.Event.dispatch('checkouts/initiated', { cart })
3830
3831    }
3832
3833    async function onShippingInfoAdded(form) {
3834      let checkout = getCheckout()
3835
3836      let form_data = {}
3837      new FormData(form).forEach((value, key) => form_data[key] = value)
3838
3839      let shipping_tier = null
3840
3841      if (form_data.type && form_data.type.startsWith("r_pickup")) {
3842        shipping_tier = `Pickup - ${form_data.pick_location}`
3843      }
3844
3845      if (form_data.s_id) {
3846        shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name")
3847      }
3848
3849      if (!shipping_tier) return
3850
3851      EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier })
3852
3853    }
3854
3855    async function onPaymentInfoAdded(form) {
3856
3857      let checkout = getCheckout()
3858
3859      let payment_type = new FormData(form).get('payment_method')
3860
3861      EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type })
3862
3863    }
3864
3865    async function onOrderPlace() {
3866
3867      let cart_token  = getCookie("cart_js")
3868      let previous_cart_token = getCookie("previous_cart_ga4_js")
3869
3870      if (previous_cart_token && previous_cart_token == cart_token) {
3871        // Prevent duplicate purchase tracking
3872        return
3873      }
3874
3875      let order = getOrder()
3876
3877      EasyStore.Event.dispatch('orders/placed', { order })
3878
3879      if(order.is_manual_payment) {
3880
3881        EasyStore.Event.dispatch('orders/purchased', { order })
3882
3883      }
3884
3885      const last_transaction = order.transactions.last()
3886
3887      if (last_transaction.status) {
3888
3889        EasyStore.Event.dispatch('orders/purchased', { order })
3890        EasyStore.Event.dispatch('payments/captured', { order })
3891
3892      }
3893
3894    }
3895
3896    async function onPaymentFail() {
3897
3898      const order = getOrder()
3899
3900      EasyStore.Event.dispatch('payments/failed', { order })
3901
3902    }
3903
3904    async function onCheckoutComplete(form) {
3905
3906      onPaymentInfoAdded(form)
3907
3908      const checkout = getCheckout()
3909
3910      EasyStore.Event.dispatch('checkouts/completed', { checkout })
3911
3912    }
3913
3914    async function onSinglePageCheckout() {
3915
3916      // let checkout = $("[data-app-checkout]").data("app-checkout")
3917
3918      let checkout = getCheckout()
3919
3920      // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text()
3921      const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML
3922
3923      const shipping_method = _selector("#delivery_method").value
3924
3925      let shipping_tier = null
3926      let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content')
3927      if (shipping_method == "shipping") {
3928        shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML
3929      }
3930
3931      if (shipping_method == "pickup") {
3932        shipping_tier = app_spc_customer_info_label[0].innerHTML
3933      }
3934
3935      if (shipping_tier) {
3936
3937        EasyStore.Event.dispatch('checkouts/shipping_info_added', {
3938          checkout,
3939          shipping_tier,
3940        })
3941
3942      }
3943
3944      if (payment_type) {
3945
3946        EasyStore.Event.dispatch('checkouts/payment_info_added', {
3947          checkout,
3948          payment_type,
3949        })
3950
3951      }
3952
3953      EasyStore.Event.dispatch('checkouts/completed', { checkout })
3954
3955    }
3956
3957  })
3958
3959
3960  //-----------------------//
3961  //       Functions       //
3962  //-----------------------//
3963
3964  function getCookie(name) {
3965
3966    name += "="
3967
3968    decodedCookie = decodeURIComponent(document.cookie)
3969
3970    ca = decodedCookie.split(";")
3971
3972    for(i = 0; i < ca.length; i++) {
3973      c = ca[i]
3974      while (c.charAt(0) == " ") {
3975        c = c.substring(1)
3976      }
3977      if (c.indexOf(name) == 0) {
3978        return c.substring(name.length, c.length)
3979      }
3980    }
3981
3982    return ""
3983
3984  }
3985
3986  const parsePrice = price => {
3987    if(typeof price === 'string') {
3988      return parseFloat(price.split(',').join(''))
3989    }
3990
3991    return price
3992  }
3993
3994  const requestCart = async (method, data) => {
3995
3996  let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}})
3997    result = await response.json()
3998
3999    return result.cart
4000
4001  }
4002  const getCart = async (latest = false) => {
4003
4004    let cart = window.__latest_cart
4005
4006    const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length)
4007
4008    if(latest || cart_invalid) {
4009      cart = await requestCart()
4010    }
4011
4012    cart.items = cart.items || []
4013
4014    return mapCart(cart)
4015
4016  }
4017
4018  const getCheckout = async () => {
4019    mapCheckout(window.__latest_cart || await requestCart())
4020  }
4021
4022  const getOrder = async () => {
4023    mapOrder(window.__latest_cart || await requestCart())
4024  }
4025
4026  //-----------------------//
4027  //        Mappers        //
4028  //-----------------------//
4029
4030  const fallbackAttribute = (object, attribute) => {
4031
4032    if(!Array.isArray(attribute)) {
4033      attribute = [attribute]
4034    }
4035
4036    let final_value = null
4037
4038    do {
4039
4040      final_value = object[attribute.shift()]
4041
4042    } while(!final_value && attribute.length)
4043
4044    return final_value
4045
4046  }
4047
4048  const map = (object, mapper) => {
4049
4050    const newObject = {}
4051
4052    for(const key in mapper) {
4053
4054      // Handle different keys between new and old format
4055      newObject[key] = fallbackAttribute(object, mapper[key])
4056
4057      // Cast price to float
4058      if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) {
4059        newObject[key] = parsePrice(newObject[key])
4060      }
4061
4062      if(newObject[key] === undefined) {
4063        delete newObject[key]
4064      }
4065
4066    }
4067
4068    return newObject
4069
4070  }
4071
4072  const mapCart = cart => {
4073
4074    const oldCart = cart
4075
4076    const mapper = {
4077      id: 'id',
4078      currency: 'currency',
4079      item_count: 'item_count',
4080      items: 'items',
4081      total_price: 'total_price',
4082      latest_items: 'latest_items'
4083    }
4084
4085    cart = map(cart, mapper)
4086
4087    const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || []))
4088
4089    cart.discount_applications = discounts.map(discount => ({
4090      title: discount.voucher_code || null,
4091      value: parsePrice(discount.amount),
4092    }))
4093
4094    cart.original_total_price = cart.items.length
4095    ? cart.items
4096      .map(item => item.original_price)
4097      .reduce((sum, price) => sum + price)
4098    : 0
4099
4100    cart.total_discount = cart.discount_applications.length
4101    ? cart.discount_applications
4102      .map(discount => parsePrice(discount.value))
4103      .reduce((sum, value) => sum + value)
4104    : 0
4105
4106    cart.items = cart.items.map(item => mapLineItem(item))
4107
4108    return cart
4109
4110  }
4111
4112  const mapCheckout = checkout => {
4113
4114    const mapper = {
4115      note: 'note',
4116      attributes: 'note_attributes',
4117      billing_address: 'billing_address',
4118      currency: 'currency',
4119      customer_id: 'customer_id',
4120      discounts_amount: 'total_discount',
4121      id: 'id',
4122      line_items: 'order_item',
4123      order_number: 'order_number',
4124      shipping_address: 'shipping_address',
4125      shipping_price: 'shipping_tax',
4126      shipping_method: 'shipping_method_name',
4127      tax_price: 'total_tax',
4128    }
4129
4130    checkout = map(checkout, mapper)
4131
4132    checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required)
4133
4134    checkout.line_items = checkout.line_items.map(item => mapLineItem(item))
4135
4136    return checkout
4137
4138  }
4139
4140  const mapOrder = order => {
4141
4142    const mapper = {
4143      attributes: 'note_attributes',
4144      billing_address: 'billing_address',
4145      cancelled: 'is_cancelled',
4146      cancelled_at: 'cancelled_at',
4147      created_at: 'created_at',
4148      customer_id: 'customer_id',
4149      // discount_applications: 'discount_applications',
4150      email: 'email',
4151      financial_status: 'financial_status',
4152      fulfillment_status: 'fulfillment_status',
4153      line_items: 'order_item',
4154      note: 'note',
4155      order_number: 'order_number',
4156      phone: 'phone',
4157      shipping_address: 'shipping_address',
4158      shipping_methods: 'shipping_methods',
4159      shipping_price: 'total_shipping',
4160      subtotal_price: 'subtotal_price',
4161      // tax_lines: 'tax_lines',
4162      tax_price: 'total_tax',
4163      total_discounts: 'total_discount',
4164      total_net_amount: 'total_amount_include_transaction',
4165      total_price: 'total_price',
4166      transactions: 'transaction_records',
4167      is_manual_payment: 'is_manual_payment',
4168    }
4169
4170    order.email = order.billing_address.email
4171    order.phone = order.billing_address.phone
4172    order.shipping_method = order.shipping_method_name
4173
4174    order = map(order, mapper)
4175
4176    order.line_items = order.line_items.map(item => mapLineItem(item))
4177    order.transactions = order.transactions.map(transaction => mapTransaction(transaction))
4178
4179    return order
4180
4181  }
4182
4183  const mapLineItem = line_item => {
4184
4185    const old_line_item = line_item
4186
4187    const mapper = {
4188      final_price: 'price',
4189      image: 'img_url',
4190      message: 'message',
4191      original_line_price: 'original_line_price',
4192      original_price: 'original_price',
4193      properties: 'properties',
4194      quantity: 'quantity',
4195      requires_shipping: 'shipping_required',
4196      sku: 'sku',
4197      taxable: 'taxable',
4198      title: 'product_name',
4199      product_name: 'product_name',
4200      url: 'url',
4201      product_id: 'product_id',
4202      variant_id: 'variant_id',
4203      id: ['id', 'i_id'],
4204    }
4205
4206    line_item = map(line_item, mapper)
4207
4208    line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null
4209    line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null
4210    line_item.image      = line_item.image || (old_line_item.image && old_line_item.image.url) || null
4211
4212    return line_item
4213
4214  }
4215
4216  const mapTransaction = transaction => {
4217
4218    const mapper = {
4219      amount: 'amount',
4220      created_at: 'created_at',
4221      gateway: 'gateway_type',
4222      id: 'id',
4223      status: 'status',
4224    }
4225
4226    transaction = map(transaction, mapper)
4227
4228    return transaction
4229
4230  }
4231
4232
4233</script>
4233
4234
4235</div>
4236
4237  
4238    
4239<style>
4240  #CartTemplate{
4241    min-height: 80vh;
4242  }
4243  .cart-drawer .cart__row .small--one-whole,
4244  .cart-drawer .cart-sticky-button-wrapper{
4245    width: 100%;
4246  }
4247  .cart-drawer .promotion__code-input .input-group{
4248    margin-top: 20px;
4249    max-width: 100%;
4250  }
4251  .cart-drawer-wrapper{
4252    display: flex;
4253    flex-wrap: wrap;
4254    flex-direction: row;
4255  }
4256  .cart-drawer-wrapper > div{
4257    width: 100%;
4258  }
4259  vouchers-modal .vouchers-modal.active ,
4260  vouchers-modal #vouchers-modal-backdrop.active{
4261    z-index: 2147483647;
4262  }
4263</style>
4264
4265<div id="CartDrawer" class="cart-drawer" data-fetch="0">
4266  
4267
4268  <div class="cart-drawer-wrapper">
4269    <div id="cart-promotion-top"></div>
4270
4271
4272    <div id="CartTemplate">
4273      
4274
4275
4276  
4277
4278  <div id="noCartItem" class="cart-drawer-content">
4279    <div class="cart-drawer-content-wrapper text-center">
4280      <div class="section-header">
4281        <span></span>
4282        <span class="CartDrawerTrigger icon icon-x"></span>
4283      </div>
4284      <div class="section-header__title h2">Your cart is currently empty.</div>
4285      <a class="btn btn--secondary" href="/collections/all">Continue shopping</a>
4286    </div>
4287  </div>
4288
4289
4290
4291    </div>
4292
4293    <link href="/assets/css/promotion.css?v2.94" rel="stylesheet" type="text/css" media="screen" />
4294<div id="cart-promotion-section"></div>
4295
4296<script>var shop_money_format = "<span class=money data-ori-price='{{amount}}'>RM {{amount}} </span>";</script>
vendor: 1 bytes, line 4296
4296
4297<script src="/assets/js/promotion/promotion.js?v1.11" type="text/javascript"></script>
4297
4298
4299<script>
4300
4301    window.EasyStore = window.EasyStore || {};
4302    window.EasyStore.Promotion = window.EasyStore.Promotion || {};
4303
4304    var get_cart_promo_initial = false,
4305        current_template = 'product';
4306
4307    window.EasyStore.Promotion.updateCartPromotion = function (){
4308        get_cart_promo_initial = true
4309        $.ajax({
4310        type: "GET",
4311        dataType: 'json',
4312        url: "/new_cart/promotion",
4313        success: function(response){
4314            $("#cart-promotion-section").html(response["cart/content_bottom"].trim());
4315            $("#cart-promotion-top").html(response["cart/content_top"].trim());
4316
4317            promoVariantDetailInitial()
4318        },
4319        error: function(xhr){
4320        }
4321        });
4322    }
4323
4324
4325    if(current_template == 'cart') {
4326        document.addEventListener("DOMContentLoaded", function() {
4327            window.EasyStore.Promotion.updateCartPromotion()
4328        });
4329    }
4330
4331</script>
vendor: 1 bytes, line 4331
4331
4332<script>
4333  document.addEventListener('DOMContentLoaded', function () {
4334    window._getVoucherErrorTranslation = Object.assign(window._getVoucherErrorTranslation || {}, {
4335      "condition_not_matched":    "Voucher condition not matched",
4336      "promotion_unavailable":    "This promotion is currently unavailable",
4337      "available_on":             "Available on channels",
4338      "available_on_only":        "Available on channels only",
4339      "available_with_locations": "Available on channels (locations only)",
4340      "pos_at_locations":         "Retail Store at locations only",
4341      "channel_website":          "Website",
4342      "channel_mobile":           "Mobile Apps",
4343      "channel_pos":              "Retail Store"
4344    });
4345  });
4346</script>
4346
4347
4348  </div>
4349  
4350
4351  
4352</div>
4353
4354<div id="toast"><div id="toastContent"></div></div>
4355<style>
4356  .cart-drawer .cart-drawer-content .cart-sticky-button-wrapper a.btn.CartDrawerTrigger{margin-bottom: 10px !important;}
4357  #toastContent a{color: #fff;text-decoration: underline;margin-top: 10px;display: block;}
4358  #toastContent .svg-icon{margin-right: 8px;margin-top: -1px;}
4359</style>
4360
4361<script type="text/javascript">
4362  $('body').on("submit", "#CartForm", function() {
4363    $(this).find('[type=submit]').addClass('btn--loading');
4364  });
4365  
4366  $("input[name=current_currency]").val($( "select.currency-picker" ).val());
4367  $( "select.currency-picker" ).change(function(){
4368    $("select.currency-picker").val($(this).val());
4369    url=window.location.href;
4370    newParam="currency=" + $( "select.currency-picker" ).val();
4371    if(url.indexOf("currency=")===-1){
4372      separator = (url.indexOf("?")===-1)?"?":"&";
4373      newUrl= url + separator + newParam;
4374    }else{
4375      oldParam= new URL(url);
4376      oldParam = oldParam.searchParams.get("currency");
4377      newParam= $(this).val();
4378      newUrl=url.replace(oldParam,newParam);
4379    }
4380    $("input[name=current_currency]").val($( "select.currency-picker" ).val());
4381    // window.location.href =newUrl;
4382    $('#CartDrawer').attr('data-fetch', 0);
4383  });
4384
4385  $("body").on("click", ".cart__remove", function() {
4386    $('#CartTemplate').addClass('is-loading');
4387    $.ajax({
4388      type: 'POST',
4389      url: '/cart/remove_item_quantity',
4390      data: {
4391        variant_id: $(this).data( "variant-id"),
4392        item_id: $(this).data( "item-id"),
4393        quantity: $(this).data( "quantity"),
4394        i_id: $(this).data("i_id"),
4395      },
4396      dataType: 'json',
4397      success: function(response){
4398
4399        theme.cartDrawer(response);
4400        $('#CartTemplate').removeClass('is-loading');
4401
4402        if (window.checkProductProperties !== undefined){
4403          window.checkProductProperties();
4404        }      
4405      },
4406      error: function(xhr){
4407        console.log('error',xhr);
4408        $('#CartTemplate').removeClass('is-loading');
4409      }
4410    });
4411
4412  });
4413
4414
4415  $('body').on("click", "#applycode",function() {
4416    
4417    if($("input[name='voucher_code']").val() != '') {
4418
4419      $('#CartTemplate').addClass('is-loading');
4420
4421      $.ajax({
4422        type: 'POST',
4423        url: '/new_cart/voucher',
4424        data: {
4425          voucher_code: $("input[name='voucher_code']").val(),
4426          category: 'create'
4427        },
4428        dataType: 'json',
4429        success: function(response){
4430
4431          // console.log(response);
4432
4433          if(response.error != undefined){
4434            
4435            if(response.error.message != undefined) popToast(response.error.message); 
4436          
4437            $("input[name='voucher_code']").val('')
4438          
4439          } 
4440          
4441          if(response.cart_content != undefined) theme.cartDrawer(response); 
4442
4443          
4444          $('#CartTemplate').removeClass('is-loading');
4445          
4446        },
4447        error: function(xhr){
4448          console.log('error',xhr);
4449          $('#CartTemplate').removeClass('is-loading');
4450        }
4451      });
4452
4453    }
4454
4455  });
4456
4457
4458  $("body").on("click", ".remove_voucher_btn", function() {
4459        $('#CartTemplate').addClass('is-loading');
4460        $.ajax({
4461          type: 'DELETE',
4462          url: '/new_cart/voucher',
4463          data: {
4464            category: 'remove',
4465            order_discount_id: $(this).data( "discount-id")
4466          },
4467          dataType: 'json',
4468          success: function(data){
4469            // console.log(data);
4470            theme.cartDrawer(data);
4471            $('#CartTemplate').removeClass('is-loading');
4472          },
4473          error: function(xhr){
4474            console.log('error',xhr);
4475            $('#CartTemplate').removeClass('is-loading');
4476          }
4477        });
4478
4479    });
4480  
4481
4482  theme.cartDrawer = function(data){
4483    
4484      $('#CartDrawer').attr('data-fetch', 1);
4485      $('#CartTemplate').addClass('is-loading');
4486
4487      
4488      if(typeof data.cart_content  == 'string'){
4489        $('#CartTemplate').html(data.cart_content);
4490      }
4491
4492      let cart_item_count = data.item_count || data.cart.item_count;
4493
4494      if(cart_item_count > 0){
4495        $('.cart-count').removeClass('hidden-count');
4496      }else{
4497        $('.cart-count').addClass('hidden-count');
4498      }
4499
4500      $('.cart-count').text(cart_item_count);
4501      $('#CartTemplate').removeClass('is-loading');
4502      $(".cart-drawer-content").animate({ scrollTop: 0 });
4503
4504      if(window.EasyStore != undefined && window.EasyStore.Promotion != undefined && window.EasyStore.Promotion.updateCartPromotion != undefined) window.EasyStore.Promotion.updateCartPromotion()
4505
4506  }
4507
4508  theme.fetchCartDrawer = function(data){
4509      $('#CartTemplate').addClass('is-loading');
4510      $.ajax({
4511        url: '/new_cart?retrieve=true',
4512        type: 'GET',
4513        success: function(data, status) {
4514          // console.log(data);
4515          theme.cartDrawer(data);
4516
4517          $('#CartTemplate').removeClass('is-loading');
4518
4519          if (window.checkProductProperties !== undefined){
4520            window.checkProductProperties();
4521          }
4522        },
4523        error: function(XMLHttpRequest, textStatus) {
4524          console.log('error',XMLHttpRequest,textStatus);
4525          $('#CartTemplate').removeClass('is-loading');
4526        }
4527      });
4528  }
4529
4530  theme.updateCartDrawer = function(data){
4531    $('#CartTemplate').addClass('is-loading');
4532
4533    $.ajax({
4534      url: '/new_cart/update',
4535      type: 'PUT',
4536      dataType: 'json',
4537      data: $('#CartDrawer form').serialize(),
4538      success: function(data, status) {
4539        theme.cartDrawer(data);
4540
4541        if (window.checkProductProperties !== undefined){
4542          window.checkProductProperties();
4543        }
4544      },
4545      error: function(XMLHttpRequest, textStatus) {
4546        console.log('error',XMLHttpRequest,textStatus);
4547      }
4548    });
4549  }
4550
4551  function debounce(func, wait, immediate) {
4552    var timeout;
4553    return function() {
4554        var context = this, args = arguments;
4555        var later = function() {
4556            timeout = null;
4557            if (!immediate) func.apply(context, args);
4558        };
4559        var callNow = immediate && !timeout;
4560        clearTimeout(timeout);
4561        timeout = setTimeout(later, wait);
4562        if (callNow) func.apply(context, args);
4563    };
4564  };
4565
4566  $('body').on("change", 'input.cart__quantity-selector', function (){
4567    theme.updateCartDrawer();
4568  });
4569
4570
4571  $('#updateCartDrawer').click(function() {
4572    theme.updateCartDrawer();
4573  });
4574
4575  $('body').on("click", ".btn-qty-adjust", function() {
4576
4577    var $button = $(this);
4578    var oldValue = $button.parent().find("input.cart__quantity-selector").val();
4579
4580    if ($button.attr('data-adjust') == 1) {
4581      var newVal = parseFloat(oldValue) + 1;
4582    } else {
4583    // Don't allow decrementing below zero
4584      if (oldValue > 0) {
4585        var newVal = parseFloat(oldValue) - 1;
4586      } else {
4587        newVal = 0;
4588      }
4589    }
4590
4591    $button.parent().find("input").val(newVal);
4592  });
4593    
4594  $('body').on("click", ".btn-qty-adjust", debounce(function() {
4595    theme.updateCartDrawer();
4596  },350));
4597
4598  $('button.checkout').click(function() {
4599    $(this).addClass('btn--loading');
4600  });
4601
4602  var add_cart_success_html = '<svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <g> <g> <path d="M383.841,171.838c-7.881-8.31-21.02-8.676-29.343-0.775L221.987,296.732l-63.204-64.893 c-8.005-8.213-21.13-8.393-29.35-0.387c-8.213,7.998-8.386,21.137-0.388,29.35l77.492,79.561 c4.061,4.172,9.458,6.275,14.869,6.275c5.134,0,10.268-1.896,14.288-5.694l147.373-139.762 C391.383,193.294,391.735,180.155,383.841,171.838z"/> </g> </g> <g> <g> <path d="M256,0C114.84,0,0,114.84,0,256s114.84,256,256,256s256-114.84,256-256S397.16,0,256,0z M256,470.487 c-118.265,0-214.487-96.214-214.487-214.487c0-118.265,96.221-214.487,214.487-214.487c118.272,0,214.487,96.221,214.487,214.487 C470.487,374.272,374.272,470.487,256,470.487z"/> </g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> </svg>';
4603      add_cart_success_html += 'Added to cart <br><a class="CartDrawerTrigger">View cart</a>';
4604
4605  function popToast(content) {
4606    var x = document.getElementById("toast"),
4607        y = document.getElementById("toastContent");
4608
4609    y.innerHTML = content;
4610    x.className += " show";
4611    
4612    var hideToast = setTimeout(function(){ x.className = x.className.replace(" show", ""); }, 3000);
4613  }
4614
4615</script>
4615
4616
4617<link href="/assets/css/vouchers.css?v1.2" rel="stylesheet" type="text/css" media="screen" />
4618<link href="/assets/account/vouchers/vouchers.css" rel="stylesheet" type="text/css" media="screen" />
4619<link href="/assets/account/vouchers/voucher-widget.css" rel="stylesheet" type="text/css" media="screen" />
4620<script src="/assets/js/promotion/vouchers.js?v1.3" type="text/javascript" ></script>
vendor: 1 bytes, line 4620
4620
4621<script src="/assets/account/vouchers/voucher-widget.js" type="text/javascript" ></script>
4621
4622
4623<vouchers-modal>
4624  <div id="vouchers-modal-backdrop" class="vouchers-modal__close"></div>
4625  <div class="vouchers-modal-wrapper page-width">
4626    <div id="vouchers-modal" class="vouchers-modal focus-inset" aria-modal="true" role="dialog" tabindex="-1">
4627      <div class="vouchers-modal__header">
4628        <div class="vouchers-modal__heading">Vouchers</div>
4629        <button type="button" class="vouchers-modal__close modal__close-button link link--text focus-inset" aria-label="accessibility.close">
4630          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-close " fill="none" viewBox="0 0 18 17">
4631            <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
4632            </path>
4633          </svg>
4634        </button>
4635      </div>
4636
4637      <discount-input>
4638        <div class="field">
4639          <input type="text" id="input-discount_code" class="search__input field__input" name="voucher_code" placeholder="Discount code">
4640          <button type="button" name="apply" class="btn btn--secondary button button--secondary">Apply</button>
4641        </div>
4642        <div class="form__message hidden" tabindex="-1" autofocus>
4643          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-error " viewBox="0 0 13 13">
4644            <circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2"></circle>
4645            <circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width="0.7"></circle>
4646            <path d="M5.87413 3.52832L5.97439 7.57216H7.02713L7.12739 3.52832H5.87413ZM6.50076 9.66091C6.88091 9.66091 7.18169 9.37267 7.18169 9.00504C7.18169 8.63742 6.88091 8.34917 6.50076 8.34917C6.12061 8.34917 5.81982 8.63742 5.81982 9.00504C5.81982 9.37267 6.12061 9.66091 6.50076 9.66091Z" fill="white"></path>
4647            <path d="M5.87413 3.17832H5.51535L5.52424 3.537L5.6245 7.58083L5.63296 7.92216H5.97439H7.02713H7.36856L7.37702 7.58083L7.47728 3.537L7.48617 3.17832H7.12739H5.87413ZM6.50076 10.0109C7.06121 10.0109 7.5317 9.57872 7.5317 9.00504C7.5317 8.43137 7.06121 7.99918 6.50076 7.99918C5.94031 7.99918 5.46982 8.43137 5.46982 9.00504C5.46982 9.57872 5.94031 10.0109 6.50076 10.0109Z" fill="white" stroke="#EB001B" stroke-width="0.7"></path>
4648          </svg>
4649          <div class="js-error-content"></div>
4650        </div>
4651      </discount-input>
4652      <br>
4653
4654      
4655      
4656        <div class="empty-vouchers_placeholder">No available vouchers</div>
4657      
4658
4659       <!-- For voucher widget -->
4660      
4660<script type="text/javascript">
4661        let settings = {"logo_use_image":"1","logo_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7492098.jpeg?width=350&format=webp","footer_logo_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581383.png?width=350&format=webp","nav_below_logo":"","logo_alignment":"center","heading_font_family":["'HelveticaNeue','Helvetica Neue',Helvetica,Arial,sans-serif"],"left_aligned_logo":"0","favicon_enable":"1","favicon_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7492102.jpeg","header_message":"","header_search_enable":true,"topbar_sticky":"1","footer_quicklinks_enable":true,"footer_quicklinks_linklist":"footer","footer_social_enable":"1","footer_show_credit_card_logo":"0","footer_show_methods_of_payment":"1","footer_visa":"0","footer_master":"0","footer_american_express":"0","footer_jcb":"0","footer_diners_club":"0","footer_discover":"0","footer_ssl":"0","show_footer_lines":"1","home_section_1":"highlight-section","home_section_2":"featured-product","home_section_3":"img-text-section","home_section_4":"parallax-section","home_section_5":"","home_section_6":"","featured_title":"","featured_1_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581265.jpeg?width=650&format=webp","featured_1_text":"JOURNALS","featured_1_link":"https:\/\/alignco.easy.co\/collections\/journals-books","featured_2_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581226.jpeg?width=650&format=webp","featured_2_text":"KEYS","featured_2_link":"https:\/\/alignco.easy.co\/collections\/key-related","featured_3_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581233.jpeg?width=650&format=webp","featured_3_text":"TRAVELS","featured_3_link":"https:\/\/alignco.easy.co\/collections\/travel-related","featured_4_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581242.jpeg?width=650&format=webp","featured_4_text":"HOME\/ OFFICE","featured_4_link":"https:\/\/alignco.easy.co\/collections\/home-organization","featured_5_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581246.jpeg?width=650&format=webp","featured_5_text":"OTHERS","featured_5_link":"https:\/\/alignco.easy.co\/collections\/hot-selling","featured_6_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581281.jpeg?width=650&format=webp","featured_6_text":"CARDS\/CASH","featured_6_link":"https:\/\/alignco.easy.co\/collections\/wallets-cardholders","featured_7_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581283.jpeg?width=650&format=webp","featured_7_text":"LEATHER GIFT SET","featured_7_link":"https:\/\/alignco.easy.co\/collections\/new-arrival","featured_8_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581259.jpeg?width=650&format=webp","featured_8_text":"CLEARANCE","featured_8_link":"https:\/\/www.thealign.co\/collections\/clearance","parallax_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7493031.png?width=1500&format=webp","parallax_mobile_img":"","parallax_title":"LOOKING TO CURATE A GIFT?","parallax_subtitle":"We believe very strongly that there\u2019s something for everyone, and that there\u2019s no single item that\u2019s for everyone either. If you wish to customise a gift- contact us and we'll design a gift that your gift receiver will be excited to receive! We will curate a set based on your taste, profile, and budget.","parallax_button_text":"Whatsapp Us","parallax_button_link":"https:\/\/wa.me\/message\/POBK4PFK5EWWE1","parallax_full_width":"1","slider_home_auto":"1","slider_home_show_dots":"1","slider_home_rate":"5000","slider_home_transition":"slide","slider_full_screen":"0","slide_1":"1","slide_1_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/12098776.png?width=1500&format=webp","slide_1_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/12098781.webp?width=900&format=webp","slide_1_link":"https:\/\/thealign.live\/","slide_1_alt":"","slide_1_title":"ON-SITE PERSONALISATION","slide_1_subtitle":"","slide_1_button_text":"FIND OUT MORE","slide_2":"1","slide_2_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/12098784.png?width=1500&format=webp","slide_2_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/12004797.jpeg?width=900&format=webp","
4661slide_2_link":"https:\/\/www.thealign.co\/pages\/laser-engraving-personalization","slide_2_alt":"","slide_2_title":"LASER ENGRAVING","slide_2_subtitle":"","slide_2_button_text":"FIND OUT MORE","slide_3":"","slide_3_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/12098769.png?width=1500&format=webp","slide_3_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/12098770.webp?width=900&format=webp","slide_3_link":"https:\/\/www.thealign.co\/pages\/leather-corporate-workshops","slide_3_alt":"","slide_3_title":"LEATHER WORKSHOP","slide_3_subtitle":"","slide_3_button_text":"FIND OUT MORE","slide_4":"","slide_4_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/12098759.png?width=1500&format=webp","slide_4_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/11562965.jpg?width=900&format=webp","slide_4_link":"https:\/\/www.thealign.co\/pages\/leather-personalisation-events","slide_4_alt":"","slide_4_title":"HEAT EMBOSSING","slide_4_subtitle":"","slide_4_button_text":"FIND OUT MORE","slide_5":"","slide_5_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/12098747.png?width=1500&format=webp","slide_5_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581233.jpeg?width=900&format=webp","slide_5_link":"https:\/\/www.thealign.co\/collections\/new-arrival","slide_5_alt":"","slide_5_title":"LEATHER GIFT SET","slide_5_subtitle":"","slide_5_button_text":"SHOP NOW","slide_6":"","slide_6_jpg":"","slide_6_mobile_jpg":"","slide_6_link":"","slide_6_alt":"","slide_6_title":"","slide_6_subtitle":"","slide_6_button_text":"","testimonial_slide_img_crop":"1","testimonial_slide_1_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7490808.jpeg?width=1500&format=webp","testimonial_slide_1_title":"Littlelaboo","testimonial_slide_1_content":"Thank u so much!  Perfect gifts for family and friends!","testimonial_slide_1_text_link":"Read more","testimonial_slide_1_link":"https:\/\/shopee.com.my\/Genuine-Leather-Keychain-(Free-Name-Embossing)-i.9972129.7347444911?position=1","testimonial_slide_2_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7490810.jpeg?width=1500&format=webp","testimonial_slide_2_title":"sabrinajamaluddin","testimonial_slide_2_content":"LOVE IT! Really good quality leather. So excited to see it age.    The paper is nice and thick. It\u2019s also refillable so this can be used as a binder for a looong time. Huge bonus: the seller was so kind and added in the stretchy band I requested (!!). Had so much fun speaking to them \ud83d\ude02","testimonial_slide_2_text_link":"Read more","testimonial_slide_2_link":"https:\/\/shopee.com.my\/A5-Brown-Genuine-Leather-Binder-Journal-Notebook-(Refillable)-FREE-gold-foil-name-embossing-i.9972129.7747433471","testimonial_slide_3_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7491931.jpeg?width=1500&format=webp","testimonial_slide_3_title":"gvhhh","testimonial_slide_3_content":"the seller was very pleasant to deal with! they answered my questions quickly and politely. the wallet arrived fast, and is of very good quality. the leather is durable and smooth. embossing is of high quality too. seller included a handwritten card, which was very nice of them!","testimonial_slide_3_text_link":"Read more","testimonial_slide_3_link":"https:\/\/shopee.com.my\/Genuine-Leather-Card-Holder-7-Slots-(Free-Name-Embossing)-i.9972129.4660486770","testimonial_slide_4_img":"","testimonial_slide_4_title":"tihnchern","testimonial_slide_4_content":"You\u2019re buying for a local artist that care very much on quality of the product till the unboxing experience. Handcrafted , full grain leather. At first I thought the sides are brass snaps button. However it is not detachable. Overall, a satisfied experience!","testimonial_slide_4_text_link":"Read more","testimonial_slide_4_link":"https:\/\/shopee.com.my\/Genuine-Leather-Valet-Tray-(Free-Name-Embossing)-i.9972129.7047441668","testimonial_slide_5_img":"","testimonial_slide_5_title":"fire2227","testimonial_slide_5_content":"Very nice handcrafted leather valet at an affordable price. Free gold embossing service added with no additional cost.  Delivery was quick, received item via DHL just 2 days after purchase. Item is well packed and protected in a hard cardboard box. Recommended seller !","testimonial_slide_5_text_link":"Read more","testimonial_slide_5_link":"https:\/\/shopee.com.my\/Genuine-Leather-Valet-Tray-(Free-Name-Embossing)-i.9972129.7047441668","testimonial_slide_6_img":"","testimonial_slide_6_title":"","testimonial_slide_6_content":"","testimonial_slide_6_text_link":"","testimonial_slide_6_link":"","logo_list_on_footer":"1","logo_list_title":"As Featured On","logo_list_1_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581304.png?width=350&format=webp","logo_list_1_link":"https:\/\/vulcanpost.com\/760038\/align-collection-handmade-leather-products-malaysia\/?fbclid=IwAR3HzTMWeHiaaVHXigOxaSRvGQaHQ8ikCKUB6dtkb2H2Wf-OO1BkI4iWc0M","logo_list_2_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581311.png?width=350&format=webp","logo_list_2_link":"https:\/\/www.optionstheedge.com\/topic\/people\/align-cos-personalised-leather-crafted-items-make-meaningful-gifts-corporate-and","logo_list_3_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581320.jpeg?width=350&format=webp","logo_list_3_link":"https:\/\/www.instagram.com\/tv\/CECAzGWg2Zp\/?utm_source=ig_web_copy_link","logo_list_4_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581313.png?width=350&format=webp","logo_list_4_link":"https:\/\/alignco.easy.co\/collections\/all","logo_list_5_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7503276.png?width=350&format=webp","logo_list_5_link":"https:\/\/alignco.easy.co\/collections\/all","logo_list_6_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7581324.png?width=350&format=webp","logo_list_6_link":"","logo_list_7_img":"","logo_list_7_link":"\/collections\/all","logo_list_8_img":"https:\/\/cdn.store-assets.com\/s\/805787\/f\/7503274.png?width=350&format=webp","logo_list_8_link":"https:\/\/mcomart.my\/blog\/faces-behind-the-business.html","home_featured_products":"feature-on-homepage","home_featured_products_num":"20","home_featured_products_row_num":"7","home_featured_products_show_heading":"","home_page_content":"home","home_page_show_heading":"0","home_page_add_to_cart":"1","scroll_to_top_button":"on-right","product_quantity_enable":"1","product_image_zoom_type":"lightbox","product_thumbnails_position":"below","product_related_enable":true,"products_per_row":4,"products_list_per_row":"4","product_page_float_bt
4661n":"1","product_page_variants_tag":"1","featured_product_title":"Featured Products","product_img_res":"grande","product_img_crop":"product_img-crop ratio_1-1","collections_show_sale_circle":"1","collections_show_sold_out_circle":"1","collections_sort_enable":true,"collections_tags_enable":"0","collections_products_per_row":"3","collections_rows":"6","footer_bar":"1","footer_bar_icon_product_page":"1","footer_bar_icon_1":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5590.png?width=150&format=webp","footer_bar_icon_1_text":"Home","footer_bar_icon_1_link":"\/","footer_bar_icon_2":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5591.png?width=150&format=webp","footer_bar_icon_2_text":"All products","footer_bar_icon_2_link":"\/collections\/all","footer_bar_icon_3":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5592.png?width=150&format=webp","footer_bar_icon_3_text":"Promotions","footer_bar_icon_3_link":"\/collections\/all","footer_bar_icon_4":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5593.png?width=150&format=webp","footer_bar_icon_4_text":"Account","footer_bar_icon_4_link":"\/account\/login","cart_enable_ajax":"1","social_sharing_products":"1","social_sharing_blog":"1","social_sharing_count":"1","share_facebook":"1","share_twitter":"1","share_line":"1","share_pinterest":"1","facebook_url":"https:\/\/www.facebook.com\/align.co.my","twitter_url":"","pinterest_url":"","instagram_url":"https:\/\/www.instagram.com\/thealign.co\/","tumblr_url":"","youtube_url":"https:\/\/www.youtube.com\/watch?v=kMCbWOCf3R8","vimeo_url":"","wechat_url":"","whatsapp_url":"https:\/\/wa.me\/message\/POBK4PFK5EWWE1","line_url":"","featured_blog":"https:\/\/thealignco.wixsite.com\/launch","featured_blog_title":"Blog","articles_handle_1":"","articles_handle_2":"","articles_handle_3":"","use_original_image":"0","promotion_uis":{"primary_color":"#4089e4","header_bg_color":"#4089e4","header_text_color":"#fff","recommendation":{"is_show_product_page":true,"is_show_cart_page_top":true,"is_show_cart_page_bottom":true},"voucher_widget":{"primary_color":"#4089e4"}},"show_multiple_currencies":true,"supported_currencies":"MYR ","theme_id":2877,"theme_is_edited":1,"theme_updated_at":"2026-08-18T18:01:04.000Z","phone_account_enabled":false,"line_login_enabled":false,"apple_login_enabled":false,"timezone":"Asia\/Kuala_Lumpur","is_server_side_currency_conversion":true,"is_self_registration_enabled":true,"is_highlight_enabled":false,"is_auto_gen_highlight_enabled":false,"is_common_question_enabled":false,"is_auto_gen_common_question_enabled":false,"highlight_section_title":"Highlights","common_question_section_title":"Frequently asked questions","is_new_promotion_enabled":true}
4662        if (settings.promotion_uis.voucher_widget != null) {
4663          setVoucherTheme(settings.promotion_uis.voucher_widget)
4664        }
4665        var shop = {
4666          money_prefix: "",
4667          format_decimals: ""
4668        };
4669        var _getEntitlementTranslation = {
4670          "free_shipping": "FREE SHIPPING",
4671          "free_of_charge": "FREE GIFT",
4672        }
4673        var _getTargetTypeTranslation = {
4674          "amount_credit": " CREDIT",
4675          "amount_off": " OFF",
4676        }
4677        var _getPrerequisiteTranslation = {
4678          "min_quantity": "Min formatValue item(s) purchase",
4679          "every_quantity": "Every formatValue item(s) purchase",
4680          "min_amount": "Min formatCurrency spend",
4681          "every_amount": "Every formatCurrency spend"
4682        }
4683        var _getPrerequisiteConditionTranslation = {
4684          "selected_items": "Selected Items",
4685          "selected_collections": "Selected Collections",
4686          "storewide": "Storewide",
4687          "order_subtotal": "Order Subtotal"
4688        }
4689        var _getVoucherButtonTextTranslation = {
4690          "apply": "Apply",
4691        }
4692        var _getVoucherErrorTranslation = {
4693          "condition_not_matched": "Voucher condition not matched"
4694        }
4695      </script>
4695
4696
4697    </div>
4698  </div>
4699</vouchers-modal>
4700  
4701  
4702</body>
4703</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.