주문번호 생성시 앞의 년도를 제외하는 방법에 대해 문의 드립니다.
본문
영카트 주문번호가 아래와 같이 생성되는데
이 주문번호에서 연도에 해당하는 앞에 네숫자또는 두숫자를 제외하고 생성되게끔 하는 방법이 있나요?
2021082614150518 -> 082614150518
2021082614150518 -> 21082614150518
혹시 이렇게 변경하였을때 기존의 다른 관리자 기능에 영향을 받지는 않을까요?
선배님들의 답변 좀 부탁드립니다^^
답변 1
* /lib/common.lib.php, get_uniqid() 함수의 다음 구문을 변경하면 됩니다.
$key = date('YmdHis', time()) . str_pad((int)((float)microtime()*100), 2, "0", STR_PAD_LEFT);
* date('Y~' 를 date('y~' 로 변경하면 앞 연도 4자리 -> 2자리가 됩니다.
$key = date('ymdHis', time()) . str_pad((int)((float)microtime()*100), 2, "0", STR_PAD_LEFT);
연도를 빼고 싶다면.. y를 빼면 됩니다.
* 연도를 빼거나 2자리로 하면.. 중복 가능성이 이전보다는 커집니다만.. 문제될 수준은 아니라고 생각합니다. (해당 로직에서 중복인 경우 0.01초 후 재생성)
(연도를 빼면 월일부분이 매년 반복되기 때문에 이전보다 중복 가능성이 커지고, 연도를 2자리로 빼면 100년마다 년월일부분이 같게 됩니다만.. 규모가 엄청 큰 쇼핑몰이 아니라면.. 크게 신경쓰지 않아도 될 듯 합니다.)
* 다른 부분에 영향이 있는지는 잘 알지 못합니다.
예상으로는, 없을 듯 합니다.