01. PunchOut

← トランザクション個別解説 目次へ戻る



01.01. PunchOutSetupRequest

 バイヤーがサプライヤのサイトのリモートカタログを訪れて購入候補となる商品選定を行う際、このPunchOutSetupRequestをネットワークハブ経由でサプライヤに送ります。

click here to expand/close XML view
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE cXML SYSTEM "https://electric-blue-industries.com/schemas/cXML/1.2.052/cXML.dtd">
<!--
 * Author:      Electric Blue Industries Ltd.
 * Author URI:  https://electric-blue-industries.com/
 * Copyright:   (c)2015-2023 Electric Blue Industries Ltd.
 * Contact:     admin@electric-blue-industris.com
 * License:     GNU General Public License v3.0
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 * Reference:   http://xml.cxml.org/current/cXMLReferenceGuide.pdf
-->
<cXML timestamp="0000-00-00T00:00:00+09:00" payloadID="">
    <Header>
        <From>
            <Credential domain="DUNS">
                <Identity>123456789</Identity>
            </Credential>
        </From>
        <To>
            <Credential domain="NetworkID">
                <Identity>AN01000000001</Identity>
            </Credential>
        </To>
        <Sender>
            <Credential domain="DUNS">
                <Identity>123456789</Identity>
                <SharedSecret>SharedSecret</SharedSecret>
                <CredentialMac
                    type="FromSenderCredentials"
                    algorithm="HMAC-SHA1-96"
                    creationDate="0000-00-00T00:00:00+09:00"
                    expirationDate="0000-00-00T00:00:00+09:00">CredentialMAC</CredentialMac>
            </Credential>
            <UserAgent>Procurement Application Name</UserAgent>
        </Sender>
    </Header>
    <Request>
        <PunchOutSetupRequest operation="">
            <BuyerCookie/>
            <BrowserFormPost>
            <!-- PunchOutOrderMessage (=OrderRequisition)を受けるためのバイヤー側URL -->
                <URL/>
            </BrowserFormPost>
            <!-- Extrinsicの属性と値は相互の合意がなされていれば自由に追加できる -->
            <Extrinsic name=""/>
            <SelectedItem>
                <ItemID>
                    <SupplierPartID/>
                </ItemID>
            </SelectedItem>
            <SupplierSetup>
                <!-- この任意設定の要素は、PunchOutSetupRequest の送信先 URL を指定します。ネットワークハブがサプライヤのパンチアウト URL を把握している場合は、この要素は必要ありません。 -->
                <URL/>
            </SupplierSetup>
            <ShipTo>
                <Address addressID="" addressIDDomain="" isoCountryCode="">
                    <Name xml:lang=""/>
                    <PostalAddress name="">
                        <DeliverTo/>
                        <Street/>
                        <City/>
                        <State isoStateCode=""/>
                        <PostalCode/>
                        <Country isoCountryCode=""/>
                    </PostalAddress>
                </Address>
                <CarrierIdentifier domain=""/>
                <TransportInformation>
                    <Route method=""/>
                    <ShippingContractNumber/>
                    <ShippingInstructions>
                        <Description xml:lang=""/>
                    </ShippingInstructions>
                </TransportInformation>
                <IdReference/>
            </ShipTo>
        </PunchOutSetupRequest>
    </Request>
</cXML>

下記が返送されるPunchOutSetupResponseの例です。他のAPIと同様にHeaderは存在しません。

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE cXML SYSTEM "https://electric-blue-industries.com/schemas/cXML/1.2.052/cXML.dtd">
<cXML>
    <Response>
        <!-- PunchOutSetupRequestの認証等の結果のステータス -->
        <Status code="200" text="success"></Status>
        <PunchOutSetupResponse effectiveDate="2023-07-01T05:24:29-08:00" lastRefresh="2023-07-08T05:24:29-08:00">
            <StartPage>
                <!-- サプライやがリダイレクトされるべき先のURL -->
                <!-- このURLは認証結果固有であるべきで、時間制限やアクセス回数制限を設けます -->
                <URL>http://xml.workchairs.com/retrieve?reqUrl=20626;Initial=TRUE</URL>
            </StartPage>
        </PunchOutSetupResponse>
    </Response>
</cXML>

01.02. PunchOutOrderMessage

 サプライヤのリモートカタログで商品選定を行った後、カートで「チェックアウト」をクリックすると、通常のオンラインショッピングでは請求先や配送先情報を入力する画面になるところ、パンチアウトではカートの内容をPunchOutOrderMessageでサプライヤからバイヤーのサイトへと送ります。PunchOutOrderMessageが送られるバイヤーサイトのURLはPunchOutSetupの際にバイヤーからサプライヤに送られたURLです。

click here to expand/close XML view
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE cXML SYSTEM "https://electric-blue-industries.com/schemas/cXML/1.2.052/cXML.dtd">
<!--
 * Author:      Electric Blue Industries Ltd.
 * Author URI:  https://electric-blue-industries.com/
 * Copyright:   (c)2015-2023 Electric Blue Industries Ltd.
 * Contact:     admin@electric-blue-industris.com
 * License:     GNU General Public License v3.0
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 * Reference:   http://xml.cxml.org/current/cXMLReferenceGuide.pdf
-->
<cXML timestamp="0000-00-00T00:00:00+09:00" payloadID="">
    <Header>
        <From>
            <Credential domain="DUNS">
                <Identity>123456789</Identity>
            </Credential>
        </From>
        <To>
            <Credential domain="NetworkID">
                <Identity>AN01000000001</Identity>
            </Credential>
        </To>
        <Sender>
            <Credential domain="DUNS">
                <Identity>123456789</Identity>
                <SharedSecret>SharedSecret</SharedSecret>
                <CredentialMac
                    type="FromSenderCredentials"
                    algorithm="HMAC-SHA1-96"
                    creationDate="0000-00-00T00:00:00+09:00"
                    expirationDate="0000-00-00T00:00:00+09:00">CredentialMAC</CredentialMac>
            </Credential>
            <UserAgent>Procurement Application Name</UserAgent>
        </Sender>
    </Header>
    <Message>
        <!-- 以下にバイヤーがサプライヤのリモートカタログで選択した購入候補製品の情報の詳細が記載されます -->
        <PunchOutOrderMessage>
            <BuyerCookie></BuyerCookie>
            <!-- すべてのアイテムの総計金額をMessageHeaderに記載する -->
            <PunchOutOrderMessageHeader operationAllowed="" quoteStatus="">
                <Total>
                    <Money currency=""/>
                </Total>
                <Shipping tracking="" trackingDomain="" trackingId="">
                    <Money alternateAmount="" alternateCurrency="" currency=""/>
                    <Description type="" xml:lang=""/>
                </Shipping>
                <Tax>
                    <Money currency=""/>
                    <Description xml:lang=""/>
                    <TaxDetail purpose="" category="" percentageRate="" isVatRecoverable="" taxPointDate="" paymentDate="" isTriangularTransaction="" exemptDetail="" isWithholdingTax="" taxRateType="" basePercentageRate="" isIncludedInPrice="">
                        <TaxableAmount>
                            <Money currency=""/>
                        </TaxableAmount>
                        <TaxAmount>
                            <Money currency=""/>
                        </TaxAmount>
                        <TaxLocation xml:lang=""/>
                        <Description xml:lang=""/>
                    </TaxDetail>
                    <Distribution/>
                    <Extrinsic/>
                </Tax>
            </PunchOutOrderMessageHeader>
            <!-- 多くの場合は型番で示されるアイテム毎にこのItemInが記述される -->
            <ItemIn quantity="" openQuantity="" promisedQuantity="" lineNumber="" parentLineNumber="" itemType="" compositeItemType="" itemClassification="" itemCategory="">
                <ItemID>
                    <SupplierPartID/>
                    <SupplierPartAuxiliaryID/>
                    <BuyerPartID/>
                    <IdReference/>
                </ItemID>
                <Path />
                <ItemDetail>
                    <UnitPrice>
                        <Money currency=""/>
                    </UnitPrice>
                    <Description type="" xml:lang="">
                        <ShortName/>
                        detail description here
                    </Description>
                    <OverallLimit>
                        <Money currency=""/>
                    </OverallLimit>
                    <ExpectedLimit>
                    <Money currency=""/>
                    </ExpectedLimit>
                    <UnitOfMeasure/>
                    <PriceBasisQuantity quantity="" conversionFactor="">
                        <UnitOfMeasure/>
                        <Description type="" xml:lang="">
                            <ShortName/>
                            detail description here
                        </Description>
                    </PriceBasisQuantity>
                    <Classification domain=""/>
                    <ManufacturerPartID/>
                    <ManufacturerName/>
                    <URL/>
                    <LeadTime/>
                    <!-- Dimensionは複数要素を列挙して複数の指定をすることが可能 -->
                    <!-- typeには length/width/height/weight/volume/stackHeight/grossWeight/grossVolume/unitGrossWeight/unitNetWeight を指定可能 -->
                    <Dimension quantity="" type="">
                        <UnitOfMeasure/>
                    </Dimension>
                    <ItemDetailIndustry isConfigurableMaterial="">
                        <ItemDetailRetail>
                            <EANID/>
                            <EuropeanWasteCatalogID/>
                            <Characteristic domain="" value="" code=""/>
                        </ItemDetailRetail>
                    </ItemDetailIndustry>
                    <AttachmentReference length="" version="">
                        <Name xml:lang=""/>
                        <Description xml:lang=""/>
                        <InternalID/>
                        <URL/>
                    </AttachmentReference>
                    <PlannedAcceptanceDays/>
                    <Extrinsic/>
                </ItemDetail>
                <SupplierList>
                    <Supplier>
                        <Name xml:lang=""/>
                        <SupplierID domain=""/>
                    </Supplier>
                    <Supplier>
                        <Name xml:lang=""/>
                        <SupplierID domain=""/>
                        <SupplierID domain=""/>
                    </Supplier>
                </SupplierList>
                <ShipTo>
                    <Address addressID="" addressIDDomain="" isoCountryCode="">
                        <Name xml:lang=""/>
                        <PostalAddress name="">
                            <DeliverTo/>
                            <Street/>
                            <City/>
                            <State isoStateCode=""/>
                            <PostalCode/>
                            <Country isoCountryCode=""/>
                        </PostalAddress>
                    </Address>
                    <CarrierIdentifier domain=""/>
                    <TransportInformation>
                        <Route method=""/>
                        <ShippingContractNumber/>
                        <ShippingInstructions>
                            <Description xml:lang=""/>
                        </ShippingInstructions>
                    </TransportInformation>
                    <IdReference />
                </ShipTo>
                <Shipping tracking="" trackingDomain="" trackingId="">
                    <Money alternateAmount="" alternateCurrency="" currency=""/>
                    <Description type="" xml:lang=""/>
                </Shipping>
                <!-- Taxが複数課される場合は TaxDetail を複数列挙することができる -->
                <Tax>
                    <Money currency=""/>
                    <Description xml:lang=""/>
                    <TaxDetail purpose="" category="" percentageRate="" isVatRecoverable="" taxPointDate="" paymentDate="" isTriangularTransaction="" exemptDetail="" isWithholdingTax="" taxRateType="" basePercentageRate="" isIncludedInPrice="">
                        <TaxableAmount>
                            <Money currency=""/>
                        </TaxableAmount>
                        <TaxAmount>
                            <Money currency=""/>
                        </TaxAmount>
                        <TaxLocation xml:lang=""/>
                        <Description xml:lang=""/>
                    </TaxDetail>
                    <Distribution/>
                    <Extrinsic/>
                </Tax>
                <SpendDetail />
                <Distribution>
                    <Accounting name="">
                    <!-- AccountingSegmentは複数列挙することができる -->
                        <AccountingSegment id="">
                            <Name xml:lang=""/>
                            <Description xml:lang=""/>
                        </AccountingSegment>
                        <AccountingSegment id="">
                            <Name xml:lang=""/>
                            <Description xml:lang=""/>
                        </AccountingSegment>
                    </Accounting>
                    <Charge>
                        <Money currency=""/>
                    </Charge>
                </Distribution>
                <Contact role="">
                    <Name xml:lang=""/>
                    <PostalAddress>
                        <Street/>
                        <City/>
                        <State isoStateCode=""/>
                        <PostalCode/>
                        <Country isoCountryCode=""/>
                    </PostalAddress>
                    <Email/>
                </Contact>
                <!-- コメント要素は複数列挙することができる -->
                <Comments xml:lang="" type="">comment here</Comments>
                <ScheduleLine/>
                <BillTo/>
                <Batch/>
                <Period/>
                <DateInfo/>
                <Extrinsic/>
            </ItemIn>
        </PunchOutOrderMessage>
    </Message>
</cXML>