When a user registers from AU domain, the subsidiary of the user should be set to AU
When a user registers from NZ domain, the subsidiary of the user should be set to NZ
When a user registers from US domain, the subsidiary of the user should be set to Us
JavaScript Entry point file
define(
'JJ.CustomerRegisterByDomain.customer'
, [
'JJ.CustomerRegisterByDomain.customer.View', 'Utils', 'jQuery', "JJ.CustomerRegisterByDomain.customer.Model", 'LoginRegister.Register.View', 'Backbone',
'Backbone.FormView', 'underscore', 'Profile.Model', 'Account.Register.Model'
]
, function (
customerView, Utils, jQuery, Model, LoginRegisterRegisterView, Backbone, BackboneFormView, _, ProfileModel, AccountRegisterModel
) {
'use strict';
return {
mountToApp: function mountToApp(container) {
/** @type {LayoutComponent} */
var layout = container.getComponent('Layout');
var environment = SC.ENVIRONMENT;
var baseurl = environment.currentHostString;
var subsidiary_value;
if (baseurl.indexOf("usa") > -1) {
console.log('usa');
subsidiary_value = '7';
// console.log("base subsidiay", subsidiary_value);
}
else if (baseurl.indexOf("au") > -1) {
console.log('au');
subsidiary_value = '1';
}
else if (baseurl.indexOf("nz") > -1) {
console.log('nz');
subsidiary_value = '4';
}
// console.log("base subsidiay", subsidiary_value);
this.subsidiary_value = subsidiary_value;
_.extend(LoginRegisterRegisterView.prototype, {
events:
{
'submit form': 'submitForm'
},
bindings: {
'[name="firstname"]': 'firstname',
'[name="lastname"]': 'lastname',
'[name="company"]': 'company',
'[name="email"]': 'email',
'[name="password"]': 'password',
'[name="password2"]': 'password2'
},
submitForm: function (e) {
e && e.preventDefault();
//console.log("inside process register", this.subsidiary_value)
// console.log("this in process reg model;", this.model);
this.model.attributes.subsidiary_value = subsidiary_value;
//console.log("this subsidiary2", this.model.attributes.subsidiary_value);
BackboneFormView.saveForm.apply(this, arguments);
},
})
}
};
});
Suite Script file
// JJ.CustomerRegisterByDomain.customer.js
// Load all your starter dependencies in backend for your extension here
// ----------------
define('JJ.CustomerRegisterByDomain.customer'
, [
'customer.ServiceController', 'Account.Model', 'underscore', 'SC.Models.Init', 'Profile.Model',
'LiveOrder.Model', 'Address.Model', 'CreditCard.Model', 'SiteSettings.Model', 'SC.Model', 'Application', 'Utils'
]
, function (
customerServiceController, AccountModel, _, ModelsInit, Profile, LiveOrder, Address, CreditCard, SiteSettings, SCModel, Application, Utils
) {
'use strict';
_.extend(AccountModel, {
register: function (user_data) {
try {
var customfields = {};
// console.log("Insiside reg in suite", user_data);
// console.log("Insiside reg in suite2", this);
// console.log("register subsidiary", this.subsidiary_value);
// console.log("register subsidary user data", user_data.subsidiary_value);
for (var property in user_data) {
if (property.substring(0, 10) == 'custentity') {
customfields[property] = user_data[property];
}
}
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',
customfields: {
subsidiary: user_data.subsidiary_value
}
});
}
} 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: user_data.password,
password2: user_data.password2,
emailsubscribe:
user_data.emailsubscribe && user_data.emailsubscribe !== 'F' ? 'T' : 'F',
});
//console.log("inside update profile11", user_data.subsidiary_value);
// console.log("result.customerid in update profile11", result.customerid);
ModelsInit.customer.updateProfile({
internalid: result.customerid,
customfields: {
subsidiary: user_data.subsidiary_value
}
});
if (Object.keys(customfields).length && result.customerid) {
ModelsInit.customer.updateProfile({
internalid: result.customerid,
customfields: {
subsidiary: user_data.subsidiary_value
}
});
}
}
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) {
// statements
console.error('register-error', e);
}
}
})
});