# Promotion Widget

**About Addon :**

The Installation of Spurtcommerce Promotions add-on will enable the feature of creation of various promotions for the admin. When the plugin is installed, the multi-Vendor eCommerce site becomes ready for the admin to post promotions and get them displayed for the visitors to view.

**Features**&#x20;

* You can create promotions such as ‘Hot summer offer’ or ‘Christmas sale’, etc.
* &#x20;Easily map certain selected products to the promotions that they create.&#x20;
* Also, you may map one whole category for the promotions that they create. &#x20;
* provide an attractive title for that promotion. E.g., stylish women deal.&#x20;
* Define the position of the promotion for displaying it on the home page.

### <mark style="color:blue;">Frontend Setup – Admin Panel:</mark>

Follow these steps to set up the front end for the Promotion Widget addon in Spurtcommerce Admin Panel.

#### Step 1: Install the Addon:

Locate the Spurtcommerce addon package, typically named admin.addOns.zip.

Extract the zip file and copy the Promotion Widget folder into the addOns folder in your project.

projectFolder -> addOns

After this step, the structure should look like:

projectFolder -> addOns ->Cms-> Manage Page-> Promotion widget

Once completed, proceed to update the configuration.

#### Step 2: Update the Configuration

After installing the addon, update the add-ons.constant.ts file to include the necessary plugins:

```
// ---------------------Promotion Widgets Routes---------------------
import * as promotionWidget from './Cms/manage-page/Promotion Widgets/promotion-widgets.constant';
// components paths
export const promotionWidgetComponents = promotionWidget.promotionWidgetComponents;
// route paths
export const promotionWidgetComponentRoutes = promotionWidget.routePath

```

If you wish to uninstall or remove the Common Product addon, replace the component paths and route paths with an empty array.

```
// ---------------------Promotion Widgets Routes---------------------
import * as promotionWidget from './Cms/manage-page/Promotion Widgets/promotion-widgets.constant';
// components paths
export const promotionWidgetComponents = [];
// route paths
export const promotionWidgetComponentRoutes = [];

```

#### Step 3: Run the Application:

To run the application with the integrated Promotion Widget addon, use the following command:

```
$ npm run large-serve
```

After executing this command, the addon will be available on Spurtcommerce on the designated page.

#### Step 4: Build the Application

Finally, to prepare the application for deployment, run the build command:

```
$ npm run large-build
```

The latest build files will then be ready to deploy to the server.

### <mark style="color:blue;">Store Setup</mark>

{% tabs %}
{% tab title="Next.js" %}
Follow these steps to set up the Promotional Widgets module on the front-end Next.js web store.

#### Setup Overview:

* Install the extension
* Update configuration
* Integrate the module
* Run the application
* Build the application

#### Step 1: Install the Extension

Locate the Spurtcommerce addon package, typically named addOns.zip.

Extract the zip file and copy the WidgetsAndProducts folder into the addOns folder in your project.

&#x20;       projectFolder -> addOns

After this step, the structure should look like:

&#x20;       projectFolder -> addOns -> WidgetsAndProducts

Once completed, proceed to update the configuration.

#### Step 2: Update the Configuration

After installing the extension, update the configuration in Spurtcommerce’s addonsconfig.js as follows:

1. Import the required line into addonsconfig.js.

```
           import PromotionalWidget from './WidgetsAndProducts/widgetServerAction'
```

2. Add the PromotionalWidget plugin to the specified object.

```
        export const AddonsComponent = {                                                                                                                                          PromotionalWidget,
}  

```

#### Step 3: Run the Application

Once you have integrated the Promotional Widgets module, run the application using:

```
$ npm run dev
```

This command will launch Spurtcommerce with the integrated Promotional Widgets visible on the specified page.

#### Step 4 Build the Application

To prepare the application for deployment, execute the following command:

```
$ npm run build
```

or

```
$ yarn run build                                                                                                                             
```

The latest build files will then be ready for server deployment.
{% endtab %}

{% tab title="Second Tab" %}

### &#x20;                                   Promotional Widgets Add-On

&#x20;

Follow these below steps are installing Promotionl Widgets

App setup

&#x20;   These are the steps that need to be followed to do the front end store setup.

·   Installing an extension

·   Update the configuration

·   Module Detail

·   Run the Application

·   Make the build

#### Step 1 : Installing an extension

These are the steps that need to be executed for installation of the extension.

Locate the Spurtcommerce addon package, typically named addons.zip.

Extract the zip file and copy the Promotionl Widgets folder into the addons folder in your project.

projectFolder->lib->module->add-ons

After this step, the structure should look like:

projectFolder->lib->module->add-ons->WidgetsAndProducts

Once completed, proceed to update the configuration.

#### Step 2 : Update the configuration

After extracting the add on zip file for changing the configurations in addons.dart, you have to follow the steps below:

Go to

projectFolder->lib->module->add-ons->addonsshared.dart

Then inside addonsShared array paste the following content

```
{"WidgetLists": SpurtWidget(), "data": ""},
```

After placing the above files it will look like this,

List addonsShared = \[

{"WidgetLists": SpurtWidget(), "data": ""},

];

Then give the following imports

```
import 'package:spurtcommerce/module/add-ons/WidgetsAndProducts/Page/widgetlists.dart';
```

Or

There will be a popup for quick fix

#### Step 3 : Module details

After executing the above mentioned steps, we have to place these below lines in the module folder to show the to the user.

Promotionl Widgets

Once you finished updating the configuration then in the projectFolder->lib->module->Tab->Home->presentation->Listpage->presentation->page->homescreen.dart

Use this line for view the  Promotional Widgets,

findMyClass("WidgetLists", {"list": true}),

After insert the line restart your application

&#x20;

#### Step 4 : Run the application

After integrating the WidgetsAndProducts Module into Spurt Commerce, you can use the following commands to run the application in terminal.

```
$ flutter run
```

Or

In Run menu select run without debugging

In case if throws any exception

```
$ flutter run –no-sound-null-safety
```

Once you execute the above command you can view the installed module in Spurt Commerce, within the page in which you have integrated

#### Step 5 : Make the build

In order to build, you need to run the following commands. In order to check the application, run the following commands and build the application.

```
$flutter build
```

If you want to split the abi then

```
$flutter build –split-per-abi
```

For bundle build

```
$flutter build appbundle
```

&#x20;

&#x20;
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.spurtcommerce.com/addons/marketing-related-addons/promotion-widget.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
