Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

[Patterns]: Add new Featured products: 5-item grid pattern #9006

Merged
merged 9 commits into from
Apr 25, 2023

Conversation

albarin
Copy link
Contributor

@albarin albarin commented Apr 11, 2023

Add a new pattern showing 5 newest products with a title and /shop button.

Fixes #8950

Screenshots

Screenshot 2023-04-11 at 16 25 52

Testing

User-Facing Testing

  1. Create a new page or post
  2. Make sure the WooCommerce Featured Products 5-item grid pattern appears under the WooCommerce category dropdown.
  3. Insert in and make sure it shows as expected on the design.

WooCommerce Visibility

  • WooCommerce Core
  • Feature plugin
  • Experimental

Changelog

Add the new WooCommerce Featured Products 5-item grid pattern.

@albarin albarin added type: enhancement The issue is a request for an enhancement. focus: patterns WooCommerce patterns labels Apr 11, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Apr 11, 2023

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-9006.zip

Script Dependencies Report

There is no changed script dependency between this branch and trunk.

This comment was automatically generated by the ./github/compare-assets action.

TypeScript Errors Report

  • Files with errors: 452
  • Total errors: 2217

🎉 🎉 This PR does not introduce new TS errors.

comments-aggregator

@albarin
Copy link
Contributor Author

albarin commented Apr 11, 2023

@shaunandrews @jarekmorawski could you review the pattern? (sorry that I'm mentioning both, should I only mention @shaunandrews from now on? 🤔)
I have a couple of questions:

  • We already have a very similar pattern called WooCommerce Minimal 5-Column Products Row, does it make sense to keep both? or should we maybe update the existing one to add the title and button?
  • Which width should the block have? I've used Wide width for now.

Screenshot 2023-04-11 at 16 36 06

@github-actions
Copy link
Contributor

github-actions bot commented Apr 11, 2023

Size Change: 0 B

Total Size: 1.1 MB

ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 7.99 kB
build/active-filters-wrapper-frontend.js 5.97 kB
build/active-filters.js 7.48 kB
build/all-products-frontend.js 11.8 kB
build/all-products.js 38.6 kB
build/all-reviews.js 7.66 kB
build/attribute-filter-frontend.js 22.5 kB
build/attribute-filter-wrapper-frontend.js 7.07 kB
build/attribute-filter.js 13.2 kB
build/blocks-checkout.js 35.1 kB
build/breadcrumbs.js 2.05 kB
build/cart-blocks/cart-accepted-payment-methods-frontend.js 1.38 kB
build/cart-blocks/cart-cross-sells-frontend.js 253 B
build/cart-blocks/cart-cross-sells-products-frontend.js 5.38 kB
build/cart-blocks/cart-express-payment--checkout-blocks/express-payment-frontend.js 5.16 kB
build/cart-blocks/cart-express-payment-frontend.js 719 B
build/cart-blocks/cart-items-frontend.js 302 B
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.39 kB
build/cart-blocks/cart-line-items-frontend.js 1.06 kB
build/cart-blocks/cart-order-summary-frontend.js 1.27 kB
build/cart-blocks/cart-totals-frontend.js 307 B
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/filled-cart-frontend.js 656 B
build/cart-blocks/order-summary-coupon-form-frontend.js 1.63 kB
build/cart-blocks/order-summary-discount-frontend.js 2.12 kB
build/cart-blocks/order-summary-fee-frontend.js 273 B
build/cart-blocks/order-summary-heading-frontend.js 333 B
build/cart-blocks/order-summary-shipping-frontend.js 11.8 kB
build/cart-blocks/order-summary-subtotal-frontend.js 274 B
build/cart-blocks/order-summary-taxes-frontend.js 431 B
build/cart-blocks/proceed-to-checkout-frontend.js 1.38 kB
build/cart-frontend.js 29.3 kB
build/cart.js 44.5 kB
build/catalog-sorting.js 1.7 kB
build/checkout-blocks/actions-frontend.js 1.84 kB
build/checkout-blocks/billing-address-frontend.js 4.19 kB
build/checkout-blocks/contact-information-frontend.js 2.05 kB
build/checkout-blocks/express-payment-frontend.js 1.13 kB
build/checkout-blocks/fields-frontend.js 331 B
build/checkout-blocks/order-note-frontend.js 1.14 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 3.69 kB
build/checkout-blocks/order-summary-coupon-form-frontend.js 1.79 kB
build/checkout-blocks/order-summary-discount-frontend.js 2.29 kB
build/checkout-blocks/order-summary-fee-frontend.js 275 B
build/checkout-blocks/order-summary-frontend.js 1.27 kB
build/checkout-blocks/order-summary-shipping-frontend.js 11.8 kB
build/checkout-blocks/order-summary-subtotal-frontend.js 273 B
build/checkout-blocks/order-summary-taxes-frontend.js 430 B
build/checkout-blocks/payment-frontend.js 8.27 kB
build/checkout-blocks/pickup-options-frontend.js 4.14 kB
build/checkout-blocks/shipping-address-frontend.js 4.14 kB
build/checkout-blocks/shipping-method-frontend.js 2.59 kB
build/checkout-blocks/shipping-methods-frontend.js 5.64 kB
build/checkout-blocks/terms-frontend.js 1.56 kB
build/checkout-blocks/totals-frontend.js 310 B
build/checkout-frontend.js 30.9 kB
build/checkout.js 46.2 kB
build/customer-account.js 3.17 kB
build/featured-category.js 14.3 kB
build/featured-product.js 14.5 kB
build/filter-wrapper-frontend.js 14 kB
build/filter-wrapper.js 2.4 kB
build/general-style-rtl.css 1.31 kB
build/general-style.css 1.31 kB
build/handpicked-products.js 7.93 kB
build/legacy-template.js 5.62 kB
build/mini-cart-component-frontend.js 29.2 kB
build/mini-cart-contents-block/cart-button-frontend.js 867 B
build/mini-cart-contents-block/checkout-button-frontend.js 870 B
build/mini-cart-contents-block/empty-cart-frontend.js 360 B
build/mini-cart-contents-block/filled-cart-frontend.js 268 B
build/mini-cart-contents-block/footer-frontend.js 3.2 kB
build/mini-cart-contents-block/items-frontend.js 237 B
build/mini-cart-contents-block/products-table-frontend.js 589 B
build/mini-cart-contents-block/shopping-button-frontend.js 759 B
build/mini-cart-contents-block/title-frontend.js 1.09 kB
build/mini-cart-contents-block/title-items-counter-frontend.js 732 B
build/mini-cart-contents-block/title-label-frontend.js 660 B
build/mini-cart-contents.js 17.8 kB
build/mini-cart-frontend.js 2.02 kB
build/mini-cart.js 4.49 kB
build/price-filter-frontend.js 13.9 kB
build/price-filter-wrapper-frontend.js 7.03 kB
build/price-filter.js 8.45 kB
build/price-format.js 1.19 kB
build/product-add-to-cart--product-button--product-image--product-price--product-rating--product-sale-bad--49d3ecb2.js 253 B
build/product-add-to-cart--product-button--product-image--product-rating--product-title.js 151 B
build/product-add-to-cart-frontend.js 6.42 kB
build/product-add-to-cart.js 8.84 kB
build/product-best-sellers.js 8.26 kB
build/product-button--product-image--product-price--product-rating--product-sale-badge--product-sku--prod--408017d2.js 262 B
build/product-button--product-image--product-price--product-rating--product-sale-badge--product-sku--prod--5bce0384.js 464 B
build/product-button-frontend.js 1.92 kB
build/product-button.js 4.17 kB
build/product-categories.js 2.36 kB
build/product-category.js 9.25 kB
build/product-image-frontend.js 1.84 kB
build/product-image.js 4.3 kB
build/product-new.js 8.25 kB
build/product-on-sale.js 8.59 kB
build/product-price-frontend.js 2.12 kB
build/product-price.js 1.67 kB
build/product-query.js 11.3 kB
build/product-rating-frontend.js 1.33 kB
build/product-rating.js 920 B
build/product-results-count.js 1.66 kB
build/product-sale-badge-frontend.js 975 B
build/product-sale-badge.js 801 B
build/product-search.js 2.63 kB
build/product-sku-frontend.js 1 kB
build/product-sku.js 578 B
build/product-stock-indicator-frontend.js 1.19 kB
build/product-stock-indicator.js 769 B
build/product-summary-frontend.js 1.29 kB
build/product-summary.js 920 B
build/product-tag.js 8.74 kB
build/product-title-frontend.js 1.37 kB
build/product-title.js 3.73 kB
build/product-top-rated.js 8.5 kB
build/products-by-attribute.js 9.59 kB
build/rating-filter-frontend.js 20.8 kB
build/rating-filter-wrapper-frontend.js 5.59 kB
build/rating-filter.js 6.98 kB
build/reviews-by-category.js 11.9 kB
build/reviews-by-product.js 13 kB
build/reviews-frontend.js 7.1 kB
build/single-product.js 11 kB
build/stock-filter-frontend.js 21.1 kB
build/stock-filter-wrapper-frontend.js 5.83 kB
build/stock-filter.js 7.71 kB
build/store-notices.js 1.69 kB
build/vendors--attribute-filter-wrapper--cart-blocks/order-summary-coupon-form--cart-blocks/order-summary--48e1e4bb-frontend.js 6.82 kB
build/vendors--attribute-filter-wrapper--rating-filter-wrapper--stock-filter-wrapper-frontend.js 7.7 kB
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/cart-line-items--cart-blocks/cart-order--3c5fe802-frontend.js 5.26 kB
build/vendors--cart-blocks/cart-line-items--checkout-blocks/order-summary-cart-items--mini-cart-contents---233ab542-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--decc3dc6-frontend.js 19.1 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/order-summary-shipping--checkout-block--24d3fc0c-frontend.js 8.25 kB
build/vendors--checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 5.44 kB
build/vendors--checkout-blocks/shipping-method-frontend.js 12 kB
build/vendors--product-add-to-cart-frontend.js 7.25 kB
build/wc-blocks-data.js 21.8 kB
build/wc-blocks-editor-style-rtl.css 5.87 kB
build/wc-blocks-editor-style.css 5.87 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 933 B
build/wc-blocks-registry.js 3.15 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.75 kB
build/wc-blocks-style-rtl.css 27.6 kB
build/wc-blocks-style.css 27.6 kB
build/wc-blocks-vendors-style-rtl.css 1.96 kB
build/wc-blocks-vendors-style.css 1.96 kB
build/wc-blocks-vendors.js 62.8 kB
build/wc-blocks.js 2.63 kB
build/wc-payment-method-bacs.js 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.6 kB
build/wc-shipping-method-pickup-location.js 30 kB
build/woo-directives-runtime.js 2.73 kB
build/woo-directives-vendors.js 7.91 kB

compressed-size-action

@albarin albarin changed the title Add new pattern Add new feature products pattern Apr 12, 2023
@albarin albarin marked this pull request as ready for review April 14, 2023 08:24
@woocommercebot woocommercebot requested review from a team and thealexandrelara and removed request for a team April 14, 2023 08:24
@albarin albarin changed the title Add new feature products pattern [Patterns]: Add new feature products pattern Apr 14, 2023
@thealexandrelara
Copy link
Contributor

Hey @albarin, thank you for working on this! I tested and I can see that the pattern can be added to the page. I saw some differences from the design that I'd like to understand if it is expected or not before approving the PR

Space between the title and the products

It looks like it has a bigger spacing between the title and the products on the design

Design Implementation
image image

Product badge style and margin

The product badge has a different style on the implementation, and the margin between then and the border of the product image is also smaller. Should also the text be different depending on the product? On the design, we have the text "Bestseller" and "New" for some of the products

Design Implementation
image image

Product price position

The product price is located at the end of the container on the design, but in the implementation, there is a spacing between the product price and the container.

Design Implementation
image image

Product Title text alignment

The text alignment for the Product Title on the design seems left-aligned. In the implementation, it is centered, which creates a spacing between the container and the Product Title:

Design Implementation
image image

@albarin
Copy link
Contributor Author

albarin commented Apr 17, 2023

Thanks @thealexandrelara for the review.
I've increased the spacing in the title.
I've removed the spacing at the beginning of the product title and at the end of the product price.

Regarding the product SALE badge on the product image, it cannot be currently customized to achieve the style of the designs, should we work on implementing options to do it? What do you think @shaunandrews?

@albarin albarin changed the title [Patterns]: Add new feature products pattern [Patterns]: Add new Featured products: 5-item grid pattern Apr 17, 2023
@thealexandrelara
Copy link
Contributor

Thank you for addressing those! I can see that now the spacing are fixed.

While testing it, I noticed that if the image is not square, the product information is misaligned:

image

I think that maybe this is occurring because we need to set the "imageSizing" attribute of the Product Image to be thumbnail (by default it is set to "single", which displays the image as full size)

Another thing that I noticed is that on the mobile view, the Product Price is being displayed in a new line:

image

Regarding the product SALE badge on the product image, it cannot be currently customized to achieve the style of the designs, should we work on implementing options to do it? What do you think @shaunandrews?

Ohh I see, maybe we can open a separate issue to work on this if this is not necessary for this card

@albarin
Copy link
Contributor Author

albarin commented Apr 18, 2023

@thealexandrelara thanks, great review! Fixed both issues 🙌

Copy link
Contributor

@thealexandrelara thealexandrelara left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, just tested and LGTM! Great job! 🚀

@github-actions github-actions bot added this to the 10.1.0 milestone Apr 18, 2023
@shaunandrews
Copy link

CleanShot 2023-04-19 at 11 48 50@2x

I noticed that with the current layout we leave little room for the product title and price, leading to a lot of awkward wrapping. I think it might work better if we keep the title and price to their own lines:

CleanShot 2023-04-19 at 11 52 08@2x

--

CleanShot 2023-04-19 at 11 52 39@2x

I know there's talk above about not being able to customize the sale badge. But, I think we can customize it, we just have to add it without using the Product Image block. If, instead, we use the Cover block we can place the Sale Badge within and then we can customize its styles.

CleanShot 2023-04-19 at 11 54 09@2x

--

CleanShot 2023-04-19 at 11 56 22@2x

I noticed the button is linked to /shop — is there some magic here, or just a hardcoded link? Can we (safely) make the assumption that a /shop page exists?

@albarin
Copy link
Contributor Author

albarin commented Apr 20, 2023

@shaunandrews

I noticed that with the current layout we leave little room for the product title and price, leading to a lot of awkward wrapping. I think it might work better if we keep the title and price to their own lines:

Fixed!

I know there's talk above about not being able to customize the sale badge. But, I think we can customize it, we just have to add it without using the Product Image block. If, instead, we use the Cover block we can place the Sale Badge within and then we can customize its styles.

You are totally right, done! 🙌

I noticed the button is linked to /shop — is there some magic here, or just a hardcoded link? Can we (safely) make the assumption that a /shop page exists?

That's the default URL, but I found a better way to always get the shop URL event when the user changes it, I pushed the change.

@thealexandrelara
Copy link
Contributor

WooCommerce Blocks 10.1.0 will be released soon. I'm bumping this PR to the next milestone

@thealexandrelara thealexandrelara modified the milestones: 10.1.0, 10.2.0 Apr 24, 2023
@shaunandrews
Copy link

CleanShot 2023-04-24 at 12 40 29@2x

It'd be amazing if we could add PHP here, but unfortunately it doesn't work.

--

I think this is unrelated to the pattern, but worth asking: When I select the Product Title block, the blue outline and toolbar appear to include the Cover block. Can you reproduce, and if so, perhaps this is a bug in the Product Title block?

CleanShot 2023-04-24 at 12 41 05@2x

--

Can we make the Product Title bold, to help add some visual hierarchy?

CleanShot 2023-04-24 at 12 42 11@2x

@shaunandrews
Copy link

I'm a moron and hit the wrong button. Sorry.

@shaunandrews shaunandrews reopened this Apr 24, 2023
@shaunandrews
Copy link

Oooh, I bet that PHP doesn't work cause I just copy/pasted the pattern block markup — I didn't actually add the whole PHP file.

@albarin
Copy link
Contributor Author

albarin commented Apr 25, 2023

CleanShot 2023-04-24 at 12 40 29@2x

It'd be amazing if we could add PHP here, but unfortunately it doesn't work.

Yeah, I don't think we can do that.

I think this is unrelated to the pattern, but worth asking: When I select the Product Title block, the blue outline and toolbar appear to include the Cover block. Can you reproduce, and if so, perhaps this is a bug in the Product Title block?

CleanShot 2023-04-24 at 12 41 05@2x

Hmm, I am not able to reproduce it, it only selects the title for me 👇
Screenshot 2023-04-25 at 10 14 26

--

Can we make the Product Title bold, to help add some visual hierarchy?

CleanShot 2023-04-24 at 12 42 11@2x

Done! 👍
@shaunandrews

@albarin albarin requested a review from shaunandrews April 25, 2023 08:18
@shaunandrews
Copy link

Looks good to me 🚢

@albarin albarin merged commit 2d952c7 into trunk Apr 25, 2023
@albarin albarin deleted the 8950/5-col-product-pattern branch April 25, 2023 14:23
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
focus: patterns WooCommerce patterns type: enhancement The issue is a request for an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create Product collections: 5-item grid pattern
3 participants