제품 주문 Open API 개발자 가이드
Product Order Open API를 사용하여 제품 주문 정보를 생성, 업데이트 및 검색합니다.
이 개발자 가이드에서는 다양한 사용자 지정을 위해 확장 제품 주문 오픈 API 하는 방법에 대한 정보를 제공합니다.
제품 주문 Open API 확장
스크립트 포함을 편집하여 Product Order Open API 를 확장할 수 있습니다.
- TMFProductOrderAPIUtil: POST 요청을 처리하는 함수를 포함합니다.
- TMFProductOrderGetAPIUtil: GET 요청을 처리하는 함수를 포함합니다.
- ProductOrderExtensionOOB: TMFProductOrderAPIUtil 및 TMFProductOrderGetAPIUtil의 함수를 지원하는 도우미 함수를 포함합니다.
- ProductOrderProcessor: 빈 스크립트 포함 파일입니다. 이 파일을 사용하여 ProductOrderExtensionOOB에서 재정의할 함수를 정의합니다.
제품 주문 열기 API를 확장하여 다음과 같이 사용자 지정합니다.
필수 매개변수
제품 주문을 생성하는 데 필요하거나 필요하지 않은 요청 본문 매개변수를 변경하려면 ProductOrderExtensionOOB 스크립트 포함에 포함된 getProductOrderSchema() 함수를 재정의합니다.
getProductOrderSchema() 함수는 TMFOrderAPIConstants 스크립트 포함에서 스키마를 읽습니다. TMFOrderAPIConstants 는 보호되어 있으며 편집할 수 없으므로 스키마를 업데이트할 수 없습니다. 대신 다른 파일에서 새 스키마를 읽어야 합니다. getProductOrderSchema()를 재정의하여 새 스키마를 읽을 수 있습니다. getProductOrderSchema()를 재정의하려면 ProductOrderProcessor 스크립트 포함에서 동일한 이름의 함수를 작성하십시오. ProductOrderProcessor의 새 함수는 TMFProductOrderAPIUtil에 의해 호출되어 ProductOrderExtensionOOB의 기본 getProductOrderSchema() 함수를 대체합니다.
getProductOrderSchema() 는 새 상수 파일에 정의된 사용자 정의 스키마를 반환합니다. // ProductOrderProcessor
var ProductOrderProcessor = Class.create();
ProductOrderProcessor.prototype = Object.extendsObject(ProductOrderExtensionOOB, {
// Define overriding functions here
// Function name and parameters must be identical to the function it overrides
getProductOrderSchema: function() {
//Define your own custom schema in a new constant file
return JSON.parse(Constants.SCHEMA.CREATE_PRODUCT_ORDER);
},
type: 'ProductOrderProcessor'
});요청 본문 확인
있습니다 .validatePostRequest()- TMFProductOrderAPIUtil에서processCreateOrder()에 의해 호출됩니다.validateProductObj()- TMFProductOrderAPIUtil에서processCreateOrder()에 의해 호출됩니다.validateRelatedPartyObj()- TMFProductOrderAPIUtil에서processCreateOrder()에 의해 호출됩니다.validateGetRequest()- TMFProductOrderGetAPIUtil에서processGetOrder()에 의해 호출됩니다.
false를 반환하면 API 작업이 중지됩니다. 사용자 지정 유효성 검사를 적용하려면 ProductOrderProcessor에서 이름과 매개 변수가 동일한 함수를 만들어 ProductOrderExtensionOOB 도우미 함수를 재정의합니다. 이러한 새 ProductOrderProcessor 함수는 TMFProductOrderAPIUtil 및 TMFProductOrderGetAPIUtil 에서 호출되어 기본 ProductOrderExtensionOOB 도우미 함수를 대체합니다.// ProductOrderProcessor
var ProductOrderProcessor = Class.create();
ProductOrderProcessor.prototype = Object.extendsObject(ProductOrderExtensionOOB, {
// Define overriding functions here
// Function name and parameters must be identical to the function it overrides
validatePostRequest: function(orderObject, details) {
// Returning false terminates the POST request
// Make sure to push error message in details array in case of error
if (gs.nil(orderObject.productOrderItem)) {
details.push(new TMFCommonOrderAPIUtil().getErrorDetailsObj(TMFOrderAPIConstants.MESSAGES.MISSING_ORDER_ITEM, '/'));
return false;
}
return true;
},
type: 'ProductOrderProcessor'
});추가 REST 운영
기존 GET 및 POST 작업 외에 추가 작업을 작성하려면 Product Order Open API에 대해 추가로 스크립팅된 REST 자원을 작성하십시오. 스크립트된 새 REST 자원의 논리는 기존 작업과 일치해야 합니다. 새 스크립트 포함에서 새 작업에 대한 함수를 정의합니다.
필드 매핑
기록을 만들 때 API는 요청 본문 매개변수를 기록 필드에 매핑합니다. 기록을 검색할 때 API는 기록 필드를 응답 객체 속성에 매핑합니다.
transformOrderGr()을 호출합니다.transformOrdLineItemGr()getLineItemPrice()를 호출합니다.transformPriceOrderTypeAndState()를 호출합니다.transformCustLineItmContact()를 호출합니다.transformOrderItemChar()를 호출합니다.
transformPostOrderResponse()를 호출합니다.transformGetOrderResponse()를 호출합니다.transformProductObj()를 호출합니다.transformRelatedPartyCustomerLineItem()transformOrderItemRelationship()을 호출합니다.transformGetOrdLineItmResponse()를 호출합니다.transformProductCharacteristics()를 호출합니다.transformProductSpecification()을 호출합니다.
// ProductOrderProcessor
var ProductOrderProcessor = Class.create();
ProductOrderProcessor.prototype = Object.extendsObject(ProductOrderExtensionOOB, {
// Define overriding functions here
// Function name and parameters must be identical to the function it overrides
transformOrderGr: function(requestObject, orderGr) {
orderGr.external_id = requestObject.externalId;
return orderGr;
},
transformPostOrderResponse: function(orderObject, orderGr) {
orderObject.id = orderGr.getValue('sys_id');
return orderObject;
},
type: 'ProductOrderProcessor'
});