본문으로 건너뛰기

항목 수정

modify 요청을 사용하면 이전에 시작된 카트를 수정할 수 있습니다. 이 요청은 init 장바구니, 태그 및 항목 수준에서 속성을 정의할 수 있도록 요청합니다 카트, 태그 및 항목 섹션에서 자세한 내용을 확인할 수 있습니다. 그러나 이 섹션에서 다루는 여러 가지 차이점이 있습니다.

modify 를 통해 다음을 수행할 수 있습니다.

  • 기존 태그를 재할당하거나 삭제하고 새 태그를 도입합니다.
  • 지불 설정을 재정의하고 품목 금액을 변경하거나 다시 계산합니다.
  • 타이머 설정을 재정의합니다.
Please note

와 함께 modify 변경할 수 없는 요청 cartId value 또는 장바구니 항목 식별자의 값입니다.

일부 카트 속성은 항목이 특정 결제 상태인 경우에만 수정할 수 있습니다( 지급 수명 주기 섹션에서 지급 상태에 대한 자세한 내용을 확인할 수 있으며), 나머지는 지급 상태에 관계없이 수정할 수 있습니다.

노트

modify 요청 요청은 항목 상태를 변경하지 않습니다.

태그 수정하기

태그는 금액 변경과 관련이 없는 한 결제 상태와 관계없이 수정할 수 있습니다( 결제 설정 수정을 참조하십시오).

태그는 요청에 따라 적용되며, 요청에 태그가 사용된 후에는 태그와 결제 또는 타이머 설정 사이에 바인딩이 없습니다. 따라서 항목에 대해 정의된 새 설정이 없으면 항목의 설정이 유지됩니다.

오른쪽에 있는 예를 살펴보겠습니다. 카트는 다음과 같이 시작되었습니다. tower 태그에 적용된 genie 그리고 naga 항목. 그런 다음 카트가 수정되고 inferno 태그가 도입되었습니다. 새 태그는 genie 항목을 따라서 genie 전체 항목 금액은 이제 OmniCart에 의해 다음과 같이 다시 계산됩니다. inferno 태그 설정을 선택합니다. 이제 에 의해 곱해집니다. amountModifier 값 이후 amountMode 로 설정됩니다. calculated (금액에 대한 자세한 내용은 금액 섹션 참조).

naga 항목은 여전히 이니셜로 표시되어 있습니다. tower 태그. 그러나 이 태그는 에서 재정의되지 않았습니다. modify 요청. 에 대한 새로운 설정이 없었기 때문에 tower 태그에 삽입하면 naga 항목이 이전 금액 설정을 유지했습니다. 사실, 에 할당된 다른 정의되지 않은 태그는 naga 항목이 동일한 효과를 생성했을 것입니다. 즉, status 요청은 해당 설정이 해당 항목에 적용되었는지 여부에 관계없이 항목에 할당된 최신 태그를 반환합니다. 그래서 여기 팁이 있습니다.

태그를 관리합니다.

//initial tag
//new tag
"scope": {
"tags": [
{
"tower": {
"paymentFilter": {
"amountMode": "declared"
}
}
}
]
},
"items": [
{
"genie": {
"tag": "tower",
"amount": 3600
},
"naga": {
"tag": "tower",
"amount": 6400
}
}
]

금액 수정

금액 설정 ​카트, 태그 또는 항목 수준에서 다음과 같이 수정할 수 있습니다. init 카트, 태그 및 항목 섹션에서 자세한 내용을 확인할 수 있습니다. 수정되는 항목은 다음 위치에 있어야 합니다. authorized 또는 완료 상태 참조 지급 수명 주기 섹션에서 자세한 내용을 참조하십시오.

참고해주세요

전체 항목 금액은 더 큰 값으로 수정할 수 없습니다.

전체 품목 금액이 더 낮은 값으로 수정된 경우, 품목이 각각 authorized 또는 completed 상태인지에 따라 차액이 자동으로 취소되거나 환불됩니다. 품목이 부분적으로 취소되거나 환불된 후에는 각각 authorized 또는 completed 상태로 유지됩니다.

횟수에는 제한이 없습니다. modify 요청을 사용하여 금액을 줄일 수 있습니다. 그러나 항목을 완전히 취소하거나 환불하려면 cancel 그리고 refund OmniCart는 0 금액을 허용하지 않기 때문에 각각 메소드를 사용합니다.

정보

자세한 내용은 다음을 참조하십시오. 취소 및 환불 섹션을 참조하십시오.

예시 #1

이 예제에서 naga 항목은 authorized 상태. 그 금액은 다음과 같이 시작되었습니다. amountMode 속성을 declared. 즉, 의 전체 금액 naga item은 에 지정된 값이었습니다. amount 필드(즉, 4400).

modify Request는 다음과 같은 변경 사항을 도입했습니다.

  • amountMode 에서 변경되었습니다. declared 받는 사람 calculated
  • amount 에서 변경되었습니다. 4400 받는 사람 1100
  • "quantity": 4 가 추가되었습니다.

이래 amountMode 로 변경되었습니다. calculated, 의 총 가격 naga item은 의 제품입니다. amount 그리고 quantity 값. 그것은 같습니다 4400 개시 가격과 다르지 않습니다. 변경된 것은 최종 품목 가격의 구성 요소와 이제 그대로 가져 오는 대신 OmniCart에 의해 계산된다는 사실입니다. amount 재산.

참고로, initiated 그리고 current 의 값 itemAmounts항목을 수정한 후 개체가 변경되지 않았습니다.

정보

자세한 내용은 금액 섹션을 참조하세요.

//item summary values
//values that make up the final price
"items": [
{
"naga": {
"paymentStatus": "authorized",
"itemAmounts": {
"initiated": 4400,
"captured": 0,
"refunded": 0,
"current": 4400
},
"paymentSnapshot": {
"amount": 4400,
"amountMode": "declared"
}
}
}
]

예 #2

이 예제에서 behemoth 항목은 authorized 상태. 그 금액은 다음과 같이 시작되었습니다. amountMode 속성을 calculated, 따라서 총 품목 가격은 의 곱이었습니다. amount 그리고 quantity 값(1500 * 3 = 4500).

modify Request는 다음과 같은 변경 사항을 도입했습니다.

  • amountMode 에서 변경되었습니다. calculated 받는 사람 declared
  • amount 에서 변경되었습니다. 1500 받는 사람 3000.

이래 amountMode 로 변경되었습니다. declared, 총 품목 가격은 다음과 같습니다. amount 값에 관계없이 quantity 값. 자, 초기부터 4500로 축소됩니다. 3000 이는 의 값입니다. current 의 속성 itemAmounts 객체. 참고로, initiated value는 와 함께 전달된 값이므로 변경할 수 없습니다. init 요청.

behemoth 항목은 authorized status 그래서 초기의 차이 4500 및 수정됨 3000 가 취소됩니다. 항목 상태가 completed 대신에 authorized 차액은 취소되는 대신 환불되었을 것입니다.

정보

자세한 내용은 금액취소 및 환불 섹션을 참조하세요.

//item summary values
//values that make up the final price
"items": [
{
"behemoth": {
"paymentStatus": "authorized",
"itemAmounts": {
"initiated": 4500,
"captured": 0,
"refunded": 0,
"current": 4500
},
"paymentSnapshot": {
"amount": 1500,
"amountMode": "calculated",
"quantity": 3
}
}
}
]

타이머 수정

타이머 설정은 결제 상태에 관계없이 변경할 수 있습니다.

와 함께 modify 요청 요청을 통해 다음을 수행할 수 있습니다.

  • 이전에 비활성화된(설정되지 않은) 타이머 사용
  • 트리거 이벤트 또는 카운트다운 값을 포함한 기존 타이머 설정 변경
  • 수동 타이머 작업을 수행합니다. 시작하다, paused또는 stop.
경고

타이머를 활성화하면 타이머가 시작될 때만 끝나는 수명 주기가 시작됩니다. elapsed 또는 stopped 상태.

예시 #1

이 예제에서 crusader 항목은 authorized 상태. 처음에는 이 항목에 대한 타이머가 비활성화되었으며 상태 요청에서 타이머 설정을 반환하지 않았습니다.

modify Request는 다음과 같은 변경 사항을 도입했습니다.

  • 를 전달하여 타이머를 활성화했습니다. modifyTimer 객체
  • 설정 captured 상태를 트리거 이벤트로 사용합니다.
  • 타이머 값을 다음으로 설정 604800 초(일주일).

이후 modify 요청, 타이머가 입력되었습니다. pending 상태. 항목이 입력되자마자 타이머가 시작됩니다. captured 상태.

"crusader": {
"paymentStatus": "authorized",
"itemAmounts": {
"initiated": 400,
"captured": 0,
"refunded": 0,
"current": 400
},
"paymentSnapshot": {
"amount": 400
}
}

예 #2

이 예제에서 unicorn 항목은 authorized 상태. 타이머는 이전에 항목이 들어갈 때 시작하도록 설정되었습니다. captured 상태. 이 modify 요청에는 다음이 포함됩니다. manualAction 속성을 start 값. 타이머를 시작하는 것은 수동 작업입니다. 요청이 처리된 후 타이머가 카운트다운됩니다

노트

트리거 이벤트( captured status)는 변경되지 않고 modify 요청에는 변경 지침이 포함되어 있지 않습니다. 이는 예상된 동작입니다.

만약 unicorn item이 들어갑니다. captured 상태, 타이머는 계속 카운트다운됩니다. 그러나 타이머가 더 일찍 경과하면 elapsed 상태. 이 elapsed 상태는 타이머 수명 주기의 최종 상태입니다. 그 이후에는 결제 상태 변경이 타이머에 영향을 주지 않습니다. 자세한 내용은 아이템 타이머결제 수명 주기 섹션을 참조하세요.

"unicorn": {
"paymentStatus": "authorized",
"itemAmounts": {
"initiated": 850,
"captured": 0,
"refunded": 0,
"current": 850
},
"paymentSnapshot": {
"amount": 850
},
"timerSnapshot": {
"triggerEvent": "captured",
"timerStatus": "pending",
"remainingSecs": 172800
}
}

예 #3

이 예제에서 cerberus 항목은 authorized 상태. 타이머 설정에는 이미 트리거 이벤트가 설정되어 있습니다. captured 상태. 현재 타이머 상태는 다음과 같습니다. pending.

modify request가 트리거 이벤트를 다음으로 변경했습니다. initiated. 이후 initiated status가 captured 상태, 타이머가 started 상태를 확인하고 이후 카운트다운을 시작합니다. modify 요청이 처리되었습니다.

"cerberus": {
"paymentStatus": "authorized",
"itemAmounts": {
"initiated": 250,
"captured": 0,
"refunded": 0,
"current": 250
},
"paymentSnapshot": {
"amount": 250
},
"timerSnapshot": {
"triggerEvent": "captured",
"timerStatus": "pending",
"remainingSecs": 259200
}
}