landing-pages.yotpo.com Open in urlscan Pro
2a02:26f0:1700:184::1d72  Public Scan

Submitted URL: http://em.yotpo.com/ls/click?upn=VQQ-2B0iq1UW4-2F841JKdF-2BMZ4MmfMnu4A-2FotMmfyh9of9NazJ6J-2BwwvcgFphnUglw8z-2FVCgnC...
Effective URL: https://landing-pages.yotpo.com/base/
Submission: On February 04 via api from US — Scanned from DE

Form analysis 2 forms found in the DOM

<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody &amp;&amp; isSubmitClicked }">
  <!-- ngIf: showReviewBody -->
  <div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="FF6C0C" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
    product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/254200047/183914875/thumb.jpg?1637690594" product-name="Outdoorsman Bluetooth Speaker">
    <div class="header-container">
      <div ng-show="showProductImage" class="product-img-container">
        <!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/254200047/183914875/thumb.jpg?1637690594" class="product-img ng-scope" alt="Product image"
          src="//cdn-yotpo-images-production.yotpo.com/Product/254200047/183914875/thumb.jpg?1637690594" style=""><!-- end ngIf: productImageUrl -->
        <!-- ngIf: !productImageUrl -->
      </div>
      <div class="stars-container">
        <div class="product-name" style="display: -webkit-box;">
          <span ng-bind-html="productName" class="ng-binding">Outdoorsman Bluetooth Speaker</span>
        </div>
        <div class="stars">
          <ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue &amp;&amp; showError}" rating-value="starRatingValue" star-color="FF6C0C" show-error="showError(starRatingValue)">
            <!-- ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
              <!-- ngIf: ratingValue && index <= ratingValue --><svg class="full-star ng-scope" ng-if="ratingValue &amp;&amp; index <= ratingValue" xmlns="http://www.w3.org/2000/svg" width="24" height="23" viewBox="0 0 24 23">
                <path fill="#FF6C0C" fill-rule="evenodd"
                  d="M24 8.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L12 18.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057L.36 9.358C.12 9.104 0 8.878 0 8.681c0-.349.27-.565.808-.65l7.24-1.03L11.293.579C11.476.193 11.712 0 12 0s.524.193.707.579L15.952 7l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
          </ul>
          <span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
        </div>
      </div>
    </div>
  </div><!-- end ngIf: showReviewBody -->
  <!-- ngIf: showReviewBody -->
  <div class="review-body ng-scope animation-done" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded &amp;&amp; !loaded, 'animation-done': expandAnimationDone}" style="">
    <div class="title-and-content">
      <div class="loading-container loading ng-isolate-scope ng-hide" review-body-mode="true" ng-show="expanded &amp;&amp; !loaded">
        <!-- ngIf: !reviewBodyMode -->
        <div class="ls-body-container">
          <div class="left-margin line-masker"></div>
          <div class="ls-body-content">
            <!-- ngIf: !reviewBodyMode -->
            <div>
              <div class="ls-review-title"></div>
              <div class="ls-review-content"></div>
              <div class="fields-line-1">
                <div class="line-1"></div>
                <div class="line-2 line-masker"></div>
              </div>
              <div class="fields-line-2">
                <div class="line-1"></div>
                <div class="line-2 line-masker"></div>
              </div>
              <div class="fields-line-3">
                <div class="bullet"></div>
                <div class="bullet-separator line-masker"></div>
                <div class="bullet"></div>
                <div class="bullet-separator line-masker"></div>
                <div class="bullet"></div>
                <div class="bullet-separator line-masker"></div>
                <div class="bullet"></div>
                <div class="bullet-separator line-masker"></div>
                <div class="bullet"></div>
                <div class="bullet-margin-right line-masker"></div>
              </div>
            </div>
          </div>
          <div class="right-margin line-masker"></div>
        </div>
      </div>
      <!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
      <div ng-if="reviewTitleRequired &amp;&amp; !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}">
        <input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title">
      </div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
      <div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
        <!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
          ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
        <!-- ngIf: loaded && suggestedTopicsEnabled -->
        <span class="review-content-error ng-binding" ng-class="{'dynamic-position': suggestedTopicsEnabled}" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Review content required</span>
      </div>
      <!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
    </div>
    <!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
    <div class="media-uploader-container ng-scope ng-isolate-scope" ng-if="loaded &amp;&amp; (imagesEnabled || videosEnabled) &amp;&amp; !thankYouMode" images-enabled="imagesEnabled" videos-enabled="videosEnabled"
      app-key="VYGXMIPc6b4GKRpx4F81JDKET63YT22N6GN4LROE" review-creation-token="1e76e413c194fca251aaddd2ac2a8608f8c84aff" images-limit="maxImagesPerReview" videos-limit="maxVideosPerReview" video-support-settings="videoSupportSettings"
      videos-max-duration-in-minutes="videosMaxDurationInMinutes" notify-media-added="mediaAdded(id, error, type)" notify-update-media-status="updateMediaStatus(id, inProgress, uploaded, url, videoSubmitCallback)"
      notify-media-removed="mediaRemoved(id)" demo-mode="demoMode">
      <div class="media-uploader">
        <div class="upload-buttons-container two-buttons" ng-class="{'two-buttons': imagesEnabled &amp;&amp; videosEnabled}" style="">
          <!-- ngIf: imagesEnabled --><button class="upload-button ng-scope two-buttons" ng-class="{'two-buttons': imagesEnabled &amp;&amp; videosEnabled}" ng-if="imagesEnabled" ngf-select="filesAdded($files, $invalidFiles, 'image')"
            ngf-accept="'image/*'" ngf-pattern="'.jpg,.jpeg,.png,.gif,.bmp'" multiple="multiple" ngf-max-size="15MB" ngf-dimensions="$width >= 400 &amp;&amp; $height >= 400" ngf-validate-force="true" ng-disabled="getMediaSize('image') >= imagesLimit"
            style="">
            <svg class="upload-button-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28" height="22" viewBox="0 0 28 22">
              <defs>
                <path d="M24 24H0V0h24z"></path>
              </defs>
              <g fill="none" fill-rule="evenodd" transform="translate(2)">
                <mask fill="#fff">
                  <use xlink:href="#a"></use>
                </mask>
                <path class="upload-button-icon-fill" fill-rule="nonzero"
                  d="M3 4V1h2v3h3v2H5v3H3V6H0V4h3zm3 6V7h3V4h7l1.83 2H21c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V10h3zm7 9c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-3.2-5c0 1.77 1.43 3.2 3.2 3.2 1.77 0 3.2-1.43 3.2-3.2 0-1.77-1.43-3.2-3.2-3.2-1.77 0-3.2 1.43-3.2 3.2z"
                  mask="url(#b)"></path>
              </g>
            </svg>
            <span class="upload-button-text ng-binding" ng-bind="'REVIEW.MEDIA.IMAGES.ADD_PHOTOS' | translate">Add Photos</span>
          </button><!-- end ngIf: imagesEnabled -->
          <!-- ngIf: videosEnabled --><button class="upload-button ng-scope two-buttons" ng-class="{'two-buttons': imagesEnabled &amp;&amp; videosEnabled}" ng-if="videosEnabled" ngf-select="filesAdded($files, $invalidFiles, 'video')"
            ngf-accept="'video/*'" ngf-pattern="'.mp4,.mov,.qt,.m4v,.flv,.f4v,.avi,.asf,.wmv,.wma,.mpg,.m1v,.m2v,.mp3,.wav,.mkv,.ogg,.ogm,.ogv,.webm,.3gp,.rm,.arf,.mxf'" multiple="multiple" ngf-max-size="2GB"
            ngf-duration="$duration < videosMaxDurationInSeconds" ng-disabled="getMediaSize('video') >= videosLimit">
            <svg class="upload-button-icon" xmlns="http://www.w3.org/2000/svg" width="28" height="22" viewBox="0 0 28 22">
              <g fill="none" fill-rule="evenodd">
                <g fill-rule="nonzero">
                  <path class="upload-button-icon-fill"
                    d="M8.783 3.925l.01-.01v.01l9.655.04c1.813 0 3.282 1.507 3.282 3.365V9.65l3.808-2.608c.508-.3 1.134-.3 1.641 0 .508.3.821.856.821 1.457V17c0 .6-.313 1.156-.82 1.457a1.59 1.59 0 0 1-1.642 0l-3.808-2.798v2.322c0 1.858-1.469 3.364-3.282 3.364l-12.166-.05C4.47 21.294 3 19.787 3 17.93V7.28C3 5.42 4.47 3.914 6.282 3.914l2.5.01zm0 0L3 9.708h2.897V6.812h2.896V3.926h-.01z">
                  </path>
                  <path fill="#FFF" d="M7.828 13.138a4.822 4.822 0 0 0 4.827 4.828 4.822 4.822 0 0 0 4.828-4.828 4.822 4.822 0 0 0-4.828-4.828 4.822 4.822 0 0 0-4.827 4.828z"></path>
                  <path class="upload-button-icon-fill" d="M9.759 13.138a2.893 2.893 0 0 0 2.896 2.896 2.893 2.893 0 0 0 2.897-2.896 2.893 2.893 0 0 0-2.897-2.897 2.893 2.893 0 0 0-2.896 2.897z"></path>
                </g>
                <path fill="#FFF" d="M2 3.948h4v6H2z"></path>
                <path fill="#FFF" d="M9.069 3.052l-.07 4L3 6.947l.07-4z"></path>
                <path class="upload-button-icon-fill" fill-rule="nonzero" d="M3 4V1h2v3h3v2H5v3H3V6H0V4z"></path>
              </g>
            </svg>
            <span class="upload-button-text ng-binding" ng-bind="'REVIEW.MEDIA.VIDEOS.ADD_VIDEOS' | translate">Add Videos</span>
          </button><!-- end ngIf: videosEnabled -->
        </div>
        <div class="media-list-container two-buttons ng-hide" ng-show="totalMediaSize() > 0" ng-class="{'two-buttons': imagesEnabled &amp;&amp; videosEnabled}" style="">
          <div class="media-list">
            <!-- ngRepeat: (mediaId, media) in medias -->
          </div>
        </div>
      </div>
      <!-- ngIf: getUploadNoticeState() == 'maxSize' -->
      <!-- ngIf: getUploadNoticeState() == 'imageMaxSelect' -->
      <!-- ngIf: getUploadNoticeState() == 'videoMaxSelect' -->
    </div><!-- end ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
    <div class="custom-fields ng-isolate-scope" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
      <div ng-show="fields">
        <!-- ngRepeat: (slug, field) in fields -->
      </div>
    </div>
    <!-- ngIf: termsAndConditionsUrl -->
    <!-- ngIf: privacyPolicyUrl -->
    <div ng-show="loaded" class="form-field submit-container">
      <button class="submit-review-button" name="commit" ng-disabled="mediaInProgressExists()">
        <!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
        <!-- ngIf: mediaInProgressExists() -->
      </button>
    </div>
  </div><!-- end ngIf: showReviewBody -->
  <!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
  <!-- ngIf: thankYouMode -->
</form>

<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody &amp;&amp; isSubmitClicked }">
  <!-- ngIf: showReviewBody -->
  <div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="FF6C0C" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
    product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/181832217/125631487/thumb.jpg?1634792672" product-name="Shell Holder Rack">
    <div class="header-container">
      <div ng-show="showProductImage" class="product-img-container">
        <!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/181832217/125631487/thumb.jpg?1634792672" class="product-img ng-scope" alt="Product image"
          src="//cdn-yotpo-images-production.yotpo.com/Product/181832217/125631487/thumb.jpg?1634792672" style=""><!-- end ngIf: productImageUrl -->
        <!-- ngIf: !productImageUrl -->
      </div>
      <div class="stars-container">
        <div class="product-name" style="display: -webkit-box;">
          <span ng-bind-html="productName" class="ng-binding">Shell Holder Rack</span>
        </div>
        <div class="stars">
          <ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue &amp;&amp; showError}" rating-value="starRatingValue" star-color="FF6C0C" show-error="showError(starRatingValue)">
            <!-- ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
            <li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
              <!-- ngIf: ratingValue && index <= ratingValue -->
              <!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue &amp;&amp; index > ratingValue) || (!ratingValue &amp;&amp; !showError)"
                xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
                <path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
                  d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
                </path>
              </svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
              <!-- ngIf: showError && !ratingValue -->
            </li><!-- end ngRepeat: index in [1,2,3,4,5] -->
          </ul>
          <span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
        </div>
      </div>
    </div>
  </div><!-- end ngIf: showReviewBody -->
  <!-- ngIf: showReviewBody -->
  <div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded &amp;&amp; !loaded, 'animation-done': expandAnimationDone}" style="">
    <div class="title-and-content">
      <div class="loading-container loading ng-isolate-scope ng-hide" review-body-mode="true" ng-show="expanded &amp;&amp; !loaded">
        <!-- ngIf: !reviewBodyMode -->
        <div class="ls-body-container">
          <div class="left-margin line-masker"></div>
          <div class="ls-body-content">
            <!-- ngIf: !reviewBodyMode -->
            <div>
              <div class="ls-review-title"></div>
              <div class="ls-review-content"></div>
              <div class="fields-line-1">
                <div class="line-1"></div>
                <div class="line-2 line-masker"></div>
              </div>
              <div class="fields-line-2">
                <div class="line-1"></div>
                <div class="line-2 line-masker"></div>
              </div>
              <div class="fields-line-3">
                <div class="bullet"></div>
                <div class="bullet-separator line-masker"></div>
                <div class="bullet"></div>
                <div class="bullet-separator line-masker"></div>
                <div class="bullet"></div>
                <div class="bullet-separator line-masker"></div>
                <div class="bullet"></div>
                <div class="bullet-separator line-masker"></div>
                <div class="bullet"></div>
                <div class="bullet-margin-right line-masker"></div>
              </div>
            </div>
          </div>
          <div class="right-margin line-masker"></div>
        </div>
      </div>
      <!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
      <div ng-if="reviewTitleRequired &amp;&amp; !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}">
        <input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title">
      </div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
      <div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
        <!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
          ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
        <!-- ngIf: loaded && suggestedTopicsEnabled -->
        <span class="review-content-error ng-binding" ng-class="{'dynamic-position': suggestedTopicsEnabled}" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Review content required</span>
      </div>
      <!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
    </div>
    <!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
    <div class="custom-fields ng-isolate-scope" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
      <div ng-show="fields" class="ng-hide" style="">
        <!-- ngRepeat: (slug, field) in fields -->
      </div>
    </div>
    <!-- ngIf: termsAndConditionsUrl -->
    <!-- ngIf: privacyPolicyUrl -->
    <div ng-show="loaded" class="form-field submit-container ng-hide">
      <button class="submit-review-button" name="commit" ng-disabled="mediaInProgressExists()">
        <!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
        <!-- ngIf: mediaInProgressExists() -->
      </button>
    </div>
  </div><!-- end ngIf: showReviewBody -->
  <!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
  <!-- ngIf: thankYouMode -->
</form>

Text Content

PRODUCTS TO REVIEW

Outdoorsman Bluetooth Speaker
   
 * 
   
 * 
   
 * 
   
 * 
   
 * 
   

Required
Review content required
Add Photos Add Videos


Submit Review
Shell Holder Rack
   
 * 
   
 * 
   
 * 
   
 * 
   
 * 
   

Required
Review content required

Submit Review

Powered by

uploadupload