Here are the steps to build a new Commerce Implementation in AEM:1. Define the scope of the implementation. What eCommerce platform or systems will it integrate with? Will it be a custom or open-source implementation? 2. Choose an implementation technology. Options include Java, Node.js, etc. This will depend on what technologies the eCommerce platform uses.3. Implement the Commerce API. Create Java classes that implement the required interfaces like CommerceSession, Product, etc. 4. Configure OSGi services. Register the implementation as an OSGi service for the commerceProvider configuration.5. Develop AEM components. Build components to display products, cart, checkout, etc that use
As part of Adobe Experience Manager, CQ 5.6 provides a new Commerce Framework to build Experience Driven Commerce websites on top of a 3rd party Commerce Platform. This session provides an overview of the framework from an architectural perspective and presents some details of the reference implementation, based on the JCR repository.
Integrating with Adobe Marketing Cloud - Summit 2014Paolo Mottadelli
Más contenido relacionado
Similar a Here are the steps to build a new Commerce Implementation in AEM:1. Define the scope of the implementation. What eCommerce platform or systems will it integrate with? Will it be a custom or open-source implementation? 2. Choose an implementation technology. Options include Java, Node.js, etc. This will depend on what technologies the eCommerce platform uses.3. Implement the Commerce API. Create Java classes that implement the required interfaces like CommerceSession, Product, etc. 4. Configure OSGi services. Register the implementation as an OSGi service for the commerceProvider configuration.5. Develop AEM components. Build components to display products, cart, checkout, etc that use
Company segmentation - an approach with RCasper Crause
Similar a Here are the steps to build a new Commerce Implementation in AEM:1. Define the scope of the implementation. What eCommerce platform or systems will it integrate with? Will it be a custom or open-source implementation? 2. Choose an implementation technology. Options include Java, Node.js, etc. This will depend on what technologies the eCommerce platform uses.3. Implement the Commerce API. Create Java classes that implement the required interfaces like CommerceSession, Product, etc. 4. Configure OSGi services. Register the implementation as an OSGi service for the commerceProvider configuration.5. Develop AEM components. Build components to display products, cart, checkout, etc that use (20)
Here are the steps to build a new Commerce Implementation in AEM:1. Define the scope of the implementation. What eCommerce platform or systems will it integrate with? Will it be a custom or open-source implementation? 2. Choose an implementation technology. Options include Java, Node.js, etc. This will depend on what technologies the eCommerce platform uses.3. Implement the Commerce API. Create Java classes that implement the required interfaces like CommerceSession, Product, etc. 4. Configure OSGi services. Register the implementation as an OSGi service for the commerceProvider configuration.5. Develop AEM components. Build components to display products, cart, checkout, etc that use
4. AEM eCommerce Integration Modules
1. The integration framework (API used for eCommerce implementations)
2. AEM native (JCR) implementation
3. hybris implementation
4. A number of out-of-the-box AEM components
5. Search (AEM, eCommerce, 3rd party)
6. Catalog management
7. Promotions management Experience Manager PIM/ecommerce
8. Client context cart store
JCR repo product DB
5. Architecture of the Commerce Framework
AEM Commerce Components
AEM Commerce API
Implementation
AEM native impl hybris impl other impl
JCR Repository hybris DB other
13. Product interface
public interface Product extends Adaptable {
public String getPath(); // path to specific variation
public String getPagePath(); // path to presentation page for all variations
public String getSKU(); // unique ID of specific variation
public String getTitle(); // shortcut to getProperty(TITLE)
public String getDescription(); // shortcut to getProperty(DESCRIPTION)
public String getImageUrl(); // shortcut to getProperty(IMAGE_URL)
public String getThumbnailUrl(); // shortcut to getProperty(THUMBNAIL_URL)
public <T> T getProperty(String name, Class<T> type);
public Iterator<String> getVariantAxes();
public boolean axisIsVariant(String axis);
public Iterator<Product> getVariants(VariantFilter filter) throws CommerceException;
}
14. AxisFilter implements VariantFilter
public class AxisFilter implements VariantFilter {
...
public boolean includes(Product product) {
ValueMap values = product.adaptTo(ValueMap.class);
if(values != null) {
String v = values.get(axis, String.class);
return v != null && v == value;
}
return false;
}
}
15. Shopping Cart architecture (CommerceSession)
The CommerceSession performs add, remove, etc.
The CommerceSession also performs the various calculations on the cart.
The CommerceSession also applies vouchers and promotions that have fired to the cart.
Pricing modifiers:
- Quantity discounts.
- Different currencies.
- VAT-liable and VAT-free.
17. Shopping Cart architecture (Storage)
In AEM-native carts are stored in the
ClientContext
Personalization should always be driven
through the ClientContext.
CommerceSession.addCartEntry()
18. Checkout architecture
Cart and Order Data
The CommerceSession owns the three elements:
Cart contents
Pricing
The order details
Cart contents
The cart contents schema is fixed by the API:
public void addCartEntry(Product product, int quantity);
public void modifyCartEntry(int entryNumber, int quantity);
public void deleteCartEntry(int entryNumber);
Pricing
The pricing schema is also fixed by the API:
public String getCartPreTaxPrice();
public String getCartTax();
public String getCartTotalPrice();
public String getOrderShipping();
public String getOrderTotalTax();
public String getOrderTotalPrice();
19. Checkout architecture (order details)
Order details are not fixed by the API:
updateOrderDetails(Map<String, String> orderDetails);
Shipping options (and prices) depend on weight, delivery address, etc...
The CommerceSession owns shipping pricing; to retrieve and update delivery details:
updateOrder(Map<String, Object> delta)
21. Defining the scope
1. Build a new Commerce Implementation: “training”
2. Apply the new implementation to Geometrixx Outdoors
3. Store the cart data in the repository (/home/users/a/admin/commerce/cart)