Skip to Main Content
Customer Feedback

We love feedback from you on our products and the problems in your daily work that you would like us to solve. Please describe the challenge you're encountering and your desired outcome. Be as detailed as possible.

For technical issues or bugs please head to Support or our Developer Community. You can assign up to 20 votes in total. Thank you for your feedback.

Status explanation: 'Future Consideration' = Continuing to collect further feedback, not planned at this time. 'Investigating' = Prioritized for deeper customer and feasibility investigations ahead of planning development.

Status Gathering interest
Categories Orders
Created by Guest
Created on Mar 4, 2024

Add ExtendedProperties to ALL applicable models in Content API

Many Optimizely objects implement the IExtendedProperties interface. As an example, the ICart interface implements the IOrderGroup interface, which contains an ICollection<IOrderForm> property, which in turn contains an ICollection<IShipment> property. All four of these interfaces (ICart, IOrderGroup, IOrderForm, and IShipment) implement IExtendedProperties, which contains a property of type Hashtable called Properties.

In other words, all of these already contain the ability to add any number of extra properties. The problem is that the Content API for Cart returns a CartApiModel from the Get endpoints, and the corresponding models to the aforementioned interfaces (ICart = CartApiModel and IShipment = ShipmentModel) do not return the aforementioned Properties property. Of all the Cart-related endpoints, only the Payment ones do (through the PaymentModel).

Please add a List<ExtendedPropertyModel> property to CartApiModel and ShipmentModel, and change the mappers (MapToCartModel for ICart to CartApiModel and MapToShipmentModel for IShipment to ShipmentModel), in the same way that you currently do for mapping IPayment to PaymentModel in MapFormToPaymentModel. For reference, MapToShipmentModel and MapFormToPaymentModel are in in EPiServer.ContentApi.Commerce.Internal.Services.Mapper.cs, while MapToCartModel is in EPiServer.ContentApi.Commerce.Internal.Services.CartService.cs.

And don't stop with just these - ANY object which implements IExtendedProperties should have its model contain the List<ExtendedPropertyModel> property.