Sitecore OrderCloud Certification - Study notes

On Saturday, 24/02/24, I presented Sitecore OrderCloud Certification Crash Course for Sitecore User Group Coimbatore (SUGCBE). Although I have the presentation slides here and the actual video is here, I felt a SEO-friendly notes can be useful on the day of the exam to just browse through while you wait for the launch button. So, created this blog post for reference. Hope it will be useful.

Disclaimer:

The Sitecore eLearning is the original source of truth. Go through the topics and links there. This material is  supplementary to that guide. 

Exam Details:

As with anything practical, passing this exam doesn’t guarantee you are an expert in this area, its just to certify that you have Order Cloud basics intact

Easier to pass and relate to concepts if you use the API marketplace portal

Original Cost of exam is $350 USD but check with your work organization if there are any partner discounts / coupon codes

Online proctored exam, can take at your place of convenience on a scheduled date and time

The day prior to exam date, go to Kryterion Web assessor site and check all prerequisites are available in your machine

Keep your desk and surroundings free of clutter and possibly move your desk to corner surrounded by walls as much

Remove any sticky notes or papers on wall or around your exam desk

Need a web cam that can be moved to the side to show your hands, eyes and keyboard

No external disturbance during exam like answering doorbells or phone calls

On the exam date, be 15 minutes earlier than the scheduled time, you can anyway start the exam only when launch button is visible in the Kryterion assessor page

At any point or time in the exam, you can be intervened by the invigilator and exam will be paused during that time

Kryterion helpline number: In Kryterion Contact Support page, click “Need Help?” button in the right bottom corner and there you can select your country and find Kryterion support phone number.

Exam Competencies:



Competency-wise question split-up:


Competency 1: OrderCloud Architecture and Conventions:

What is OrderCloud?

Sitecore OrderCloud is a cloud-based, API-first, and headless marketplace development platform.


Since OrderCloud is based on API-first MACH architecture, third-party integrations play-in quite well in the architecture:

M - Microservices
A - API-first
C - Cloud-native
H - Headless


Platform extensibility is supported with presence of features like:

- Webhooks: 
    Pre-hook: Validations before firing the webhook
    Post-hook: Processing in the actual application after OrderCloud process is successful
- Integration events: Plugin logic in multiple points of integration


OrderCloud supports Me endpoints useful for testing features like:

- Impersonation
- Personalization
- Self-administration


Here is a set of possibilities with the Me endpoints:

Once you are logged in with the specific user credentials, the me endpoints can be used to access various other entities related to the logged-in user:


Here are the basic building blocks related to OrderCloud:

- A buyer approaches a seller for products
- The buyer is provided with a product catalog by the seller
- The seller takes the order and contacts one or more suppliers
- Each supplier fulfils and ships the specific consignment 
- Each of the entities above is represented by one or more application user(s) that can login and see details specific to their entity


A more graphical diagram of the building blocks:


A user is a logical entity that can be in turn attached to any of the following business entities:

- Buyer
- Seller
- Supplier

A seller might play the role of a supplier in some businesses.


OrderCloud caters to the following strategies of accomplishing business:

Commerce strategies might have acronyms like follows based on who-is-who in the model:

B2B
B2C
B2B2C



Quiz time:

A client has an OrderCloud Marketplace that has been used exclusively for B2B sales. Now the company’s marketing strategy has changed: in addition to businesses, they would like to open sales to individual customers. What statement would be TRUE for OrderCloud for this use case?

a. This is not possible with OrderCloud and a new product is required
b. Buy a separate Sitecore license to have this kind of functionality
c. Leave the business and go to Himalayas
d. It is possible to use the same marketplace and extend it for the new scenario

Segment and Persona:

Segment is sub-dividing users while persona is about assigning a behaviour


OrderCloud offers search and sync capabilities at segment and persona levels in order to assign promotions to a group of similar users.

Here is an important table related to persona and segment:


Another quiz related to above table:

Beyonce would like to segment funnel and referral tracking for one of her market places. What Sitecore OrderCloud concept will you advise her to use?

a. Supplier Users
b. Buyer Users
c. Buyers
d. Buyer User Group 

Some important points:

Variable pricing - OrderCloud supports offering different prices for the same product. 
A price schedule is a price assigned to the combination of a product and a buyer or group of users. 
A price break is the ability to customize pricing relative to the quantity ordered.
A price markup is the ability wherein relative to product variants and specs, you can make adjustments to the total price of the product.
Targeted promotions: rule-based promotions
Promotion redemption: E.g., Coupon code for a group of users
Get a list of addresses visible to this (Buyer) user - GET /me/addresses

Competency 2 - Integration

OrderCloud provides a concept called integration events useful to plugin logic at specific points in the business life-cycle as shown below:


Another integration event for reference:



Important points:

Security Alert - It is considered bad practice to grant the FullAccess role to any Security Profile. Clever users with this role available to them can completely remove data essential to your OrderCloud solution by making direct API calls, even if they are not supported by your application.

It is important to note that adding a Client Secret is not necessary to enable Anonymous Shopping or Guest Checkout.

Pre-webhook response has proceed as a json boolean attribute to decide convey the external system the validation result

While defining a webhook, Secret relates to the x-oc-hash where OrderCloud will use this secret to generate a fingerprint you can validate against

OrderCloud supports advanced querying using search keyword in url, logical operators, comparison operators, sorting using sortby keyword. Below is one such possibility:



You can use Extended Properties (XP) to store datapoints that are not already available in Sitecore OrderCloud.

Quiz time:

In your OrderCloud Marketplace, “Color” is listed as a Extended Property (xp) field. You need to find all the products which are black  or white colored. What type of query is most effective?

a. GET https://sandboxapi.ordercloud.io/v1/products?xp.Color=black|white 
b. GET https://sandboxapi.ordercloud.io/v1/products?xp.Color=bl*|w*
c. GET https://sandboxapi.ordercloud.io/v1/products?xp.Color=black&xp.Color=white
d. GET https://sandboxapi.ordercloud.io/v1/products?xp.Color!=black&xp.Color!=white

Competency 3 - User management and access control

Since OrderCloud is based on headless architecture, hence there should be some way to interact with the APIs and that is where API clients come into picture within the platform.

OrderCloud uses the term API Clients to identify various access points to your marketplace's data. These access points have properties that control what parties can use it, how they can gain access, and for how long that access remains valid. 

The following access levels/roles are important:

- AllowSeller
- AllowAnySupplier
- AllowAnyBuyer


Since OrderCloud is based on REST architecture, all the verbs related to REST are applicable here:

- GET
- PUT
- Patch
- Post
- Delete


As with any endpoints, authentication is an important feature for OrderCloud API endpoints, OrderCloud offers multiple authentication methods. A basic understanding of what parameters need to be passed for authentication is important for the exam:


An API authentication system is based on tokens related to access and validity duration. So, the value of the token and the duration for which they are valid are important concepts:

- Access token
- Refresh token

Important points:

For elevated password flow in the authentication process, both client secret and grant type (set to password) is required.

In case of  SSO via OpenID Connect, OrderCloud needs ConnectClientID and ConnectClientSecret  E.g., Gmail, Facebook

Quiz time

When logging in with /oAuth/token endpoint, a user gets Auth.SellerNotActive error code authentication error, what does that mean?

a. The MPO is inactive not accessible to login
b. User is not active, need to complete setup to activate
c. User is locked out due to exceeding the max attempts
d. One or more of the roles requested is not allowed for this user

Note that Market Place is hosted by the seller. Also, market place is nothing but the OrderCloud instance on which your business stands and sells products. MPO stands for Marker Place Owner.

Competency 4 - Environments

OrderCloud offers three environments:

Production - Hosts live data
Staging - restored every week from production
Sandbox - hosts fake data, not restored

Since OrderCloud runs on Azure platform, it is hosted in multiple regions across the world for resiliency. As with any API platform, you can choose the region that is close to your customers. 

As listed below, sandbox environment api domain is prefixed with sandbox 
Staging environment domain api is prefixed with staging
Product environment has a prefix domain of api

These domains will automatically resolve to your specific business environment.


OrderCloud Portal address: https://portal.ordercloud.io/

Once you setup your user account and login to the OrderCloud portal, you can see the console/dashboard like below, then you can create a market place and associate it with different entities using different endpoints:



Important points:

- Can't change the environment and region once after creation
- Staging restore operation happens on a weekly-basis and certain entries are reset in the process so, post restore webhooks must be in place to get back to original state before restore.


Competency 5 - Product Management

Product is organized within catalogs and catalog "might" have categories to organize products in hierarchical structure:


For the product to be visible for the buyer in a catalog, there are a set of requirements as follows:

- Product Active
- Buyer Active
- Product assigned to catalog
- Buyer assigned to catalog
- CatalogAssignment.ViewAllProducts = true

If using a category for product hierarchical arrangement,

- Category must be active
- Product assigned to category
- CategoriesAssignment.ViewAllProducts = true
- Product assigned to user group



For customized  products, there is provision to enter product specs. Here are some of the terminologies related to specs:

Open Text Spec: Allows a user to input or type-in options E.g., personalized gifts 
Options Spec: Limit the user with a set of limited options E.g., size selection
Spec Options: Options available for the options spec E.g., the actual sizes
Variant Spec: Slice a product based on each spec like, different colors for same size t-shirt

Important points:

Sitecore OrderCloud supports any number of catalogs within a MP
Catalog assignment helps share a catalog with any number of buyers
Businesses can offer specific products to certain customers through the assignment of catalogs
Endpoint to assign a product to a catalog - 
POST /catalogs/{catalogID}/productassignments/{productID}
Products can be assigned to catalog without a category
Categories help define a product hierarchy

Quiz time:

An online shop offers shirts in 3 sizes and four colors: S, M, L and brown, black, grey, and blue. How many variants does this product have, and how can we get the full list of those variants?

a. 9 variants, GET /products/{productID}/variants
b. 10 variants, GET /products/{productID}/variants
c. 7 variants, GET /products/{productID}/variants
d. 12 variants, GET /products/{productID}/variants

Competency 6 - Order and Fulfilment Management

Important diagram about order direction:


Another perspective of the diagram that can hep decide the keywords in the url:


Different order statuses:

-Unsubmitted: Order is entered but not submitted, similar to draft state
- Open: order is entered and submitted
- Awaiting Approval (optional)
- Declined (optional)
- Completed: means shipping complete
- Cancelled


Different payment options in OrderCloud:

Credit Card
Purchase Order
Spending Account: In OrderCloud, with an option called spending accounts, a registered customer receiving a gift card of $x can use it to pay their order of $x in full. 


Rule-based promotion expression examples:

Two parts:
1. Eligible expression: criteria
2. Value expression: actual gain/promotion on satisfying the criteria


Important points:

If an order is fulfilled by many suppliers, then the order will be forwarded from the Market Place owner (seller)  to the concerned supplier(s) – this is called order forwarding: Buyer -> Seller -> Supplier – although the order goes via the supplier, the supplier is the one who fulfils the buyer’s order

EligibleExpression: evaluates the current state of the order and returns true or false indicating whether the promotion can be applied to the order 

ValueExpression: evaluates the order and returns a monetary value, which is then subtracted from the order subtotal

Users with assigned FullAccess, OrderAdmin, or Shopper roles can create/submit/update/cancel an order

Shopper is same as buyer

Quiz time:

BlueStar is an online shoe retailer, and Sitecore OrderCloud powers its commerce solution. Lee made an order that contained two sneakers and one pair of socks. The retailer sent the sneakers to Lee. However, due to the high volume of orders, BlueStar had to send the pair of socks separately after two weeks. What's the status of the order after Lee received the socks? 

a. Unsubmitted

b. Submitted

c. Open

d. Completed

Note: While if the question had asked for the status of order before two weeks, the option is c. Open, since the shipping is complete after 2 weeks, the order status is completed.

More Quiz time:

A shopper made an order on a bouquet website. The order number is OEF7438. The buyer can access the order by calling ____________. (Select all that apply.)

a. GET /orders/incoming/OEF7438

b. GET /orders/outgoing/OEF7438

c. GET /orders/all/OEF7438

d. GET /orders/outgoing/OEF7438/lineitems/7438

Note: The order direction diagram is tested at least in a couple of questions in the exam.

Competency 7 - Troubleshooting

Like any other API system, the error codes have the same conventions/meaning:

Since OrderCloud is role-based api access system, forbidden error can occur if proper role is not assigned to the client/user:


While there is provision to do your own password configuration, if you don't follow the basic requirements, OrderCloud ensures that passwords follow the basic defaults as listed below:


Remember that minimum character length is 10.

Important points:

PasswordConfig object within a security profile is useful to setup password rules

For buyer user to view and purchase product, the following assignments are necessary: 
- Product catalog assignment, 
- Catalog buyer assignment and 
- Price schedule assignments

PUT vs Patch Http verbs: Former creates or replaces an item with unique id but latter updates the item

Quiz time:

While using the /password/reset endpoint, what does the errorcode PasswordReset.InvalidVerification mean?

a. Password reset attempt with expired token
b. User will need to wait until retrying again 
c. Credit card information is wrong
d. The user is dead

References:



Comments