What store version is PWAjet available from?

The PWAjet application is available for CS-Cart stores starting from 4.11.4 version. For lower versions (from 4.9), installation is possible with a special patch. Contact our support team for assistance and consultation.

What is the minimum PHP version?

The minimum PHP version is 7.0. Also, check the server requirements for the PWAjet application.

Do you have a demo store?

Of course, have a look at the PWAjet application performance in our demo store.

What languages are supported?

The PWAjet application provides the support for English, Russian, and German by default.

Can I add my own language?

Yes, you can translate language variables from English into the desired language and download the translation to your store. If you would like the translation to be added to the future versions of the PWAjet application, contact our technical support team and send us the translation.

Shortly, the translation will be organized in the same way as in CS-Cart: we will provide a convenient service, and you will be able to translate variables.

Is any customization possible?

Currently, only style customizations are possible. The possibility of customization with the help of add-ons is being examined now.

How will the application work on an already customized store?

All admin panel customizations and all customizations related to data changes on the backend (for example, changing the product title, price, etc.) will be saved. Customization of the theme, blocks, and other frontend elements will not be available, as they were made for the responsive theme (or themes that inherit it), and not for PWAjet.

How do I customize the color scheme?

The color scheme can be customized with the help of the special editor. Follow our guide for style customization.

Can I distinguish regular orders from orders placed in the application? Do they have any special prefix?

Orders placed in the PWAjet application also get into your CS-Cart admin panel. They are completely identical to any other orders, there is no prefix.

How is the application updated? Does it have versioning like CS-Cart?

It is updated like any other regular add-on from Simtech Development (via the Upgrade Center) and it has versioning as well. For more information on add-on updating, visit our blog.

Are there any special hosting requirements?

No, they aren’t. The configuration will be no harder than to set up a new storefront.

How will it influence SEO?

Google officially and de facto fully supports SPA, i.e. it is able to not just receive static content from the server but knows how to render SPA. So, if your goal is organic traffic from Google only, there will be no problem with it.

If you need traffic from other search engines or snippets generation in social networks when sharing links to a store, contact us for a quote for a separate paid service that will render content and provide robots with prepared pages.

How PWAjet works with Multi-Vendor Ultimate?

PWAjet is adapted to multiple store environment.

My store is located in a subdirectory (example.com/shop). Does it matter?

It does. At the moment, PWAjet does not support such location for some reasons: other applications or sites may be located in other subdirectories, and it may cause issues since many HTML features work within the same origin (domain), for example, local storage is not separated for all applications and sites, but it has a particular limit.

If PWAjet support were possible for subdirectories, the application will use the same storage with other applications and sites, which will lead to data confusion and situations when one application takes up the entire cache/storage quota, without leaving space to others.

So, the possible solution is to move your website to the root directory.

What are the requirements for payment methods?

Payment methods are supported if they meet the requirements:
  • it is online payment method;
  • it generates a form with data (use function fn_create_payment_form);
  • the form with data have return_url.

I have my custom theme. Will PWAjet display it on mobiles?

No. Your theme will remain on desktops. On mobile devices, PWAjet will be displayed, it will become your mobile theme.

I checked the performance of the PWA demo store in Google Page Speed (or another similar service) and the result was poor. How is that?

Services for performance testing do not always show the objective picture. The result may depend on the device from which the test is performed, the location, etc. You may find more information and some examples in our blog.

Can customers visit the main version of the store from PWA storefront?

Yes, they can. We added the link for redirection from mobile version to desktop version and from desktop version to mobile one, so customers are able to visit the desktop version any time.

How to publish the app in Google Play? Does it works for AppStore?

Simtech development performs the service of publishing users’ applications on Google Play and AppStore. In order to perform the service we require the following infomation:

Google Play AppStore
Text description:
  1. Application name - up to 50 symbols.
  2. Short description - up to 80 symbols.
  3. Full description - up to 4000 symbols.
Graphic content:
  1. Icon - transparent PNG or JPEG, 512 px x 512 px, up to 1 MB.

  2. Banner - PNG or JPEG, 1,024 px x 500 px, up to 1 MB.

  3. Video (optional) - link to YouTube video.

  4. Screenshots of different resolutions (mobile version is obligatory, the other version are optional):

    1. Mobile:
      1. 2–8 mobile screenshots
      2. PNG or JPEG
      3. Ratio 16:9 or 9:16
      4. Each side between 320 px and 3,840 px
      5. Up to 8 MB per screenshot
    1. 7-inch tablets:
      1. Up to 8 screenshots
      2. PNG or JPEG
      3. Ratio 16:9 or 9:16
      4. Each side 320 px and 3,840 px
      5. Up to 8 MB per screenshot
    C 10-inch tablets:
    1. Up to 8 Screenshots
    2. PNG or JPEG
    3. Ratio 16:9 or 9:16
    4. Each side between 320 px and 3,840 px
    5. Up to 8 MB per screenshot
Privacy policy + Content information
1.The active privacy policy containing reliable information about target group, age restrictions, availability of the content etc. For instance, it must be mentioned that products to sell have 16+ age restriction.
Graphic content for application build:
  1. Icon - 1,024px x 1,024px.
  2. Splash screen - 2,732px x 2,732px.
Graphic content for application release:
  1. Up to 10 screenshots.
  2. Screenshots of 6.5 and 5.5 inch iPhone and 12.9 inch iPads of 2nd and 3rd generation are obligatory.
  3. Videos of M4V, MP4, MOV format are optional (not more than 500МB).
Text description for release:
  1. Advertising text - Up to 150 symbols.
  2. Description - Up to 2500 symbols.
  3. Key words, that describe the application.
  4. URL-adress of support service.
  5. Copyright information.
  6. Contact information (name, phone, email).
  7. Application test information (Test data - email and password)
Privacy policy + Content information
1. The active privacy policy containing reliable information about target group, age restrictions, availability of the content etc. For instance, it must be mentioned that products to sell have 16+ age restriction.

Can I create pop-ups?

Currently, no. We suppose adding them in future versions.

Guests cannot place an order. Will this be fixed?

Yes, in future versions. We are working on a guest API token, initializing a session for the guest API, updating and retrieving user information for the guest API.

Will shipping information and payment details be displayed on a product details page?

No, since the application is developed as a fast and simplified version of the store, there are no blocks with shipping and payment details on a product page currently. Perhaps, this functionality will be added in the future.

Will it work with the remarketing tags installed on my site?

PWAjet works only with Google Analytics currently. Other services require additional integration.

PWAjet Payment Method Adaptation

Payment Method Adaptation

Payment method must meet the following criteria:

  1. Online payment method
  2. Payment method must create the data form, which means it must use fn_create_payment_form function
  3. For payment data processing the payment_notification controller must be used by payment method
  4. The payment method must be extended in accordance to the scheme. Without extension, there will be no redirect back to PWAjet page

Payment method extension scheme for PWAjet contains if the file below:


The extension adds the final_redirect_url parameter to payment method URL, created in fn_create_payment_form

Example of the :

$schema = [
    'paypal.php' => [
        'redirect_urls' => [
            'return'        => 'checkout.complete',
            'cancel_return' => 'index.index'

3 events are typically used

'checkout.complete' -> The order is successfully paid, redirect to PWAjet page
'index.index' -> Event is canceled, redirect to PWAjet homepage
'orders.details' -> The order payment is failed, redirect to PWAjet page

In PayPal for instance, without extension REST sraOrderPayment will return the following data:

<input type="hidden" name="return" value="https://example.com/index.php?dispatch=payment_notification.return&amp;payment=paypal&amp;order_id=107&amp;PHPSESSID=&amp" />
<input type="hidden" name="cancel_return" value="https://example.com/index.php?dispatch=payment_notification.cancel&amp;payment=paypal&amp;order_id=107&amp;PHPSESSID=&amp" />

The data will be altered, when the scheme is extended:

<input type="hidden" name="return" value="https://example.com/index.php?dispatch=payment_notification.return&amp;payment=paypal&amp;order_id=107&amp;PHPSESSID=&amp;final_redirect_url=https://m.example.com/en/my/cart/checkout/complete/107" />
<input type="hidden" name="cancel_return" value="https://example.com/index.php?dispatch=payment_notification.cancel&amp;payment=paypal&amp;order_id=107&amp;PHPSESSID=&amp;final_redirect_url=https://m.example.com/en/" />

Payment will depend on the following logic:

  1. In desktop version, after the customer makes an action (pays or cancels the order), the payment method will redirect the customer to the payment_notification controller
  2. In controller payment_notification data will be processed in accordance to its logic
  3. Then the customer will be redirected to the PWAjet page. Redirect is mentioned in final_redirect_url

If payment methods’ URLs are set in the admin panel of the payment method (not in backend), URL can be manually transferred. Manual transferring will work, only in case the payment method processes such transferring as overwrite of the previous URLs.

custom_urls parameter is required to be added. For instance:

     'directebanking.php' => [
         'custom_urls' => [
             'custom_url' => fn_url('payment_notification.success?payment=directebanking')
        'redirect_urls' => [
             'custom_url' => 'index.index'

As a result, the sraOrderPayment REST should look like this:

<input type="hidden" name="custom_url" value="https://example.com/index.php?dispatch=payment_notification.success&amp;payment=directebanking&amp;final_redirect_url=https://m.example.com/en/" />

Check of the payment method after integration

  1. It is obligatory to extend the scheme /addons/sd_api_extender/schemas/sd_api_extender/payment_redirects.php
  2. Check the payment via web-application
  3. Use REST query, to make sure that final_redirect_url is present.


SraOrderPayment - Order payment

Receiving the form containing the data for payment system

GET /api/4.0/sra_order_payment/{order_id}

{order_id} — order ID


Data received

Status — 200 OK

Body — Data form

Order does not exist

Status — 404 Not found

Body — Blank

Customer is not attached to the order

Status — 404 Not found

Body — Blank

Payment method is set for offline payment

Status — 404 Not found

Body — Blank