it-swarm-ko.tech

제품 주문시 원자재 재고 관리

나는 그것을 해결하는 방법에 대한 아이디어를 가지고있는 시나리오를 가지고 있지만 내가 그것을 필요 이상으로 복잡하게하지 않도록하고 싶다. 저는 Ubercart를 처음 사용하고 Drupal 일반적으로 소프트웨어 개발/데이터베이스 경험이 있습니다).

대본

일반화 : 사용자가 제품을 만들고 제품을 주문하기 위해 선택할 수있는 원자재의 재고 수준을 관리해야합니다. 구체적인 시나리오는 다음과 같습니다.

사이트에서 사용자는 가방을 사용자 정의 할 수 있습니다. 특히 가방의 각 모델은 네 부분으로 나뉩니다. 사용자는 각 부품에 대해 특정 패브릭을 선택할 수 있지만 선택할 패브릭은 모델에 따라 다릅니다.

예. 사용자는 bag1의 부품은 fabric A, B, C, D 중에서 선택하고 bag2는 fabric C, D, E, F 중에서 선택할 수 있습니다.

원단 수준에서 재고를 관리해야하지만 장바구니에는 최종 맞춤형 백 수준 만 표시되어야합니다.

따라서 충분한 주문이 패브릭 C와 함께 bag2로 만들어 져서 소모되는 경우 옵션 패브릭 C를 더 이상 bag1에 사용할 수 없습니다.

질문

Ubercart에서 위의 직선을 달성하는 것이 불가능한 것 같아서 제 생각은 보조 데이터베이스를 사용하는 것입니다. 그러나 아마도 구성 및/또는 일부 추가 모듈로 수행 할 수 있습니다. 첫 번째 질문은 코드 사용자 지정/추가 데이터베이스를 수행하지 않고도이를 구성 할 수 있는지 여부입니다.

사용자가 가방 모델을 선택할 수있는 특정 모듈을 만든 다음 부품에 대한 패브릭을 선택하고 현재 사용자 정의 된대로 가방을 표시 할 계획입니다.

두 번째 질문, 추가 데이터베이스가 필요하다고 가정하면 아래 솔루션이 좋은 솔루션입니까 아니면 더 적은 작업이 필요한 방법이 있습니까?

가능한 해결책 (신규)

편집 : 이것은 Drupal 외부의 보조 데이터베이스에 의존 할 필요가없는 방법입니다.

  • 제품 클래스를 사용하여 패브릭-제품을 나타냅니다. 각 패브릭-제품은 패브릭 조각 일뿐입니다.
  • 제품 키트를 사용하여 맞춤형 가방을 나타냅니다.
  • 제품 클래스를 사용하여 특정 모델을 나타내는 Bag-Model을 나타냅니다. 사용자 정의되지 않았으며 직물이 선택되지 않았습니다.
  • 하나의 Bag-Model에 대한 하나의 노드 참조가있는 Bag-Model-Part 제품 클래스를 사용하여 가방 당 존재하는 부품을 지정합니다. 또한 Fabric 제품에 대한 목록 (노드 참조)이 있습니다. 이들은 부품에 대해 선택할 수있는 가능한 Fabric입니다.
  • bag-Part와 하나의 Fabric에 대한 노드 참조가있는 Bag-Part-Fabric을 나타 내기 위해 제품 클래스를 사용합니다 (따라서 특정 구성이므로 하나의 특정 부품에 대해 하나의 특정 패브릭이 선택되었습니다). 또한 해당 직물로 부품이 어떻게 보이는지 보여주는 이미지가 있습니다.
  • 사용자 정의 가방 제품 키트에는 가방을 사용자 정의하는 방법을 정확하게 지정하는 가방 부품 패브릭 세트가 있으며 사용 된 패브릭 세트도 있으므로 주문시 패브릭의 재고 수준이 낮아집니다. . 최종 가방이 어떻게 생겼는지 보여주는 하나의 이미지가 있습니다.

이 아이디어로 제품 키트의 수는 PLENTY가 될 것이므로 코드로 생성해야합니다. 사이트 관리자는 Drupal Fabric, Bag-Model, Bag-Model-Part를 사용하여 쉽게 관리 할 수 ​​있습니다. 좀 더 지루하지만 사이트 관리자가 Bag-을 추가하는 것도 가능합니다. Part-Fabric. 따라서 제품 키트를 생성하는 코드는 Drupal에서이 데이터를 찾고 Bag-Part-Fabric에서 이미지를 가져와 각 제품 키트에 대한 최종 이미지를 생성 할 수 있습니다.

제품 키트를 생성하는 코드는 사이트 관리자가 매번 실행하도록 트리거 할 수있는 모듈이라고 가정합니다 (새 가방 부품 패브릭 배치가 생성 된 후).

가방을 사용자 지정하기 위해 사이트를 방문하는 사용자의 흐름은 다음과 같습니다. # 해당 모델이있는 각 Bag-Model-Part에 대해 Bag-Model # 중 하나를 선택하고, 가능한 한 패브릭을 선택하고, 모든 부품에 선택한 패브릭이 있으면 # Bag-Part-Fabric 세트가 있습니다. 사용자가 장바구니에 추가 할 때 특정 맞춤형 가방 제품 키트 번호를 찾는 데 사용합니다. 그런 다음 맞춤형 가방 제품 키트를 장바구니에 넣습니다.

이것이 괜찮은 솔루션입니까? 더 쉽고 더 나은 것이 있습니까?

가능한 해결책 (이전)

Ubertcart 및 보조 데이터베이스를 사용하여 시나리오를 해결하는 방법에 대한 아이디어.

다음에 대한 제품 클래스 생성 : 패브릭 및 가방 모델

제품 키트 만들기 : 가방 가방이 최종 구성입니다 (예 : 모델 3 개, 패브릭 10 개, 부품 4 개인 경우 630 개 가방).

비 Drupal 보조 데이터베이스를 만듭니다.

  • 가방 모델의 SKU를 부품 당 허용 된 패브릭 SKU에 연결
  • 백의 SKU를 해당 백 구성의 특정 패브릭 SKU에 연결

설정

사이트 소유자

  • 각 가방 모델 및 가방 부품에 대한 (일부) 고유 ID 입력
  • 각 패브릭에 대한 (일부) 고유 ID 입력
  • 가방 모델별로 부품 당 허용되는 패브릭 고유 ID를 입력합니다.
  • 암호:
    • 가방 모델 및 패브릭 당 SKU 생성
    • ubercart API를 사용하여 모든 가방 모델 제품 생성
    • ubercart API를 사용하여 모든 패브릭 제품 생성
    • ubercart API를 사용하여 모든 가방 제품 키트 생성 (가능한 모든 패브릭 조합)
    • auxillary db에 쓰기, 각 가방 모델에 대해 패브릭 SKU를 가방 모델의 부품에 연결

달리는

사용자가 가방 모델 중에서 선택

  • 암호
    • ubercart에서 모든 가방 모델 가져 오기
    • 모든 가방 모델 표시
    • (아마도 모든 부품의 패브릭이 모두 나오면 가방 모델을 표시하지 않을 것입니다)
  • 사용자
    • 사용자가 가방 모델 선택

사용자가 사용자 정의 할 부분을 선택합니다.

  • 암호
    • bag-module의 부품 이름을 사용하여 이미지를 얻고 부품을 표시합니다.
  • 사용자
    • 사용자가 부품 선택

사용자는 부품에 대해 패브릭을 선택합니다.

  • 암호
    • 보조 db에서 선택한 백 모델 SKU를 사용하여 부품 번호에 허용 된 패브릭 SKU를 가져옵니다.
    • ubercart에서 각 패브릭 SKU에 대해 재고가 있는지 확인합니다.
    • 부품에 허용되고 아직 재고가있는 디스플레이 패브릭 SKU
  • 사용자
    • 사용자가 부품에 대한 패브릭 선택

장바구니에 추가 (사용자가 각 부품을 사용자 정의한 후)

  • 사용자
    • 장바구니에 추가를 누릅니다.
  • 암호
    • 보조 DB에서 부품 및 가방 모델별로 선택한 패브릭 SKU를 사용하여 가방 제품 키트를 가져옵니다.
    • ubercart API를 사용하여 장바구니에 가방 제품 키트를 추가합니다.

점검

  • 사용자
    • 체크 아웃을 누르고 거래를 마칩니다.
  • 암호
    • Ubercart는 제품 키트의 패브릭 재고를 업데이트합니다.
4
J-a

기존 모듈과 약간의 사용자 지정 코드를 사용하면 현재 제안 된 솔루션보다 더 좋은 워크 플로로 작업을 수행 할 수 있습니다.

이미 uc_stock을 살펴 보셨을 것입니다. 전통적인 물리적 제품의 재고를 멋지게 추적합니다. 속성 및 속성이있는 Ubercart Stock Manager 를 사용하여 다른 속성을 가진 제품의 재고를 추적 할 수 있습니다. 예를 들어, 작은 크기, 중간 크기 및 큰 크기의 티셔츠를 판매하려면 티셔츠 제품에 S, M, L 속성을 부여합니다. 속성이 SKU를 변경하게 함 ; uc_multi_stock은 소형, 중형, 대형 티셔츠의 재고를 독립적으로 추적 할 수 있습니다.

원자재 수량을 추적하고 싶기 때문에 품목을 구매할 때마다 동일한 속성을 가진 다른 제품의 재고를 줄여야합니다. S/M/L 티셔츠 예에서 여러 티셔츠 디자인을 판매하지만 주문형으로 인쇄된다고 가정 해 보겠습니다. 인쇄 할 수있는 소형, 중형 및 대형 티셔츠의 수가 제한되어 있습니다. 작은 티셔츠를 구매할 때마다 다른 모든 작은 티셔츠 (기타)의 재고를 줄입니다.

마찬가지로, 모든 작은 티셔츠의 재고를 동시에 설정할 수 있도록 설정해야합니다.

Conditional Actions 을 사용하거나 hook_order를 구현하는 작은 사용자 정의 모듈을 빌드하여이를 구현할 수 있습니다. 더 이식 가능하고 버전 관리가 쉽기 때문에 맞춤형 모듈을 권장합니다. 코드에서 수행하면 uc_stock_adjust ($ sku, $ qty)는 $ sku의 재고를 $ qty로 조정하고 uc_stock_set ($ sku, $ qty)는 $ sku의 수량을 $ qty로 설정합니다.

즐거운 코딩 되세요!

1
David L