Update the address book by webstore inputs.
For that we have to extend “account.model” suite script file. And edit ” ModelsInit.customer.addAddress” function.
// JJ.registerpage.customer.js
// Load all your starter dependencies in backend for your extension here
// ----------------
define('JJ.registerpage.customer'
, [
'JJ.registerpage.customer.ServiceController',
'Account.Model',
'SC.Model',
'Application',
'SC.Models.Init',
'Profile.Model',
'LiveOrder.Model',
'Address.Model',
'CreditCard.Model',
'SiteSettings.Model',
'underscore',
'Utils'
]
, function (
customerServiceController,
AccountModel,
SCModel,
Application,
ModelsInit,
Profile,
LiveOrder,
Address,
CreditCard,
SiteSettings,
_,
Utils
) {
'use strict';
_.extend(AccountModel,{
register: function (user_data) {
console.log("user_data",user_data);
try {
var customfields = {};
for (var property in user_data) {
if (property.substring(0, 10) == 'custentity') {
customfields[property] = user_data[property];
}
}
console.log("customfields",customfields);
if (ModelsInit.customer.isGuest()) {
var guest_data = ModelsInit.customer.getFieldValues();
ModelsInit.customer.setLoginCredentials({
internalid: guest_data.internalid,
email: user_data.email,
password: user_data.password
});
ModelsInit.session.login({
email: user_data.email,
password: user_data.password
});
if (Object.keys(customfields).length) {
ModelsInit.customer.updateProfile({
internalid: guest_data.internalid,
firstname: user_data.firstname,
lastname: user_data.lastname,
companyname: user_data.company,
emailsubscribe:user_data.emailsubscribe && user_data.emailsubscribe !== 'F ? 'T': 'F',
customfields: customfields
});
} else {
ModelsInit.customer.updateProfile({
internalid: guest_data.internalid,
firstname: user_data.firstname,
lastname: user_data.lastname,
companyname: user_data.company,
emailsubscribe:
user_data.emailsubscribe && user_data.emailsubscribe !== 'F' ? 'T' : 'F'
});
}
}
else if(user_data.isdentist == "true"){ user_data.emailsubscribe =
user_data.emailsubscribe && user_data.emailsubscribe !== 'F' ? 'T' : 'F';
var result = ModelsInit.session.registerCustomer({
firstname: user_data.firstname,
lastname: user_data.lastname,
companyname: user_data.company,
email: user_data.email,
password: '%shb?zjdOtv%n&r;.40LB3n!!=>5BC5F',
password2: '%shb?zjdOtv%n&r;.40LB3n!!=>5BC5F',
emailsubscribe:user_data.emailsubscribe && user_data.emasilsubscribe !== 'F' ? 'T' : 'F'
});
console.log("result",result );
try {
console.log("inside update profile11");
console.log("result.customerid in update profile11",result.customerid);
ModelsInit.customer.updateProfile({
internalid: result.customerid,
customfields: {
custentityphonenumber:user_data.custentityphonenumber,
custentity46: user_data.custentity46,
custentity_cust_gdc: user_data.custentity_cust_gdc,
custentity40: user_data.custentity40,
custentity41: user_data.custentity41,
custentity43: user_data.custentity43,
custentity44: user_data.custentity44,
custentity45: user_data.custentity45,
custentity_leadcountry: user_data.custentity_leadcountry,
custentity_postcode: user_data.custentity_postcode,
custentity42: user_data.custentity42,
custentity_isdentist: 'T',
category:'1'
}
});
console.log("inside add address11");
console.log("result.customerid in addr",result.customerid);
ModelsInit.customer.addAddress({
addressee : user_data.firstname,
addr1 : user_data.custentity44,
city : user_data.custentity46,
zip : user_data.custentity_postcode,
country : user_data.custentity_leadcountry,
phone : user_data.custentityphonenumber,
defaultshipping : 'T',
defaultbilling :
});
}catch(e){
console.log("error at update session11",e);
}
if (Object.keys(customfields).length && result.customerid) {
ModelsInit.customer.updateProfile({
internalid: result.customerid,
customfields:customfields
});
}
}
else { user_data.emailsubscribe = user_data.emailsubscribe && user_data.emailsubscribe !== 'F' ? 'T' : 'F';
var result = ModelsInit.session.registerCustomer({
firstname: user_data.firstname,
lastname: user_data.lastname,
companyname: user_data.company,
email: user_data.email,
password: '%shb?zjdOtv%n&r;.40LB3n!!=>5BC5F',
password2: '%shb?zjdOtv%n&r;.40LB3n!!=>5BC5F',
emailsubscribe:
user_data.emailsubscribe && user_data.emasilsubscribe !== 'F' ? 'T' : 'F'
});
try {
console.log("inside update profile");
ModelsInit.customer.updateProfile({
internalid: result.customerid,
customfields: {
custentityphonenumber:user_data.custentityphonenumber,
custentity46: user_data.custentity46,
custentity_cust_gdc: user_data.custentity_cust_gdc,
custentity40: user_data.custentity40,
custentity41: user_data.custentity41,
custentity43: user_data.custentity43,
custentity44: user_data.custentity44,
custentity45: user_data.custentity45,
custentity_leadcountry: user_data.custentity_leadcountry,
custentity_postcode: user_data.custentity_postcode,
custentity42: user_data.custentity42
}
});
}catch(e){
console.log("error at update session",e);
}
if (Object.keys(customfields).length && result.customerid) {
ModelsInit.customer.updateProfile({
internalid: result.customerid,
customfields:customfields
});
}
}
var user = Profile.get();
user.isLoggedIn = ModelsInit.session.isLoggedIn2() ? 'T' : 'F';
user.isRecognized = ModelsInit.session.isRecognized() ? 'T' : 'F';
return {
touchpoints: ModelsInit.session.getSiteSettings(['touchpoints']).touchpoints,
user: user,
cart: LiveOrder.get(),
address: Address.list(),
creditcard: CreditCard.list()
};
} catch(e) {
console.log('error at register function',e);
}
}
});
});