Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Product shelf #8

Open
github-learning-lab bot opened this issue Mar 5, 2020 · 2 comments
Open

Product shelf #8

github-learning-lab bot opened this issue Mar 5, 2020 · 2 comments

Comments

@github-learning-lab
Copy link

Product shelf

Branch: shelf

Introduction

The next block that we'll use is the Shelf, on which we display a product collection. This session will show you how to render and configure this shelf on your store's homepage.

Shelf

After a closer look at the Shelf documentation, we see that it's possible to configure which product collection we want to have displayed using either category, specificationFilters or collection props, according to the products added in the catalog.

Other props help to configure how the items are displayed. It's important to remember that the shelf component always requests that product-summary type blocks be part of its composition. Check out the product-summary block's documentation for more info on how it functions.

Below, we have a Shelf implementation example:

{
  "store.home": {
    "blocks": [
      ...
      "shelf"
    ]
  },
  ...
  "shelf": {
    "blocks": ["product-summary.shelf"],
    "props": {
      "category": 1,
      "orderBy": "OrderByTopSaleDESC",
      "paginationDotsVisibility": "desktopOnly",
      "productList": {
        "maxItems": 10,
        "itemsPerPage": 5,
        "minItemsPerPage": 1,
        "scroll": "BY_PAGE",
        "arrows": true,
        "titleText": "Top sellers"
      }
    }
  },
  "product-summary.shelf": {
    "children": [
      "product-summary-image",
      "product-summary-add-to-list-button",
      "product-summary-name",
      "product-rating-inline",
      "product-summary-space",
      "product-summary-price",
      "product-identifier.summary",
      "product-summary-buy-button"
    ]
  }
}

Activity

  1. In home.jsonc, declare a shelf component is the store.home template;
  2. Inside the blocks folder, create a shelf.jsonc file;
  3. In shelf.jsonc, define the shelf block with all the props given in the example above;
  4. Change the maximum number of displayed items to 8
  5. Change the number of items per page to 4

Note: It's important to remember that the product-summary.shelf block is already declared in default.jsonc. Therefore, it wasn't necessary to declare it during this activity.

ℹ️ Remember to access the Shelf's documentation if you have any questions during this activity.

The end result should be similar to the one below:
image

Troubleshoot

In case you're using your own VTEX account, make sure that the category 1 is functional and active in your environment.


If you're still unsure as to how to send your answers, click here.

@vtex-course-hub
Copy link

You did great! 😁

Results

✅✅✅✅✅

Tests

✅ Add a shelf to store.home blocks
✅ Create a shelf.jsonc file
✅ Add the declarations found at this module's text to shelf.jsonc
✅ Update maximum number of products displayed by the Shelf to 8
✅ Update number of products per page to 4

@github-learning-lab
Copy link
Author

You have successfully completed this step!

Go to the next step!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

0 participants