ruby - PHP에서 수령 주소 및 배송 창고의 우선 창고 선택을 구현하는 방법
怪我咯
怪我咯 2017-06-27 09:18:02
0
1
925

오늘은 제품 우선 창고 선택, 배송 주소, 배송 창고에 대한 기술적인 질문을 드리겠습니다.

제목 그대로

  1. 사용자는 A, B, C 세 가지 제품을 구매했습니다(사용자가 n개의 SKU 제품을 구매했다고 간주할 수 있으며 각 SKU에는 해당 수량이 있습니다). 제품 SKU에는 대문자 A, B, C를 사용합니다.

  2. 배송지는 X입니다 ;

  3. 각 제품에는 여러 개의 창고가 있으며 가장 최근의 최적의 창고 배송이 선택됩니다(우선순위는 배송 주소에 따라 구성됨). 예를 들어 창고는 a, b, c, d입니다(창고는 소문자로 표시됨). 편지) 등

우선순위 논리:

사용자가 구매한 상품은 창고에서 배송될 수 있습니다. 패키지 수가 적을수록 좋고(1차), 패키지가 가까울수록 좋습니다(2차).

배송 주소는 X이며, X 주소에 해당하는 창고 우선순위 목록은

X => a,b,c,d

예:

예시 1. 사용자가 1 sku(수량 3개)를 구매하여 해당 주소 X:

로 보냈습니다.

으아아아
A 본 상품에 해당하는 재고 및 수량: X 주소에 해당하는 주문은 a, b, c, d

해당 창고 및 재고 목록:

으아아아

가까운 창고까지 최소포장 원칙에 따라 B창고 재고(A상품 3개)에서 차감하여 1개 배송해 드립니다.


예 2. 사용자가 SKU 2개를 구매하여 해당 주소 X:

로 보냈습니다. 으아아아

이 제품 A, B에 해당하는 재고 및 수량: (X 주소에 해당하는 주문은 a, b, c, d입니다)

해당 창고 및 재고 목록:

으아아아

B 해당 창고 및 재고 목록:

으아아아

창고에서 가장 가까운 최소 포장 원칙에 따라 b창고(제품 A 3개, 제품 B 2개)에서 1개 포장 보관 및 배송 결과도 차감되어야 합니다.


예 3. 사용자가 SKU 2개를 구매하여 해당 주소 X:

로 보냈습니다. 으아아아

이 제품 A, B에 해당하는 재고 및 수량: (X 주소에 해당하는 주문은 a, b, c, d입니다)

해당 창고 및 재고 목록:

으아아아

B 해당 창고 및 재고 목록:

으아아아

창고에 가장 가까운 최소 패키지 원칙에 따라 창고 a(제품 A 3개, 제품 B 1개)도 차감하고 창고 b(제품 B 1개)를 추가하여 총 2개의 패키지( 창고 a 및 창고 b) 각 1개) (여기서 우리는 또한 가장 좋은 소수의 패키지와 가장 가까운 창고를 보유한다는 원칙을 준수합니다).


예 4, 사용자는 SKU 2개를 구매하여 해당 주소 X:

로 보냈습니다. 으아아아

이 제품 A, B에 해당하는 재고 및 수량: (X 주소에 해당하는 주문은 a, b, c, d입니다)

해당 창고 및 재고 목록:

으아아아

B 해당 창고 및 재고 목록:

으아아아

가장 가까운 창고까지의 최소 포장수량 원칙에 따라 창고d에서도 결과를 차감하고(제품A는 3개, B품은 5개) 총 1개(창고d는 1개) )는 최소 패키지 수의 원칙을 준수해야 합니다.


일부 전문가들이 어떻게 이 알고리즘을 깨뜨릴 수 있는지 감히 묻고 싶습니다.

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(1)
学习ing

이렇게 생각합니다. 먼저 sku 배열을 내림차순으로 정렬합니다. 예를 들어 sku 3개, array(8,4,1);
각각 8개, 4개, 3개의 최적 패키지 계획을 얻습니다. ,
그럼 놓으세요. 이 세 가지 계획의 창고 조건을 결합하고 중복을 제거하면 최적의 계획을 얻을 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿