Acknowledge a Purchase Order with Changes
When you acknowledge a PO with changes, the confirmation type value at the header level must either be in the orderAccept or orderChange lists and the confirmation type at the confirmation item level must have a value in the lineChange list to communicate a price change, part number correction, UOM change, quantity change, or date change.
You must provide one of these values in the payload when the confirmation type value is in the lineChange list. Otherwise, the message is skipped:
- UnitPriceAmount - If a non-negative numeric value is provided in the payload for a line change, the PO is updated.
- SupplierItemNumber - When a SupplierItemNumber is provided in the payload for a line change, the supplier item number can be updated on the PO line if the feature Correct the Supplier Item Number on Purchase Orders is enabled. Otherwise, you need to create a descriptive flexfield for B2B Part Number Correction which will be populated with the corrected part number.
- UnitOfMeasureCode - When a UnitOfMeasure is provided in the payload for a line change, the descriptive flexfield (b2bAckReviewRequired) on the PO header is set to One or more lines have acknowledgment comments and the UnitOfMeasureCode provided in the payload is mapped to the flexfield (b2bUOMChange) on the PO line.
- OrderQuantity - The PO is updated when positive decimal numbers are provided.
- PromisedShipDate, or PromisedDeliveryDate - The PromisedShipDate or PromisedDeliveryDate is updated when a date change is provided in the payload and it is as expected by the Buyer Managed Transport setting on the PO. Otherwise, the descriptive flexfield is updated.
When a confirmation message with change confirmation types is received, a supplier initiated change order is created.
This table explains data mapping of the purchase order acknowledgment message to the payload of the changePurchaseOrder service:
Source: cXML - ConfirmationRequest:cXML/Request/ConfirmationRequest | Target: Fusion Object:changePurchaseOrder/changeOrderEntry |
---|---|
OrderReference/@orderID | OrderNumber |
SoldToLegalEntityId | |
ConfirmationHeader/@type | Set to ACCEPT or CHANGE. |
ConfirmationHeader/Comments |
ChangeOrderDescription Set to Not provided if no value is provided in payload. |
ConfirmationHeader/Extrinsic[@name="SUPPLIERORDERNUMBER"] | SupplierOrderNumber |
ChangeOrderInitiatingParty Set to SUPPLIER. |
|
PurchaseOrderEntryLine | |
ConfirmationItem[n]/ConfirmationStatus/Extrinsic[@name="LINENUM"] | LineNumber |
ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemID/SupplierPartID |
SupplierItem If the SupplierPartID contains a value and the feature Correct
the Supplier Item Number on Purchase Orders is enabled, then its
value is mapped to SupplierItem.
Note: If
the message includes multiple schedule lines, and
SupplierPartID contains a value in each, this implementation
takes the SupplierPartID in the first schedule line
occurrence passed in the payload after sorting all the
schedule lines in ascending order. |
ConfirmationItem[n]/ConfirmationStatus/@quantity |
Quantity If the PO has multiple schedule lines, and a quantity change is
intended (for all or some of those lines), the message must
include all the schedule lines and their quantities (even the
ones that do not need their quantity changed).
Note: The sum total of all the schedule line
quantities is passed to the PO line quantity field in this
element: PurchaseOrderEntryLine/Quantity. |
ConfirmationItem[n]/ConfirmationStatus/UnitPrice/Money Or ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemDetail/UnitPrice/Money |
Price ConfirmationItem[n]/ConfirmationStatus/UnitPrice/Money is mapped
if provided. Otherwise,
ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemDetail/UnitPrice/Money
is mapped.
Note: If the message includes
multiple schedule lines, and a UnitPrice/Money value is
provided in each, this implementation takes the
UnitPrice/Money from the first schedule line occurrence
passed in the payload after sorting all the schedule lines
in ascending order. |
ConfirmationItem[n]/ConfirmationStatus/Comments | ChangeReason Set to Not provided if no value is provided in payload. |
ConfirmationItem[n]/ConfirmationStatus/@type | Action Set to CHANGE |
PurchaseOrderEntryLine/PurchaseOrderEntrySchedule | |
ConfirmationItem[n]/ConfirmationStatus/Extrinsic[@name=" SHIPMENTNUM"] | ScheduleNumber |
ConfirmationItem[n]/ConfirmationStatus/@quantity | Quantity |
ConfirmationItem[n]/ConfirmationStatus/@deliveryDate and/or, ConfirmationItem[n]/ConfirmationStatus/@shipmentDate |
PromisedDeliveryDate and/or, PromisedShipDate If the deliveryDate is provided in the payload and the Buyer Managed Transport isn't selected on the order, then the value is mapped to PromisedDeliveryDate. If the shipmentDate is provided and the Buyer Managed Transport check box is selected on the order, then the value is mapped to PromisedShipDate. |
ConfirmationItem[n]/ConfirmationStatus/Comments | ChangeReason Set to Not provided if no value is provided in payload. |
ConfirmationItem[n]/ConfirmationStatus/@type | Action Set to CHANGE. |
PurchaseOrderEntryLine/LineFlexfield | |
ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemID/SupplierPartID |
SupplierPartID or b2bPartNumberCorrection If the feature Correct the Supplier Item Number on Purchase
Orders is enabled, the supplier item number is updated on the PO
line. Otherwise, the SupplierPartID is mapped to the descriptive
flexfield, B2BPartNumberCorrection.
Note: If the message includes multiple schedule lines, and a
SupplierPartID value is passed in each, this implementation
takes the SupplierPartID in the first schedule line
occurrence passed in the payload after sorting all the
schedules in ascending order. |
ConfirmationItem[n]/ConfirmationStatus/UnitOfMeasure or ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemDetail/UnitOfMeasure |
b2bUOMChange ConfirmationItem[n]/ConfirmationStatus/UnitOfMeasure is mapped if there is a value provided in both ConfirmationItem/ConfirmationStatus/UnitOfMeasure and ConfirmationItem/ConfirmationStatus/UnitPrice/Money . Otherwise, if there isn't a value provided in ConfirmationItem[n]/ConfirmationStatus/UnitOfMeasure, the value in ConfirmationItem/ConfirmationStatus/ItemIn/ItemDetail/UnitOfMeasure is mapped. Note: If the message includes multiple
schedule lines, and a UnitOfMeasure value is provided in each,
this implementation takes the UnitOfMeasure from the first
schedule line occurrence passed in the payload after sorting all
the schedule lines in ascending order
|
PurchaseOrderEntryLine/ScheduleFlexfield | |
b2bProvidedDateNote If deliveryDate has a value when Buyer Managed Transport checkbox is selected on the PO, then this flex field is set to Promised Delivery Date Provided. If shipmentDate has a value when when Buyer Managed Transport checkbox isn't selected on the PO, then this flex field is set to Promised Ship Date Provided. If both deliveryDate and the shipmentDate have values when Buyer Managed Transport checkbox is selected on the PO, this field will be set to Promised Delivery Date and Promised Ship Date Provided. If both deliveryDate and the shipmentDate have values when Buyer Managed Transport checkbox isn't selected on the PO, this field will be set to Promised Delivery Date and Promised Ship Date Provided. |
|
ConfirmationItem[n]/ConfirmationStatus/@deliveryDate and/or ConfirmationItem[n]/ConfirmationStatus/@shipmentDate |
b2bProvidedDate If the deliveryDate is provided in the payload and the Buyer Managed Transport checkbox is selected on the PO this field is set to deliveryDate. If the shipmentDate is provided in the payload and the Buyer Managed Transport checkbox is not selected on the PO this field is set to shipmentDate. |
HeaderFlexfield | |
b2bAckReviewRequired Set to One or more lines have acknowledgment comments if any of
the following elements are provided in the payload:
|
Sample Payload
<ConfirmationRequest>
<ConfirmationHeader type="allDetail" noticeDate="2024-03-19T17:47:31-08:00">
<Comments xml:lang="en-US">Header comment</Comments>
<Extrinsic name="SUPPLIERORDERNUMBER"></Extrinsic>
</ConfirmationHeader>
<OrderReference orderID="1007083">
<DocumentReference payloadID=""/>
</OrderReference>
<ConfirmationItem quantity="" lineNumber="">
<UnitOfMeasure></UnitOfMeasure>
<ConfirmationStatus quantity="7" type="detail" shipmentDate="2026-03-20T07:00:00-07:00" deliveryDate="2027-03-20T07:00:00-07:00">
<UnitOfMeasure>VVVV</UnitOfMeasure>
<UnitPrice>
<Money currency="USD">11.22</Money>
</UnitPrice>
<ItemIn quantity="">
<ItemID>
<SupplierPartID>19YY17</SupplierPartID>
</ItemID>
<ItemDetail>
<Description xml:lang="en-US"></Description>
<UnitOfMeasure>BX</UnitOfMeasure>
<Classification domain="status"></Classification>
</ItemDetail>
</ItemIn>
<Comments>Line 1 Comment</Comments>
<Extrinsic name="LINENUM">1</Extrinsic>
<Extrinsic name="SHIPMENTNUM">1</Extrinsic>
</ConfirmationStatus>
</ConfirmationItem>
</ConfirmationRequest>