It seems there is a problem when deleting a category that has had a product attached to it. Even after deleting the product, there is still a SQL error when trying to delete the category. This is because delting the product using Store Admin only marks it as deleted - it does not actually remove it from the database.
Let me know if I have missed something here and there is a way to do it without executing some SQL to clear the product out of the Store_Products table.
Code:
DotNetNuke.Services.Exceptions.ModuleLoadException: The DELETE statement conflicted with the REFERENCE constraint "FK_Store_Products_Store_Categories". The conflict occurred in database "greentherm.ie", table "dbo.Store_Products", column 'CategoryID'. The statement has been terminated. ---> System.Data.SqlClient.SqlException: The DELETE statement conflicted with the REFERENCE constraint "FK_Store_Products_Store_Categories". The conflict occurred in database "greentherm.ie", table "dbo.Store_Products", column 'CategoryID'. The statement has been terminated. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(SqlConnection connection, CommandType commandType, String commandText, SqlParameter[] commandParameters) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, String spName, Object[] parameterValues) at DotNetNuke.Modules.Store.Catalog.SqlDataProvider.DeleteCategory(Int32 CategoryID) at DotNetNuke.Modules.Store.Catalog.CategoryController.DeleteCategory(Int32 categoryID) at DotNetNuke.Modules.Store.WebControls.CategoryEdit.cmdDelete_Click(Object sender, EventArgs e) --- End of inner exception stack trace