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 – 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.&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()">×</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 × 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">›</span> 2094 2095 2096 <a href="/collections/feature-on-homepage">Feature on homepage</a> 2097 2098 2099 <span aria-hidden="true" class="breadcrumb__sep">›</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 &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-&media=&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('&', '&').replace('>','>').replace('<','<').replace('/','/').replace('â', '"').replace("'","'") }</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. </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. </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> </u></strong></p><p>Most of our products come with complimentary name embossing option! </p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. </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. </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! </p><p><br></p><p><strong><u><span style="font-size: 18px;">The Gifting Experience </span></u></strong></p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! </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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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. <\/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. <\/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> <\/u><\/strong><\/p><p>Most of our products come with complimentary name embossing option! <\/p><p><em>*Exception: Discounted products (ongoing promotions) do not qualify for our complimentary personalisation service. If personalisation is required, kindly select “personalisation service” on the website. <\/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. <\/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! <\/p><p><br><\/p><p><strong><u><span style=\"font-size: 18px;\">The Gifting Experience <\/span><\/u><\/strong><\/p><p>We want your gifting experience to be exceptional, filled with thoughtful details. That’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> adorned with premium grade ribbon ties, with tiny delights that will put a smile on your face. Please consider reusing, recycling, or repurposing them! <\/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.