문제

내 질문은 증분 주문 ID가 얼마나 고유한가입니다.제가 사용하고 있는 결제 게이트웨이에서는 모든 구매 시도에 대해 고유한 주문 ID가 필요합니다.

고객 A가 구매를 시도했지만 거래가 거부되었다고 가정해 보겠습니다.

Order ID: 1, Increment Order ID: 100001

그가 다시 구매하려고 하면 Increment Order 이드가 된다 100002, 아니면 여전히 그럴까요? 100001?그렇다면 어떻게 새로 고치거나 늘리나요?

또한 고객마다 고유합니까?윌은 Order ID: 2 가지고 있다 Increment Order ID: 100001?아니면 모든 주문에서 고유합니까?

도움이 되었습니까?

해결책

이는 전역적으로 고유하며 데이터베이스 수준에서도 보장됩니다.

이것은 의 코드입니다. app/code/core/Mage/Sales/sql/sales_setup/install-1.6.0.0.php 주문 테이블이 생성되는 위치:

->addIndex(
    $installer->getIdxName(
        'sales/order',
        array('increment_id'),
        Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
    ),
    array('increment_id'), array('type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE))

또한 데이터베이스에 이미 있는 취소된 주문 이후 고객이 다시 주문을 시도하는 경우 새 주문이 생성됩니다.

다른 팁

주문(및 송장, 배송, 신용 전표) 번호는 애플리케이션 전체에서 고유합니다.
그러나 여러 가지 이유로 연속되지 않을 수도 있습니다.
예를 들어 매장 보기 ID는 주문 번호의 접두어로 사용됩니다.
따라서 ID 1로 스토어 보기에서 주문하면 번호 100001을 얻게 됩니다.
그런 다음 다음 주문이 ID 2의 매장 보기에서 발생한 경우 번호 200001을 얻게 됩니다.
스토어 보기 1의 다음 주문에는 100002라는 숫자가 있을 수 있지만 그 사이에 일부 결제가 실패한 경우(또는 일부 장바구니가 포기되고 일부 특정 조건이 충족되는 경우) 숫자가 더 커질 수 있습니다.
또한 동일한 번호로 다른 고객으로부터 2개의 주문을 받을 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top