Creare e gestire le famiglie di prodotto, i prodotti e le aggregazioni

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Definire il catalogo prodotti organizzando i prodotti in una struttura gerarchica creando i prodotti e le aggregazioni in una famiglia di prodotti, definendo i prodotti correlati e aggiungendo le proprietà (attributi) alla famiglia di prodotti padre in modo che tutti i prodotti e le aggregazioni figlio in una famiglia di prodotti ereditino automaticamente le proprietà.

Per impostazione predefinita, quando si crea il record di una famiglia di prodotti, un prodotto o un'aggregazione, questi si trovano in stato Bozza. Dopo aver creato un prodotto, definito i prodotti correlati e configurato gli attributi per il record della famiglia di prodotti, è necessario pubblicare il record di una famiglia di prodotti, un prodotto o un'aggregazione affinché diventi disponibile nel sistema per la vendita da parte degli agenti di vendita.Ulteriori informazioni:Pubblicare una famiglia di prodotti, un prodotto o un'aggregazione

Nota

Per i prodotti non associati a una famiglia di prodotti, cioè, i prodotti senza un record della famiglia di prodotti padre assegnato, è possibile scegliere di crearli direttamente in uno stato Attivo impostando l'attributo Organization.CreateProductsWithoutParentInActiveState su 1 (true). Per impostazione predefinita, questo attributo è impostato su 0 (false) per una nuova installazione di Microsoft Dynamics 365 e su 1 (true) se si sta eseguendo l'aggiornamento a una versione precedente di Dynamics 365 per assicurare la compatibilità delle applicazioni che utilizzano la versione precedente di Dynamics 365 in cui i record di prodotto erano stati creati in uno stato Attivo.

È inoltre possibile utilizzare la scheda Vendite nell'area Impostazioni di sistema in Microsoft Dynamics 365 o in Microsoft Dynamics CRM per Outlook per specificare se i prodotti sono creati in uno stato Attivo.Ulteriori informazioni:TechNet: Gestire la configurazione del catalogo prodotti

In questo argomento

Definire i prodotti le famiglie di prodotto e le aggregazioni

Aggregazioni e kit

Definire le relazioni di prodotto per suggerimenti avanzati durante la vendita dei prodotti

Definire le proprietà del prodotto (non supportate con SDK)

Clonare una famiglia di prodotti, un prodotto o un'aggregazione

Definire i prodotti le famiglie di prodotto e le aggregazioni

Utilizzare l'attributo Product.ProductStructure per definire se un elemento è una famiglia di prodotti, un prodotto o un'aggregazione. Impostare il valore di questo attributo su:

  • 1 per creare un prodotto

  • 2 per creare una famiglia di prodotti

  • 3 per creare un'aggregazione

Nota

Le aggregazioni sono state introdotte in Dynamics 365. Per ulteriori informazioni, vedere Aggregazioni e kit più avanti in questo argomento.

Per creare un tipo di kit di prodotto, continuare a usare l'attributo Product.IsKi.

Di seguito sono riportati alcuni aspetti importanti da considerare quando vengono definite le famiglie di prodotti, i prodotti e le aggregazioni:

  • Un record della famiglia di prodotti può contenere più istanze della famiglia di prodotti, del prodotto dell'aggregazione in una struttura gerarchica. Per un'istanza della famiglia di prodotti figlio, del prodotto figlio o dell'aggregazione figlio, si definisce l'istanza della famiglia di prodotti padre tramite l'attributo Product.ParentProductId Non è possibile modificare il record principale dopo averlo impostato.

  • Un prodotto o un'aggregazione non possono essere impostati come padre, ciò implica che un record del prodotto o dell'aggregazione non può avere record figlio.

  • Un'istanza della famiglia di prodotti, del prodotto o dell'aggregazione può far parte solo di un'istanza della famiglia di prodotti.

  • Non esiste un limite al livello di annidamento per una famiglia di prodotti.

  • Gli attributi Product.ValidToDate e Product.ValidFromDate non dispongono di regole business predefinite associate, ad eccezione del fatto che è presente un controllo per assicurarsi che la data in Product.ValidToDate deve essere successiva oppure uguale alla data Product.ValidFromDate. Se necessario, è possibile implementare la propria regole business in base a questi attributi. Ad esempio, è possibile eseguire un processo pianificato per ritirare automaticamente prodotti dell'ultima stagione usando il valore di data nell'attributo Product.ValidToDate.

Nel seguente codice di esempio viene dimostrato come creare il record di una famiglia di prodotti e di un prodotto figlio.

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

Aggregazioni e kit

Un'aggregazione è una funzionalità introdotta in Dynamics 365 per sostituire la precedente funzionalità del kit. Analogamente a un kit, un'aggregazione è una raccolta di prodotti che viene venduta come singola unità. L'aggregazione di prodotti è utile per raggruppare i prodotti in modo che i clienti ottengano più vantaggi dalla linea completa di prodotti o per offrire sconti sui prodotti aggregati che consentono di raggruppare prodotti e venderli come singola unità.

Solo i prodotti possono essere aggiunti a un'aggregazione; non è possibile aggiungere il record di una famiglia di prodotti, un'aggregazione, o un kit a un'aggregazione. È possibile aggiungere prodotti a un'aggregazione o a un kit creando un record di associazione prodotti utilizzando l'entità ProductAssociation. Il record di ProductAssociation.ProductId specifica l'aggregazione o il kit a cui si desidera aggiungere un prodotto e ProductAssociation.AssociatedProduct specifica il prodotto da aggiungere. Il numero massimo di prodotti che è possibile aggiungere a un'aggregazione è determinato dalla seguente impostazione dell'organizzazione Organization.MaxProductsinBundle.

È inoltre possibile utilizzare la scheda Vendite dell'area impostazioni di sistema in Dynamics CRM o Dynamics CRM per Outlook per specificare il numero massimo di prodotti che è possibile aggiungere a un'aggregazione.Ulteriori informazioni:TechNet: Gestire la configurazione del catalogo prodotti

Il seguente codice di esempio illustra come aggiungere prodotto a un'aggregazione.

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

Per un esempio completo, vedere Esempio: Aggiungere prodotti a un'aggregazione.

Differenze tra i kit e le aggregazioni

I kit e le aggregazioni consentono di raggruppare i prodotti in un'unica unità, ma di seguito sono riportate alcune differenze tra i due.

Kit

Aggregazioni

Tutti i prodotti in un kit sono obbligatori.

Alcuni prodotti in un'aggregazione possono essere facoltativi.

I kit supportano l'annidamento: è possibile aggiungere un kit a un altro kit.

Non è possibile aggiungere un'aggregazione a un'altra aggregazione. A un'aggregazione è possibile aggiungere solo prodotti.

Mentre si aggiunge un kit a un'opportunità, un'offerta, un ordine o una fattura, è possibile visualizzare solo i dettagli del livello di kit; non è possibile visualizzare i prodotti singoli nel kit.

Mentre si aggiunge un'aggregazione a un'opportunità, un'offerta, un ordine o una fattura, è possibile visualizzare i dettagli del livello di aggregazione e i prodotti singoli nell'aggregazione.

Nota

I kit sono deprecati nella versione corrente di Dynamics CRM; in alternativa si consiglia di usare le aggregazioni.

Definire le relazioni di prodotto per suggerimenti avanzati durante la vendita dei prodotti

È possibile definire i prodotti correlati per un prodotto visualizzati sotto forma di suggerimenti agli agenti di vendita durante la gestione dell'ordine o dell'opportunità. I suggerimenti dl prodotto per un prodotto consentono agli agenti di vendita di consigliare prodotti correlati, aggregazioni o kit a clienti e aumentare le vendite del prodotto. È possibile definire le seguenti relazioni per un prodotto: accessorio, cross-sell, prodotto sostitutivo e upsell. Ad esempio, è possibile aggiungere Surface Pro come prodotto di upsell per Surface RT, in modo che quando l'agente di vendita aggiunge Surface RT a un'opportunità, un'offerta, un ordine o un fattura, Surface Pro sarà consigliato come opzione di upsell.

Utilizzare l'attributo ProductSubstitute.SalesRelationshipType per definire le relazioni del prodotto. Impostare il valore di questo attributo su:

  • 0 per upsell

  • 1 per cross-sell

  • 2 per accessorio

  • 3 per sostituto

Mentre si definiscono le relazioni dei prodotti, è importante definire la direzione della relazione per evitare la duplicazione dei dati. Le direzioni supportate sono delle relazioni prodotto sono:

Relazione prodotti

Direzione

Accessorio

Unidirezionale

Cross-sell

Unidirezionale o bidirezionale

Prodotto sostitutivo

Unidirezionale o bidirezionale

Upsell

Unidirezionale

Utilizzare l'attributo ProductSubstitute.Direction per specificare la direzione di una relazione del prodotto. Impostare il valore di questo attributo su:

  • 0 per unidirezionale

  • 1 per bidirezionale

Il seguente codice di esempio illustra come definire le relazioni per i prodotti.

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

Definire le proprietà del prodotto (non supportate con SDK)

È possibile creare e gestire le proprietà di prodotto (attributi) tramite Dynamics CRM o Dynamics CRM per Outlook solo; questo non è supportato a livello di programmazione. Questa sezione contiene informazioni generali sulle proprietà del prodotto, importanti per comprendere la nuova funzionalità del catalogo di prodotto. Per ulteriori informazioni sulla creazione e la gestione delle proprietà del prodotto, vedere Guida e formazione: Utilizzare le proprietà per descrivere un prodotto.

Le proprietà del prodotto possono essere associate solo all'istanza di una famiglia di prodotti e non al record di un prodotto o di un'aggregazione. Tutte le istanza di una famiglia di prodotti figlio, un prodotto o un'aggregazione in una famiglia di prodotti padre ereditano le proprietà associate alla famiglia di prodotti padre. I record di una famiglia di prodotti figlio, un prodotto e un'aggregazione possono sostituire o sovrascrivere le proprietà ereditate tramite Dynamics CRM o solo Dynamics CRM per Outlook.

Il modo in cui si definisce una proprietà del prodotto determina il modo in cui può essere utilizzata dall'agente di vendita nel runtime, ovvero, mentre viene aggiunto un prodotto associato a un'opportunità, un'offerta, un ordine o una fattura.

  • Un valore della proprietà di prodotto aggiornabile può essere modificato al runtime, mentre non è possibile modificare il valore di una proprietà di prodotto di sola lettura.

  • Per un set di proprietà del prodotto come richiesto, è necessario specificare un valore per la proprietà al momento del run-time. In caso contrario, la proprietà viene visualizzata come non risolta.

  • La proprietà nascosta non verrà visualizzata agli agenti di vendita al momento del run-time.

Nota

Le proprietà del prodotto non influiscono sulla determinazione dei prezzi di un prodotto. Questo implica che il motore di determinazione dei prezzi di Dynamics CRM non supporta la modifica del prezzo di un prodotto in base a una modifica nei valori della proprietà del prodotto.

Quando si aggiorna un prodotto e si modificano le proprietà, Dynamics CRM crea internamente una nuova versione del prodotto e copia i dettagli del prodotto dal prodotto esistente alla nuova versione. La nuova versione del prodotto dispone di tutti i dettagli inclusi listini prezzi, relazioni di prodotti e proprietà. Le opportunità già create con la versione precedente del prodotto possono continuare a fare riferimento alla versione precedente del prodotto. Le opportunità create dopo l'aggiornamento o il ritiro del prodotto faranno riferimento alla versione corrente (più recente) del prodotto. Per ulteriori informazioni sulle transizioni di stato del prodotto, vedere Pubblicare, aggiornare, annullare, ritirare e attivare i prodotti (ciclo di vita prodotto).

Le seguenti nuove entità sono introdotte per l'archiviazione della configurazione delle proprietà del prodotto; l'accesso programmatico e la gestione di tali entità non è supportata:

  • L'entità DynamicProperty consente di archiviare informazioni sulle proprietà del prodotto.

  • L'entità DynamicPropertyAssociation consente di archiviare informazioni sulla famiglia di prodotti a cui la proprietà del prodotto viene associata.

  • L'entità DynamicPropertyOptionSet consente di archiviare informazioni sui valori del set di opzioni per una proprietà del prodotto del tipo di dati del set di opzioni.

Nota

Il numero massimo di proprietà del prodotto che è possibile allegare a una famiglia di prodotti è determinato dalle seguenti impostazioni dell'organizzazione: Organization.MaximumDynamicPropertiesAllowed. Il numero diventa effettivo solo quando si pubblica un record di prodotto figlio o un'aggregazione in una famiglia di prodotto a cui le proprietà sono collegate e non nel momento in cui si allegano le proprietà a un record della famiglia di prodotti in bozza.

È inoltre possibile utilizzare la scheda Vendite dell'area impostazioni di sistema in Dynamics CRM o Dynamics CRM per Outlook per configurare il numero massimo di proprietà del prodotto.Ulteriori informazioni:TechNet: Gestire la configurazione del catalogo prodotti.

Clonare una famiglia di prodotti, un prodotto o un'aggregazione

Utilizzare il messaggio CloneProductRequest per clonare il record di una famiglia di prodotti, un prodotto o un'aggregazione e creare una copia del record nello stesso nodo padre. È necessario fornire l'ID del record da clonare. Con la clonazione di un record di prodotto vengono copiate anche le proprietà del prodotto. Il record clonato viene creato con il datestamp e il timestamp collegati ai valori negli attributi Product.ProductNumber e Product.Name; datestamp e il timestamp indicano il momento in cui il record è stata duplicato. Il seguente codice di esempio illustra come clonare un prodotto.

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

Passaggio successivo

Pubblicare i record di prodotto per rendere disponibili i prodotti alla vendita da parte degli agenti di vendita.Ulteriori informazioni:Pubblicare una famiglia di prodotti, un prodotto o un'aggregazione

Vedere anche

Pubblicare, aggiornare, annullare, ritirare e attivare i prodotti (ciclo di vita prodotto)
Esempio: Creare e pubblicare prodotti
Esempio: clona record di prodotto
Esempio: Aggiungere prodotti a un'aggregazione
Entità catalogo prodotti

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright