prestashop-accounts-installer
Utility package to install ps_accounts module or present data to trigger manual install from psx configuration page.
This module also give you access to ps_accounts services through its module service container dealing with the installation status of the module.
Installation
This package is available on Packagist, you can install it via Composer.
composer require prestashop/prestashop-accounts-installer
Register as a service in your PSx container (recommended)
Example :
services:
ps_accounts.installer:
class: 'PrestaShop\PsAccountsInstaller\Installer\Installer'
arguments:
- '4.0.0'
ps_accounts.facade:
class: 'PrestaShop\PsAccountsInstaller\Installer\Facade\PsAccounts'
arguments:
- '@ps_accounts.installer'
How to use it
Installer
In your module main class install method. (Will only do something on PrestaShop 1.7 and above)
$this->getService('ps_accounts.installer')->install();
Presenter
For example in your main module's class getContent method.
Media::addJsDef([
'contextPsAccounts' => $this->getService('ps_accounts.facade')
->getPsAccountsPresenter()
->present($this->name),
]);
This presenter will serve as default minimal presenter and switch to PsAccountsPresenter data when ps_accounts module is installed.
Accessing PsAccounts Services
Installer class includes accessors to get instances of services from PsAccounts Module :
- getPsAccountsService
- getPsBillingService
The methods above will throw an exception in case ps_accounts module is not installed.
Example :
use PrestaShop\PsAccountsInstaller\Installer\Exception\ModuleVersionException;
use PrestaShop\PsAccountsInstaller\Installer\Exception\ModuleNotInstalledException;
try {
$psAccountsService = $this->getService('ps_accounts.facade')->getPsAccountsService();
$shopJwt = $psAccountsService->getOrRefreshToken();
$shopUuid = $psAccountsService->getShopUuidV4();
$apiUrl = $psAccountsService->getAdminAjaxUrl();
// Your code here
} catch (ModuleNotInstalledException $e) {
// You handle exception here
} catch (ModuleVersionException $e) {
// You handle exception here
}