It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: https://fabulous1.easy.co/products/online-seo

  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/922320/f/8463850.png" />
  15.  
  16.  
  17.  <!-- Title and description ================================================== -->
  18.  <title>
  19.  online seo &ndash; Fabulous
  20.  </title>
  21.  
  22.  
  23.  <meta name="description" content="Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about provi">
  24.  
  25.  
  26.  <!-- Social meta ================================================== -->
  27.  
  28.  
  29.  <meta property="og:type" content="product">
  30.  <meta property="og:title" content="online seo">
  31.  <meta property="og:url" content="https://fabulous1.easy.co/products/online-seo">
  32.  
  33.  <meta property="og:price:amount" content="50">
  34.  <meta property="og:price:currency" content="USD">
  35.  
  36.  
  37. <meta property="og:description" content="Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It's not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it's about provi">
  38. <meta property="og:site_name" content="Fabulous">
  39.  
  40.  
  41.  
  42.  <meta name="twitter:card" content="summary">
  43.  
  44.  
  45.  
  46.  <meta name="twitter:site" content="@">
  47.  
  48.  
  49.  <meta name="twitter:title" content="online seo">
  50.  <meta name="twitter:description" content="Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&amp;#39;s not just about stuffing keywords into content or acquiring a">
  51.  <meta name="twitter:image" content="/assets/images/products/no_image.png">
  52.  <meta name="twitter:image:width" content="480">
  53.  <meta name="twitter:image:height" content="480">
  54.  
  55.  
  56.  
  57.  
  58.  <!-- Helpers ================================================== -->
  59.  <link rel="canonical" href="https://fabulous1.easy.co/products/online-seo">
  60.  <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
  61.  <meta name="theme-color" content="#121212">
  62.  
  63.  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
  64.  
  65.  <!-- Header hook for plugins ================================================== -->
  66.  
  67. <!-- ScriptTags -->
  68. <script>window.__st={'p': 'product', 'cid': ''};</script><script src='/assets/events.js'></script><script>const __es_ads = {'country_code':'PK' ,'title': 'Online store by <img src="https://s3.ap-southeast-1.amazonaws.com/easystore.website/images/logo/svg/easystore-logo-horizontal.svg" alt="EasyStore" style="display: block !important;width:8em;margin:-2px 0 0 8px;"> <i style="width: 1px;height: 25px;margin: 0 10px;background: #E3E7EB;"></i> Create yours for free today.','title_mb': 'Create online store with <img src="https://s3.ap-southeast-1.amazonaws.com/easystore.website/images/logo/svg/easystore-logo-horizontal.svg" alt="EasyStore" style="display: block !important;width:8em;margin:-2px 8px 0;">','cta': 'Get started'}</script><script src='/assets/js/ads/storefront-ads.js'></script><script>(function(){function asyncLoad(){var urls=['/assets/traffic.js?v=1'];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>
  69. <!-- /ScriptTags -->
  70.  
  71.  
  72.  
  73.  <script src="https://themes.easystore.co/63057/assets/global.js?t=1716787059" defer="defer"></script>
  74.  
  75.  
  76.  
  77.  <script>
  78.  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  79.  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  80.  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  81.  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  82.  
  83.  ga('create', 'UA-37789107-2', 'auto','myTracker');
  84.  ga('myTracker.send', 'pageview');
  85.  
  86.  </script>
  87.  
  88.  <script src="/assets/storefront.js?id=3f4f74218829cbf9e2d5" type="text/javascript" ></script>
  89.  
  90.  
  91.  <!-- CSS ================================================== -->
  92.  <style>
  93.      @font-face {
  94.        font-family: 'Rubik';
  95.        font-style: normal;
  96.        font-weight: regular;
  97.        src: local('Rubik regular'), local('Rubik-regular'), url(https://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4i1UE80V4bVkA.ttf) format('truetype');
  98.      }
  99.  
  100.      @font-face {
  101.        font-family: 'Archivo Black';
  102.        font-style: normal;
  103.        font-weight: regular;
  104.        src: local('Archivo Black regular'), local('Archivo Black-regular'), url(https://fonts.gstatic.com/s/archivoblack/v10/HTxqL289NzCGg4MzN6KJ7eW6OYuP_x7yx3A.ttf) format('truetype');
  105.      }
  106.  
  107.      :root {
  108.        --font-body-family: 'Rubik', sans-serif;
  109.        --font-body-style: normal;
  110.        --font-body-weight: 300;
  111.  
  112.        --font-heading-family: 'Archivo Black', sans-serif;
  113.        --font-heading-style: normal;
  114.        --font-heading-weight: 700;
  115.  
  116.        --color-heading-text: 18,18,18;
  117.        --color-base-text: 18,18,18;
  118.        --color-base-background-1: 255,255,255;
  119.        --color-base-background-2: 255,255,255;
  120.        
  121.        --color-base-solid-button-labels: 255,255,255;
  122.        --color-base-outline-button-labels: 18,18,18;
  123.        
  124.        --color-base-accent-1: 18,18,18;
  125.        --color-base-accent-2: 18,18,18;
  126.        --payment-terms-background-color: 255,255,255;
  127.  
  128.        --gradient-base-background-1: 255,255,255;
  129.        --gradient-base-background-2: 255,255,255;
  130.        --gradient-base-accent-1: 18,18,18;
  131.        --gradient-base-accent-2: 18,18,18;
  132.  
  133.        --page-width: 145rem;
  134.      }
  135.  
  136.      *,
  137.      *::before,
  138.      *::after {
  139.        box-sizing: inherit;
  140.      }
  141.  
  142.      html {
  143.        box-sizing: border-box;
  144.        font-size: 62.5%;
  145.        height: 100%;
  146.      }
  147.  
  148.      body {
  149.        display: grid;
  150.        grid-template-rows: auto auto 1fr auto;
  151.        grid-template-columns: 100%;
  152.        min-height: 100%;
  153.        margin: 0;
  154.        font-size: 1.5rem;
  155.        letter-spacing: 0.06rem;
  156.        line-height: 1.8;
  157.        font-family: var(--font-body-family);
  158.        font-style: var(--font-body-style);
  159.        font-weight: var(--font-body-weight);
  160.        
  161.      }
  162.  
  163.      @media screen and (min-width: 750px) {
  164.        body {
  165.          font-size: 1.6rem;
  166.        }
  167.      }
  168.   </style>
  169.  
  170.  <link href="https://themes.easystore.co/63057/assets/base.css?t=1716787059" rel="stylesheet" type="text/css" media="screen" />
  171.  
  172.  
  173.  
  174. <!-- Snippet:global/head: Google Analytics -->
  175. <script>ga('create', 'UA-37789107-9', 'auto', 'SFTracker'); ga('SFTracker.set', 'hostname', '{https://fabulous1.easy.co}'); ga('SFTracker.send', 'pageview');</script>
  176.                    <script>$(document).ready(function(){ $('#AddToCart').click(function(){ga('SFTracker.send','event', 'Cart', 'Add');});
  177.                    $('.update-cart').click(function(){ga('SFTracker.send','event', 'Cart', 'Update');});
  178.                    $('.checkout').click(function(){ga('SFTracker.send','event', 'Checkout', 'Lead');});
  179.                    $('#PlaceOrder,#btn-pay-again').click(function(){ga('SFTracker.send','event', 'Checkout', 'Pay');});});
  180.                    if (window.performance) { var timeSincePageLoad = Math.round(performance.now());
  181.                      ga('SFTracker.send', 'timing', 'JS Dependencies', 'load', timeSincePageLoad);}</script>
  182. <!-- /Snippet -->
  183.  
  184.  
  185.  <script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
  186. </head>
  187.  
  188. <body id="online-seo" class="template-product" >
  189.  
  190. <!-- Snippet:global/body_start: Console Extension -->
  191. <div id='es_console' style='display: none;'>1346176</div>
  192. <!-- /Snippet -->
  193.  
  194. <style>
  195.  header {
  196.    --logo-width: 120px;
  197.  }
  198.  .header-wrapper,
  199.  .header-wrapper .list-menu--disclosure,
  200.  .header-wrapper .search-modal{
  201.    background-color: #F1F1F1;
  202.  }
  203.  .header-wrapper .search-modal .field__input{
  204.    background-color: rgb(var(--color-background));
  205.  }
  206.  .header-wrapper summary .icon-caret,
  207.  .header-wrapper .header__menu-item a,
  208.  .header-wrapper .list-menu__item,
  209.  .header-wrapper .link--text{
  210.    color: #000000;
  211.  }
  212.  
  213.  .search-modal__form{
  214.    position: relative;
  215.  }
  216.  
  217.  .dropdown {
  218.    display: none;
  219.    position: absolute;
  220.    top: 100%;
  221.    left: 0;
  222.    width: 100%;
  223.    padding: 5px 0;
  224.    background-color: #fff;
  225.    color:#000;
  226.    z-index: 1000;
  227.    border-bottom-left-radius: 15px;
  228.    border-bottom-right-radius: 15px;
  229.    border: 1px solid rgba(var(--color-foreground), 1);
  230.    border-top: none;
  231.    overflow-x: hidden;
  232.    overflow-y: auto;
  233.    max-height: 350px;
  234.  }
  235.  
  236.  .dropdown-item {
  237.    padding: 0.4rem 2rem;
  238.    cursor: pointer;
  239.    line-height: 1.4;
  240.    overflow: hidden;
  241.    text-overflow: ellipsis;
  242.    white-space: nowrap;
  243.  }
  244.  
  245.  .dropdown-item:hover{
  246.    background-color: #f3f3f3;
  247.  }
  248.  
  249.  .search__input.is-focus{
  250.    border-radius: 15px;
  251.    border-bottom-left-radius: 0;
  252.    border-bottom-right-radius: 0;
  253.    border: 1px solid rgba(var(--color-foreground), 1);
  254.    border-bottom: none;
  255.    box-shadow: none;
  256.  }
  257.  
  258.  .clear-all {
  259.    text-align: right;
  260.    padding: 0 2rem 0.2rem;
  261.    line-height: 1;
  262.    font-size: 70%;
  263.    margin-bottom: -2px;
  264.  }
  265.  
  266.  .clear-all:hover{
  267.    background-color: #fff;
  268.  }
  269.  
  270.  .search-input-focus .easystore-section-header-hidden{
  271.    transform: none;
  272.  }
  273. </style>
  274.  
  275. <link rel="preload" href="https://themes.easystore.co/63057/assets/section-header.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  276. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-list-menu.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  277. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-menu-drawer.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  278. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-cart-notification.css?v1.1?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  279.  
  280. <script src="https://themes.easystore.co/63057/assets/cart-notification.js?t=1716787059" defer="defer"></script>
  281. <script src="https://themes.easystore.co/63057/assets/details-modal.js?t=1716787059" defer="defer"></script>
  282.  
  283. <svg xmlns="http://www.w3.org/2000/svg" class="hidden">
  284.  <symbol id="icon-search" viewbox="0 0 18 19" fill="none">
  285.    <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/>
  286.  </symbol>
  287.  
  288.  <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17">
  289.    <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">
  290.  </symbol>
  291. </svg>
  292.  
  293.  
  294. <div id="easystore-section-header">
  295.  <sticky-header class="header-wrapper header-wrapper--border-bottom">
  296.    <header class="header header--middle-left page-width header--has-menu">
  297.      <header-drawer data-breakpoint="tablet">
  298.        <details class="menu-drawer-container menu-opening">
  299.          <summary class="header__icon header__icon--menu header__icon--summary link link--text focus-inset" aria-label="Menu" role="button" aria-expanded="true" aria-controls="menu-drawer">
  300.            <span>
  301.              
  302.  
  303.  
  304.    <svg class="icon icon-hamburger " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M32.5,65h535a25,25,0,0,0,0-50H32.5a25,25,0,0,0,0,50Z" fill="currentColor"/><path d="M567.5,275H32.5a25,25,0,0,0,0,50h535a25,25,0,0,0,0-50Z" fill="currentColor"/><path d="M567.5,535H32.5a25,25,0,0,0,0,50h535a25,25,0,0,0,0-50Z" fill="currentColor"/></svg>
  305.  
  306.  
  307.  
  308.              
  309.  
  310.  
  311.    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
  312.  
  313.  
  314.  
  315.            </span>
  316.          </summary>
  317.          <div id="menu-drawer" class="menu-drawer motion-reduce" tabindex="-1">
  318.            <div class="menu-drawer__inner-container">
  319.              <div class="menu-drawer__navigation-container">
  320.                <nav class="menu-drawer__navigation">
  321.                  <ul class="menu-drawer__menu list-menu" role="list">
  322.                    
  323.                    
  324.                      
  325.                        <li>
  326.                          <a href="/"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
  327.                            Home
  328.                          </a>
  329.                        </li>
  330.                      
  331.                    
  332.                    
  333.                      
  334.                        
  335.                        <li>
  336.                          <details>
  337.                                <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
  338.                                  <a href="/collections/all"  class="link--text list-menu__item menu-drawer__menu-item">
  339.                                    Catalog
  340.                                  </a>
  341.                                  
  342.  
  343.  
  344.    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
  345.  
  346.  
  347.  
  348.                                  
  349.  
  350.  
  351.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
  352.      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
  353.    </svg>
  354.  
  355.  
  356.  
  357.                                </summary>
  358.                                <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
  359.                                  <div class="menu-drawer__inner-submenu">
  360.                                    <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
  361.                                      
  362.  
  363.  
  364.    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
  365.  
  366.  
  367.  
  368.                                      Catalog
  369.                                    </button>
  370.                                    <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
  371.                                      
  372.                                        
  373.                                        
  374.                                          <li>
  375.                                            <a href="/collections/new-arrival"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
  376.                                              New arrival
  377.                                            </a>
  378.                                          </li>
  379.                                        
  380.                                      
  381.                                        
  382.                                        
  383.                                          <li>
  384.                                            <a href="/collections/hot-selling"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
  385.                                              Hot selling
  386.                                            </a>
  387.                                          </li>
  388.                                        
  389.                                      
  390.                                      
  391.                                    </ul>
  392.                                  </div>
  393.                                </div>
  394.                          </details>
  395.                        </li>
  396.                      
  397.                    
  398.                    
  399.                      
  400.                        <li>
  401.                          <a href="/blogs/news"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
  402.                            News
  403.                          </a>
  404.                        </li>
  405.                      
  406.                    
  407.                    
  408.                      
  409.                        <li>
  410.                          <a href="/store-locator"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
  411.                            Location
  412.                          </a>
  413.                        </li>
  414.                      
  415.                    
  416.                  </ul>
  417.                </nav>
  418.  
  419.                <div class="menu-drawer__utility-links">
  420.  
  421.                  
  422.  
  423.  
  424.  
  425.  
  426.                  
  427.                  
  428.                  
  429.                    <a href="/account/login" class="menu-drawer__account link link--text focus-inset h5">
  430.                      
  431.  
  432.  
  433.    <svg class="icon icon-account " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M300,296.19c-70.7,0-137.11,28.74-187,80.93-49.59,51.87-76.9,120.77-76.9,194v25H563.89v-25c0-73.22-27.31-142.12-76.9-194C437.11,324.93,370.7,296.19,300,296.19ZM87.42,546.11C99.29,433.81,190.1,346.19,300,346.19s200.71,87.62,212.58,199.92Z" fill="currentColor"/><path d="M300,285.34c77.6,0,140.73-63.13,140.73-140.73S377.6,3.89,300,3.89,159.27,67,159.27,144.61,222.4,285.34,300,285.34Zm0-231.45a90.73,90.73,0,1,1-90.73,90.72A90.82,90.82,0,0,1,300,53.89Z" fill="currentColor"/></svg>
  434.  
  435.  
  436.                      
  437.                      Log in
  438.                    </a>
  439.                  
  440.                    <a href="/account/register" class="menu-drawer__account link link--text focus-inset h5">
  441.                      
  442.                      
  443.  
  444.  
  445.    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-plus " fill="none" viewBox="0 0 10 10">
  446.      <path fill-rule="evenodd" clip-rule="evenodd" d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z" fill="currentColor"></path>
  447.    </svg>
  448.  
  449.  
  450.                      Create account
  451.                    </a>
  452.                  
  453.                  
  454.                  
  455.                </div>
  456.              </div>
  457.            </div>
  458.          </div>
  459.        </details>
  460.      </header-drawer>
  461.  
  462.      
  463.        <h1 class="header__heading">
  464.          Fabulous
  465.        </h1>
  466.      
  467.  
  468.      
  469.      <div class="header__search-input" tabindex="-1">
  470.        <form action="/search" method="get" role="search" class="search search-modal__form">
  471.          <div class="field">
  472.            <input class="search__input field__input"
  473.              id="Search-In-Modal"
  474.              type="search"
  475.              name="q"
  476.              value=""
  477.              placeholder="Search"
  478.              autocomplete="off"
  479.            >
  480.            <label class="field__label" for="Search-In-Modal">Search</label>
  481.            <div class="dropdown" id="searchDropdown"></div>
  482.            <input type="hidden" name="search_history" class="hidden_search_history">
  483.            <input type="hidden" name="options[prefix]" value="last">
  484.            <button class="search__button field__button" aria-label="Search">
  485.              <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation">
  486.                <use href="#icon-search">
  487.              </svg>
  488.            </button>
  489.          </div>
  490.        </form>
  491.      </div>
  492.      
  493.  
  494.      <nav class="header__inline-menu">
  495.        <ul class="list-menu list-menu--inline" role="list">
  496.          
  497.            
  498.              
  499.                <li>
  500.                  <a href="/"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
  501.                    Home
  502.                  </a>
  503.                </li>
  504.              
  505.            
  506.            
  507.              
  508.                
  509.                <li>
  510.                  <details-disclosure>
  511.                    <details>
  512.                      <summary class="header__menu-item list-menu__item link focus-inset">
  513.                        <a href="/collections/all"  >Catalog</a>
  514.                        
  515.  
  516.  
  517.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
  518.      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
  519.    </svg>
  520.  
  521.  
  522.  
  523.                      </summary>
  524.                      <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1">
  525.                        
  526.                        
  527.                        
  528.                          
  529.                            
  530.                            <li>
  531.                              <a href="/collections/new-arrival"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">
  532.                                New arrival
  533.                              </a>
  534.                            </li>
  535.                          
  536.                        
  537.                        
  538.                          
  539.                            
  540.                            <li>
  541.                              <a href="/collections/hot-selling"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">
  542.                                Hot selling
  543.                              </a>
  544.                            </li>
  545.                          
  546.                        
  547.                      </ul>
  548.                    </details>
  549.                  </details-disclosure>
  550.                </li>
  551.              
  552.            
  553.            
  554.              
  555.                <li>
  556.                  <a href="/blogs/news"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
  557.                    News
  558.                  </a>
  559.                </li>
  560.              
  561.            
  562.            
  563.              
  564.                <li>
  565.                  <a href="/store-locator"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
  566.                    Location
  567.                  </a>
  568.                </li>
  569.              
  570.            
  571.            
  572.            
  573.              
  574.                
  575.                  
  576.                
  577.                  
  578.                
  579.              
  580.            
  581.        </ul>
  582.      </nav>
  583.      <div class="header__icons">
  584.  
  585.        
  586.          
  587.            <div class="header__icon header__icon--account link link--text focus-inset small-hide medium-hide">
  588.              <a href="/account/login" class="header__icon link link--text focus-inset p-2">
  589.                
  590.  
  591.  
  592.    <svg class="icon icon-account " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M300,296.19c-70.7,0-137.11,28.74-187,80.93-49.59,51.87-76.9,120.77-76.9,194v25H563.89v-25c0-73.22-27.31-142.12-76.9-194C437.11,324.93,370.7,296.19,300,296.19ZM87.42,546.11C99.29,433.81,190.1,346.19,300,346.19s200.71,87.62,212.58,199.92Z" fill="currentColor"/><path d="M300,285.34c77.6,0,140.73-63.13,140.73-140.73S377.6,3.89,300,3.89,159.27,67,159.27,144.61,222.4,285.34,300,285.34Zm0-231.45a90.73,90.73,0,1,1-90.73,90.72A90.82,90.82,0,0,1,300,53.89Z" fill="currentColor"/></svg>
  593.  
  594.  
  595.  
  596.                <span id="my-account" class="header__link-label">Login</span>
  597.              </a>
  598.          </div>
  599.          
  600.        
  601.  
  602.        <a href="/cart" class="header__icon link link--text focus-inset" id="cart-icon-bubble">
  603.          <span class="header__icon--cart">
  604.            
  605.  
  606.  
  607.    <svg class="icon icon-cart-empty " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496.56 600"><path d="M453.52,128.63a25,25,0,0,0-24.91-22.8H364.72a117.48,117.48,0,0,0-232.89,0H67.94A25,25,0,0,0,43,128.63L8.8,515.21a72.11,72.11,0,0,0,19.05,55.6,79,79,0,0,0,58.22,25.3H410.49a79,79,0,0,0,58.22-25.3,72.11,72.11,0,0,0,19.05-55.6ZM248.28,53.89a67.58,67.58,0,0,1,65.65,51.94H182.63A67.57,67.57,0,0,1,248.28,53.89ZM431.83,537.05a28.85,28.85,0,0,1-21.34,9.06H86.07a28.85,28.85,0,0,1-21.34-9.06,22.69,22.69,0,0,1-6.13-17.43L90.82,155.83h40v51.23a25,25,0,0,0,50,0V155.83h135v51.23a25,25,0,0,0,50,0V155.83h40L438,519.62A22.68,22.68,0,0,1,431.83,537.05Z" fill="currentColor"/></svg>
  608.  
  609.  
  610.  
  611.            <div class="cart-count-bubble hidden">
  612.              <span aria-hidden="true" class="js-content-cart-count">0</span>
  613.            </div>
  614.          </span>
  615.          <span class="header__link-label medium-hide small-hide">
  616.            Cart
  617.          </span>
  618.        </a>
  619.        
  620.      </div>
  621.    </header>
  622.  </sticky-header>
  623.  
  624. <cart-notification>
  625.  <div class="cart-notification-wrapper page-width color-background-1">
  626.    <div id="cart-notification" class="cart-notification focus-inset" aria-modal="true" aria-label="Added to cart" role="dialog" tabindex="-1">
  627.      <div class="cart-notification__header">
  628.        <h2 class="cart-notification__heading caption-large">
  629.  
  630.  
  631.    <svg class="icon icon-checkmark color-foreground-text " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 9" fill="none">
  632.      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"></path>
  633.    </svg>
  634.  
  635.  
  636. Added to cart</h2>
  637.        <button type="button" class="cart-notification__close modal__close-button link link--text focus-inset" aria-label="accessibility.close">
  638.          
  639.  
  640.  
  641.    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
  642.  
  643.  
  644.  
  645.        </button>
  646.      </div>
  647.      <div id="cart-notification-product" class="cart-notification-product"></div>
  648.      <div class="cart-notification__links">
  649.        <a href="/cart" id="cart-notification-button" class="button button--secondary button--full-width">View cart (<span class="js-content-cart-count">0</span>)</a>
  650.        <form action="/cart" method="post" id="cart-notification-form">
  651.          <input type="hidden" name="_token" value="67ovKO6w85gIbzw8IDHxcGcrsL7j1aGJ50hriNB3">
  652.          <input type="hidden" name="current_currency" value="USD">
  653.          <button class="button button--primary button--full-width" name="checkout" value="true">Checkout</button>
  654.        </form>
  655.        <button type="button" class="link button-label">Continue shopping</button>
  656.      </div>
  657.    </div>
  658.  </div>
  659. </cart-notification>
  660. <style>
  661.  .cart-notification {
  662.     display: none;
  663.  }
  664. </style>
  665. <script>
  666. document.getElementById('cart-notification-form').addEventListener('submit',(event)=>{
  667.  if(event.submitter) event.submitter.classList.add('loading');
  668. })
  669.  
  670. </script>
  671.  
  672. </div>
  673.  
  674.  
  675. <script>
  676.  
  677.  class StickyHeader extends HTMLElement {
  678.    constructor() {
  679.      super();
  680.    }
  681.  
  682.    connectedCallback() {
  683.      this.header = document.getElementById('easystore-section-header');
  684.      this.headerBounds = {};
  685.      this.currentScrollTop = 0;
  686.      this.preventReveal = false;
  687.  
  688.      this.onScrollHandler = this.onScroll.bind(this);
  689.      this.hideHeaderOnScrollUp = () => this.preventReveal = true;
  690.  
  691.      this.addEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp);
  692.      window.addEventListener('scroll', this.onScrollHandler, false);
  693.  
  694.      this.createObserver();
  695.    }
  696.  
  697.    disconnectedCallback() {
  698.      this.removeEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp);
  699.      window.removeEventListener('scroll', this.onScrollHandler);
  700.    }
  701.  
  702.    createObserver() {
  703.      let observer = new IntersectionObserver((entries, observer) => {
  704.        this.headerBounds = entries[0].intersectionRect;
  705.        observer.disconnect();
  706.      });
  707.  
  708.      observer.observe(this.header);
  709.    }
  710.  
  711.    onScroll() {
  712.      const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
  713.  
  714.      if (scrollTop > this.currentScrollTop && scrollTop > this.headerBounds.bottom) {
  715.        requestAnimationFrame(this.hide.bind(this));
  716.      } else if (scrollTop < this.currentScrollTop && scrollTop > this.headerBounds.bottom) {
  717.        if (!this.preventReveal) {
  718.          requestAnimationFrame(this.reveal.bind(this));
  719.        } else {
  720.          window.clearTimeout(this.isScrolling);
  721.  
  722.          this.isScrolling = setTimeout(() => {
  723.            this.preventReveal = false;
  724.          }, 66);
  725.  
  726.          requestAnimationFrame(this.hide.bind(this));
  727.        }
  728.      } else if (scrollTop <= this.headerBounds.top) {
  729.        requestAnimationFrame(this.reset.bind(this));
  730.      }
  731.  
  732.  
  733.      this.currentScrollTop = scrollTop;
  734.    }
  735.  
  736.    hide() {
  737.      this.header.classList.add('easystore-section-header-hidden', 'easystore-section-header-sticky');
  738.      this.closeMenuDisclosure();
  739.      // this.closeSearchModal();
  740.    }
  741.  
  742.    reveal() {
  743.      this.header.classList.add('easystore-section-header-sticky', 'animate');
  744.      this.header.classList.remove('easystore-section-header-hidden');
  745.    }
  746.  
  747.    reset() {
  748.      this.header.classList.remove('easystore-section-header-hidden', 'easystore-section-header-sticky', 'animate');
  749.    }
  750.  
  751.    closeMenuDisclosure() {
  752.      this.disclosures = this.disclosures || this.header.querySelectorAll('details-disclosure');
  753.      this.disclosures.forEach(disclosure => disclosure.close());
  754.    }
  755.  
  756.    // closeSearchModal() {
  757.    //   this.searchModal = this.searchModal || this.header.querySelector('details-modal');
  758.    //   this.searchModal.close(false);
  759.    // }
  760.  }
  761.  
  762.  customElements.define('sticky-header', StickyHeader);
  763.  
  764.  
  765.  class DetailsDisclosure extends HTMLElement{
  766.    constructor() {
  767.      super();
  768.      this.mainDetailsToggle = this.querySelector('details');
  769.      // this.mainDetailsToggle.addEventListener('focusout', this.onFocusOut.bind(this));
  770.      this.mainDetailsToggle.addEventListener('mouseover', this.open.bind(this));
  771.      this.mainDetailsToggle.addEventListener('mouseleave', this.close.bind(this));
  772.    }
  773.  
  774.    onFocusOut() {
  775.      setTimeout(() => {
  776.        if (!this.contains(document.activeElement)) this.close();
  777.      })
  778.    }
  779.  
  780.    open() {
  781.      this.mainDetailsToggle.setAttribute('open',1)
  782.    }
  783.  
  784.    close() {
  785.      this.mainDetailsToggle.removeAttribute('open')
  786.    }
  787.  }
  788.  
  789.  customElements.define('details-disclosure', DetailsDisclosure);
  790.  
  791.  function clearAll() {
  792.    localStorage.removeItem('searchHistory');
  793.    
  794.    var customer = "";
  795.    if(customer) {
  796.      // Your logic to clear all data or call an endpoint
  797.      fetch('/account/search_histories', {
  798.          method: 'DELETE',
  799.          headers: {
  800.            "Content-Type": "application/json",
  801.            "X-Requested-With": "XMLHttpRequest"
  802.          },
  803.          body: JSON.stringify({
  804.            _token: "67ovKO6w85gIbzw8IDHxcGcrsL7j1aGJ50hriNB3"
  805.          }),
  806.      })
  807.      .then(response => response.json())
  808.    }
  809.  }
  810.  // End - delete search history from local storage
  811.  
  812.  // search history dropdown  
  813.  var searchInputs = document.querySelectorAll('.search__input');
  814.  
  815.  if(searchInputs.length > 0) {
  816.    
  817.    searchInputs.forEach((searchInput)=> {
  818.    
  819.      searchInput.addEventListener('focus', function() {
  820.        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
  821.        searchDropdown.innerHTML = ''; // Clear existing items
  822.  
  823.        // retrieve data from local storage
  824.        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
  825.  
  826.        // Convert JSON to string
  827.        var search_history_json = JSON.stringify(searchHistoryData);
  828.  
  829.        // Set the value of the hidden input
  830.        searchInput.closest('form').querySelector(".hidden_search_history").value = search_history_json;
  831.  
  832.        // create dropdown items
  833.        var clearAllItem = document.createElement('div');
  834.        clearAllItem.className = 'dropdown-item clear-all';
  835.        clearAllItem.textContent = 'Clear';
  836.        clearAllItem.addEventListener('click', function() {
  837.          clearAll();
  838.          searchDropdown.style.display = 'none';
  839.          searchInput.classList.remove('is-focus');
  840.        });
  841.        searchDropdown.appendChild(clearAllItem);
  842.  
  843.        // create dropdown items
  844.        searchHistoryData.forEach(function(item) {
  845.          var dropdownItem = document.createElement('div');
  846.          dropdownItem.className = 'dropdown-item';
  847.          dropdownItem.textContent = item.term;
  848.          dropdownItem.addEventListener('click', function() {
  849.            searchInput.value = item.term;
  850.            searchInput.closest('form').submit();
  851.            searchDropdown.style.display = 'none';
  852.          });
  853.          searchDropdown.appendChild(dropdownItem);
  854.        });
  855.  
  856.        if(searchHistoryData.length > 0){
  857.          // display the dropdown
  858.          searchInput.classList.add('is-focus');
  859.          document.body.classList.add('search-input-focus');
  860.          searchDropdown.style.display = 'block';
  861.        }
  862.      });
  863.  
  864.      searchInput.addEventListener("focusout", (event) => {
  865.        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
  866.        searchInput.classList.remove('is-focus');
  867.        searchDropdown.classList.add('transparent');
  868.        setTimeout(()=>{
  869.          searchDropdown.style.display = 'none';
  870.          searchDropdown.classList.remove('transparent');
  871.          document.body.classList.remove('search-input-focus');
  872.        }, 400);
  873.      });
  874.    })
  875.  }
  876.  // End - search history dropdown
  877. </script>
  878.  
  879.  
  880.  <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
  881.    
  882.    
  883. <!-- <link href="https://themes.easystore.co/63057/assets/component-rte.css?t=1716787059" rel="stylesheet" type="text/css" media="screen" /> -->
  884. <link rel="preload" href="https://themes.easystore.co/63057/assets/section-main-product.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  885. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-price.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  886.  
  887. <style>
  888.  .product-wrapper_color{
  889.    background-color: rgba(245, 245, 245, 1);
  890.    padding: 30px;
  891.    border-radius: 20px;
  892.  }
  893.  .product-card-wrapper{
  894.    background-color: rgba(245, 245, 245, 1);
  895.  }
  896. </style>
  897.  
  898. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-slider.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  899. <script src="https://themes.easystore.co/63057/assets/product-form.js?t=1716787059" defer="defer"></script>
  900.  
  901.  
  902. <section class="product-section page-width spaced-section">
  903.  
  904.  <div class="product grid grid--1-col grid--2-col-tablet">
  905.    
  906.    
  907.  
  908.      <div class="grid__item product__media-wrapper text-center">
  909.        
  910.        <img src="/assets/images/products/no_image.png" alt="Empty Image">
  911.      </div>
  912.  
  913.    
  914.  
  915.  
  916.    <div class="grid__item product__info-wrapper">
  917.      <div id="ProductInfo" class="product__info-container product__info-container--sticky">
  918.        <div class="product-wrapper_color">
  919.          
  920.  
  921.          <h1 class="product__title">
  922.            online seo
  923.          </h1>
  924.  
  925.          <!-- price -->
  926.          <div id="price">
  927.            
  928.  
  929. <div class="price
  930.   price--large
  931.  
  932.   price--on-sale "
  933.  data-expires="">
  934.  
  935.  <dl>
  936.    <div class="price__regular">
  937.      <dt>
  938.        <span class="visually-hidden visually-hidden--inline">Regular price</span>
  939.      </dt>
  940.      <dd >
  941.        <span class="price-item price-item--regular">
  942.          
  943.            
  944.  
  945.    <span class=money data-ori-price='50.00'>$ 50.00 </span>
  946.  
  947.  
  948.          
  949.        </span>
  950.      </dd>
  951.    </div>
  952.    <div class="price__sale">
  953.      <dt>
  954.        <span class="visually-hidden visually-hidden--inline">Sale price</span>
  955.      </dt>
  956.      <dd >
  957.        <span id="ProductPrice" class="price-item price-item--sale">
  958.          
  959.            
  960.  
  961.    <span class=money data-ori-price='50.00'>$ 50.00 </span>
  962.  
  963.  
  964.          
  965.        </span>
  966.      </dd>
  967.      
  968.      <dt class="price__compare">
  969.        <span class="visually-hidden visually-hidden--inline">Regular price</span>
  970.      </dt>
  971.      <dd class="price__compare">
  972.        <s class="price-item price-item--regular">
  973.          
  974.            <span class=money data-ori-price='100.00'>$ 100.00 </span>
  975.          
  976.          
  977.        </s>
  978.      </dd>
  979.      
  980.    </div>
  981.  </dl>
  982.  
  983.    <span class="badge price__badge-sale color-accent-2" aria-hidden="true">
  984.      Sale
  985.    </span>
  986.  
  987.    <span class="badge price__badge-sold-out" aria-hidden="true">
  988.      Sold Out
  989.    </span>
  990.  
  991. </div>
  992.  
  993.          </div>
  994.  
  995.          <div class="product_upsell-info">
  996.            
  997.              
  998.              
  999.              <div class="product_upsell-box">
  1000.                
  1001.                  <div class="product_upsell-icon">
  1002.                    <img src="https://cdn.store-assets.com/s/943101/f/8656454.png" alt="Free worldwide shipping | Fabulous">
  1003.                  </div>
  1004.                
  1005.                
  1006.                  <div class="product_upsell-text">
  1007.                    Free worldwide shipping
  1008.                  </div>
  1009.                
  1010.              </div>
  1011.            
  1012.              
  1013.              
  1014.              <div class="product_upsell-box">
  1015.                
  1016.                  <div class="product_upsell-icon">
  1017.                    <img src="https://cdn.store-assets.com/s/943101/f/8656465.png" alt="Secure payments | Fabulous">
  1018.                  </div>
  1019.                
  1020.                
  1021.                  <div class="product_upsell-text">
  1022.                    Secure payments
  1023.                  </div>
  1024.                
  1025.              </div>
  1026.            
  1027.              
  1028.              
  1029.              <div class="product_upsell-box">
  1030.                
  1031.                  <div class="product_upsell-icon">
  1032.                    <img src="https://cdn.store-assets.com/s/943101/f/8656462.png" alt="7 Days Free Return | Fabulous">
  1033.                  </div>
  1034.                
  1035.                
  1036.                  <div class="product_upsell-text">
  1037.                    7 Days Free Return
  1038.                  </div>
  1039.                
  1040.              </div>
  1041.            
  1042.          </div>
  1043.  
  1044.          <product-form class="product-form">
  1045.            <form action="/cart/add" method="post" enctype="multipart/form-data" data-addtocart='{"id":11594771,"name":"online seo","sku":"","price":50.0,"quantity":1,"variant":"Default Title","category":"Feature on homepage","brands":""}' id="AddToCartForm">
  1046.  
  1047.              <style>
  1048. .sf_promo-promo-label, #sf_promo-view-more-tag, .sf_promo-label-unclickable:hover {
  1049.    color: #4089e4
  1050. }
  1051. </style>
  1052. <div class="sf_promo-tag-wrapper">
  1053.    <div id="sf_promo-tag-label"></div>
  1054.    <div class="sf_promo-tag-container">
  1055.        <div id="sf_promo-tag"></div>
  1056.        <a id="sf_promo-view-more-tag" class="sf_promo-promo-label hide" onclick="getPromotionList(true)">View More</a>
  1057.    </div>
  1058. </div>
  1059.  
  1060.  
  1061.              <select name="id" id="productSelect" class="hide">
  1062.                
  1063.                  
  1064.  
  1065.                    <option  selected="selected"  data-sku="" value="53508240">Default Title - <span class=money data-ori-price='5,000.00'>$ 5,000.00 </span></option>
  1066.  
  1067.                  
  1068.                
  1069.              </select>
  1070.  
  1071.              
  1072.  
  1073.              <!-- quantity_selector -->
  1074.              <div class="product-form__input product-form__quantity">
  1075.                <label class="form__label" for="Quantity">
  1076.                  Quantity
  1077.                </label>
  1078.  
  1079.                <quantity-input class="quantity">
  1080.                  <button class="quantity__button no-js-hidden" name="minus" type="button">
  1081.                    
  1082.  
  1083.  
  1084.    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-minus " fill="none" viewBox="0 0 10 2">
  1085.      <path fill-rule="evenodd" clip-rule="evenodd" d="M.5 1C.5.7.7.5 1 .5h8a.5.5 0 110 1H1A.5.5 0 01.5 1z" fill="currentColor"></path>
  1086.    </svg>
  1087.  
  1088.  
  1089.  
  1090.                  </button>
  1091.                  <input class="quantity__input"
  1092.                      type="number"
  1093.                      name="quantity"
  1094.                      id="Quantity"
  1095.                      min="1"
  1096.                      value="1"
  1097.                    >
  1098.                  <button class="quantity__button no-js-hidden" name="plus" type="button">
  1099.                    
  1100.  
  1101.  
  1102.    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-plus " fill="none" viewBox="0 0 10 10">
  1103.      <path fill-rule="evenodd" clip-rule="evenodd" d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z" fill="currentColor"></path>
  1104.    </svg>
  1105.  
  1106.  
  1107.  
  1108.                  </button>
  1109.                </quantity-input>
  1110.              </div>
  1111.  
  1112.  
  1113.              <div class="product-form__buttons">
  1114.  
  1115.                
  1116.  
  1117.                <button
  1118.                  type="submit"
  1119.                  name="add"
  1120.                  id="AddToCart"
  1121.                  class="product-form__submit button button--full-width button--primary btn--radius"
  1122.                
  1123.                >
  1124.                    
  1125.                      Add to Cart
  1126.                    
  1127.                </button>
  1128.  
  1129.                
  1130.  
  1131.              </div>
  1132.              
  1133.              <div class="form__message hidden" tabindex="-1" autofocus>
  1134.                <span class="visually-hidden">accessibility.error </span>
  1135.                
  1136.  
  1137.  
  1138.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-error " viewBox="0 0 13 13">
  1139.      <circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2"/>
  1140.      <circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width="0.7"/>
  1141.      <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"/>
  1142.      <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"/>
  1143.    </svg>
  1144.  
  1145.  
  1146.  
  1147.                <div class="js-error-content"></div>
  1148.              </div>
  1149.  
  1150.            </form>
  1151.          </product-form>
  1152.  
  1153.  
  1154.          <div>
  1155.            
  1156.  
  1157.  
  1158.  
  1159.  
  1160. <share-button class="share-button">
  1161.  <button class="share-button__button hidden">
  1162.    
  1163.      
  1164.  
  1165.  
  1166.    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-share " width="18" height="18" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1167.      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1168.      <circle cx="6" cy="12" r="3" />
  1169.      <circle cx="18" cy="6" r="3" />
  1170.      <circle cx="18" cy="18" r="3" />
  1171.      <line x1="8.7" y1="10.7" x2="15.3" y2="7.3" />
  1172.      <line x1="8.7" y1="13.3" x2="15.3" y2="16.7" />
  1173.    </svg>
  1174.  
  1175.  
  1176.  
  1177.      Share
  1178.    
  1179.  </button>
  1180.  <details>
  1181.    <summary class="share-button__button">
  1182.      
  1183.        
  1184.  
  1185.  
  1186.    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-share " width="18" height="18" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1187.      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1188.      <circle cx="6" cy="12" r="3" />
  1189.      <circle cx="18" cy="6" r="3" />
  1190.      <circle cx="18" cy="18" r="3" />
  1191.      <line x1="8.7" y1="10.7" x2="15.3" y2="7.3" />
  1192.      <line x1="8.7" y1="13.3" x2="15.3" y2="16.7" />
  1193.    </svg>
  1194.  
  1195.  
  1196.  
  1197.        Share
  1198.      
  1199.    </summary>
  1200.    <div id="Product-share-id" class="share-button__fallback motion-reduce ">
  1201.  
  1202.      <div class="social-sharing-icons" data-permalink="https://fabulous1.easy.co/products/online-seo">
  1203.        <div class="sharing-icons-label"><small>Share it on</small></div>
  1204.  
  1205.        <a target="_blank" href="//www.facebook.com/sharer.php?u=https://fabulous1.easy.co/products/online-seo" class="share-icon-button">
  1206.          
  1207.  
  1208.  
  1209.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook "
  1210.    viewBox="0 0 18 18">
  1211.      <path fill="currentColor"
  1212.        d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z">
  1213.      </path>
  1214.    </svg>
  1215.  
  1216.  
  1217.  
  1218.        </a>
  1219.  
  1220.        <a target="_blank" href="//twitter.com/share?text=online seo&amp;url=https://fabulous1.easy.co/products/online-seo" class="share-icon-button">
  1221.          
  1222.  
  1223.  
  1224.    <svg class="icon icon-twitter " viewBox="0 0 22 22" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1225.      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1226.      <path d="M3 3l11.733 16h4.267l-11.733 -16z" />
  1227.      <path d="M3 19l6.768 -6.768m2.46 -2.46l6.772 -6.772" />
  1228.    </svg>
  1229.  
  1230.  
  1231.  
  1232.        </a>
  1233.  
  1234.        
  1235.  
  1236.          <a target="_blank" href="//pinterest.com/pin/create/button/?url=https://fabulous1.easy.co/products/online-seo&amp;media=/assets/images/products/no_image.png&amp;description=online seo" class="share-icon-button">
  1237.            
  1238.  
  1239.  
  1240.  <svg class="icon icon-pinterest " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><g id="Layer_1" data-name="Layer 1"><circle cx="512" cy="512" r="450" fill="transparent"/><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.15-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="currentColor"/></g></svg>
  1241.  
  1242.  
  1243.  
  1244.          </a>
  1245.  
  1246.        
  1247.        
  1248.        <a target="_blank" href="//social-plugins.line.me/lineit/share?url=https://fabulous1.easy.co/products/online-seo" class="share-icon-button">
  1249.          
  1250.  
  1251.  
  1252.    <svg class="icon icon-line " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
  1253.      <g id="Layer_1" data-name="Layer 1"><circle cx="512" cy="512" r="450" fill="currentColor"/>
  1254.        <g id="TYPE_A" data-name="TYPE A">
  1255.          <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"/>
  1256.          <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="currentColor"/>
  1257.          <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="currentColor"/>
  1258.          <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="currentColor"/>
  1259.          <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="currentColor"/>
  1260.        </g>
  1261.      </g>
  1262.    </svg>
  1263.  
  1264.  
  1265.  
  1266.        </a>
  1267.  
  1268.        
  1269.      </div>
  1270.  
  1271.      <div class="share-button_copy-wrapper">
  1272.        <div class="field">
  1273.          <span id="ShareMessage-id" class="share-button__message hidden" role="status">
  1274.          </span>
  1275.          <input type="text"
  1276.                class="field__input"
  1277.                id="url"
  1278.                value="https://fabulous1.easy.co/products/online-seo"
  1279.                placeholder="Link"
  1280.                onclick="this.select();"
  1281.                readonly
  1282.          >
  1283.          <label class="field__label" for="url">Link</label>
  1284.        </div>
  1285.        <button class="share-button__close hidden no-js-hidden">
  1286.          
  1287.  
  1288.  
  1289.    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
  1290.  
  1291.  
  1292.  
  1293.          <span class="visually-hidden">general.share.close</span>
  1294.        </button>
  1295.        <button class="share-button__copy no-js-hidden">
  1296.          
  1297.  
  1298.  
  1299.    <svg class="icon icon-clipboard " width="11" height="13" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 11 13">
  1300.      <path fill-rule="evenodd" clip-rule="evenodd" d="M2 1a1 1 0 011-1h7a1 1 0 011 1v9a1 1 0 01-1 1V1H2zM1 2a1 1 0 00-1 1v9a1 1 0 001 1h7a1 1 0 001-1V3a1 1 0 00-1-1H1zm0 10V3h7v9H1z" fill="currentColor"/>
  1301.    </svg>
  1302.  
  1303.  
  1304.  
  1305.          <span class="visually-hidden">general.share.copy_to_clipboard</span>
  1306.        </button>
  1307.      </div>
  1308.      
  1309.    </div>
  1310.    <div class="modal-overlay float-bottom-modal-overlay large-up-hide"></div>
  1311.  </details>
  1312. </share-button>
  1313. <script src="https://themes.easystore.co/63057/assets/share.js?t=1716787059" defer="defer"></script>
  1314.  
  1315.  
  1316.  
  1317.          </div>
  1318.  
  1319.        
  1320.        </div>
  1321.  
  1322.        <link href="/assets/css/promotion.css?v2.91" rel="stylesheet" type="text/css" media="screen" />
  1323. <style>
  1324. .sf_promo-ribbon{
  1325.  color: #4089e4;
  1326.  background-color: #4089e4
  1327. }
  1328. .sf_promo-ribbon-text,
  1329. .sf_promo-ribbon-text span{
  1330.  color: #fff;
  1331.  color: #fff;
  1332. }
  1333.  
  1334. </style>
  1335.  
  1336.  
  1337.  <div id="promotion-section" class="sf_promo-container">
  1338.    <div id="sf_promo-container" >
  1339.    </div>
  1340.    <div class="text-center">
  1341.      <button id="get-more-promotion" class="btn btn--secondary hide" onclick="getPromotionList(true)">View More</button>
  1342.    </div>
  1343.  </div>
  1344.  <div class="text-center">
  1345.    <button id="view-more-promotion" class="btn btn--secondary hide" onclick="expandPromoSection()">View More</button>
  1346.  </div>
  1347.  
  1348.  
  1349. <script>var shop_money_format = "<span class=money data-ori-price='{{amount}}'>$ {{amount}} </span>";</script>
  1350. <script src="/assets/js/promotion/promotion.js?v1.11" type="text/javascript"></script>
  1351.  
  1352. <script>
  1353.  
  1354.  var param = {limit:5, page:1};
  1355.  
  1356.  function getPromotionList(load_more){
  1357.  
  1358.    var element = document.getElementById("sf_promo-container"),
  1359.        promo_section = document.getElementById("promotion-section"),
  1360.        promo_btn = document.getElementById("get-more-promotion"),
  1361.        view_more_btn = document.getElementById("view-more-promotion"),
  1362.        view_more_tag_btn = document.getElementById("sf_promo-view-more-tag"),
  1363.        page_value = parseInt(param.page);
  1364.  
  1365.    if(load_more) {
  1366.      view_more_tag_btn.classList.add("sf_promo-is-loading");
  1367.      promo_btn.classList.add("btn--loading");
  1368.    }
  1369.  
  1370.    $.ajax({
  1371.      type: "GET",
  1372.      data: param,
  1373.      dataType: 'json',
  1374.      url: "/products/online-seo/promotions",
  1375.      success: function(response){
  1376.  
  1377.        document.getElementById("sf_promo-container").innerHTML += response.html;
  1378.  
  1379.  
  1380.        var promotion_tag_html = "";
  1381.        var promotion_tag_label_html = "";
  1382.  
  1383.        var total_addon_discount = 0;
  1384.  
  1385.        if(response.data.total_promotions > 0){
  1386.          promotion_tag_label_html += `<div style="display:block;"><label>Promotions</label></div>`;
  1387.  
  1388.          for (let promotion of response.data.promotions) {
  1389.            var label_class = "sf_promo-label-clickable",
  1390.                svg_icon = "";
  1391.            if(promotion.prerequisite_subtotal_range != null || promotion.prerequisite_to_entitlement_quantity_ratio == null) {
  1392.              label_class = "sf_promo-label-unclickable";
  1393.            }else{
  1394.              total_addon_discount += 1
  1395.              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">
  1396.                            <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1397.                            <polyline points="9 6 15 12 9 18" />
  1398.                          </svg>`;
  1399.            }
  1400.            promotion_tag_html +=
  1401.            ` <a onclick="promoScrollToView('${promotion.id}')" class="sf_promo-promo-label ${label_class}">
  1402.                <b class="sf_promo-tag-label-title">${promotion.title.replace('&', '&amp;').replace('>','&gt;').replace('<','&lt;').replace('/','&sol;').replace('“', '&quot;').replace("'","&#39;") }</b>${svg_icon}
  1403.              </a>
  1404.            `;
  1405.          }
  1406.        }
  1407.  
  1408.        if(total_addon_discount > 1 && !load_more){
  1409.          promo_section.classList.add('sf_promo-container-height-opacity','sf_promo-container-white-gradient')
  1410.          view_more_btn.classList.remove("hide");
  1411.        }else{
  1412.          promo_section.classList.remove('sf_promo-container-height-opacity','sf_promo-container-white-gradient')
  1413.          view_more_btn.classList.add("hide");
  1414.        }
  1415.  
  1416.        if(response.data.page_count > param.page) {
  1417.          view_more_tag_btn.classList.remove("hide");
  1418.          promo_btn.classList.remove("hide");
  1419.        }else{
  1420.          view_more_tag_btn.classList.add("hide");
  1421.          promo_btn.classList.add("hide");
  1422.        }
  1423.  
  1424.        document.getElementById("sf_promo-tag-label").innerHTML = promotion_tag_label_html;
  1425.        document.getElementById("sf_promo-tag").innerHTML += promotion_tag_html;
  1426.  
  1427.        view_more_tag_btn.classList.remove("sf_promo-is-loading");
  1428.        promo_btn.classList.remove("btn--loading");
  1429.  
  1430.  
  1431.        promoVariantDetailInitial()
  1432.  
  1433.        page_value = isNaN(page_value) ? 0 : page_value;
  1434.        page_value++;
  1435.  
  1436.        param.page = page_value;
  1437.      },
  1438.      error: function(xhr){
  1439.  
  1440.      }
  1441.    });
  1442.  }
  1443.  
  1444.  var is_show_product_page = "1"
  1445.  
  1446.  if(is_show_product_page){
  1447.    getPromotionList();
  1448.  }
  1449. </script>
  1450.  
  1451.  
  1452.        
  1453.          <div class="product-description product__description rte" itemprop="description">
  1454.            <link href='/assets/css/froala_style.min.css' rel='stylesheet' type='text/css'/><div class='fr-view'><a href="https://playmaster1.weebly.com/"></a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href="https://playmaster1.weebly.com/">-</a>
  1455. <a href="https://playmaster2.weebly.com/">-</a>
  1456. <a href="https://playmaster3.weebly.com/">-</a>
  1457. <a href="https://playmaster4.weebly.com/">-</a>
  1458. <a href="https://playmaster5.weebly.com/">-</a>
  1459. <a href="https://playmaster6.weebly.com/">-</a>
  1460. <a href="https://playmaster7.weebly.com/">-</a>
  1461. <a href="https://playmaster8.weebly.com/">-</a>
  1462. <a href="https://playmaster9.weebly.com/">-</a>
  1463. <a href="https://playmaster10.weebly.com/">-</a>
  1464. <a href="https://playmaster11.weebly.com/">-</a>
  1465. <a href="https://playmasters12.weebly.com/">-</a>
  1466. <a href="https://playmaster13.weebly.com/">-</a>
  1467. <a href="https://playmaster14.weebly.com/">-</a>
  1468. <a href="https://playmaster15.weebly.com/">-</a></div>
  1469.          </div>
  1470.        
  1471.  
  1472.  
  1473.      </div>
  1474.      
  1475.    </div>
  1476.  </div>
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  <!-- The Modal -->
  1483.  <div id="product-modal" class="modal hide">
  1484.    <span class="js-image-modal-close product-media-modal__toggle product-modal-close">
  1485.  
  1486.  
  1487.    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
  1488.  
  1489.  
  1490. </span>
  1491.    <img class="modal-content" id="modal-img">
  1492.  </div>
  1493.  
  1494. </section>
  1495.  
  1496.  
  1497.  <section class="product-section page-width spaced-section">
  1498.    <div id="recommend-products-content" class="wrapper"></div>
  1499.  
  1500. <script>
  1501.  console.log("Product recommendation enabled.");
  1502.  
  1503.  const url_params = new URLSearchParams(window.location.search);
  1504.  
  1505.  fetch(`/products/online-seo/recommend?${url_params.toString()}`, {
  1506.      method: 'GET'
  1507.    })
  1508.    .then(response => response.json())
  1509.    .then((res) => {
  1510.      if(res.status == "success"){
  1511.        console.log("Success");
  1512.        document.querySelector('#recommend-products-content').innerHTML = res.html;
  1513.        EasyStore.Currencies.convertAll()
  1514.      }
  1515.      else{
  1516.        console.log("Not Success");
  1517.      }
  1518.    })
  1519.  
  1520. </script>
  1521.  </section>
  1522.  
  1523.  
  1524.  
  1525. <script>
  1526.  let this_el = document.querySelector.bind(document),
  1527.      all_this_el = document.querySelectorAll.bind(document),
  1528.      is_variants_initial = false,
  1529.      variants = [{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],
  1530.      variants_unavailable = variants.filter(value => value.available == false);
  1531.  
  1532.  window.onload = (event) => {
  1533.    document.getElementById("main-image-wrapper").scrollTo({left: 0, behavior: "smooth"});
  1534.  };
  1535.  
  1536.  document.addEventListener( 'DOMContentLoaded', function() {
  1537.  
  1538.    var selectCallback = function(variant, selector) {
  1539.      console.log('variant, selector',variant, selector);
  1540.      VariantSelector.onVariantChange(variant);
  1541.      if(variants_unavailable && variants_unavailable.length > 0 && VariantSelector.updateVariantsUnavailable) VariantSelector.updateVariantsUnavailable(variants,variants_unavailable);
  1542.      
  1543.      var img_wrapper = document.getElementById("main-image-wrapper");
  1544.      if(variant.featured_image != null && variant.featured_image.id && is_variants_initial){
  1545.        const img_item = document.getElementById("image-item-" + variant.featured_image.id);
  1546.        img_wrapper.insertAdjacentElement("afterbegin", img_item);
  1547.        img_wrapper.scrollTo({left: 0, behavior: "smooth"});
  1548.      }
  1549.      is_variants_initial = true
  1550.    }
  1551.  
  1552.    EasyStore.OptionSelectorsNew.create('productSelect', 'radio', {
  1553.        product: {"id":11594771,"handle":"online-seo","name":"online seo","title":"online seo","url":"\/products\/online-seo","price":50,"price_min":"50.0","price_max":"50.0","price_varies":false,"compare_at_price":100,"compare_at_price_min":"100.0","compare_at_price_max":"100.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":53508240,"variants":[{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],"selected_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"first_available_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"selected_or_first_available_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"img_url":"\/assets\/images\/products\/no_image.png","featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[],"media":[],"featured_media":null,"metafields":[],"expires":null,"published_at":"2024-03-20T14:41:01.000+05:00","created_at":"2024-03-20T14:41:01.000+05:00","is_wishlisted":null,"content":"<link href='\/assets\/css\/froala_style.min.css' rel='stylesheet' type='text\/css'\/><div class='fr-view'><a href=\"https:\/\/playmaster1.weebly.com\/\"><\/a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href=\"https:\/\/playmaster1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmasters12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster15.weebly.com\/\">-<\/a><\/div>","description":"<link href='\/assets\/css\/froala_style.min.css' rel='stylesheet' type='text\/css'\/><div class='fr-view'><a href=\"https:\/\/playmaster1.weebly.com\/\"><\/a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href=\"https:\/\/playmaster1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmasters12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster15.weebly.com\/\">-<\/a><\/div>","meta_description":"Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It's not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it's about provi","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"view_history":{"product_id":11594771,"viewed_at":"2024-05-30T11:13:57.703+05:00"},"promotions":[]},
  1554.        onVariantSelected: selectCallback,
  1555.        enableHistoryState: false
  1556.    })
  1557.  
  1558.    //modal
  1559.    var product_modal = document.getElementById("product-modal");
  1560.    const body = document.querySelector("body");
  1561.    all_this_el('.js-image-modal-toggle').forEach(imgModal => imgModal.addEventListener("click", (event)=>{
  1562.      var modalImg = document.getElementById("modal-img");
  1563.      product_modal.classList.remove("hide");
  1564.      product_modal.classList.add("show");
  1565.      modalImg.src = imgModal.src;
  1566.      if (product_modal.classList.contains("show")) {
  1567.          // Disable scroll
  1568.          body.style.overflow = "hidden";
  1569.      }
  1570.    }))
  1571.  
  1572.    // close modal
  1573.    var modal_close = document.getElementsByClassName("product-modal-close")[0];
  1574.    modal_close.onclick = function() {
  1575.      product_modal.classList.add("hide");
  1576.      if (product_modal.classList.contains("hide")) {
  1577.          // Disable scroll
  1578.          body.style.overflow = "";
  1579.      }
  1580.    }
  1581.    window.onclick = function(event) {
  1582.    if (event.target == product_modal) {
  1583.        product_modal.classList.add("hide");
  1584.        body.style.overflow = "";
  1585.      }
  1586.    }
  1587.  
  1588.  
  1589.  } );
  1590.    
  1591.  // retrieve & store view history in local storage
  1592.  var productViewHistoryData = [];
  1593.  var storedProductViewHistory = localStorage.getItem('productViewHistory');
  1594.  
  1595.  if(storedProductViewHistory !== null) {
  1596.      productViewHistoryData = JSON.parse(storedProductViewHistory);
  1597.  }
  1598.  
  1599.  if(productViewHistoryData.length > 0) {
  1600.    var currentViewedProduct = {"product_id":11594771,"viewed_at":"2024-05-30T11:13:57.703+05:00"}
  1601.    var currentViewedAt = new Date(currentViewedProduct.viewed_at);
  1602.    var matchProductID = false;
  1603.  
  1604.    productViewHistoryData.forEach(data => {
  1605.      // Check if product_id is similar
  1606.      if (data.product_id == currentViewedProduct.product_id) {
  1607.        var previousViewedAt = new Date(data.viewed_at);
  1608.        if (currentViewedAt > previousViewedAt) {
  1609.          data.viewed_at = currentViewedProduct.viewed_at;
  1610.        }
  1611.        matchProductID = true;
  1612.      }
  1613.    });
  1614.  
  1615.    // sort "viewed_at" desc
  1616.    productViewHistoryData.sort((a, b) => {
  1617.      var viewedAt1 = new Date(a.viewed_at);
  1618.      var viewedAt2 = new Date(b.viewed_at);
  1619.      return viewedAt2 - viewedAt1;
  1620.    });
  1621.  
  1622.    if (!matchProductID) {
  1623.      productViewHistoryData.unshift(currentViewedProduct);
  1624.    }
  1625.  }
  1626.  else {
  1627.      productViewHistoryData.push({"product_id":11594771,"viewed_at":"2024-05-30T11:13:57.703+05:00"});
  1628.  }
  1629.  
  1630.  productViewHistoryData = JSON.stringify(productViewHistoryData);
  1631.  localStorage.setItem('productViewHistory', productViewHistoryData);
  1632.  
  1633.  // End - retrieve & store view history in local storage
  1634.    
  1635. </script>
  1636.  
  1637.  
  1638.  
  1639.  
  1640.    
  1641.  </main>
  1642. <style>
  1643.  .footer{
  1644.    background-color: #010517;
  1645.    color: #FEFEFE;
  1646.    --color-foreground: 254,254,254;
  1647.  }
  1648.  .footer .link--text,
  1649.  .footer .list-menu__item--link,
  1650.  .footer .footer-block__details-content .list-menu__item--link{
  1651.    color: #FEFEFE;
  1652.  }
  1653.  .footer-block__heading{
  1654.    color: #FFFFFF;
  1655.  }
  1656. </style>
  1657.  
  1658. <link rel="preload" href="https://themes.easystore.co/63057/assets/section-footer.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  1659.  
  1660. <footer class="footer color-background-1">
  1661.  <div class="footer__content-top page-width">
  1662.    <div class="grid grid--1-col grid--4-col-tablet ">
  1663.      
  1664.      
  1665.      
  1666.        <div class="grid__item">
  1667.          
  1668.              <h2 class="footer-block__heading">Follow us</h2>
  1669.              <ul class="footer__list-social list-unstyled list-social footer-block__details-content" role="list">
  1670.                
  1671.                  <li class="list-social__item">
  1672.                    <a href="https://twitter.com/" class="link link--text list-social__link">
  1673.                      
  1674.  
  1675.  
  1676.    <svg class="icon icon-twitter " viewBox="0 0 22 22" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1677.      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1678.      <path d="M3 3l11.733 16h4.267l-11.733 -16z" />
  1679.      <path d="M3 19l6.768 -6.768m2.46 -2.46l6.772 -6.772" />
  1680.    </svg>
  1681.  
  1682.  
  1683.  
  1684.                    </a>
  1685.                  </li>
  1686.                
  1687.                
  1688.                  <li class="list-social__item">
  1689.                    <a href="https://facebook.com/" class="link link--text list-social__link">
  1690.                      
  1691.  
  1692.  
  1693.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook "
  1694.    viewBox="0 0 18 18">
  1695.      <path fill="currentColor"
  1696.        d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z">
  1697.      </path>
  1698.    </svg>
  1699.  
  1700.  
  1701.  
  1702.                    </a>
  1703.                  </li>
  1704.                
  1705.                
  1706.                  <li class="list-social__item">
  1707.                    <a href="https://instagram.com/" class="link link--text list-social__link">
  1708.                      
  1709.  
  1710.  
  1711.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram "
  1712.    viewBox="0 0 18 18">
  1713.      <path fill="currentColor"
  1714.        d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z">
  1715.      </path>
  1716.      <path fill="currentColor"
  1717.        d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z">
  1718.      </path>
  1719.    </svg>
  1720.  
  1721.  
  1722.  
  1723.                    </a>
  1724.                  </li>
  1725.                
  1726.                
  1727.                  <li class="list-social__item">
  1728.                    <a href="https://tiktok.com/" class="link link--text list-social__link">
  1729.                      
  1730.  
  1731.  
  1732.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-tiktok " width="16"
  1733.    height="18" fill="none" xmlns="http://www.w3.org/2000/svg">
  1734.      <path
  1735.        d="M8.02 0H11s-.17 3.82 4.13 4.1v2.95s-2.3.14-4.13-1.26l.03 6.1a5.52 5.52 0 11-5.51-5.52h.77V9.4a2.5 2.5 0 101.76 2.4L8.02 0z"
  1736.        fill="currentColor">
  1737.      </path>
  1738.    </svg>
  1739.  
  1740.  
  1741.  
  1742.                    </a>
  1743.                  </li>
  1744.                
  1745.                
  1746.                  <li class="list-social__item">
  1747.                    <a href="https://wa.me/" class="link link--text list-social__link">
  1748.                      
  1749.  
  1750.  
  1751.    <svg class="icon icon-whatsapp " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M703.5,195.64A371,371,0,0,0,572,56C523.89,26,471.51,8.4,415.21,2.51A370.48,370.48,0,0,0,316.5,5.42,364,364,0,0,0,215.23,37.47a369,369,0,0,0-132.68,108Q17.36,230.17,7,336.63A370.11,370.11,0,0,0,53.42,554.94a7.23,7.23,0,0,1,.61,4.9Q36.48,624.6,18.7,689.27C13.24,709.19,7.75,729.1,2.14,749.5c1.23-.26,1.93-.36,2.61-.55q95.75-25.11,191.54-50.2a8.43,8.43,0,0,1,5.19.61c12.79,5.8,25.28,12.34,38.29,17.59A370.28,370.28,0,0,0,666.09,604q69.06-86.36,80-196.47A370.36,370.36,0,0,0,743,311.86,361,361,0,0,0,703.5,195.64ZM684.64,388c-3.6,65.27-25.48,123.75-66.06,174.9-44.89,56.63-102.85,93.24-173.19,109.84a297.41,297.41,0,0,1-91.27,7A305.68,305.68,0,0,1,215.31,635a17.54,17.54,0,0,0-15.2-2.14c-35.5,9.58-71.1,18.74-106.66,28-.49.13-1,.21-2.14.45,1.72-6.37,3.29-12.22,4.89-18Q109,596.7,121.66,550.07a7.12,7.12,0,0,0-1-5.07c-12.37-19.32-23.31-39.25-31.6-60.64A309,309,0,0,1,70.4,410.63c-6.11-49.35-.93-97.44,16.1-144.15,57.86-160.1,234.55-243,394.65-185.11a308.31,308.31,0,0,1,120.2,79.18c34.9,37.19,59.32,80.31,72.81,129.53A304.75,304.75,0,0,1,684.64,388Z"/><path d="M556,454.42c-13.84-6.52-27.43-13.55-41.24-20.12-11.47-5.46-23-10.89-34.73-15.69-9.1-3.73-13.09-1.72-19.12,6.06-9.39,12.09-19.09,23.95-28.89,35.71-4.7,5.63-9.47,6.79-16.1,3.8-12.32-5.56-24.82-10.9-36.58-17.51-39.6-22.29-69.59-54.3-92.67-93.11-4.87-8.2-4.3-12.16,2.14-19.13,9.07-9.9,18.4-19.63,24.09-32.12a17.42,17.42,0,0,0,.47-14.67c-9.55-23-19-46-28.75-68.92a75.82,75.82,0,0,0-7-12.7c-2.56-3.82-6.6-5.49-11.28-5.36H255.78v-.56c-5.48.29-11,.11-16.39,1-8.66,1.37-15,6.75-20.95,12.94-25.46,26.48-34.58,57.89-28.66,93.83a145.64,145.64,0,0,0,20.75,53.75C220.48,377.5,231.32,393,242.65,408a435.09,435.09,0,0,0,70.53,73.19c31.48,26,67,44.54,105.56,57.58,16.1,5.44,32.08,11.08,49.36,11.42,11.52.22,23,.08,34.16-3.22a110.77,110.77,0,0,0,42.1-23.61c5.48-4.81,10.48-10.18,13.19-17a110.56,110.56,0,0,0,7.57-37.2C565.27,461.93,562.42,457.42,556,454.42Z"/></svg>
  1752.  
  1753.  
  1754.  
  1755.                    </a>
  1756.                  </li>
  1757.                
  1758.                
  1759.                  <li class="list-social__item">
  1760.                    <a href="https://line.com/" class="link link--text list-social__link">
  1761.                      
  1762.  
  1763.  
  1764.    <svg class="icon icon-line-footer " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M375,.5C168.17.5.5,168.17.5,375S168.17,749.5,375,749.5,749.5,581.83,749.5,375,581.83.5,375,.5ZM570.75,476.91C518.48,537.06,401.6,610.33,375,621.53s-22.66-7.13-21.57-13.42c.63-3.76,3.55-21.33,3.55-21.33.83-6.36,1.66-16.23-.83-22.52-2.81-7-13.83-10.54-21.95-12.29C214.51,536.14,125.9,452.45,125.9,352.53,125.9,241,237.64,150.38,375,150.38s249.1,90.68,249.1,202.15h0C624.14,397.14,606.85,437.32,570.75,476.91Z"/><polygon points="324.38 298.65 324.38 298.65 324.38 298.65 324.38 298.65"/><path d="M324.38,298.65H306.91a4.86,4.86,0,0,0-4.86,4.85V412a4.86,4.86,0,0,0,4.86,4.85h17.47a4.86,4.86,0,0,0,4.85-4.85V303.5A4.86,4.86,0,0,0,324.38,298.65Z"/><path d="M444.67,298.65h-17.5a4.85,4.85,0,0,0-4.85,4.85V368l-49.73-67.17a4.57,4.57,0,0,0-.38-.49,2.76,2.76,0,0,0-.29-.3l-.09-.09a2.65,2.65,0,0,0-.26-.21l-.12-.1-.25-.18-.15-.08-.26-.14-.15-.08-.28-.12-.16,0-.28-.1-.18,0-.27-.06H351.08a4.85,4.85,0,0,0-4.85,4.84V412a4.85,4.85,0,0,0,4.85,4.85h17.48a4.85,4.85,0,0,0,4.85-4.85V347.54l49.81,67.26a5.15,5.15,0,0,0,1.22,1.2h.06l.29.18.14.07.24.12.23.1.15,0,.32.11H426a4.69,4.69,0,0,0,1.24.16h17.48a4.85,4.85,0,0,0,4.86-4.84h0V303.5A4.87,4.87,0,0,0,444.67,298.65Z"/><path d="M282.26,389.67h0l0,0H234.79V303.5a4.85,4.85,0,0,0-4.83-4.85H212.47a4.84,4.84,0,0,0-4.85,4.84h0V412a4.74,4.74,0,0,0,1.35,3.32.27.27,0,0,0,.07.08l.07.07a4.81,4.81,0,0,0,3.33,1.35h69.81a4.84,4.84,0,0,0,4.84-4.84h0V394.52A4.84,4.84,0,0,0,282.26,389.67Z"/><path d="M541.16,371.34a4.85,4.85,0,0,0,4.85-4.85h0V349a4.85,4.85,0,0,0-4.84-4.85H493.72V325.84l47.42,0A4.83,4.83,0,0,0,546,321V303.5a4.85,4.85,0,0,0-4.84-4.86H471.34A4.81,4.81,0,0,0,468,300l-.05.05-.08.09a4.82,4.82,0,0,0-1.34,3.33V412a4.77,4.77,0,0,0,1.35,3.33l.07.07.07.07a4.8,4.8,0,0,0,3.32,1.36h69.81A4.85,4.85,0,0,0,546,412h0V394.5a4.85,4.85,0,0,0-4.84-4.85H493.72V371.34Z"/></svg>
  1765.  
  1766.  
  1767.  
  1768.                    </a>
  1769.                  </li>
  1770.                
  1771.                
  1772.                  <li class="list-social__item">
  1773.                    <a href="https://wechat.com/" class="link link--text list-social__link">
  1774.                      
  1775.  
  1776.  
  1777.    <svg class="icon icon-wechat " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M372.31,344.63c30-25,64.6-40.77,102.63-49.15a300.24,300.24,0,0,1,45.43-6.61c5.81-.38,11.6-.81,17.41-1.1,1.9-.1,2.82-.61,2.47-2.74s-.43-4.35-.63-6.54a225,225,0,0,0-7.31-40.71c-10.79-38.76-31.69-71.57-59.89-99.89C443.56,108.89,409.5,88,371.11,74.1a288,288,0,0,0-92.8-17.38,214.68,214.68,0,0,0-24.59.6c-13.23,1.22-26.59,2.34-39.62,4.87-27.42,5.32-53.55,14.74-78.56,27.19C81.1,116.52,40.88,157.11,17.8,213.92c-10,24.63-16.23,50.2-17.22,76.79a268,268,0,0,0,1.54,35.94c2,20.14,7.8,39.35,16.06,57.79,16.49,36.82,41.46,67,72.92,91.91,5.45,4.32,11.08,8.43,16.67,12.58,5,3.74,7.24,8.41,5.45,14.69-1.45,5-2.91,10.06-4.07,15.16-4.66,21.08-9.21,42.18-13.79,63.28-.68,3.14-1.33,6.31-2.17,10.23l4.22-2.53c25-15.68,50.07-31.42,75.19-47,5.66-3.53,11.39-7.13,17.5-9.66,8.26-3.45,17.1-2,25.72-1.11,10.89,1.14,21.75,2.45,32.56,3.79,11.34,1.4,22.65,2.92,34,4.38,4.22.54,8.47,1,13,1.58V538.6c-.54-9-1.36-18.05-1.62-27.1a207.12,207.12,0,0,1,5.51-54.13C310.33,411.15,336.31,374.6,372.31,344.63Zm5.22-135.5a40,40,0,1,1,.23,80.06c-23,0-40.94-17.52-40.93-39.93C336.85,227.31,355.16,209.25,377.53,209.13Zm-199.24,80c-22.67,0-40.12-17.42-40.18-40.2-.06-22.15,17.59-39.69,40-39.8s41,18.18,41,40.45C219.19,271.27,200.73,289.12,178.29,289.17Z"/><path d="M741.59,452.47c-17.42-53.21-52.3-91.29-102.2-115.63-37.18-18.16-76.75-25.44-118.12-23.14a233.78,233.78,0,0,0-42.61,6.1c-46.81,11.45-86.29,35.2-117,72.49-29.88,36.26-43.68,77.93-39.29,125a162.57,162.57,0,0,0,20.91,65.36c17.84,31.48,42.83,56.1,73.27,75.36a201,201,0,0,0,61.39,25.71,231.39,231.39,0,0,0,41.51,5.7c14.43.74,28.84.56,43-2.4,11.91-2.47,23.58-6,35.4-8.94,13.89-3.42,27.81-3.75,41.31,1.49,9.47,3.67,18.62,8.2,27.9,12.36,1,.45,2,1,3,1.43l.45-.57-1.22-3.17A46,46,0,0,1,666.47,666c1.52-9.87,6.35-18.15,13-25.33,5.49-6,11.45-11.48,17.3-17.11,30.78-29.85,48.84-65.91,52.23-108.8A158.69,158.69,0,0,0,741.59,452.47ZM435.15,478.14a34.86,34.86,0,1,1,.74-69.71h0c19.66.06,34.87,15.6,34.76,35.51C470.54,463,454.75,478.26,435.15,478.14ZM596.63,478c-19.58-.43-34.46-15.65-34.16-35.13a34.6,34.6,0,0,1,34.88-34.32h.12c19,0,34,15.64,34,35.3A34.23,34.23,0,0,1,597.17,478Z"/></svg>
  1778.  
  1779.  
  1780.  
  1781.                    </a>
  1782.                  </li>
  1783.                
  1784.                
  1785.                  <li class="list-social__item">
  1786.                    <a href="https://youtube.com/" class="link link--text list-social__link">
  1787.                      
  1788.  
  1789.  
  1790.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube "
  1791.    viewBox="0 0 100 70">
  1792.      <path
  1793.        d="M98 11c2 7.7 2 24 2 24s0 16.3-2 24a12.5 12.5 0 01-9 9c-7.7 2-39 2-39 2s-31.3 0-39-2a12.5 12.5 0 01-9-9c-2-7.7-2-24-2-24s0-16.3 2-24c1.2-4.4 4.6-7.8 9-9 7.7-2 39-2 39-2s31.3 0 39 2c4.4 1.2 7.8 4.6 9 9zM40 50l26-15-26-15v30z"
  1794.        fill="currentColor">
  1795.      </path>
  1796.    </svg>
  1797.  
  1798.  
  1799.  
  1800.                    </a>
  1801.                  </li>
  1802.                
  1803.                
  1804.              </ul>
  1805.            
  1806.        </div>
  1807.      
  1808.      
  1809.      
  1810.        <div class="grid__item">
  1811.          
  1812.              <h2 class="footer-block__heading">We accept</h2>
  1813.              <div class="footer-block__details-content footer__payment">
  1814.                <ul class="list list-payment" role="list">
  1815.                  
  1816.                    <li class="list-payment__item">
  1817.                      
  1818.  
  1819.  
  1820.    <svg class="icon icon--full-color " viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img"
  1821.    width="38" height="24" aria-labelledby="pi-visa">
  1822.      <path opacity=".07"
  1823.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1824.      <path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32">
  1825.      </path>
  1826.      <path
  1827.        d="M28.3 10.1H28c-.4 1-.7 1.5-1 3h1.9c-.3-1.5-.3-2.2-.6-3zm2.9 5.9h-1.7c-.1 0-.1 0-.2-.1l-.2-.9-.1-.2h-2.4c-.1 0-.2 0-.2.2l-.3.9c0 .1-.1.1-.1.1h-2.1l.2-.5L27 8.7c0-.5.3-.7.8-.7h1.5c.1 0 .2 0 .2.2l1.4 6.5c.1.4.2.7.2 1.1.1.1.1.1.1.2zm-13.4-.3l.4-1.8c.1 0 .2.1.2.1.7.3 1.4.5 2.1.4.2 0 .5-.1.7-.2.5-.2.5-.7.1-1.1-.2-.2-.5-.3-.8-.5-.4-.2-.8-.4-1.1-.7-1.2-1-.8-2.4-.1-3.1.6-.4.9-.8 1.7-.8 1.2 0 2.5 0 3.1.2h.1c-.1.6-.2 1.1-.4 1.7-.5-.2-1-.4-1.5-.4-.3 0-.6 0-.9.1-.2 0-.3.1-.4.2-.2.2-.2.5 0 .7l.5.4c.4.2.8.4 1.1.6.5.3 1 .8 1.1 1.4.2.9-.1 1.7-.9 2.3-.5.4-.7.6-1.4.6-1.4 0-2.5.1-3.4-.2-.1.2-.1.2-.2.1zm-3.5.3c.1-.7.1-.7.2-1 .5-2.2 1-4.5 1.4-6.7.1-.2.1-.3.3-.3H18c-.2 1.2-.4 2.1-.7 3.2-.3 1.5-.6 3-1 4.5 0 .2-.1.2-.3.2M5 8.2c0-.1.2-.2.3-.2h3.4c.5 0 .9.3 1 .8l.9 4.4c0 .1 0 .1.1.2 0-.1.1-.1.1-.1l2.1-5.1c-.1-.1 0-.2.1-.2h2.1c0 .1 0 .1-.1.2l-3.1 7.3c-.1.2-.1.3-.2.4-.1.1-.3 0-.5 0H9.7c-.1 0-.2 0-.2-.2L7.9 9.5c-.2-.2-.5-.5-.9-.6-.6-.3-1.7-.5-1.9-.5L5 8.2z"
  1828.        fill="#142688"></path>
  1829.    </svg>
  1830.  
  1831.  
  1832.  
  1833.                    </li>
  1834.                  
  1835.                  
  1836.                    <li class="list-payment__item">
  1837.                      
  1838.  
  1839.  
  1840.    <svg class="icon icon--full-color " viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img"
  1841.    width="38" height="24" aria-labelledby="pi-master">
  1842.      <path opacity=".07"
  1843.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1844.      <path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32">
  1845.      </path>
  1846.      <circle fill="#EB001B" cx="15" cy="12" r="7"></circle>
  1847.      <circle fill="#F79E1B" cx="23" cy="12" r="7"></circle>
  1848.      <path fill="#FF5F00"
  1849.        d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"></path>
  1850.    </svg>
  1851.  
  1852.  
  1853.  
  1854.                    </li>
  1855.                  
  1856.                  
  1857.                    <li class="list-payment__item">
  1858.                      
  1859.  
  1860.  
  1861.    <svg class="icon icon--full-color " xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24"
  1862.      width="38" height="24" aria-labelledby="pi-american_express">
  1863.      <g fill="none">
  1864.        <path fill="#000"
  1865.          d="M35,0 L3,0 C1.3,0 0,1.3 0,3 L0,21 C0,22.7 1.4,24 3,24 L35,24 C36.7,24 38,22.7 38,21 L38,3 C38,1.3 36.6,0 35,0 Z"
  1866.          opacity=".07"></path>
  1867.        <path fill="#006FCF"
  1868.          d="M35,1 C36.1,1 37,1.9 37,3 L37,21 C37,22.1 36.1,23 35,23 L3,23 C1.9,23 1,22.1 1,21 L1,3 C1,1.9 1.9,1 3,1 L35,1">
  1869.        </path>
  1870.        <path fill="#FFF"
  1871.          d="M8.971,10.268 L9.745,12.144 L8.203,12.144 L8.971,10.268 Z M25.046,10.346 L22.069,10.346 L22.069,11.173 L24.998,11.173 L24.998,12.412 L22.075,12.412 L22.075,13.334 L25.052,13.334 L25.052,14.073 L27.129,11.828 L25.052,9.488 L25.046,10.346 L25.046,10.346 Z M10.983,8.006 L14.978,8.006 L15.865,9.941 L16.687,8 L27.057,8 L28.135,9.19 L29.25,8 L34.013,8 L30.494,11.852 L33.977,15.68 L29.143,15.68 L28.065,14.49 L26.94,15.68 L10.03,15.68 L9.536,14.49 L8.406,14.49 L7.911,15.68 L4,15.68 L7.286,8 L10.716,8 L10.983,8.006 Z M19.646,9.084 L17.407,9.084 L15.907,12.62 L14.282,9.084 L12.06,9.084 L12.06,13.894 L10,9.084 L8.007,9.084 L5.625,14.596 L7.18,14.596 L7.674,13.406 L10.27,13.406 L10.764,14.596 L13.484,14.596 L13.484,10.661 L15.235,14.602 L16.425,14.602 L18.165,10.673 L18.165,14.603 L19.623,14.603 L19.647,9.083 L19.646,9.084 Z M28.986,11.852 L31.517,9.084 L29.695,9.084 L28.094,10.81 L26.546,9.084 L20.652,9.084 L20.652,14.602 L26.462,14.602 L28.076,12.864 L29.624,14.602 L31.499,14.602 L28.987,11.852 L28.986,11.852 Z">
  1872.        </path>
  1873.      </g>
  1874.    </svg>
  1875.  
  1876.  
  1877.  
  1878.                    </li>
  1879.                  
  1880.                  
  1881.                    <li class="list-payment__item">
  1882.                      
  1883.  
  1884.  
  1885.    <svg class="icon icon--full-color " viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38"
  1886.      height="24" role="img" aria-labelledby="pi-paypal">
  1887.      <path opacity=".07"
  1888.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1889.      <path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32">
  1890.      </path>
  1891.      <path fill="#003087"
  1892.        d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z">
  1893.      </path>
  1894.      <path fill="#3086C8"
  1895.        d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z">
  1896.      </path>
  1897.      <path fill="#012169"
  1898.        d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 0-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z">
  1899.      </path>
  1900.    </svg>
  1901.  
  1902.  
  1903.  
  1904.                    </li>
  1905.                  
  1906.                  
  1907.                    <li class="list-payment__item">
  1908.                      
  1909.  
  1910.  
  1911.    <svg class="icon icon--full-color " viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img"
  1912.      width="38" height="24" aria-labelledby="pi-diners_club">
  1913.      <path opacity=".07"
  1914.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1915.      <path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32">
  1916.      </path>
  1917.      <path
  1918.        d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z"
  1919.        fill="#3086C8"></path>
  1920.    </svg>
  1921.  
  1922.  
  1923.  
  1924.                    </li>
  1925.                  
  1926.                  
  1927.                    <li class="list-payment__item">
  1928.                      
  1929.  
  1930.  
  1931.    <svg class="icon icon--full-color " viewBox="0 0 38 24" width="38" height="24" role="img"
  1932.      aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg">
  1933.      <path fill="#000" opacity=".07"
  1934.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1935.      <path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff">
  1936.      </path>
  1937.      <path
  1938.        d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z"
  1939.        fill="#231F20"></path>
  1940.      <path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)">
  1941.      </path>
  1942.      <path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z"
  1943.        fill="url(#pi-paint1_linear)"></path>
  1944.      <path
  1945.        d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z"
  1946.        fill="#231F20"></path>
  1947.      <path
  1948.        d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z"
  1949.        fill="#231F20"></path>
  1950.      <path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120">
  1951.      </path>
  1952.      <defs>
  1953.        <linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104"
  1954.          gradientUnits="userSpaceOnUse">
  1955.          <stop stop-color="#F89F20"></stop>
  1956.          <stop offset=".25" stop-color="#F79A20"></stop>
  1957.          <stop offset=".533" stop-color="#F68D20"></stop>
  1958.          <stop offset=".62" stop-color="#F58720"></stop>
  1959.          <stop offset=".723" stop-color="#F48120"></stop>
  1960.          <stop offset="1" stop-color="#F37521"></stop>
  1961.        </linearGradient>
  1962.        <linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446"
  1963.          gradientUnits="userSpaceOnUse">
  1964.          <stop stop-color="#F58720"></stop>
  1965.          <stop offset=".359" stop-color="#E16F27"></stop>
  1966.          <stop offset=".703" stop-color="#D4602C"></stop>
  1967.          <stop offset=".982" stop-color="#D05B2E"></stop>
  1968.        </linearGradient>
  1969.      </defs>
  1970.    </svg>
  1971.  
  1972.  
  1973.  
  1974.                    </li>
  1975.                  
  1976.              </div>
  1977.              
  1978.        </div>
  1979.      
  1980.      
  1981.      
  1982.        <div class="grid__item">
  1983.          
  1984.              <h2 class="footer-block__heading">
  1985.                Quick links
  1986.              </h2>
  1987.              <ul class="footer-block__details-content list-unstyled">
  1988.                
  1989.                <li>
  1990.                  <a href="/store-locator"  class="link link--text list-menu__item list-menu__item--link">
  1991.                    Location
  1992.                  </a>
  1993.                </li>
  1994.                
  1995.                
  1996.              </ul>
  1997.            
  1998.        </div>
  1999.      
  2000.      
  2001.      
  2002.        <div class="grid__item">
  2003.          
  2004.              <h2 class="footer-block__heading">Our mission</h2>
  2005.              <div class="footer-block__details-content">
  2006.                <p>Quality materials, good designs, craftsmanship and sustainability.</p>
  2007.              </div>
  2008.            
  2009.        </div>
  2010.      
  2011.    </div>
  2012.  </div>
  2013.  <div class="footer__content-bottom">
  2014.    <div class="footer__content-bottom-wrapper page-width">
  2015.      <div class="footer__column footer__column--info">
  2016.  
  2017.        
  2018.  
  2019.  
  2020.  
  2021.        
  2022.        <div class="footer__copyright caption">
  2023.          <div class="copyright__content">© 2024 fabulous. Powered by <a href="http://www.easystore.co/?utm_source=storefront&utm_medium=sf_ref_footer&utm_campaign=sf_ref">EasyStore</a></div>
  2024.        </div>
  2025.  
  2026.        <div class="footer__copyright caption">
  2027.          
  2028.            <div>
  2029.            
  2030.            
  2031.              
  2032.                <a href="/legal/terms-of-service">Terms of Service</a>
  2033.              
  2034.              
  2035.            
  2036.              
  2037.                | <a href="/legal/privacy-policy">Privacy Policy</a>
  2038.              
  2039.              
  2040.            
  2041.              
  2042.                | <a href="/legal/refund-policy">Refund Policy</a>
  2043.              
  2044.              
  2045.            
  2046.            </div>
  2047.        
  2048.        </div>
  2049.        
  2050.      </div>
  2051.    </div>
  2052.  </div>
  2053. </footer>
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  <script>
  2060.  EasyStore.Currencies.init([{"name":"US Dollar","code":"USD","rate":"1.0","format_prefix":"$","format_suffix":null,"format_decimals":2,"thousand_separator":",","is_primary":true}])
  2061. </script>
  2062.  
  2063.  
  2064.  
  2065.  <script>
  2066.    let page_template = 'product';
  2067.  
  2068.    if(document.querySelector('.currency-picker')) EasyStore.Currencies.change(document.querySelector('.currency-picker').value)
  2069.  
  2070.    document.querySelectorAll('.currency-picker').forEach((el)=>{
  2071.      el.addEventListener('change',(event)=>{
  2072.        console.log(event.target.value);
  2073.        EasyStore.Currencies.change(event.target.value)
  2074.  
  2075.        document.querySelectorAll('[name=currencies],[name=current_currency]').forEach((el)=>{
  2076.          el.value = event.target.value
  2077.        })
  2078.  
  2079.        if(page_template == 'cart') location.reload();
  2080.      })
  2081.    })
  2082.  </script>
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  <script>
  2088.  
  2089.    window.variantStrings = {
  2090.      addToCart: `Add to Cart`,
  2091.      soldOut: `Sold Out`,
  2092.      unavailable: `Unavailable`,
  2093.    }
  2094.  
  2095.    window.accessibilityStrings = {
  2096.      shareSuccess: `Link copied to clipboard`,
  2097.    }
  2098.  </script>
  2099.  <script>
  2100.  
  2101.  /*
  2102.  
  2103.    ------
  2104.    Events
  2105.    ------
  2106.  
  2107.    pages/viewed
  2108.  
  2109.    customers/signup
  2110.  
  2111.    customers/login
  2112.  
  2113.    products/searched
  2114.  
  2115.    collections/viewed
  2116.  
  2117.    products/viewed
  2118.  
  2119.    products/shared
  2120.  
  2121.    wishlists/item_added
  2122.  
  2123.    carts/items_added
  2124.  
  2125.    carts/viewed
  2126.  
  2127.    carts/item_removed
  2128.  
  2129.    checkouts/initiated
  2130.  
  2131.    checkouts/shipping_info_added
  2132.  
  2133.    checkouts/payment_info_added
  2134.  
  2135.    checkouts/completed
  2136.  
  2137.    orders/placed
  2138.  
  2139.    orders/purchased
  2140.  
  2141.    payments/captured
  2142.  
  2143.    payments/failed
  2144.  
  2145.  */
  2146.  
  2147.  let latest_cart = null
  2148.  
  2149.  const _selector = document.querySelector.bind(document),
  2150.        _selectorAll = document.querySelectorAll.bind(document)
  2151.  
  2152.  document.addEventListener('DOMContentLoaded', (event) => {
  2153.  
  2154.    const default_currency = getCookie("currency")
  2155.    const customer_id = window.__st.cid
  2156.    const template    = window.__st.p
  2157.  
  2158.    onPageView()
  2159.  
  2160.    //-----------------------//
  2161.    //        Configs        //
  2162.    //-----------------------//
  2163.  
  2164.    window.dataLayer = window.dataLayer || []
  2165.  
  2166.    Array.prototype.last = Array.prototype.last || function() {
  2167.      return this[this.length - 1] || null
  2168.    }
  2169.  
  2170.    Array.prototype.first = Array.prototype.first || function() {
  2171.      return this[0] || null
  2172.    }
  2173.  
  2174.    //----------------------//
  2175.    //       Triggers       //
  2176.    //----------------------//
  2177.  
  2178.    const XHR = window.XMLHttpRequest
  2179.  
  2180.    function xhr() {
  2181.  
  2182.      const xhr = new XHR()
  2183.  
  2184.      xhr.addEventListener("readystatechange", function() {
  2185.  
  2186.        if(xhr.readyState != 4) return
  2187.  
  2188.        try {
  2189.  
  2190.          const response_url = xhr.responseURL
  2191.  
  2192.          if (response_url.includes("cart/add")) {
  2193.  
  2194.            latest_cart = JSON.parse(xhr.response)
  2195.  
  2196.            onCartItemsAdded() // ok
  2197.  
  2198.          }
  2199.  
  2200.          if (response_url.includes("cart/remove_item_quantity")) {
  2201.  
  2202.            latest_cart = JSON.parse(xhr.response)
  2203.  
  2204.            onCartItemRemoved() // ok
  2205.  
  2206.          }
  2207.  
  2208.          if (response_url.includes("new_cart?retrieve=true")) {
  2209.  
  2210.            result = JSON.parse(xhr.response)
  2211.  
  2212.            if (result.cart) {
  2213.              latest_cart = result.cart
  2214.            }
  2215.  
  2216.          }
  2217.  
  2218.        } catch(e) {
  2219.  
  2220.          console.error(e)
  2221.  
  2222.        }
  2223.  
  2224.      }, false);
  2225.  
  2226.      return xhr
  2227.  
  2228.    }
  2229.  
  2230.    window.XMLHttpRequest = xhr
  2231.  
  2232.    switch(template) {
  2233.  
  2234.      case 'cart': onCartView() // ok
  2235.      break
  2236.      case 'product': onProductView() // ok
  2237.      break
  2238.      case 'collection': onCollectionView() // ok
  2239.      break
  2240.      case 'blog': onBlogView()
  2241.      break
  2242.      case 'article': onArticleView()
  2243.      break
  2244.      case 'payment_completed': onOrderPlace()
  2245.      break
  2246.      case 'payment_fail': onPaymentFail()
  2247.      break
  2248.  
  2249.    }
  2250.  
  2251.    // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]')))
  2252.    if (_selector('form[action="/checkout/detail"]'))                            _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))})  // ok
  2253.    if (_selector('form[action="/checkout/shipping"]'))                          _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))})  // ok
  2254.    if (_selector('form[action="/account/register"]'))                           _selector('form[action="/account/register"]').addEventListener("submit", onSignUp)  // ok
  2255.    if (_selector('form[action="/account/login"]'))                              _selector('form[action="/account/login"]').addEventListener("submit", onLogin)  // ok
  2256.    if (_selector('form[action="/search"]'))                                     _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok
  2257.    if (_selector('#line-login-btn'))                                            _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok
  2258.    if (_selector('#PlaceOrder'))                                                _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))});  // ok
  2259.    if (_selector('#add_wishlist'))                                              _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok
  2260.    if (_selectorAll('a[href="/account/logout"]'))                               _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok
  2261.    if (_selector('.CartDrawerTrigger.cart-page-link'))                          _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok
  2262.    if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link'))    _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok
  2263.    if (_selectorAll('a[class^="share-"]'))                                      _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok
  2264.    if (_selectorAll('[name$="checkout"]'))                                      _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
  2265.  
  2266.    // For append elements
  2267.    const bodyMutationObserver = new MutationObserver(() => {
  2268.      if (_selector('#form__spc #PlaceOrder'))             _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok
  2269.      if (_selectorAll('[name$="checkout"]'))              _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
  2270.    });
  2271.    bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true});
  2272.  
  2273.    //------------------------------//
  2274.    //        Event handlers        //
  2275.    //------------------------------//
  2276.  
  2277.    function onPageView() {
  2278.  
  2279.      EasyStore.Event.dispatch('pages/viewed', {
  2280.        page: {
  2281.          type: template,
  2282.          title: document.title,
  2283.          description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null,
  2284.          url: location.href,
  2285.        }
  2286.      })
  2287.  
  2288.    }
  2289.  
  2290.    function onSignUp() {
  2291.  
  2292.      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
  2293.      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
  2294.  
  2295.      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
  2296.  
  2297.      let data = {}
  2298.  
  2299.      if (email_regex.test(email_or_phone)) {
  2300.        data.method = 'email'
  2301.        data.email = email_or_phone
  2302.      }
  2303.  
  2304.      if (phone_regex.test(email_or_phone)) {
  2305.        data.method = "phone"
  2306.        data.phone = email_or_phone
  2307.      }
  2308.  
  2309.      if (!data.method) return
  2310.  
  2311.      EasyStore.Event.dispatch('customers/signup', data)
  2312.  
  2313.    }
  2314.  
  2315.    function onLogin() {
  2316.  
  2317.      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
  2318.      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
  2319.  
  2320.      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
  2321.  
  2322.      let data = {}
  2323.  
  2324.      if (email_regex.test(email_or_phone)) {
  2325.        data.method = 'email'
  2326.        data.email = email_or_phone
  2327.      }
  2328.  
  2329.      if (phone_regex.test(email_or_phone)) {
  2330.        data.method = "phone"
  2331.        data.phone = email_or_phone
  2332.      }
  2333.  
  2334.      if (!data.method) return
  2335.  
  2336.      EasyStore.Event.dispatch('customers/login', data)
  2337.  
  2338.    }
  2339.  
  2340.    function onLineLogin() {
  2341.  
  2342.      EasyStore.Event.dispatch('customers/login', { method: 'line' })
  2343.  
  2344.    }
  2345.  
  2346.    function onLogout() {
  2347.  
  2348.      EasyStore.Event.dispatch('customers/logout', { customer_id })
  2349.  
  2350.    }
  2351.  
  2352.    function onBlogView() {
  2353.  
  2354.      const blog = ""
  2355.  
  2356.      EasyStore.Event.dispatch('blogs/viewed', { blog })
  2357.  
  2358.    }
  2359.  
  2360.    function onArticleView() {
  2361.  
  2362.      const article = ""
  2363.  
  2364.      EasyStore.Event.dispatch('articles/viewed', { article })
  2365.  
  2366.    }
  2367.  
  2368.    function onProductSearch() {
  2369.  
  2370.      const query = _selector('input[name=q]').value
  2371.  
  2372.      if (!query) return
  2373.  
  2374.      EasyStore.Event.dispatch('products/searched', { query })
  2375.  
  2376.    }
  2377.  
  2378.    function onCollectionView() {
  2379.  
  2380.      const collection = ""
  2381.  
  2382.      EasyStore.Event.dispatch('collections/viewed', { collection })
  2383.  
  2384.    }
  2385.  
  2386.    function onProductView() {
  2387.  
  2388.      const product = {"id":11594771,"handle":"online-seo","name":"online seo","title":"online seo","url":"\/products\/online-seo","price":50,"price_min":"50.0","price_max":"50.0","price_varies":false,"compare_at_price":100,"compare_at_price_min":"100.0","compare_at_price_max":"100.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":53508240,"variants":[{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],"selected_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"first_available_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"selected_or_first_available_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"img_url":"\/assets\/images\/products\/no_image.png","featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[],"media":[],"featured_media":null,"metafields":[],"expires":null,"published_at":"2024-03-20T14:41:01.000+05:00","created_at":"2024-03-20T14:41:01.000+05: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><a href=\"https:\/\/playmaster1.weebly.com\/\"><\/a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href=\"https:\/\/playmaster1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmasters12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster15.weebly.com\/\">-<\/a><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><a href=\"https:\/\/playmaster1.weebly.com\/\"><\/a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href=\"https:\/\/playmaster1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmasters12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster15.weebly.com\/\">-<\/a><\/div>","meta_description":"Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It\u0027s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it\u0027s about provi","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"view_history":{"product_id":11594771,"viewed_at":"2024-05-30T11:13:57.703+05:00"},"promotions":[]}
  2389.  
  2390.      EasyStore.Event.dispatch("products/viewed", { product })
  2391.  
  2392.    }
  2393.  
  2394.    function onProductShare(el) {
  2395.  
  2396.      const product = {"id":11594771,"handle":"online-seo","name":"online seo","title":"online seo","url":"\/products\/online-seo","price":50,"price_min":"50.0","price_max":"50.0","price_varies":false,"compare_at_price":100,"compare_at_price_min":"100.0","compare_at_price_max":"100.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":53508240,"variants":[{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],"selected_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"first_available_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"selected_or_first_available_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"img_url":"\/assets\/images\/products\/no_image.png","featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[],"media":[],"featured_media":null,"metafields":[],"expires":null,"published_at":"2024-03-20T14:41:01.000+05:00","created_at":"2024-03-20T14:41:01.000+05: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><a href=\"https:\/\/playmaster1.weebly.com\/\"><\/a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href=\"https:\/\/playmaster1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmasters12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster15.weebly.com\/\">-<\/a><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><a href=\"https:\/\/playmaster1.weebly.com\/\"><\/a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href=\"https:\/\/playmaster1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmasters12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster15.weebly.com\/\">-<\/a><\/div>","meta_description":"Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It\u0027s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it\u0027s about provi","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"view_history":{"product_id":11594771,"viewed_at":"2024-05-30T11:13:57.703+05:00"},"promotions":[]}
  2397.  
  2398.      const channel = el.getAttribute("class").split("-").last()
  2399.  
  2400.      EasyStore.Event.dispatch('products/shared', { product, channel })
  2401.  
  2402.    }
  2403.  
  2404.    function onWishlistItemAdded() {
  2405.  
  2406.      let product  = {"id":11594771,"handle":"online-seo","name":"online seo","title":"online seo","url":"\/products\/online-seo","price":50,"price_min":"50.0","price_max":"50.0","price_varies":false,"compare_at_price":100,"compare_at_price_min":"100.0","compare_at_price_max":"100.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":53508240,"variants":[{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],"selected_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"first_available_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"selected_or_first_available_variant":{"id":53508240,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"img_url":"\/assets\/images\/products\/no_image.png","featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[],"media":[],"featured_media":null,"metafields":[],"expires":null,"published_at":"2024-03-20T14:41:01.000+05:00","created_at":"2024-03-20T14:41:01.000+05: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><a href=\"https:\/\/playmaster1.weebly.com\/\"><\/a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href=\"https:\/\/playmaster1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmasters12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster15.weebly.com\/\">-<\/a><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><a href=\"https:\/\/playmaster1.weebly.com\/\"><\/a>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<br><a href=\"https:\/\/playmaster1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmasters12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/playmaster15.weebly.com\/\">-<\/a><\/div>","meta_description":"Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It\u0027s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it\u0027s about provi","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"view_history":{"product_id":11594771,"viewed_at":"2024-05-30T11:13:57.703+05:00"},"promotions":[]}
  2407.      const quantity = _selector("#Quantity").value
  2408.  
  2409.      EasyStore.Event.dispatch('wishlists/item_added', { product })
  2410.  
  2411.    }
  2412.  
  2413.    async function onCartItemsAdded() {
  2414.  
  2415.      const cart = await getCart()
  2416.  
  2417.      if(cart && cart.items != undefined && cart.items.length > 0) {
  2418.  
  2419.        EasyStore.Event.dispatch('carts/item_added', { cart })
  2420.  
  2421.      }
  2422.  
  2423.    }
  2424.  
  2425.    async function onCartView() {
  2426.  
  2427.      const cart = await getCart()
  2428.  
  2429.      EasyStore.Event.dispatch('carts/viewed', { cart })
  2430.  
  2431.    }
  2432.  
  2433.    async function onCartItemRemoved() {
  2434.  
  2435.      const cart = await getCart()
  2436.  
  2437.      cart.items = []
  2438.  
  2439.      if(cart) {
  2440.  
  2441.        EasyStore.Event.dispatch('carts/item_removed', { cart })
  2442.  
  2443.      }
  2444.  
  2445.    }
  2446.  
  2447.    async function onCheckoutInitiate() {
  2448.  
  2449.      const cart = await getCart()
  2450.  
  2451.      EasyStore.Event.dispatch('checkouts/initiated', { cart })
  2452.  
  2453.    }
  2454.  
  2455.    async function onShippingInfoAdded(form) {
  2456.      let checkout = getCheckout()
  2457.  
  2458.      let form_data = {}
  2459.      new FormData(form).forEach((value, key) => form_data[key] = value)
  2460.  
  2461.      let shipping_tier = null
  2462.  
  2463.      if (form_data.type && form_data.type.startsWith("r_pickup")) {
  2464.        shipping_tier = `Pickup - ${form_data.pick_location}`
  2465.      }
  2466.  
  2467.      if (form_data.s_id) {
  2468.        shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name")
  2469.      }
  2470.  
  2471.      if (!shipping_tier) return
  2472.  
  2473.      EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier })
  2474.  
  2475.    }
  2476.  
  2477.    async function onPaymentInfoAdded(form) {
  2478.  
  2479.      let checkout = getCheckout()
  2480.  
  2481.      let payment_type = new FormData(form).get('payment_method')
  2482.  
  2483.      EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type })
  2484.  
  2485.    }
  2486.  
  2487.    async function onOrderPlace() {
  2488.  
  2489.      let cart_token  = getCookie("cart_js")
  2490.      let previous_cart_token = getCookie("previous_cart_ga4_js")
  2491.  
  2492.      if (previous_cart_token && previous_cart_token == cart_token) {
  2493.        // Prevent duplicate purchase tracking
  2494.        return
  2495.      }
  2496.  
  2497.      let order = getOrder()
  2498.  
  2499.      EasyStore.Event.dispatch('orders/placed', { order })
  2500.  
  2501.      if(order.is_manual_payment) {
  2502.  
  2503.        EasyStore.Event.dispatch('orders/purchased', { order })
  2504.  
  2505.      }
  2506.  
  2507.      const last_transaction = order.transactions.last()
  2508.  
  2509.      if (last_transaction.status) {
  2510.  
  2511.        EasyStore.Event.dispatch('orders/purchased', { order })
  2512.        EasyStore.Event.dispatch('payments/captured', { order })
  2513.  
  2514.      }
  2515.  
  2516.    }
  2517.  
  2518.    async function onPaymentFail() {
  2519.  
  2520.      const order = getOrder()
  2521.  
  2522.      EasyStore.Event.dispatch('payments/failed', { order })
  2523.  
  2524.    }
  2525.  
  2526.    async function onCheckoutComplete(form) {
  2527.  
  2528.      onPaymentInfoAdded(form)
  2529.  
  2530.      const checkout = getCheckout()
  2531.  
  2532.      EasyStore.Event.dispatch('checkouts/completed', { checkout })
  2533.  
  2534.    }
  2535.  
  2536.    async function onSinglePageCheckout() {
  2537.  
  2538.      // let checkout = $("[data-app-checkout]").data("app-checkout")
  2539.  
  2540.      let checkout = getCheckout()
  2541.  
  2542.      // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text()
  2543.      const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML
  2544.  
  2545.      const shipping_method = _selector("#delivery_method").value
  2546.  
  2547.      let shipping_tier = null
  2548.      let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content')
  2549.      if (shipping_method == "shipping") {
  2550.        shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML
  2551.      }
  2552.  
  2553.      if (shipping_method == "pickup") {
  2554.        shipping_tier = app_spc_customer_info_label[0].innerHTML
  2555.      }
  2556.  
  2557.      if (shipping_tier) {
  2558.  
  2559.        EasyStore.Event.dispatch('checkouts/shipping_info_added', {
  2560.          checkout,
  2561.          shipping_tier,
  2562.        })
  2563.  
  2564.      }
  2565.  
  2566.      if (payment_type) {
  2567.  
  2568.        EasyStore.Event.dispatch('checkouts/payment_info_added', {
  2569.          checkout,
  2570.          payment_type,
  2571.        })
  2572.  
  2573.      }
  2574.  
  2575.      EasyStore.Event.dispatch('checkouts/completed', { checkout })
  2576.  
  2577.    }
  2578.  
  2579.  })
  2580.  
  2581.  
  2582.  //-----------------------//
  2583.  //       Functions       //
  2584.  //-----------------------//
  2585.  
  2586.  function getCookie(name) {
  2587.  
  2588.    name += "="
  2589.  
  2590.    decodedCookie = decodeURIComponent(document.cookie)
  2591.  
  2592.    ca = decodedCookie.split(";")
  2593.  
  2594.    for(i = 0; i < ca.length; i++) {
  2595.      c = ca[i]
  2596.      while (c.charAt(0) == " ") {
  2597.        c = c.substring(1)
  2598.      }
  2599.      if (c.indexOf(name) == 0) {
  2600.        return c.substring(name.length, c.length)
  2601.      }
  2602.    }
  2603.  
  2604.    return ""
  2605.  
  2606.  }
  2607.  
  2608.  const parsePrice = price => {
  2609.    if(typeof price === 'string') {
  2610.      return parseFloat(price.split(',').join(''))
  2611.    }
  2612.  
  2613.    return price
  2614.  }
  2615.  
  2616.  const requestCart = async (method, data) => {
  2617.  
  2618.  let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}})
  2619.    result = await response.json()
  2620.  
  2621.    return result.cart
  2622.  
  2623.  }
  2624.  const getCart = async (latest = false) => {
  2625.  
  2626.    let cart = latest_cart
  2627.  
  2628.    const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length)
  2629.  
  2630.    if(latest || cart_invalid) {
  2631.      cart = await requestCart()
  2632.    }
  2633.  
  2634.    cart.items = cart.items || []
  2635.  
  2636.    return mapCart(cart)
  2637.  
  2638.  }
  2639.  
  2640.  const getCheckout = async () => {
  2641.    mapCheckout(latest_cart || await requestCart())
  2642.  }
  2643.  
  2644.  const getOrder = async () => {
  2645.    mapOrder(latest_cart || await requestCart())
  2646.  }
  2647.  
  2648.  //-----------------------//
  2649.  //        Mappers        //
  2650.  //-----------------------//
  2651.  
  2652.  const fallbackAttribute = (object, attribute) => {
  2653.  
  2654.    if(!Array.isArray(attribute)) {
  2655.      attribute = [attribute]
  2656.    }
  2657.  
  2658.    let final_value = null
  2659.  
  2660.    do {
  2661.  
  2662.      final_value = object[attribute.shift()]
  2663.  
  2664.    } while(!final_value && attribute.length)
  2665.  
  2666.    return final_value
  2667.  
  2668.  }
  2669.  
  2670.  const map = (object, mapper) => {
  2671.  
  2672.    const newObject = {}
  2673.  
  2674.    for(const key in mapper) {
  2675.  
  2676.      // Handle different keys between new and old format
  2677.      newObject[key] = fallbackAttribute(object, mapper[key])
  2678.  
  2679.      // Cast price to float
  2680.      if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) {
  2681.        newObject[key] = parsePrice(newObject[key])
  2682.      }
  2683.  
  2684.      if(newObject[key] === undefined) {
  2685.        delete newObject[key]
  2686.      }
  2687.  
  2688.    }
  2689.  
  2690.    return newObject
  2691.  
  2692.  }
  2693.  
  2694.  const mapCart = cart => {
  2695.  
  2696.    const oldCart = cart
  2697.  
  2698.    const mapper = {
  2699.      id: 'id',
  2700.      currency: 'currency',
  2701.      item_count: 'item_count',
  2702.      items: 'items',
  2703.      total_price: 'total_price',
  2704.      latest_items: 'latest_items'
  2705.    }
  2706.  
  2707.    cart = map(cart, mapper)
  2708.  
  2709.    const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || []))
  2710.  
  2711.    cart.discount_applications = discounts.map(discount => ({
  2712.      title: discount.voucher_code || null,
  2713.      value: parsePrice(discount.amount),
  2714.    }))
  2715.  
  2716.    cart.original_total_price = cart.items.length
  2717.    ? cart.items
  2718.      .map(item => item.original_price)
  2719.      .reduce((sum, price) => sum + price)
  2720.    : 0
  2721.  
  2722.    cart.total_discount = cart.discount_applications.length
  2723.    ? cart.discount_applications
  2724.      .map(discount => parsePrice(discount.value))
  2725.      .reduce((sum, value) => sum + value)
  2726.    : 0
  2727.  
  2728.    cart.items = cart.items.map(item => mapLineItem(item))
  2729.  
  2730.    return cart
  2731.  
  2732.  }
  2733.  
  2734.  const mapCheckout = checkout => {
  2735.  
  2736.    const mapper = {
  2737.      note: 'note',
  2738.      attributes: 'note_attributes',
  2739.      billing_address: 'billing_address',
  2740.      currency: 'currency',
  2741.      customer_id: 'customer_id',
  2742.      discounts_amount: 'total_discount',
  2743.      id: 'id',
  2744.      line_items: 'order_item',
  2745.      order_number: 'order_number',
  2746.      shipping_address: 'shipping_address',
  2747.      shipping_price: 'shipping_tax',
  2748.      shipping_method: 'shipping_method_name',
  2749.      tax_price: 'total_tax',
  2750.    }
  2751.  
  2752.    checkout = map(checkout, mapper)
  2753.  
  2754.    checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required)
  2755.  
  2756.    checkout.line_items = checkout.line_items.map(item => mapLineItem(item))
  2757.  
  2758.    return checkout
  2759.  
  2760.  }
  2761.  
  2762.  const mapOrder = order => {
  2763.  
  2764.    const mapper = {
  2765.      attributes: 'note_attributes',
  2766.      billing_address: 'billing_address',
  2767.      cancelled: 'is_cancelled',
  2768.      cancelled_at: 'cancelled_at',
  2769.      created_at: 'created_at',
  2770.      customer_id: 'customer_id',
  2771.      // discount_applications: 'discount_applications',
  2772.      email: 'email',
  2773.      financial_status: 'financial_status',
  2774.      fulfillment_status: 'fulfillment_status',
  2775.      line_items: 'order_item',
  2776.      note: 'note',
  2777.      order_number: 'order_number',
  2778.      phone: 'phone',
  2779.      shipping_address: 'shipping_address',
  2780.      shipping_methods: 'shipping_methods',
  2781.      shipping_price: 'total_shipping',
  2782.      subtotal_price: 'subtotal_price',
  2783.      // tax_lines: 'tax_lines',
  2784.      tax_price: 'total_tax',
  2785.      total_discounts: 'total_discount',
  2786.      total_net_amount: 'total_amount_include_transaction',
  2787.      total_price: 'total_price',
  2788.      transactions: 'transaction_records',
  2789.      is_manual_payment: 'is_manual_payment',
  2790.    }
  2791.  
  2792.    order.email = order.billing_address.email
  2793.    order.phone = order.billing_address.phone
  2794.    order.shipping_method = order.shipping_method_name
  2795.  
  2796.    order = map(order, mapper)
  2797.  
  2798.    order.line_items = order.line_items.map(item => mapLineItem(item))
  2799.    order.transactions = order.transactions.map(transaction => mapTransaction(transaction))
  2800.  
  2801.    return order
  2802.  
  2803.  }
  2804.  
  2805.  const mapLineItem = line_item => {
  2806.  
  2807.    const old_line_item = line_item
  2808.  
  2809.    const mapper = {
  2810.      final_price: 'price',
  2811.      image: 'img_url',
  2812.      message: 'message',
  2813.      original_line_price: 'original_line_price',
  2814.      original_price: 'original_price',
  2815.      properties: 'properties',
  2816.      quantity: 'quantity',
  2817.      requires_shipping: 'shipping_required',
  2818.      sku: 'sku',
  2819.      taxable: 'taxable',
  2820.      title: 'product_name',
  2821.      product_name: 'product_name',
  2822.      url: 'url',
  2823.      product_id: 'product_id',
  2824.      variant_id: 'variant_id',
  2825.      id: ['id', 'i_id'],
  2826.    }
  2827.  
  2828.    line_item = map(line_item, mapper)
  2829.  
  2830.    line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null
  2831.    line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null
  2832.    line_item.image      = line_item.image || (old_line_item.image && old_line_item.image.url) || null
  2833.  
  2834.    return line_item
  2835.  
  2836.  }
  2837.  
  2838.  const mapTransaction = transaction => {
  2839.  
  2840.    const mapper = {
  2841.      amount: 'amount',
  2842.      created_at: 'created_at',
  2843.      gateway: 'gateway_type',
  2844.      id: 'id',
  2845.      status: 'status',
  2846.    }
  2847.  
  2848.    transaction = map(transaction, mapper)
  2849.  
  2850.    return transaction
  2851.  
  2852.  }
  2853.  
  2854.  
  2855. </script>
  2856.  
  2857. </body>
  2858. </html>
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda