다음을 통해 공유


제품군, 제품 및 번들 만들기 및 관리

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

제품군 아래의 모든 하위 제품과 번들이 속성을 자동으로 상속하도록 제품군 아래 제품과 번들을 만들고 관련 제품을 정의하고 속성(특성)을 상위 제품군에 추가하여 계층 구조에서 제품을 구성함으로써 제품 카탈로그를 정의합니다.

기본적으로 제품군, 제품 또는 번들 레코드를 만들면 초안 상태에 있게 됩니다. 제품을 만들고, 관련 제품을 정의하고 상위 제품군 레코드에 대해 특성을 구성한 후에 영업 상담원이 판매하도록 시스템에 사용할 수 있도록 제품군, 제품 또는 번들 레코드를 게시해야 합니다.추가 정보:제품군, 제품 또는 번들을 게시합니다.

참고

제품군과 관련이 없는 제품의 경우, 즉 할당된 상위 제품군 레코드가 없는 제품의 경우 Organization.CreateProductsWithoutParentInActiveState 특성을 1(true)로 설정하여 활성 상태에서 직접 레코드를 만들 수 있습니다. 기본적으로 이 특성은 Microsoft Dynamics 365을 새로 설치하는 경우 0(false)로 설정되고 Dynamics 365의 이전 버전에서 업그레이드하는 경우 1(true)로 설정되어 제품 레코드가 활성 상태에서 만들어진 Dynamics 365의 이전 버전과 사용자 응용 프로그램이 작동하도록 호환성을 보장합니다.

Microsoft Dynamics 365 또는 Outlook용 Microsoft Dynamics CRM에 있는 시스템 설정 영역의 영업 탭을 사용하여 제품을 활성 상태에서 만드는지 여부를 지정할 수도 있습니다.추가 정보:TechNet: 제품 카탈로그 구성 관리

이 항목의 내용

제품, 제품군 및 번들 정의

번들 및 키트

제품 판매 중 향상된 제안을 위한 제품 관계를 정의합니다.

제품 특성 정의(SDK를 통해 지원되지 않음)

제품군, 제품 또는 번들을 복제합니다.

제품, 제품군 및 번들 정의

Product.ProductStructure 특성을 사용하여 항목이 제품군, 제품 또는 번들인지 여부를 정의합니다. 이 특성의 값을 다음으로 설정합니다.

  • 1 제품 만들기

  • 2 제품군 만들기

  • 3 번들 만들기

참고

번들이 Dynamics 365에 새로 추가되었습니다. 자세한 내용은 이 항목의 뒷부분에 있는 번들 및 키트를 참조하십시오.

제품의 키트 종류를 만들려면 Product.IsKit 특성을 계속 사용합니다.

다음은 제품군, 제품 및 번들을 정의하는 동안 고려할 몇 가지 중요한 사항입니다.

  • 제품군 레코드는 계층 구조에서 여러 하위 제품군, 제품 및 번들 인스턴스를 포함할 수 있습니다. 하위 제품군, 하위 제품 또는 하위 번들 인스턴스의 경우 Product.ParentProductId 특성을 사용하여 상위 제품군 인스턴스를 정의합니다. 일단 설정되면 상위 레코드를 변경할 수 없습니다.

  • 제품 또는 번들은 상위로 설정할 수 없으며, 제품 또는 번들 레코드가 하위 레코드를 가질 수 없음을 의미합니다.

  • 제품군, 제품 또는 번들 인스턴스는 하나의 제품군 인스턴스의 일부만 될 수 있습니다.

  • 제품군의 중첩 수준에 대한 제한은 없습니다.

  • Product.ValidFromDateProduct.ValidToDate 특성에는 Product.ValidToDate의 날짜가 Product.ValidFromDate의 날짜보다 늦거나 빨라야 하는지 확인하는 것을 제외하고 관련된 기본 제공 비즈니스 논리가 없습니다. 필요한 경우 이러한 특성을 기반으로 자체 비즈니스 논리를 구현할 수 있습니다. 예를 들어 Product.ValidToDate 특성에 있는 날짜 값을 사용하여 마지막 시즌의 제품을 자동으로 폐기하도록 예약된 작업을 실행할 수 있습니다.

다음 코드 샘플에서는 제품군과 하위 제품 레코드를 만드는 방법을 보여 줍니다.

// Create a product family
Product newProductFamily = new Product
{
   Name = "Example Product Family",
   ProductNumber = "PF001",
   ProductStructure = new OptionSetValue(2)
};
_productFamilyId = _serviceProxy.Create(newProductFamily);
Console.WriteLine("\nCreated {0}", newProductFamily.Name);

// Create a product record under the product family
Product newProduct1 = new Product
{
   Name = "Example Product 1",
   ProductNumber = "P001",
   ProductStructure = new OptionSetValue(1),
   ParentProductId = new EntityReference(Product.EntityLogicalName, _productFamilyId),
   QuantityDecimal = 2,
   DefaultUoMScheduleId = new EntityReference(UoMSchedule.EntityLogicalName, _unitGroupId),
   DefaultUoMId = new EntityReference(UoM.EntityLogicalName, _unit.Id)
};
_product1Id = _serviceProxy.Create(newProduct1);
Console.WriteLine("Created {0} under the product family", newProduct1.Name);

번들 및 키트

번들은 기존 키트 기능을 대체하기 위해 Dynamics 365에서 도입된 기능입니다. 키트와 마찬가지로 번들은 하나의 단위로 판매되는 제품의 컬렉션입니다. 제품 번들은 고객이 전체 제품군으로부터 더 많은 혜택을 얻거나 제품을 그룹화하고 하나의 단위로 판매할 수 있는 번들 제품에 대한 할인을 제공하는 방식으로 제품을 그룹화하는 데 유용합니다.

제품만 번들에 제품을 추가할 수 있습니다. 제품군, 번들 또는 키트 레코드는 번들에 추가할 수 없습니다.ProductAssociation 엔터티를 사용하여 제품 연결 레코드를 만들어 번들 또는 키트에 제품을 추가할 수 있습니다.ProductAssociation.ProductId 레코드는 제품을 추가하려는 번들 또는 키트를 지정하고 ProductAssociation.AssociatedProduct는 추가할 제품을 지정합니다. 번들에 추가할 수 있는 최대 제품 수는 Organization.MaxProductsinBundle의 조직 설정에 따라 결정됩니다.

또한 시스템 설정 영역 Dynamics CRM 또는 Outlook용 Dynamics CRM의 영업 탭을 사용하여 번들에 추가할 수 있는 최대 제품 수를 지정할 수도 있습니다.추가 정보:TechNet: 제품 카탈로그 구성 관리

다음 코드 샘플은 제품을 번들에 추가하는 방법을 보여줍니다.

// Add a product to a bundle
ProductAssociation newAssociation1 = new ProductAssociation
{
   AssociatedProduct = new EntityReference(Product.EntityLogicalName, _product1Id),
   ProductId = new EntityReference(Product.EntityLogicalName, _bundleId),
   Quantity = new decimal(15),
   ProductIsRequired = new OptionSetValue(0),
   UoMId = new EntityReference(UoM.EntityLogicalName, unit.Id)
};
_product1AssociationId = _serviceProxy.Create(newAssociation1);                    

// Add another product to the bundle                    
ProductAssociation newAssociation2 = new ProductAssociation
{
   AssociatedProduct = new EntityReference(Product.EntityLogicalName, _product2Id),
   ProductId = new EntityReference(Product.EntityLogicalName, _bundleId),
   Quantity = new decimal(20),
   ProductIsRequired = new OptionSetValue(1),
   UoMId = new EntityReference(UoM.EntityLogicalName, unit.Id),                        
};
_product2AssociationId = _serviceProxy.Create(newAssociation2);

if ((_product1AssociationId != null) && (_product1AssociationId != null))
Console.WriteLine("\nAdded both the products to the bundle");

전체 샘플을 보려면 샘플: 먼들에 제품 추가을 참조하십시오.

키트와 번들 간 차이점

키트와 번들 모두 제품을 하나의 단위로 그룹화할 수 있지만 둘 사이에는 몇 가지 차이점이 있습니다.

키트

번들

키트의 모든 제품은 필수입니다.

번들의 일부 제품은 옵션이 될 수 있습니다.

키트 지원 중첩; 키트를 다른 키트에 추가할 수 있습니다.

번들에 다른 번들을 추가할 수 없습니다. 번들에만 제품을 추가할 수 있습니다.

키트를 영업 기회, 견적, 주문 또는 송장에 추가하는 동안 키트 수준 세부 사항만 볼 수 있습니다. 키트에서는 개별 제품은 볼 수 없습니다.

번들을 영업 기회, 견적, 주문 또는 송장에 추가하는 동안 번들 수준 세부 사항은 물론 번들에 있는 개별 제품을 볼 수 있습니다.

참고

키트는 Dynamics CRM의 현재 버전에서는 더 이상 사용되지 않으며 대신 번들을 사용해야 합니다.

제품 판매 중 향상된 제안을 위한 제품 관계를 정의합니다.

영업 기회 또는 주문 관리 동안 영업 상담원에게 제안으로 표시되는 제품에 대한 관련 제품을 정의할 수 있습니다. 제품에 대한 제품 제안을 사용하면 영업 사원이 관련 제품 및 번들/키트를 고객에게 추천하고 제품 판매를 증가시킬 수 있습니다. 제품에 대한 보조 제품, 교차 판매, 대체 제품상향 판매 관계를 정의할 수 있습니다. 예를 들어, 영업 사원이 Surface RT를 모든 영업 기회, 견적, 주문 또는 송장에 추가할 때 Surface Pro는 상향 판매 옵션으로 제안되도록Surface Pro를 Surface RT에 대한 상향 판매 제품으로 추가할 수 있습니다.

ProductSubstitute.SalesRelationshipType 특성을 사용하여 제품 관계를 정의합니다. 이 특성의 값을 다음으로 설정합니다.

  • 상향 판매의 경우 0

  • 교차 판매의 경우 1

  • 보조 제품의 경우 2

  • 대체 항목의 경우 3

제품 관계를 정의하는 동안 데이터 중복을 방지하기 위해 관계의 방향을 정의하는 것이 중요합니다. 제품 관계의 지원되는 방향:

제품 관계

방향

보조 제품

단방향

교차 판매

단방향 또는 양방향

대체 제품

단방향 또는 양방향

상향 판매

단방향

ProductSubstitute.Direction 특성을 사용하여 제품 관계의 방향을 지정합니다. 이 특성의 값을 다음으로 설정합니다.

  • 단방향의 경우 0

  • 양방향의 경우 1

다음 코드 샘플은 제품의 관계를 정의하는 방법을 보여줍니다.

// Set product relationship
// Set product1 and product2 as substitute of each other (bi-directional)
ProductSubstitute newProductRelation = new ProductSubstitute
{
   SalesRelationshipType = new OptionSetValue(3),
   Direction = new OptionSetValue(1),
   ProductId = new EntityReference(Product.EntityLogicalName, _product1Id),
   SubstitutedProductId = new EntityReference(Product.EntityLogicalName, _product2Id)
};
_productRelationId = _serviceProxy.Create(newProductRelation);

제품 특성 정의(SDK를 통해 지원되지 않음)

Dynamics CRM 또는 Outlook용 Dynamics CRM만 사용하여 제품 속성(특성)을 만들고 관리할 수 있으며 프로그래밍 방식으로 지원되지 않습니다. 이 섹션에서는 신제품 카탈로그 기능을 이해하는 것이 중요한 제품 속성의 개요만 제공합니다. 제품 속성을 만들고 관리하는 방법에 대한 자세한 내용은 도움말 및 교육: 속성을 사용하여 제품 설명을 참조하십시오.

제품 속성은 제품이나 번들 레코드가 아닌 제품군 인스턴스에만 연결할 수 있습니다. 상위 제품군 아래의 모든 하위 제품군, 제품 및 번들 인스턴스는 상위 제품군에 연결된 속성을 상속합니다. 하위 제품군, 제품 및 번들 레코드는 Dynamics CRM 또는 Outlook용 Dynamics CRM만 사용하여 상속된 속성을 다시 정의하거나 덮어쓸 수 있습니다.

제품군을 정의하는 방식은 런타임, 즉 영업 기회, 견적, 주문 또는 송장에 관련 제품을 추가하는 동안에 영업 상담원이 사용하는 방법을 결정합니다.

  • 업데이트할 수 있는 제품 속성의 값은 런타임에 변경할 수 있는 반면, 읽기 전용 제품 속성의 값은 변경할 수 없습니다.

  • 필수로 설정된 제품 속성의 경우 속성 값은 런타임에 지정해야 합니다. 그렇지 않으면 속성이 해결되지 않음으로 표시됩니다.

  • 숨겨진 속성은 런타임에 영업 상담원에게 표시되지 않습니다.

참고

제품 속성은 제품의 가격 산정에 영향을 미치지 않습니다. 이는 Dynamics CRM 가격 산정 엔진이 제품 속성 값의 변경 내용을 기반으로 제품의 가격 변경을 지원하지 않는다는 의미입니다.

제품을 만들고 속성을 변경하면 Dynamics CRM에서 내부적으로 제품의 새 버전을 만들고 기존 제품에서 최신 버전으로 제품 세부 정보를 복사합니다. 새 제품 버전에는 가격 목록, 제품 관계 및 속성을 포함한 모든 세부 정보가 있습니다. 제품의 이전 버전을 사용하여 이미 만든 영업 기회는 제품의 이전 버전을 계속 참조할 수 있습니다. 제품이 수정되거나 폐기된 후 만들어지는 영업 기회는 현재(최신) 제품 버전을 참조합니다. 제품 상태 전환에 대한 자세한 내용은 제품 게시, 수정, 되돌리기, 폐기 및 활성화(제품 수명 주기)를 참조하십시오.

다음 새로운 엔터티는 제품 속성 구성 저장을 위해 도입되었으며 이러한 엔터티의 프로그래밍 방식 액세스와 관리는 지원되지 않습니다.

  • DynamicProperty 엔터티는 제품 속성에 대한 정보를 저장합니다.

  • DynamicPropertyAssociation 엔터티는 제품 속성이 연결되는 제품군에 대한 정보를 저장합니다.

  • DynamicPropertyOptionSet 엔터티는 옵션 집합 데이터 유형의 제품 속성에 대한 옵션 집합 값과 관련한 정보를 저장합니다.

참고

제품군에 추가할 수 있는 최대 제품 속성 수는 Organization.MaximumDynamicPropertiesAllowed의 조직 설정에 따라 결정됩니다. 숫자는 속성이 추가되는 제품군 아래에 하위 제품 레코드나 번들을 게시할 때 적용되며 초안 제품군 레코드에 속성을 추가할 때는 적용되지 않습니다.

Dynamics CRM 또는 Outlook용 Dynamics CRM의 시스템 설정 영역에 있는 영업 탭을 사용하여 최대 제품 속성 수를 구성할 수도 있습니다.추가 정보:TechNet: 제품 카탈로그 구성 관리.

제품군, 제품 또는 번들을 복제합니다.

CloneProductRequest 메시지를 사용하여 제품군, 제품 또는 번들 레코드를 복제하여 동일한 부모 레코드에서 레코드의 복사본을 만듭니다. 복제할 레코드의 ID를 제공해야 합니다. 제품 레코드를 복제하면 제품의 속성도 복사됩니다. 복제된 레코드는 Product.NameProduct.ProductNumber 특성에 있는 원래 값에 추가된 날짜와 시간 스탬프를 사용하여 만들어지며 날짜와 시간 스탬프는 레코드가 복제되었던 시간을 나타냅니다. 다음 코드 샘플은 제품을 복제하는 방법을 보여줍니다.

CloneProductRequest cloneReq = new CloneProductRequest
{
   Source = new EntityReference(Product.EntityLogicalName, _productId)
};

CloneProductResponse cloned = (CloneProductResponse)_serviceProxy.Execute(cloneReq);                                     
_productCloneId = cloned.ClonedProduct.Id;

// Retrieve the cloned product record
Product retrievedProduct = (Product)_serviceProxy.Retrieve(Product.EntityLogicalName, _productCloneId, new ColumnSet(true));
Console.WriteLine("\nCreated clone product: {0}", retrievedProduct.Name);

다음 단계

영업 상담원이 판매할 수 있는 제품을 만들기 위해 제품 레코드를 게시합니다.추가 정보:제품군, 제품 또는 번들을 게시합니다.

참고 항목

제품 게시, 수정, 되돌리기, 폐기 및 활성화(제품 수명 주기)
샘플: 제품 만들기 및 게시
샘플: 제품 레코드 복제
샘플: 먼들에 제품 추가
제품 카탈로그 엔터티

© 2017 Microsoft. All rights reserved. 저작권 정보