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
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
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
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
Post a Comment