# List products

Activate the SDK mixin by adding this.useProductsMixin(true) to created hook like below:

<template>
  <div class="products">

    <!-- Your HTML codes -->

  </div>
</template>

<script>
export default {

  created() {

    // Activate the sdk
    this.useProductsMixin(true)
  }

}
</script>

Now you'll be able to access these following data and methods:

Property / Method name type Description
isLoadingProducts property Boolean value, true if is loading products, false if loaded
productsDocument property A JSON:API document object of products data
productsErrors property An array of error messages
productsFilter property Product filter data
productsSort property Default value -created_at

# Example of usage

Below is a full example of a Products.vue component:

<template>
  <div class="products">

    <!-- Errors -->
    <div v-if="productsErrors.length">
      <h1>Errors:</h1>
      <div v-for="error in productsErrors">{{ error }}</div>
    </div>

    <!-- Is loading products -->
    <div v-if="isLoadingProducts">
      ...Loading...
    </div>

    <!-- Products are loaded -->
    <div v-if="productsDocument">

      <!-- Loop through document data -->
      <div v-for="product in productsDocument.getData()" class="products__product">
        <router-link :to="$linkTo('product', product)">{{ product.getAttribute('title') }}</router-link>
      </div>

    </div>

  </div>
</template>

<script>
export default {

  created() {

    // Activate the sdk
    this.useProductsMixin(true)
  }

}
</script>