INSERT_UPDATE Script; code[unique = true]; content ; active[default = true, unique = true]
; virtualProductCode ; "import de.hybris.platform.core.model.product.ProductModel;
ProductModel product = (ProductModel)itemModel;
return ""product-""+product.code" ; true
# Configure Integration Object
INSERT_UPDATE IntegrationObject; code[unique = true]; integrationType(code)
; PunchoutProduct ; INBOUND
INSERT_UPDATE IntegrationObjectItem; integrationObject(code)[unique = true]; code[unique = true]; type(code) ; root[default = false]; itemTypeMatch(code)
; PunchoutProduct ; Product ; Product ; true ; ALL_SUB_AND_SUPER_TYPES ;
; PunchoutProduct ; PriceRow ; PriceRow ; ; ALL_SUB_AND_SUPER_TYPES ;
; PunchoutProduct ; Currency ; Currency ; ; ALL_SUB_AND_SUPER_TYPES ;
; PunchoutProduct ; Catalog ; Catalog ; ; ALL_SUB_AND_SUPER_TYPES ;
; PunchoutProduct ; CatalogVersion ; CatalogVersion ; ; ALL_SUB_AND_SUPER_TYPES ;
INSERT_UPDATE IntegrationObjectItemAttribute; integrationObjectItem(integrationObject(code), code)[unique = true]; attributeName[unique = true]; attributeDescriptor(enclosingType(code), qualifier); returnIntegrationObjectItem(integrationObject(code), code); unique[default = false]; autoCreate[default = false]
; PunchoutProduct:Product ; catalogVersion ; Product:catalogVersion ; PunchoutProduct:CatalogVersion ; true ;
; PunchoutProduct:Product ; manufacturerAID ; Product:manufacturerAID ; ; ;
; PunchoutProduct:Product ; unspcs ; Product:unspcs ; ; ;
; PunchoutProduct:Product ; europe1Prices ; Product:europe1Prices ; PunchoutProduct:PriceRow ; ;
; PunchoutProduct:Product ; description ; Product:description ; ; ;
; PunchoutProduct:Product ; unitOfMeasure ; Product:unitOfMeasure ; ; ;
; PunchoutProduct:Product ; manufacturerName ; Product:manufacturerName ; ; ;
; PunchoutProduct:Product ; name ; Product:name ; ; ;
; PunchoutProduct:Product ; code ; Product:code ; ; true ;
; PunchoutProduct:PriceRow ; currency ; PriceRow:currency ; PunchoutProduct:Currency ; true ;
; PunchoutProduct:PriceRow ; price ; PriceRow:price ; ; true ;
; PunchoutProduct:Currency ; isocode ; Currency:isocode ; ; true ;
; PunchoutProduct:Catalog ; id ; Catalog:id ; ; true ;
; PunchoutProduct:CatalogVersion ; catalog ; CatalogVersion:catalog ; PunchoutProduct:Catalog ; true ;
; PunchoutProduct:CatalogVersion ; version ; CatalogVersion:version ; ; true ;
INSERT_UPDATE IntegrationObjectItemVirtualAttribute; integrationObjectItem(integrationObject(code), code)[unique = true]; attributeName[unique = true]; retrievalDescriptor(code)
; PunchoutProduct:Product ; virtualProductCode ; virtualProductCode
INSERT_UPDATE IntegrationObjectVirtualAttributeDescriptor; code[unique = true]; logicLocation ; type(code)
; virtualProductCode ; model://virtualProductCode ; java.lang.String
INSERT_UPDATE BasicCredential; id[unique = true] ; username ; password
; PunchoutBasicCredential ; <destinationUsernameValue>; <destinationPasswordValue>
INSERT_UPDATE DestinationTarget; id[unique = true]
; PunchoutDestinationTarget
INSERT_UPDATE ConsumedDestination; id[unique = true] ; url ; destinationTarget(id) ; credential(id) ; active;
; PunchoutConsumedDestination ; <ConsumedDestinationUrl> ; PunchoutDestinationTarget ; PunchoutBasicCredential ; true
INSERT_UPDATE OutboundChannelConfiguration; code[unique = true] ; integrationObject(code); destination(id) ; synchronizeDelete
; punchoutOutboundChannelConfig ; PunchoutProduct ; PunchoutConsumedDestination ; true
INSERT_UPDATE OutboundSyncStreamConfigurationContainer; id[unique = true]
; PunchoutOutboundChannelContainer
INSERT_UPDATE OutboundSyncStreamConfiguration; streamId[unique = true] ; container(id) ; itemTypeForStream(code); outboundChannelConfiguration(code); whereClause
; punchoutOutboundChannel_Product_Stream ; PunchoutOutboundChannelContainer ; Product ; punchoutOutboundChannelConfig ; {item.catalogVersion} IN ({{SELECT {c.pk} FROM {CatalogVersion as c} WHERE {c.version}='Online' AND {c.catalog} IN ({{SELECT {cat.pk} FROM {Catalog as cat} WHERE {cat.id}='powertoolsProductCatalog'}})}})
INSERT_UPDATE OutboundSyncJob; code[unique = true] ; streamConfigurationContainer(id)
; punchoutOutboundChannelJob ; PunchoutOutboundChannelContainer
INSERT_UPDATE OutboundSyncCronJob; code[unique = true] ; job(code) ; sessionLanguage(isoCode)
; punchoutOutboundChannelCronJob ; punchoutOutboundChannelJob ; en
# CronJob Triggers set to run every day at midnight
INSERT_UPDATE Trigger; active; second; minute; hour; day; month; year; cronExpression; cronJob(code)[unique = true] ; relative
; false ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 0 0 * * ? ; punchoutOutboundChannelCronJob ; true
items | Sample | Category | Comments |
---|---|---|---|
Destination path | /messages_from_ec* | To setup the destination where we receive EC messages | The URL should be unique in this tenant, finally we can get a URL as https://<SCI tenamt URL>/http/<destination path>. Ensure a "*" is added, or we can't receive deletion notification |
Ariba network API | https://service.ariba.com/ANCatalogProcessor.aw/ad/catalog | To se which Ariba service we'll call | the URL we post to Ariba |
Supplier network Id From | an01665632054-t | To compose upload header | id of supplier |
Supplier network Id Sender | an01665632054-t | Usually same as supplier id | |
Supplier credential | myCredential1% | The credential set in Ariba | |
Category name | my-test-catelog | The catalog name in Ariba | |
UserAgent | Supplier | The agent we show in upload header | |
Fields columns | FIELDNAMES: Supplier ID,Supplier Part ID,Manufacturer Part ID,Item Description,SPSC Code,Unit Price,Unit of Measure,Lead Time,Manufacturer Name, Supplier URL,Manufacturer URL,Market Price,Supplier Part Auxiliary ID,Language,Currency,PunchOut Enabled,PunchOutLevel,Short Name,Image ,Thumbnail, deliveryregion, deliveryregion(Delivery Region), buyerpartid1(Buyer Part ID), buyerpartid1 , Delete | To compose catalog body | The fields list |
Fields Data | AN01665632054-T,08335761,,new 6 in. (150 mm) Bench Grinder,27110000,95,EA,1,,,,,,en_US,USD,TRUE,product,,https://punchout.ellipticmarketing.com/media/18/IOjdeq5GkJ82usFQDh3XWFcbea4m9TclDcXZLjdm.jpeg, ,cn, cn, 132467, 132467 | The fields sample which can pass buyer validation(different buyer may have different rules) | |
Fields mapping | "code": "Supplier Part ID"; "manufacturerAID": "Manufacturer Part ID"; "manufacturerName" : "Manufacturer Name";"unspcs":"UNSPSC" | Provide the list to convert from Integration object to Ariba catalog | |
Currence | USD | ||
Timer trigger | there is an UI to configure it | Only needed if you try to solution 2. | The time interval of it |
Number of pulled messages | 10000 | When timer timeout in iFlow C, the max messages we read from db and compose to one update |
You also can check the status in SCI monitor and download the content if needed
Tried with wrong credential, you can see there is a 401 failure
Finally, we need ensure the catalog is uploaded in Ariba and validated, let's login Ariba as supplier admin and check the catalog with summary and details
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
4 | |
3 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 |