EcomPassport

EcomPassport

new EcomPassport(storeIdopt, langopt, storageKeyopt, localStorageopt, documentopt)

Source:
Construct a new customer account instance object.
Examples
// Default instance
const ecomPassport = new EcomPassport()
// Optionally defining Store ID, lang and custom storage key
const storeId = 2000
const lang = 'en_us'
const storageKey = 'myPassportKey'
const customEcomPassport = new EcomPassport(storeId, lang, storageKey)
Parameters:
Name Type Attributes Default Description
storeId number <optional>
$ecomConfig.get('store_id') Preset Store ID number
lang string <optional>
$ecomConfig.get('lang') Snake case language code
storageKey string | null <optional>
ecomPassportClient Item key to persist account data
localStorage object <optional>
window.localStorage Local Storage interface
document object <optional>
window.document Object reference to document

Members

(static) ecomPassport.Constructor :function

Source:
See:
Construct a new account instance object.
Type:
  • function

(static) ecomPassport.customer :object

Source:
Customer account data following E-Com Plus customer object model.
Type:
  • object

(static) ecomPassport.document :object

Source:
Type:
  • object

(static) ecomPassport.lang :string

Source:
Instance language code.
Type:
  • string

(static) ecomPassport.localStorage :object

Source:
Type:
  • object

(static) ecomPassport.session :object

Source:
Passport authentication session object.
Type:
  • object

(static) ecomPassport.sessionId :object

Source:
Passport random 32 chars session ID.
Type:
  • object

(static) ecomPassport.storageKey :string|null

Source:
Item key to persist JSON EcomPassport#customer with localStorage and cookie name to persist EcomPassport#session.
Type:
  • string | null

(static) ecomPassport.storeId :number

Source:
Respective Store ID number.
Type:
  • number

Methods

checkAuthorization() → {boolean}

Source:
Check session auth level (does not validate token).
Example
ecomPassport.checkAuthorization()
Returns:
Type
boolean

checkLogin() → {boolean}

Source:
Check if customer is identified (does not validate authentication).
Example
ecomPassport.checkLogin()
Returns:
Type
boolean

checkVerification() → {boolean}

Source:
Check session biggest auth level (does not validate token).
Example
ecomPassport.checkVerification()
Returns:
Type
boolean

fetchLogin(email, docNumberopt, emailCodeopt) → {Promise.<(session|error)>}

Source:
Try to identify/login user with email and doc number.
Example
// Account identification only
ecomPassport.fetchLogin('[email protected]')

// Partial authorization with email + doc number
ecomPassport.fetchLogin('[email protected]', '1234567890')

// Full authorization with verification code received by email
ecomPassport.fetchLogin('[email protected]', null, 123456)
Parameters:
Name Type Attributes Description
email string Customer main email address
docNumber string <optional>
Customer document number
emailCode string <optional>
Email verification code
Returns:
Type
Promise.<(session|error)>

fetchOauthProfile() → {Promise.<(session|error)>}

Source:
Try get session and account data after social login.
Example
ecomPassport.fetchOauthProfile().then(() => {
  console.log(ecomPassport.checkVerification() === true)
})
Returns:
Type
Promise.<(session|error)>

fetchOauthProviders(canAppendIframeopt) → {Promise.<(data|error)>}

Source:
Fetch Passport API to list OAuth providers and start social login flux.
Example
ecomPassport.fetchOauthProviders()
Parameters:
Name Type Attributes Default Description
canAppendIframe boolean <optional>
true Whether iframe should be appended to body to start oauth flux
Returns:
Type
Promise.<(data|error)>

fetchOrder(orderId) → {Promise.<(data|error)>}

Source:
Fetch order by ID from Passport API (if authorized) or Store API (public).
Example
ecomPassport.fetchOrder(orderId).then(order => {
  console.log(order._id)
})
Parameters:
Name Type Description
orderId string Object ID (`_id`) of the order to be fetched
Returns:
Type
Promise.<(data|error)>

fetchOrdersList(fromopt, sizeopt) → {Promise.<(orders|error)>}

Source:
Fetch each order from customer's orders list.
Example
ecomPassport.fetchOrdersList().then(orders => {
  orders.forEach(order => {
    console.log(order.number)
  })
})
Parameters:
Name Type Attributes Default Description
from number <optional>
0 Offset (start from) for pagination
size number <optional>
10 Limit of orders to fetch and list
Returns:
Type
Promise.<(orders|error)>

getCustomer() → {object}

Source:
Get current customer account object.
Example
const customer = ecomPassport.getCustomer()
console.log(customer.main_email)
Returns:
Type
object

getCustomerName() → {string}

Source:
Get nickname or given name from current customer account data.
Example
ecomPassport.getCustomerName()
Returns:
Type
string

loadStoredSession() → {self}

Source:
Try to load session object from cookie and customer data from localStorage.
Example
ecomPassport.loadStoredSession()
Returns:
Type
self

logout(canSaveopt) → {self}

Source:
Reset session and customer account object.
Example
ecomPassport.logout()
Parameters:
Name Type Attributes Default Description
canSave boolean <optional>
true Save (reset) cookie and localStorage after logout
Returns:
Type
self

popupLogin(canSkipLoginopt, baseUriopt) → {window|null}

Source:
Open a new popup to default E-Com Plus Passport login window.
Example
ecomPassport.popupLogin()
Parameters:
Name Type Attributes Default Description
canSkipLogin boolean <optional>
Whether customer can skip login and continue as guest
baseUri string <optional>
'https://passport.e-com.plus/v1/' Passport API base URI
Returns:
Type
window | null
Source:
Open a new popup to received URL for OAuth and try to fetch profile on callback or popup closed.
Example
ecomPassport.popupOauthLink(facebookOauthLink)
Parameters:
Name Type Description
url string Popup URL (OAuth provider link)
Returns:
Type
window | null

requestApi(url, method, dataopt) → {Promise.<(response|error)>}

Source:
Send request to E-Com Plus Passport API.
Example
ecomPassport.requestApi('/me.json', 'patch', { orders })
  .then(({ data }) => {
    console.log(data)
  })
Parameters:
Name Type Attributes Description
url string Passport API endpoint
method string Request HTTP method
data object <optional>
Request body
Returns:
Type
Promise.<(response|error)>

sendEmailCode(email) → {Promise.<(response|error)>}

Source:
Send verification code by email before login/signup.
Example
ecomPassport.sendEmailCode('[email protected]')
  .catch(console.error)
Parameters:
Name Type Description
email string Customer main email address
Returns:
Type
Promise.<(response|error)>

setCustomer(customer, canSaveopt) → {self}

Source:
Set (assign) customer account object and save to local storage.
Example
ecomPassport.setCustomer(customer)
Parameters:
Name Type Attributes Default Description
customer object Customer data (can be partial)
canSave boolean <optional>
true Save to localStorage
Returns:
Type
self

setSession(session, canSaveopt) → {self}

Source:
Set session object and save to cookie.
Example
ecomPassport.setSession(session)
Parameters:
Name Type Attributes Default Description
session object Passport session object
canSave boolean <optional>
true Save to cookie
Returns:
Type
self

Events

change

Source:
Properties:
Name Type Description
customer object Customer account data
Type:
  • object
Example
ecomCart.on('change', ({ customer }) => { console.log(customer._id) })

login

Source:
Example
ecomPassport.on('login', () => {
  console.log(ecomPassport.checkLogin()) // true
})

logout

Source:
Example
ecomPassport.on('logout', () => {
  console.log(ecomPassport.checkLogin()) // false
})