Criar e gerenciar famílias de produtos, produtos e pacotes

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

Defina seu catálogo de produtos organizando seus produtos em uma estrutura hierárquica criando produtos e pacotes em uma família de produtos, definindo produtos relacionados e adicionando propriedades (atributos) para a família produto principal de forma que todos os produtos e pacotes secundários na família de produtos herdem automaticamente as propriedades.

Por padrão, quando você cria uma família de produtos, um produto ou um registro de grupo, eles estão no estado Rascunho. Depois de criar um produto, definir produtos relacionado e configurar os atributos para o registro primário da família de produtos, publique a família de produtos ou o registro do pacote para torná-los disponíveis no sistema para os agentes de vendas vender.Para obter mais informações:Publicar uma família de produtos, um produto ou um pacote

Observação

Para produtos que não estão associados com a família de produtos, ou seja, produtos que não tem um registro primário da família de produtos atribuído, você poderá optar por criá-los diretamente em um estado Ativo definindo o atributo Organization.CreateProductsWithoutParentInActiveState para 1 (verdadeiro). Por padrão, este atributo é definido como 0 (false) para a instalação nova do Microsoft Dynamics 365 e para 1 (true) se você estiver atualizando de uma versão anterior do Dynamics 365 para garantir a compatibilidade de seus aplicativos trabalhando com a versão anterior do Dynamics 365 onde os registros do produto foram criados em um estado Ativo.

Você também pode usar a guia Vendas na área de configurações do sistema no Microsoft Dynamics 365 ou Microsoft Dynamics CRM para Outlook para especificar se os produtos foram criados em um estado Ativo.Para obter mais informações:TechNet: Gerenciar a configuração do catálogo de produtos

Neste tópico

Defina produtos, famílias de produtos e pacotes

Pacotes e kits

Defina relacionamentos de produtos para sugestões avançadas durante a venda do produto

Definir as propriedades do produto (não suportados com o SDK)

Clonar uma família de produtos, um produto ou um pacote

Defina produtos, famílias de produtos e pacotes

Use o atributo Product.ProductStructure para definir se um item é uma família de produtos, um produto ou um pacote. Defina o valor do atributo para:

  • 1 para criar um produto

  • 2 para criar uma família de produtos

  • 3 para criar um pacote

Observação

Os pacotes são novos no Dynamics 365. Para obter mais informações, consulte Pacotes e kits, posteriormente neste tópico.

Para criar um tipo de produto de kit, continue usando o atributo Product.IsKi.

Veja alguns aspectos importantes a saber para definir famílias de produto, produtos e pacotes:

  • Um registro da família de produto pode conter várias famílias de produtos secundárias, produto e instâncias do pacote em uma estrutura hierárquica. Para a família de produtos secundária, o produto secundário ou a instância do pacote secundário, defina a instância da família de produto primária que usa o atributo Product.ParentProductId. Você não pode modificar o registro primário depois de definir.

  • Um produto ou um pacote não podem ser definidos como primário, que implica que um registro de produto ou de pacote não possua registros secundários.

  • Uma família de produtos, um produto ou uma instância do pacote pode fazer parte de uma única instância da família de produtos.

  • Não há limite no nível de aninhamento para a família de produtos.

  • Os atributos Product.ValidFromDate e Product.ValidToDate não tem uma lógica comercial pronta associada a ela, exceto que há uma verificação para garantir que a data no Product.ValidToDate deve ser mais recente ou igual à data no Product.ValidFromDate. Se necessário, é possível implementar suas própria lógica comercial com base nesses atributos. Por exemplo, você pode executar uma tarefa agendada para aposentar automaticamente os produtos da última temporada usando o valor da data no atributo Product.ValidToDate.

A amostra de código a seguir demonstra como você pode criar uma família de produtos e um registro de produto secundário.

// 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);

Pacotes e kits

Um pacote é um recurso introduzido no Dynamics 365 para substituir a funcionalidade mais antiga do kit. Semelhante a um kit, um conjunto é uma coleção de produtos que são vendidos por unidade. O empacotamento do produto é útil ao agrupar produtos de forma que os clientes tenham mais benefícios de linha completa de produtos ou para oferecer descontos em produtos agrupados permite agrupar produtos e vender como uma unidade.

Somente os produtos podem ser acrescentados a um pacote; você não pode adicionar uma família de produtos, um pacote ou um registro de kit em um pacote. Você pode adicionar produtos a um pacote ou um kit criando um registro de associação do produto com a entidade ProductAssociation. O registro ProductAssociation.ProductId especifica o pacote ou kit que deseja adicionar um produto o ProductAssociation.AssociatedProduct especifica o produto a ser adicionado. O número máximo de produtos que podem ser acrescentados a um pacote é determinado pela seguinte configuração da organização: Organization.MaxProductsinBundle.

Você também pode usar a guia Vendas na área de configurações do sistema no Dynamics CRM ou Dynamics CRM para Outlook para especificar o número máximo de produtos que podem ser adicionados a um pacote.Para obter mais informações:TechNet: Gerenciar a configuração do catálogo de produtos

O código de amostra a seguir demonstra como você pode adicionar produtos a um pacote.

// 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");

Para o exemplo completo, consulte Exemplo: Adicionar produtos ao grupo.

Diferenças entre kits e pacotes

Kits e pacotes permitem agrupar produtos em uma única unidade, mas aqui estão algumas diferenças entre os dois.

Kits

Pacotes

Todos os produtos em um kit são obrigatórios.

Alguns produto em um pacote podem ser opcionais.

Os kits suportam o aninhamento; você pode adicionar um kit em outro kit.

Você não pode adicionar um pacote em outro pacote. É possível adicionar produtos somente a um pacote.

Ao adicionar um kit em uma oportunidade, cotação, pedido ou fatura, você só pode ver os detalhes de nível de kit; você não pode ver produtos individuais no kit.

Ao adicionar um grupo em uma oportunidade, cotação, pedido ou fatura, você só pode ver os detalhes de nível de grupo; assim como produtos individuais no grupo.

Observação

Os kits são substituídos na versão atual do Dynamics CRM; você deve usar pacotes.

Defina relacionamentos de produtos para sugestões avançadas durante a venda do produto

Você pode definir produtos relacionados para um produto que serão exibidos como sugestões para os agentes de vendas durante o gerenciamento de oportunidades ou do pedido. As sugestões do produto permite que seus agentes de vendas a recomendem produtos e pacotes/kit relacionados aos clientes e aumentem as vendas de produtos. Você pode definir os seguintes relacionamentos para um produto: acessório, venda cruzada, substituto e upsell. Por exemplo, o Surface Pro pode ser adicionado como um produto upsell do Surface RT para que quando o agente de vendas esteja adicionando o Surface RT em qualquer oportunidade, cotação, pedido ou fatura, o Surface Pro é sugerido como a opção de upsell.

Use o atributo ProductSubstitute.SalesRelationshipType para definir os relacionamentos do produto. Defina o valor do atributo para:

  • 0 para upsell

  • 1 para venda cruzada

  • 2 para acessório

  • 3 para substituto

Ao definir relacionamentos de produtos, é importante definir a ordem do relacionamento para evitar a duplicação de dados. As direções suportadas nos relacionamentos do produto são:

Relacionamento de produto

Direção

Acessório

Unidirecional

Venda cruzada

Unidirecional ou bidirecional

Substituto

Unidirecional ou bidirecional

Upsell

Unidirecional

Use o atributo ProductSubstitute.Direction para especificar a direção de um relacionamento do produto. Defina o valor do atributo para:

  • 0 para unidirecional

  • 1 para bidirecional

O código de amostra a seguir demonstra como você pode definir relações para produtos..

// 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);

Definir as propriedades do produto (não suportados com o SDK)

Você pode criar e gerenciar as propriedades do produto (atributos) usando apenas Dynamics CRM ou Dynamics CRM para Outlook; isso não tem suporte de forma programática. Essa seção fornece apenas uma visão geral das propriedades do produto, que é fundamental para entender o novo recurso de catálogo de produtos. Para obter mais informações sobre como criar e gerenciar propriedades do produto, consulte Ajuda e Treinamento: Use propriedades para descrever um produto.

As propriedades do produto podem ser associadas a uma instância da família de produtos e não ao registro do produto ou pacote. Toda a família de produtos secundários, produto e instâncias do pacote estão em uma família de produtos que herdam as propriedades associadas à família do produto principal. A família de produtos secundários, produto e registros de pacote podem substituir as propriedades herdadas usando apenas o Dynamics CRM ou Dynamics CRM para Outlook.

A maneira de definir uma propriedade de produtos determina como podem ser usados pelo agente de vendas no tempo de execução, ou seja, ao adicionar um produto associado a uma oportunidade, uma cotação, um pedido ou a uma fatura.

  • Um valor de propriedade do produto atualizável pode ser alterado no tempo de execução, enquanto o valor de uma propriedade de produto somente leitura não pode.

  • Para a propriedade do produto definida como necessário, um valor para a propriedade deve ser especificado no tempo de execução. Caso contrário, a propriedade é exibida como não resolvida.

  • Uma propriedade oculta não será exibida para os agentes de vendas no tempo de execução.

Observação

As propriedades do produto não afetam o preço de um produto. Isso implica que o mecanismo de precificação do Dynamics CRM não oferece suporte a mudança de preço de um produto com base em uma alteração nos valores de propriedade do produto.

Quando você revisa um produto e altera as propriedades, o Dynamics CRMcria internamente uma nova versão do produto e copia os detalhes do produto do produto existente para a versão mais recente. A nova versão do produto contém todos os detalhes incluindo listas de preços, relações de produto e propriedades. As oportunidades já criadas com a versão anterior do produto podem continuar a fazer referência à versão anterior do produto. As oportunidades que são criadas depois que o produto é revisado ou aposentado farão referência à versão mais atual do produto (nova). Para obter mais informações sobre as transições de estado do produto, consulte Publicar, revisar, reverter, aposentar e ativar produtos (ciclo de vida do produto).

As novas entidades a seguir serão introduzidas para a armazenamento de configuração das propriedades do produto; acesso programático e o gerenciamento dessas entidades não têm suporte:

  • A entidade DynamicProperty armazena informações sobre as propriedades do produto.

  • A entidade DynamicPropertyAssociation armazena informações sobre a família de produtos que uma propriedade de produto está associada.

  • A entidade DynamicPropertyOptionSet armazena informações sobre os valores do conjunto de opções para uma propriedade de produtos do tipo de dados de conjunto de opções.

Observação

O número máximo de propriedades de produtos que podem ser anexados a uma família de produtos é determinado pela seguinte configuração da organização: Organization.MaximumDynamicPropertiesAllowed. O número entra em vigor ao publicar um registro de produto secundário ou grupo em uma família de produtos que as propriedades estão anexadas e não no momento de anexar as propriedades a um novo registro da família de produtos rascunho.

Você também pode usar a guia Vendas na área de configurações do sistema no Dynamics CRM ou Dynamics CRM para Outlook para configurar o número máximo de propriedades do produto.Para obter mais informações:TechNet: Gerenciar a configuração do catálogo de produtos.

Clonar uma família de produtos, um produto ou um pacote

Use a mensagem CloneProductRequest para clonar uma família de produtos, produto ou registro de grupo e criar uma cópia do registro no mesmo nó principal. Você deve fornecer a ID de registro para clonar. Clonar um registro de produtos também copia as propriedades do produto. O registro clonado é criado com o carimbo de data e hora acrescentado aos valores originais nos atributos Product.Name e Product.ProductNumber; o carimbo de data e hora indica a hora em que o registro foi clonado. O código de amostra a seguir demonstra como clonar um produto.

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);

Próxima etapa

Publicar os registros de produtos para tornar os produtos disponíveis para venda pelos agentes de vendas.Para obter mais informações:Publicar uma família de produtos, um produto ou um pacote

Confira Também

Publicar, revisar, reverter, aposentar e ativar produtos (ciclo de vida do produto)
Exemplo: Criar e publicar produtos
Exemplo: Clonar registros do produto
Exemplo: Adicionar produtos ao grupo
Entidades do catálogo de produtos

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais