Reserve inventory
The Reserve Inventory communication maps the WebSphere Commerce ProcessInventoryRequirement request to the SSFS reserveAvailableInventory API call. As both WebSphere Commerce and SSFS are customizable, assumptions are made with the mapping from one system to the other.
Important: Review the following information for your version of WebSphere
Commerce:
- Review information about APAR fixes for integration of IBM WebSphere Commerce and IBM Sterling Order Management. For more information about integrating IBM WebSphere Commerce Version 7 Feature Pack 8 (or later) with IBM Sterling Order Management Release 9.3, see WebSphere Commerce integration with Sterling Order Management. For more information about integrating IBM WebSphere Commerce Version 7 Feature Pack 5 (or later) with IBM Sterling Order Management Release 9.2.1 (or later), see WebSphere Commerce integration with Sterling Order Management.
- You can integrate Sterling Order Management with WebSphere Commerce using either Direct Integration or IBM® WebSphere Enterprise Service Bus (WESB) integration. With Direct Integration, the functions to convert message content and format are performed by services in the Sterling Order Management Service Definition Framework (SDF). For information about using Direct Integration to integrate Sterling Order Management with WebSphere Commerce, see Direct Integration with WebSphere Commerce.
The
assumptions made for this call are:
SSFS API path | Source context | Source |
---|---|---|
Promise/@OrganizationCode | N/A | Set in the "OrganizationCodeSetter" node in the mediation flow |
Promise/ReservationParameters/@ReservationID | inv:DataArea/_inv:InventoryRequirement | "WC_" prepended to _ord:OrderIdentifier/_wcf:UniqueID |
Promise/PromiseLine@LineID | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | "WC_" prepended to _ord:OrderItemIdentifier/_wcf:UniqueID |
Promise/PromiseLine@ItemID | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:CatalogEntryIdentifier/_wcf:ExternalIdentifier/_wcf:PartNumber |
Promise/PromiseLine@RequiredQty | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:Quantity |
Promise/PromiseLine@FillQuantity | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:Quantity |
Promise/PromiseLine@UnitOfMeasure | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:Quantity/@uom If above is "C62" than "EACH", otherwise, use the value of above |
Promise/PromiseLine@CarrierServiceCode | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:OrderItemShippingInfo/_ord:ShippingMode/_ord:ShippingModeIdentifier/_ord:ExternalIdentifier/_ord:ShipModeCode If above is empty than "Priority", otherwise, use the value of above |
Promise/PromiseLine@ShipNode | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:FulfillmentCenter/_ord:FulfillmentCenterIdentifier/_wcf:Name |
Promise/PromiseLine/ShipToAddress@AddressLine1 | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:OrderItemShippingInfo/_ord:ShippingAddress/_wcf:AddressLine[1] |
Promise/PromiseLine/ShipToAddress@AddressLine2 | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:OrderItemShippingInfo/_ord:ShippingAddress/_wcf:AddressLine[2] |
Promise/PromiseLine/ShipToAddress@AddressLine3 | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:OrderItemShippingInfo/_ord:ShippingAddress/_wcf:AddressLine[3] |
Promise/PromiseLine/ShipToAddress@City | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:OrderItemShippingInfo/_ord:ShippingAddress/_wcf:City |
Promise/PromiseLine/ShipToAddress@State | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:OrderItemShippingInfo/_ord:ShippingAddress/_wcf:StateOrProvinceName |
Promise/PromiseLine/ShipToAddress@Country | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:OrderItemShippingInfo/_ord:ShippingAddress/_wcf:Country |
Promise/PromiseLine/ShipToAddress@ZipCode | inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem | _ord:OrderItemShippingInfo/_ord:ShippingAddress/_wcf:PostalCode |
WebSphere Commerce path | Source context | Source |
---|---|---|
_inv:AcknowledgeInventoryRequirement/_inv:DataArea/_inv:InventoryRequirement/_ord:OrderIdentifier/_wcf:UniqueID | N/A | PromiseLines/PromiseLine/Reservations/Reservation/@ReservationID With the "WC_" removed from the start if it exists |
_inv:AcknowledgeInventoryRequirement/_inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem/_ord:OrderItemIdentifier/_wcf:UniqueID | PromiseLines/PromiseLine | @ItemID |
_inv:AcknowledgeInventoryRequirement/_inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem/_ord:OrderItemStatus/_ord:InventoryStatus | PromiseLines/PromiseLine | Reservations/Reservation/@ReservationID "Allocated" if availability date before today, "Backordered" if availability date after today, otherwise "Unallocated" |
_inv:AcknowledgeInventoryRequirement/_inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem/_ord:OrderItemFulfillmentInfo/_ord:AvailableDate (Optional) | PromiseLines/PromiseLine | Reservations/Reservation/@ProductAvailabilityDate Only set if the ProductAvailabilityDate attribute is set in the message |
_inv:AcknowledgeInventoryRequirement/_inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem/_ord:OrderItemFulfillmentInfo/_ord:ExpectedShipDate (Optional) | PromiseLines/PromiseLine | Reservations/Reservation/@ShipDate Only set if the ShipDate attribute is set in the message. |
_inv:AcknowledgeInventoryRequirement/_inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem/_ord:FulfillmentCenter/_ord:FulfillmentCenterIdentifier/_wcf:UniqueID (Optional) | PromiseLines/PromiseLine | @ShipNode Only if present |
_inv:AcknowledgeInventoryRequirement/_inv:DataArea/_inv:InventoryRequirement/_ord:OrderItem/_ord:FulfillmentCenter/_ord:FulfillmentCenterIdentifier/_wcf:Name (Optional) | PromiseLines/PromiseLine | @ShipNode Only if present |
Prebuilt kits
The interim fix for the following WebSphere
Commerce APAR is required for Sterling Order Management and Sterling
Configure, Price, Quote to work together. For example, for dynamic
kit integration:
Note: If your are integrating WebSphere Commerce with both Sterling
Order Management and Sterling Configure, Price, Quote, you must deploy
Sterling Order Management on a different WebSphere Application Server
instance than Sterling Configure, Price, Quote. The WebSphere Commerce
integration with both Sterling Order Management and Sterling Configure,
Price, Quote does not work if they are deployed on the same WebSphere
Application Server instance.
When you work with prebuilt and static kits, the SKUs and their configurations are populated in both the WebSphere Commerce catalog and the Sterling Commerce catalog. WebSphere Commerce checks inventory availability and updates or cancels their inventory reservations by passing the kit SKUs to Sterling Commerce, since Sterling Commerce is already aware of their configurations.
Prebuilt and dynamic kits
are enabled for the following integration flows:
- WebSphere Commerce fetching and caching the inventory availability of prebuilt and static kits from Sterling Commerce at the kit level.
- WebSphere Commerce reserving inventory from Sterling Commerce for prebuilt and static kits at the kit level.
- Passing dynamic kit configurations (BOM XMLs) from WebSphere Commerce to Sterling Commerce during order transfer.
Kit mappings
The following
mappings exist between WebSphere Commerce kits and Sterling DOM kits:
WebSphere Commerce | Sterling DOM |
---|---|
Dynamic kit | Bundle (with configuration model) |
Static kit | Bundle (without configuration model) |
Prebuilt kit | Physical Kit |
Order status updates for kits
To support the order status update for kits, you
must customize the Sterling getShipmentDetails API, to identify whether
a shipment line is coming from a kit component:
- Download the following archive:
- Extract the archive into the following location:
- WAS_eardir/Sterling_eardir/resources.jar
- Use the Applications Manager to open the EXTN_WC_sendShipmentDetails_JMS
service and specify the template file name:
- getShipmentDetails.xml
- Save your changes and close the file.