Commerce Server 2007 : Update di un Product appartenente ad una ProductFamily.

Commerce Server 2007 : Update di un Product appartenente ad una ProductFamily.

Durante lo sviluppo di un servizio che si occupa di effettuare degli update su alcuni prodotti utilizzando le API di Commerce Server 2007 incappavo nell’eccezione "Inventory information cannot be set on a product family record." 

Per maggiori dettagli rimando al topic aperto sul forum di MSDN.

Dopo aver tracciato con il Profiler le varie query lanciate e localizzato l’update incriminato ho tentato di eseguirlo come singola query da SQL e l’aggiornamento veniva effettuato corretamente a differenza di quanto avveniva lato codice.

Il problema sta  nelle restrizioni imposte dall’InventorySystem del CatalogSiteAgent, ignorandolo e’ possibile modificare i valori delle di prodotti appartenenti ad una ProductFamily senza tener conto delle loro dipendenze :

   1: public CatalogContext CreateCatalogContextFromSiteAgentIgnoringInventory()
   2:       {
   3:           // Create a CatalogSiteAgent to connect to the database.
   4:           CatalogSiteAgent catalogSiteAgent = new CatalogSiteAgent();
   5:           catalogSiteAgent.SiteName = ConfigurationHelper.ConfigurationHelperInstance.GetSiteName();
   6:           catalogSiteAgent.IgnoreInventorySystem = true;
   7:  
   8:           // Create the CatalogContext object.
   9:           CatalogContext catalogContext = CatalogContext.Create(catalogSiteAgent);
  10:  
  11:           return catalogContext;
  12:       }

Advertisements