



































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This exam covers Optimizely Commerce Cloud backend and frontend development. Topics include commerce catalog modeling, pricing strategies, inventory workflows, promotions, order management, checkout customization, integration with payment gateways, and personalization. The exam focuses heavily on commerce-specific APIs, extensibility, service abstraction, and commerce data schema. Candidates must demonstrate advanced skills in C#, .NET, SQL, integration workflows, and DXP deployment optimization.
Typology: Exams
1 / 75
This page cannot be seen from the preview
Don't miss anything!




































































Question 1. Which component is primarily responsible for handling business logic related to shopping cart operations in Optimizely Commerce Cloud? A) IProductService B) ICartService C) IOrderRepository D) IContentRepository Answer: B Explanation: ICartService provides methods for adding, updating, and removing items from the cart, encapsulating cart-specific business rules. Question 2. In a multi-site Optimizely implementation, what entity defines the currency used for pricing in a particular market? A) Market B) Currency C) Price List D) Price Group Answer: B Explanation: A Currency object specifies the ISO code, symbol, and formatting for a market; markets reference a currency to determine how prices are displayed. Question 3. Which design pattern does Optimizely Commerce Cloud use to inject service implementations into controllers and other classes? A) Singleton B) Factory C) Dependency Injection (DI) D) Repository Answer: C Explanation: DI, combined with an IoC container, allows services like ICartService to be supplied at runtime, promoting loose coupling. Question 4. When configuring a local development environment, which NuGet package is essential for accessing Commerce APIs? A) EPiServer.CMS.Core B) EPiServer.Commerce.Core
C) Microsoft.AspNetCore.Identity D) EPiServer.MarketingAutomation.Integration Answer: B Explanation: EPiServer.Commerce.Core contains the core Commerce service interfaces and implementations required for development. Question 5. Which configuration file typically holds the database connection string for an Optimizely Commerce site? A) appsettings.json B) web.config C) commerce.config D) services.json Answer: A Explanation: In .NET Core-based Commerce installations, appsettings.json stores connection strings under the "ConnectionStrings" section. Question 6. Which authentication provider is commonly used for external login integration in Optimizely Commerce Cloud? A) Windows Authentication B) OAuth2/OpenID Connect C) Basic Authentication D) LDAP Answer: B Explanation: OAuth2/OpenID Connect enables integration with providers such as Azure AD, Google, or custom identity servers. Question 7. In the cloud deployment workflow, what is the purpose of a deployment slot? A) To store static assets B) To run automated tests C) To host a staging version of the site separate from production D) To manage database migrations Answer: C
Question 11. How can you extend a product’s data structure to include a custom field such as “ManufacturerPartNumber”? A) Modify the database schema directly B) Add a property to the Product class in code C) Create a new ContentType with a MetaField for the product D) Use a custom API endpoint Answer: C Explanation: In Commerce, product metadata is defined using ContentTypes and MetaFields, allowing additional properties without database changes. Question 12. Which relationship type connects a product to its related accessories in the catalog? A) Bundle B) Association C) Package D) Variant Answer: B Explanation: Associations define relationships like “accessory of” or “similar to” between catalog entries. Question 13. Which API method would you use to retrieve a product by its SKU? A) IProductRepository.GetByIdAsync B) IProductService.GetProductAsync C) IProductRepository.GetByCodeAsync D) IProductService.FindAsync Answer: C Explanation: GetByCodeAsync accepts the product’s SKU (code) and returns the corresponding product entity. Question 14. To support multi-language product descriptions, where should the localized values be stored? A) In separate product entries per language B) In the MetaFields with language-specific values
C) In a separate translation database D) In the price list configuration Answer: B Explanation: MetaFields support localized values, allowing each language to have its own description while keeping a single product entry. Question 15. Which component is responsible for calculating inventory availability for a specific warehouse? A) IInventoryService B) IWarehouseRepository C) IStockService D) IShipmentService Answer: A Explanation: IInventoryService provides methods to query and update stock levels per warehouse. Question 16. When customizing the search index, which file defines the fields that are indexed? A) searchconfig.json B) indexdefinition.xml C) catalogindexsettings.json D) searchsettings.config Answer: B Explanation: indexdefinition.xml (or the equivalent JSON file in newer versions) lists the fields and analyzers used by the search engine. Question 17. Which facet type would you configure to allow customers to filter products by price range? A) Term facet B) Histogram facet C) Range facet D) Date facet Answer: C
A) IPromotionAction B) IPromotionEffect C) ICartModifier D) IOrderProcessor Answer: B Explanation: IPromotionEffect defines the Execute method that runs when a promotion is applied, allowing you to add a free gift line item. Question 22. Where are coupon usage statistics typically stored? A) In the Order database table B) In the PromotionUsageLog table C) In the Customer profile D) In the Cache layer Answer: B Explanation: PromotionUsageLog tracks each coupon’s application, redemption count, and related order information. Question 23. Which class represents the shopping cart in the Commerce API? A) PurchaseOrder B) Cart C) ICart D) ShoppingCart Answer: C Explanation: ICart is the interface that defines cart operations; implementations such as Cart are resolved through DI. Question 24. What is the primary difference between ICart and IPurchaseOrder? A) ICart is mutable, IPurchaseOrder is immutable after creation B) ICart stores payment info, IPurchaseOrder does not C) ICart is used for B2B only, IPurchaseOrder for B2C only D) ICart handles inventory, IPurchaseOrder handles shipping Answer: A
Explanation: ICart represents the in-progress shopping experience and can be edited, whereas IPurchaseOrder represents a finalized order that should not be altered. Question 25. Which service handles the transition from a cart to an order during checkout? A) IOrderCreationService B) ICheckoutService C) ICartService D) IPurchaseOrderRepository Answer: B Explanation: ICheckoutService coordinates validation, payment, and order creation, converting the cart into a purchase order. Question 26. Which payment lifecycle step captures funds after an authorization? A) Authorization B) Capture C) Void D) Refund Answer: B Explanation: Capture moves authorized funds from the customer’s account to the merchant after order confirmation. Question 27. In a custom shipping rate provider, which method must return the list of available shipping options? A) GetRatesAsync B) CalculateShippingAsync C) GetShippingOptionsAsync D) RetrieveRatesAsync Answer: C Explanation: GetShippingOptionsAsync is called during checkout to present carriers, services, and costs to the shopper.
C) Save them in session state D) Write them to a flat file on the server Answer: B Explanation: Payment tokens must be encrypted at rest and never logged to protect sensitive payment information. Question 32. Which event is triggered after an order has been successfully placed? A) OrderCreated B) OrderCompleted C) OrderPlaced D) OrderFinalized Answer: C Explanation: OrderPlaced is raised once the order transaction is committed, allowing post-order processing such as email notifications. Question 33. Which API is recommended for reading large sets of catalog data efficiently? A) IProductRepository.GetAllAsync B) IProductService.SearchAsync with paging C) IProductRepository.GetByIdAsync in a loop D) IProductService.GetAllProductsAsync Answer: B Explanation: SearchAsync supports paging, filtering, and projection, making it suitable for large data loads without overwhelming memory. Question 34. In the context of Commerce events, what does the “EventScope” parameter define? A) The user’s locale B) The transaction boundary (e.g., per request, per cart) C) The type of database operation D) The logging level Answer: B
Explanation: EventScope determines whether an event is raised for a single entity, a collection, or a broader transaction context. Question 35. Which pattern is used when you need to execute custom code after a product is saved but before it is indexed? A) Repository pattern B) Decorator pattern C) Event handler for “Saving” with a “PostSave” hook D) Middleware pipeline Answer: C Explanation: Implementing an IContentSavingHandler (or similar) allows you to run logic after the save operation and before the search index refreshes. Question 36. What is the purpose of the “PunchOut” integration in Configured Commerce? A) To enable real-time inventory updates from suppliers B) To allow customers to shop directly from a supplier’s procurement system C) To provide a mobile checkout experience D) To integrate with social media platforms Answer: B Explanation: PunchOut lets a buyer’s procurement system launch the Commerce site, select items, and return the cart to the ERP for ordering. Question 37. Which component validates a coupon code entered by a shopper? A) CouponValidatorService B) PromotionEngine C) DiscountService D) ICartService Answer: B Explanation: The PromotionEngine evaluates coupon validity, usage limits, and applicable conditions during cart processing. Question 38. In a multi-currency setup, where are exchange rates typically configured?
Answer: B Explanation: FreeGiftEffect is not provided out-of-the-box; it must be implemented as a custom promotion effect. Question 42. To retrieve the current market based on the request URL, which service should you use? A) IMarketService B) ILocalizationService C) IMarketResolver D) IRequestContext Answer: C Explanation: IMarketResolver examines the request (host, path, query) and returns the appropriate Market object. Question 43. Which API call would you use to programmatically create a new price list for a specific market? A) IPriceListRepository.CreateAsync B) IPriceService.AddPriceListAsync C) IPriceListManager.CreatePriceListAsync D) IPriceGroupRepository.AddAsync Answer: A Explanation: IPriceListRepository handles CRUD operations for price lists, including creation for a particular market. Question 44. In the checkout pipeline, which step validates that the shipping address is complete? A) ValidateShippingAddressStep B) ValidateAddressStep C) ShippingAddressVerificationStep D) AddressCheckStep Answer: A Explanation: ValidateShippingAddressStep ensures required fields (street, city, postal code, country) are present before proceeding.
Question 45. Which attribute can be applied to a controller action to restrict access to users with the “CommerceAdmin” role? A) [Authorize(Roles = "CommerceAdmin")] B) [RequireRole("CommerceAdmin")] C) [Security(Roles = "CommerceAdmin")] D) [Permission("CommerceAdmin")] Answer: A Explanation: The built-in Authorize attribute supports role-based restrictions using the Roles parameter. Question 46. When using the Content Cloud to embed a product detail page, which property links the CMS page to the commerce product? A) ProductReference B) ContentReference C) CatalogEntryReference D) ProductId Answer: C Explanation: CatalogEntryReference stores the GUID of the Commerce catalog entry, enabling the CMS page to display product data. Question 47. Which of the following best describes a “Bundle” in Commerce? A) A collection of unrelated products sold together at a fixed price B) A single product with multiple variants C) A dynamic set of products based on a rule engine D) A package that includes shipping and handling fees Answer: A Explanation: Bundles are predefined groups of products sold as one unit, often with a special bundle price. Question 48. To enable a custom field to be searchable, what must be done in the index definition? A) Set “Analyzed” to true for the field B) Add the field to the “StoredFields” list only C) Mark the field as “Sortable”
Question 52. In a B2B scenario, which entity represents a purchasing department within a company? A) OrganizationUnit B) BusinessUnit C) Department D) CustomerGroup Answer: A Explanation: OrganizationUnit models hierarchical structures such as divisions, departments, and teams in B2B setups. Question 53. Which interface should you implement to react when a line item’s quantity is changed in the cart? A) ICartLineItemChangedHandler B) ICartChangedHandler C) ILineItemUpdatedHandler D) ICartItemEventHandler Answer: B Explanation: ICartChangedHandler receives events for any modification to the cart, including quantity updates. Question 54. What is the effect of setting “EnableCaching” to false in the commerce configuration? A) Disables all server-side caching, forcing fresh data retrieval on each request B) Only disables output caching for page rendering C) Turns off client-side browser caching D) Prevents the CDN from caching assets Answer: A Explanation: EnableCaching controls the internal data cache; setting it to false forces the system to query the database for every operation. Question 55. Which of the following is a valid way to register a custom promotion condition in the DI container? A) services.AddTransient();
B) services.AddPromotionCondition(); C) container.Register(); D) services.AddSingleton(); Answer: A Explanation: Adding the condition as a transient service allows the promotion engine to resolve it when evaluating promotions. Question 56. When configuring a price list for a specific market, which property links the price list to that market? A) MarketId B) CurrencyCode C) MarketReference D) PriceListScope Answer: C Explanation: MarketReference (or MarketId) associates the price list with the market it applies to. Question 57. Which method on IOrderRepository is used to retrieve an order by its order number? A) GetByOrderNumberAsync B) FindByNumberAsync C) LoadAsync D) GetOrderAsync Answer: A Explanation: GetByOrderNumberAsync returns the order entity matching the provided order number. Question 58. In a custom checkout step, how can you abort the checkout process and display an error to the shopper? A) Throw a CheckoutException B) Return a CheckoutResult with IsSuccess = false and an error message C) Call ICheckoutService.Abort() D) Set HttpContext.Response.StatusCode = 400 Answer: B
A) ICurrencyService B) IConversionService C) IPriceCalculationService D) IExchangeRateProvider Answer: D Explanation: IExchangeRateProvider supplies the rates used to convert base prices into the market’s currency. Question 63. When a promotion condition fails, what happens to the associated promotion effect? A) The effect is still applied but with zero discount B) The effect is skipped entirely C) The effect is logged as failed but applied later D) The system throws an exception Answer: B Explanation: Promotion effects are only executed when all conditions of the promotion evaluate to true. Question 64. Which component can be used to synchronize Commerce order data with an external ERP system in real time? A) Webhook handler B) Scheduled job C) Integration Service (IOrderIntegration) D) Message queue listener Answer: C Explanation: IOrderIntegration (or a custom implementation) provides hooks for sending order data to external systems as soon as the order is placed. Question 65. In a multi-site setup, how does the system determine which catalog to use for a given request? A) Based on the URL’s subdomain mapped to a catalog in the Market configuration B) By reading a cookie named “CatalogId” C) Through a query string parameter “catalog”
D) It always uses the default catalog Answer: A Explanation: Markets are associated with catalogs, and the request’s host/subdomain resolves to a market, which in turn selects the appropriate catalog. Question 66. Which attribute can be added to a Content Type to make its fields searchable by the built-in search provider? A) [Searchable] B) [Index] C) [ContentSearchable] D) [MetaData] Answer: A Explanation: The [Searchable] attribute marks a property so that the indexing engine includes it in the searchable fields. Question 67. Which method would you call to reserve inventory for an order before payment is captured? A) IInventoryService.ReserveAsync B) IStockService.LockStockAsync C) IWarehouseRepository.HoldAsync D) IOrderService.PrepareInventoryAsync Answer: A Explanation: IInventoryService.ReserveAsync creates a reservation that prevents the stock from being sold to another order. Question 68. When a shopper applies a coupon, which component validates its usage limits (e.g., max uses per customer)? A) CouponValidatorService B) PromotionEngine C) DiscountTracker D) CouponUsagePolicy Answer: B Explanation: The PromotionEngine checks coupon constraints, including per-customer usage limits, before applying the discount.