The product component is a server side component written in HTL, allowing to display product details. The product details are retrieved from Magento via GraphQL using the product identifier provided in the URL selector.
On an author instance, when the page URL does not contain any selector, like for example when the page is edited in the AEM Sites editor, the component displays some placeholder data. On a publish instance, not setting any selector displays a "Product not found" message.
Note that when a selector is set, this example page always displays the same product data based on some sample data. Try different options:
For the three examples with sample data, the clientlib part of the component will also issue a client-side GraphQL query to refetch the product prices on page load. This demonstrates how prices can be refreshed upon page load even if the rest of the page data may be cached in the AEM dispatcher.
In addition, the example showing a bundle product includes a small React application that is activated when clicking on the "Customize" button. It is used to fetch the bundle options with a client-side GraphQL request and to calculcate and prepare the product data for the cart when selecting the options of the bundle product.
The component, simply displaying placeholder data.
- loadClientPrice: true
- sling:resourceType: cif-components-examples/components/product
In addition to the product component, this demonstrates the breadcrumb component displaying page content and commerce data up to the product page.
- startLevel: 2
- sling:resourceType: cif-components-examples/components/breadcrumb
- structureDepth: 2
In addition to the product component, this demonstrates the commerce experience fragment component displaying its content dynamically based on both the "fragmentLocation" property and the SKU of the product currently being displayed. This is empty unless the product SKU matches MH01.
- fragmentLocation: bottom
- sling:resourceType: cif-components-examples/components/experiencefragment