Every CXA Module - Foundation Connect

6/21/2020 CXA Sitecore Sitecore Commerce SXA

The Connect layer provides a layer of abstraction between the Engine Connect and Connect Core projects, both of which communicate with the commerce engine

OMG look how many ppl have commented

Similar to the Foundation Common, the Foundation Connect sits at base of most Foundation level projects (but in a different regard than Foundation Common). 

The Connect layer provides a layer of abstraction between the Engine Connect and Connect Core projects, both of which communicate with the commerce engine. The bulk of the Connect layer contains a series of managers which may come in handy for developing your Storefront site. You may either use or extend these managers in your site.

This module contains (but not limited to)...

  • ConnectConstants
    • Different from the Constant variables in the Common project, this class contains constants specific for communicating with the commerce engine
  • VisitorContext
    • You will defiantly use this a lot. This is an IOC transient class containing a list of user specific data such as UserId, VisitorId (necessary for XDB tracking), Email and other stuff 
  • Some entity extensions such as PartyEntity (address info), Variant Entity, and Product Entity
  • Account Manager
    • This manager contains the basic building blocks you will need regarding the users account and, well, managing them.
    • Basic Functionality:
      • Get User - Gets the current user and all their properties
      • Login
      • Register User
      • Logout
      • Get Current Customer Parties - Gets all the Shipping/Billing addresses related to the user
      • Get Parties - Gets all the address of a given customer (not necessarily the current customer)
      • Reset User Password
      • Change User Password
      • Add Address
      • Update Address
      • Delete Address
      • Update User
  • Bulk Manager
    • Mostly for getting Product Info and Pricing Information
  • Cart Manager
    • All the basic building blocks you will need to build out and handle your customers cart
    • Basic Functionality:
      • Add Line Items To Cart
      • Get the Current Cart
      • Get the amount of items in your cart
      • Get all Carts (if there are multiple)
      • Merge Carts
      • Remove All Payment Methods
      • Remove All Shipping Methods
      • Remove Parties (addresses) From Cart
      • Add Shipping Info
      • Add Payment Info
      • Update Cart Lines
      • Add Promotion Code To Cart
      • Remove Promotion Code From Cart
      • Remove Line Items From Cart
      • Update Cart
      • Remove Payment Info
      • Remove Shipment Info
  • Catalog Manager
    • To my surprise, this manager does not actually contain logic for retrieving the catalog but rather stores analytical data for when a user either visits a product or category page, or applies a search facet
  • Gift Card Manager
  • Inventory Manager
    • Logic for getting the products inventory status
  • Order Manager
    • Allows you to get the details of an existing order (or list of orders) or submit an order given the Cart Entity
  • Payment Manager
    • Allows you to get the payment methods of the current customer or a list of payment options (ex: federated, gift card, sexual favors...)
  • Pricing Manager
    • Allows you to get all the prices of a product given its ID (option to include variants)
    • Get prices of several products (mostly for Category pages so you don't have to make multiple trips to the CE)
  • Search Manager 
    • Allows you to search for products, categories, basic nav items, you name it!
    • Used by the wildcard product/category pages
    • This even contains a nifty method to update the inventory of a stock item via the index. That will defiantly come in handy for optimizing performance.
  • Shipping Manager
    • Gets the shipping methods, preferences, and email preferences 
  • Connect Service Provider
    • This is basically an abstract layer from calling other services
  • Index Resolver
    • Allows you to easily get the current index based on the database and catalog provided

References

  • Sitecore.Commerce.XA.Foundation.Common
  • Sitecore.Commerce.Connect.Core
  • Sitecore.Commerce.Engine.Connect
  • Sitecore.XA.Foundation.Search
  • Sitecore.XA.Foundation.Abstractions, Ve
  • Sitecore.XA.Foundation.SitecoreExtensio
  • Sitecore.XA.Foundation.Multisite, Versi
  • Sitecore.XA.Foundation.LocalDatasources

Referenced By

  • Sitecore.Commerce.XA.Foundation.Catalog
  • Sitecore.Commerce.XA.Feature.Emails
  • Sitecore.Commerce.XA.Feature.CategoryNavigation
  • Sitecore.Commerce.XA.Feature.Catalog
  • Sitecore.Commerce.XA.Feature.Cart
  • Sitecore.Commerce.XA.Feature.Account