The InPost Pay widget offers coupling shopping baskets at stores with the InPost Mobile application. The frontend layer is delivered in the form of a JavaScript plug for embedding on the website, and of this documentation.
A correct integration requires providing a backend layer, html embedding of the plug, and control over the status of the front-end layer by providing the methods described below.
A list of methods to be implemented by the merchant's backend, in order to use the plug:
The buyer's forename, enter if the baskets are paired.
data-product-id
Product ID, required when you want to add a product with the stated ID to the basket at pairing.
masked_phone_number
Masked telephone number, required if the baskets are paired.
variant
Button appearance variant. "Secondary" or "primary" available.
basket
It determines whether or not the button is located on the basket's page. Acceptable value "true".
dark_mode
Specifies the display mode. Acceptable value "true".
count
Specifies the initial number of products to be displayed in the basket.
binding_place
Specifies where the bind occurs. This information goes to iziGetBindingData as a parameter.
Available options are:
PRODUCT_CARD
BASKET_SUMMARY
ORDER_CREATE
BASKET_POPUP
THANK_YOU_PAGE
iziGetBindingData
Downloads the data necessary to pair baskets. The prefix and phoneNumber parameters are not compulsory. The calls with 1 parameter are used to procure a qr code. The calls with all 3 parameters are used to pair using a phone number.
Parameters
id - product identifier prefix - phone number prefix phoneNumber - phone number
Returns
Promise
Value
Data from backend query basket-app/api/v1/izi/basket/{basketId}/binding
Calls after displaying a qr code or a deep link in order to check whether the coupling was successful. On the developer's side, the communication must be handled so that the server is not loaded too much by applying websocket orr long pooling.
Parameters
none
Returns
Promise
Value
Data obtained from InPost Pay to the inquiry /inpost/v1/izi/basket/{basketId}/confirmation
The method called upon pairing a basket and on each page with a basket already paired. Looks for the finish of ordering in the app. As a reply, we get the URL of a page such as thank you page with a thank you for the purchase message.
Parameters
none
Returns
Promise
Value
{redirect: ‘url’}
function iziGetOrderComplete() {
return Promise.resolve({
redirect: 'string'
})
}
iziBindingDelete
The method called at pairing removal.
Parameters
none
Returns
Promise
Value
void
function iziBindingDelete() {
return Promise.resolve();
}
iziCanBeBound
The method determines whether or not the product may be added to the basket and paired. Used for variable products in order to determine whether or not the product parameters have already been specified.
Parameters
productId - product identifier
Returns
Bool
Value
true || false
function iziCanBeBound(productId) {
return true || false;
}
iziAddToCart
The method used to add a product after clicking on the widget.
Parameters
id - product identifier
Returns
void
Value
async function iziAddToCart(id) {
return void;
}
SPA
The plug has been developed for use with SPA applications. For the purpose of integrating the store with InPost Pay, the initiation of the Pay button must be handled within the app's life cycle. Upon its first loading, the script automatically initiates all the instances of <inpost-izi-button/> W found in the code to initiate the widget after DOM update use the method: