Attributes Supported in Oracle cXML Punchout

The cXML PunchOutOrderMessage document contains the shopping cart items the requester checked out from the supplier site. When users checkout items from the supplier site, they are redirected to the Oracle Self Service Procurement with this document.

Here's an example PunchoutOrderMessage document that is sent to Self Service Procurement from the supplier site.

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.1.010/cXML.dtd">
<cXML version="1.1" payloadID="2022-10-18T23:56:52.12349832.13284838@dell.com" timestamp="2022-10-18T23:56:52">
  <Header>
    <From>
      <Credential domain="DUNS">
        <Identity>128293714</Identity>
      </Credential>
    </From>
    <To>
      <Credential domain="DUNS">
        <Identity>144709199</Identity>
      </Credential>
    </To>
    <Sender>
      <Credential domain="DUNS">
        <Identity>128293714</Identity>
        <SharedSecret>*</SharedSecret>
      </Credential>
      <UserAgent>Spruce cXML V1.1</UserAgent>
    </Sender>
  </Header>
  <Message>
    <PunchOutOrderMessage>
      <BuyerCookie>1666155377124100010026864119</BuyerCookie>
      <PunchOutOrderMessageHeader operationAllowed="edit">
        <Total>
          <Money currency="USD">2549.99</Money>
        </Total>
      </PunchOutOrderMessageHeader>
      <ItemIn quantity="1">
        <ItemID>
          <SupplierPartID>SD3579</SupplierPartID>
          <SupplierPartAuxiliaryID>10257463211871</SupplierPartAuxiliaryID>
          <BuyerPartID>CART25D43W6</BuyerPartID>
          <IdReference identifier="agreementNumber" domain="supplierReference">1002665</IdReference>
          <IdReference identifier="agreementLineNumber" domain="supplierReference">1</IdReference>
        </ItemID>
        <ItemDetail>
          <UnitPrice>
            <Money currency="USD">2549.99</Money>
          </UnitPrice>
          <Description xml:lang="en">CART MEDICAL A-SMART ALUMINUM BLUE GREY D25.4 X W25.3 X H43.4 IN W15 IN 6 DRAWER NARROW AUTO LOCK</Description>
          <UnitOfMeasure>EA</UnitOfMeasure>
          <Classification domain="UNSPSC">42000000</Classification>
          <Extrinsic name="LineTypeCode">2WAYO</Extrinsic>
          <ManufacturerPartID>SR6BG</ManufacturerPartID>
          <ManufacturerName>Spruce Inc</ManufacturerName>
        </ItemDetail>
        <SupplierID domain="XXXX">SupplierID</SupplierID>
        <Extrinsic name="ATTRIBUTE1">Yes</Extrinsic>
        <Extrinsic name="ATTRIBUTE3">200</Extrinsic>
      </ItemIn>
    </PunchOutOrderMessage>
  </Message>
</cXML>

Each ItemIn element in PunchOutOrderMessage represents a single item in the user's shopping cart.

This table lists the mapping of fields in the ItemIn of PunchOutOrderMessage to Self Service Procurement fields:

Field in PunchOutOrderMessage

Field in Self Service Procurement

Details

<ItemIn quantity="1">

Quantity

The quantity field of element ItemIn maps to the Quantity attribute on the requisition line. Quantity is a required field except when it's a amount-based service line.

<ItemIn itemClassification>

Line Type

The itemClassification field of element ItemIn maps to Line Type. The valid values are materials and service.

Materials maps to Goods and Service maps to Fixed-Price Services. If a value isn't provided or any other value is provided, line type will default to Goods.

<SuppliePartID>

Supplier Item

Supplier part number for the item. This should be a unique identifier for the product.

<SupplierPartAuxiliaryID>

Supplier Configuration ID

Reference number provided by the supplier for this item or order, contained in the <SupplierPartID> field.

If supplier specifies a SupplierPartAuxiliaryID, then that value is stored as the Supplier Configuration ID on the requisition line.

<BuyerPartID>

Item

BuyerPartID maps to internal master item number. The BuyerPartID tag must be a child tag of the ItemID tag of the payload. When the supplier returns a valid master item from the punchout site, it will be added to the user's requisition in Self Service Procurement.

This is applicable when the catalog is enabled to process master items and agreement lines using punchout.

<IdReference identifier="agreementNumber>

Agreement

This field maps to either the blanket purchase agreement or contact purchase agreement. The agreementNumber tag must be a child tag of the ItemID tag of the payload.

By mapping the agreementNumber value to an agreement, the source document number is derived. If this agreement number matches an open, effective blanket or contract purchase agreement number in Oracle Purchasing, then the requisition line gets created with that agreement.

This is applicable when the catalog is enabled to process master items and agreement lines using punchout.

<IdReference identifier="agreementNumber">

Agreement Line

Blanket purchase agreement line number. The agreementLineNumber tag must be a child tag of the ItemID tag of the payload. This is required when a supplier provides a blanket purchase agreement for agreementNumber.

This is applicable when the catalog is enabled to process master items and agreement lines using punchout.

<Money currency="USD">99.99</Money>

Price and Currency

Indicates the price per unit of the item in the specified by the supplier. The Money tag with price and currency must be a child tag of the UnitPrice tag of the payload.

Price and Currency are required fields.

<Description>

Description

Supplier’s description of the item. This description populates the Item Description in the requisition line. This is a required field.

<UnitofMeasure>

UOM

Supplier’s unit of measure code. This is a required field.

You can use supplier content map sets to map external UOM to the internal UOM.

<Classification>

Category

The tag <Classification> maps to Category. This is a required field.

For example: <Classification domain="UNSPSC">42000000</Classification>

You can use supplier content map sets to map external categories to the internal item categories.

The default category name specified in the punchout catalog will be used if the application couldn't determine an internal category for the classification provided.

<Extrinsic name="LineTypeCode">

Line Type Code

The extrinsic attribute LineTypeCode maps to the Line Type Code. User-Defined purchasing line types are supported in cXML Punchouts. The Extrinsic tag must be a child tag of the ItemDetail tag of the payload.

<ItemDetail>

...

<Extrinsic name="LineTypeCode">PurchasingLineTypeCode</Extrinsic>

</ItemDetail>

Here's the order of precedence for deriving the line type of the requisition line:

  1. If a valid blanket purchase agreement line is provided, uses the line type of the blanket purchase agreement line, and ignore itemClassification or LineTypeCode values.
  2. If a valid LineTypeCode is provided, ignores itemClassification value.
  3. itemClassification value, if valid.
  4. If none of the above, uses Goods as the default value.

<ManufacturerPartID>

Manufacturer Part Number

ManufacturerPartID maps to manufacturer part number of the item.

<ManufacturerName>

Manufacturer

Name of the manufacturer for this item. This name populates the Manufacturer Name on the requisition line.

<SupplierID>

Supplier

This field is used to default a supplier on the requisition line. Internal Supplier Name or B2B Site code can be sent for SupplierID in the payload.

B2B Site Code is configured for a supplier site in manage suppliers work area. If a B2B Site Code is specified for this field, internal Supplier and Supplier Site uniquely associated with that B2B Site Code will be defaulted on the requisition line.

<Extrinsic name="Attribute1"> to <Extrinsic name="Attribute15">

ATTRIBUTE1 to ATTRIBUTE15

These 15 extrinsic attributes are mapped to requisition line level descriptive flexfield text attributes 1 to 15.

You can use these extrinsic attributes in the punchout order message to capture additional information needed for reporting and downstream order processing.

Here's an example of how you can capture the additional information using extrinsic attributes to capture whether the items procured from a supplier are hazardous:

  • Create a requisition line level descriptive flexfield to capture this information.

    For example: ATTRIBUTE1 stores this information for a requisition line.

  • Supplier must send this information for each item in the punchout order message so that this can be captured in the ATTRIBUTE1 for the requisition line.

    For example: <Extrinsic name="Attribute1">Value from the Supplier Punchout</Extrinsic>. The Extrinsic tag must be a child tag of the ItemIn tag of the payload as shown here:

    <ItemIn>

    ...

    <Extrinsic name="Attribute5">10BPAD</Extrinsic>

    </ItemIn>