I am not sure how to resolve this. With the new Orders Object Salesforce does not give you the option to create a new Order from the Opp. This is a requirement for our org. I have created a custom VF page and am using the Orders standard controller along with an extension to add some other functionality. Everything is working, but I cannot get my test class to pass because the AccountId field is not writeable. public class SaveAndAddProductControllerExtension { private ApexPages.StandardController stdCtrl; public Contact OrdContact {get;set;} public Contact OrdContact2 {get;set;} public Opportunity Name {get;set;} public Opportunity ActName {get;set;} public string id; public string Acid; Order ord; private ApexPages.StandardController controller; public SaveAndAddProductControllerExtension(ApexPages.StandardController controller) { stdCtrl = controller; ord = (order)controller.getrecord(); id = ApexPages.currentPage().getParameters().get('oppid'); Acid = ApexPages.currentPage().getParameters().get('Accid'); if (id != null) { name = [select id, name from opportunity where id= :id]; } ord.Opportunity_Name__c = id; ord.AccountId = acid; this.controller = controller; } public void ContactPopulated(){ Order cont=(Order)stdCtrl.getRecord(); OrdContact =[select id, MailingStreet, MailingCity, MailingState, MailingPostalCode from contact where id= :cont.BillToContactid ]; } public void ContactPopulated2(){ Order cont=(Order)stdCtrl.getRecord(); OrdContact2 =[select id, MailingStreet, MailingCity, MailingState, MailingPostalCode from contact where id= :cont.ShipToContactId]; } public Order getOrder() { if(ord == null) ord = new Order(); ord.EffectiveDate = System.Today(); ord.EndDate = System.Today() + 1095; ord.Status = 'Open'; return ord; } public PageReference save() { try { system.debug('*************' +Ord); ord.BillingCity = OrdContact.MailingCity; ord.BillingPostalCode = OrdContact.MailingPostalCode; ord.BillingState = OrdContact.MailingState; ord.BillingStreet = OrdContact.MailingStreet; ord.ShippingCity = OrdContact2.MailingCity; ord.ShippingPostalCode = OrdContact2.MailingPostalCode; ord.ShippingState = OrdContact2.MailingState; ord.ShippingStreet = OrdContact2.MailingStreet; insert Ord; PageReference neword = new PageReference('/apex/orderProductEntry?Id='+Ord.Id); system.debug('test::::::::::::' + neword); neword.setRedirect(true); return neword; } catch (DMLException e) { ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR, 'Error creating new order.')); return null; } } } Test Class @istest(seeAllData = True) private class SaveAndAddProductControllerTest { static testMethod void testing(){ Profile p = [SELECT Id FROM Profile WHERE Name = 'System Administrator' limit 1]; List<user> UserList = [SELECT Id FROM user WHERE isActive = True AND profileid =: p.id limit 2]; Account a2 = new Account(); a2.Name = 'The Amazing'; insert a2; Contact c = new Contact(); c.firstname = 'Summer'; c.LastName = 'Testing'; c.AccountId = a2.Id; c.MailingCity = 'HappyTown'; c.MailingPostalCode = '01010'; c.MailingState = 'MA'; c.MailingStreet = '123 Awesome St'; insert c; Opportunity opp = new Opportunity(); opp.RecordTypeId = '012500000009kqw'; opp.OwnerId = UserList[0].Id; opp.Name = 'Test Opp'; opp.AccountId = a2.Id; opp.Line_of_Business__c = 'Banking'; opp.Segment__c = 'Advisory Services'; opp.Product__c = null; opp.CloseDate = system.today(); opp.Deal_Status__c = 'Upside'; opp.StageName = 'Closed Won'; insert opp; Order order = new Order(); order.RecordTypeId = '012W0000000CvTF'; order.Opportunity_Name__c = opp.Id; order.AccountId = a2.Id; order.EffectiveDate = system.today(); order.Status = 'Open'; order.Price_List__c = '0-500M'; order.BillToContactId = c.Id; order.ShipToContactId = c.Id; insert order; Order ord = [SELECT Id, RecordTypeId,Opportunity_Name__c, AccountId, EffectiveDate, Status, Price_List__c, BillToContactId, ShipToContactId FROM Order limit 1]; SaveAndAddProductControllerExtension sAAP = new SaveAndAddProductControllerExtension(new ApexPages.StandardController (Order)); } }