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 page #11

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

Product page #11

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

Comments

@github-learning-lab
Copy link

Product page

Branch: pdp1

Introduction

Once the store's homepage is done, we can start working on a new store template: the product page. Product pages are probably the templates with the most blocks, which makes them extremely flexible and customizable.

MVP

Let's build a minimal product page, with only the bare essentials:

  • images;
  • prices;
  • names;
  • buy button

image

Product blocks

Most product blocks, unlike content blocks, are inserted into a certain context, making them a little bit "plug-n-play": placing product-images on the product page will automatically lead to images being rendered on that page, the same being valid for price and name.

This doesn't mean that these blocks are less customizable, quite the opposite actually, as we'll soon see.

Activity

Build a product page using the following blocks in product.jsonc and declare it in the store/blocks folder: product-images, product-price, product-name and buy-button. We expect the structure to contain the following:

  1. A line in store.product;
{
 "store.product": {
    "children": [
      "flex-layout.row#main"
    ]
  }
}
  1. That line should have two columns;
"flex-layout.row#main": { 
  "props": { 
    "marginTop": 6
  },
  "children": [
    "flex-layout.col#left",
    "flex-layout.col#right"
  ]
}
  1. The left column must contain a product-images;
"flex-layout.col#left": {
  "children": [
    "product-images"
  ]
}
  1. The right column must contain the product-name, product-price and buy-button;

In addition, we want:

  1. the right column to be vertically aligned to the center (see the verticalAlign and preventVerticalStretch props in the Flex Layout Column documentation)
  2. the product-price to show the total savings and list price (showSavings and showListPrice)

ℹ️ Remember to access the product-images, product-price, product-name e buy-button documentation in case you have any questions during your activity.


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

@vtex-course-hub
Copy link

You did great! 😁

Results

✅✅✅✅✅✅✅✅

Tests

✅ Code compilation
✅ Crete a product template page
✅ Create a main row inside the product page
✅ Define two columns inside the main row
✅ Define product-images on the left column
✅ Define product-name, product-price and buy-button on the right column
✅ Control stretch and alignment of right column
✅ Define product-price with props

@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