TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

ShopAR Plugin

Plugin for the Web that seamlessly integrates into your webpage to create embedded virtual try-on and 3D preview capabilities.

Powered and developed by DeepAR.

Table of contents

Getting started

Create an account in the ShopAR Dashboard.

Add some models to your account. Make sure the models' plugin SKUs match the product IDs on your website.


There are two distinct ways of integrating the plugin: via Script tag and via NPM.

via Script tag

Add the following script to your HTML.

<script src=""></script>

It is possible to use a different CDN instead of jsDelivr (e.g. cdnjs, unpkg), or even a relative path if the plugin is distributed as a static asset to your app. Just make sure to set the baseUrl parameter accordingly (see setup options for more details).

via NPM

Add shopar-plugin to your project:

npm install shopar-plugin
# or
yarn add shopar-plugin


Paste the following snippet in your HTML.

    apiKey: 'API_KEY',
    sku: 'PRODUCT_ID',
    targetElement: 'TARGET_ELEMENT',
  • Replace API_KEY with your API key. You can find it in the ShopAR Dashboard.
  • Replace PRODUCT_ID with the ID of the product. Make sure it matches the plugin SKU of the model in the ShopAR Dashboard.
  • Replace TARGET_ELEMENT with the HTML element you wish to embed the plugin's UI into.

To change the look-and-feel of the plugin's UI, modify the following CSS classes:

.shopar-btn-container {
  /* Container for the control buttons. */
.shopar-btn {
  /* Control button. */
.shopar-btn:hover {
  /* Hovered control button. */
.shopar-loading-container {
  /* Container for the loading screen. */
.shopar-loading-text {
  /* Loading text. */
.shopar-loading-bar-bg {
  /* Loading bar's background. */
.shopar-loading-bar-fg {
  /* Loading bar's foreground. */
} {
  /* Loading bar's foreground when active. */
.shopar-qr {
  /* Container for the QR code. */
.shopar-ar-prompt {
  /* Container for the AR prompt. */
.shopar-ar-prompt-text {
  /* AR prompt text. */
.shopar-ar-prompt-img {
  /* AR prompt image. */

Alternatively, use your own UI:

const shopAR = await ShopAR.plugin.setup({
  // ...
  defaultUI: false,

myARButton.onclick = shopAR.launchAR;
myARButton.disabled = shopAR.launchAR === undefined;
my3DButton.onclick = shopAR.launch3D;
myARButton.disabled = shopAR.launch3D === undefined;

myCloseARButton.onclick = shopAR.closeAR;
myCloseARButton.disabled = shopAR.closeAR === undefined;
myClose3DButton.onclick = shopAR.close3D;
myClose3DButton.disabled = shopAR.close3D === undefined;
// or just:
myCloseButton.onclick = shopAR.close;
myCloseButton.disabled = shopAR.close === undefined;

If you wish to change the SKU or target element at runtime, simply call setup() with different parameters.



This method fetches the specified product from the ShopAR Dashboard and renders the plugin's UI.

Options used for the plugin setup:

  • apiKey
    • Type: string
    • API key found in the ShopAR dashboard.
  • sku
    • Type: string
    • Product identifier.
  • targetElement
    • Type: HTMLElement
    • The element to inflate with ShopAR UI.
    • Its CSS position property must be either static or relative.
  • initialState (optional)
    • Type: 'AR' | '3D'
    • If provided, defines which preview type the plugin initializes to.
  • defaultUI (optional)
    • Type: boolean
    • If provided and set to false, disables the default UI such as buttons, loading and error views.
    • Default value: true
  • baseUrl (optional)
    • Type: string
    • If provided, defines where the additional ShopAR plugin files are fetched from.
    • Default value:
  • strings (optional)
    • Type: object
    • If provided, overrides strings in the UI.
    • Default values:
      • Loading Try On...
      • loading.3d: Loading 3D...


Please see:

Package Sidebar


npm i shopar-plugin

Weekly Downloads






Unpacked Size

21 MB

Total Files


Last publish


  • deepar