# Add 'Request Quote' button: after run the code problem

**URL:** <https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333>\
**Category:** Ask the community\
**Tags:** question, code\
**Created:** [January 3, 2023, 7:32am UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333 "2023-01-03T07:32:57Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![spark-c](https://avatars.discourse-cdn.com/v4/letter/s/50afbb/32.png) [@spark-c](https://forum.wixstudio.com/u/spark-c)\
**Post date:** [January 3, 2023, 7:32am UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/1 "2023-01-03T07:32:57Z")

</div>

I watched video on how to add ‘Request Quote’ by Code Queen and have followed every steps but unfortunately after I run the code, the Logs said

 ![](https://us1.discourse-cdn.com/wix/original/3X/b/e/bee4975e953530b5e18055d5e79892df7ef04be2.png)

Help me check the coding part for men what is wrong with them:

1. Product page:

 ![](https://us1.discourse-cdn.com/wix/original/3X/e/b/eb2ba99a094d9f67dd4fa4ce3fe8dc66e346c7b3.png)

1. Backend:

 ![](https://us1.discourse-cdn.com/wix/original/3X/9/a/9afe4a59a223e2b2efff0dc25fe3848daf083d21.png)

1. Quote page:

 ![](https://us1.discourse-cdn.com/wix/original/3X/a/5/a5a5041acbea1e23d7319ef2c098411cd570cbff.png)

I really need help, so anyone could help me out, I would thank you from the bottom of my heart​:pray:t3:🙏🏼🥹:heart:

---

<div class="post-metadata">

**Author:** ![amandam](https://sea1.discourse-cdn.com/wix/user_avatar/forum.wixstudio.com/amandam/32/79539_2.png) [@amandam](https://forum.wixstudio.com/u/amandam)\
**Post date:** [January 4, 2023, 5:02pm UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/2 "2023-01-04T17:02:24Z")

</div>

I would check the implementation of your save call as indicated by the error. Here are the [API docs for dataset save](https://www.wix.com/velo/reference/wix-dataset/dataset/save)

You may also reach out to code queen for support with their tutorial if they have exposed a way to contact.

---

<div class="post-metadata">

**Author:** ![spark-c](https://avatars.discourse-cdn.com/v4/letter/s/50afbb/32.png) [@spark-c](https://forum.wixstudio.com/u/spark-c)\
**Post date:** [January 5, 2023, 7:38am UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/3 "2023-01-05T07:38:29Z")

</div>

Can you help guide me more on making correction on this coding because I’m very new to wix coding and have been struggling with is problem for over a week now

---

<div class="post-metadata">

**Author:** ![bilonii](https://sea1.discourse-cdn.com/wix/user_avatar/forum.wixstudio.com/bilonii/32/15984_2.png) [@bilonii](https://forum.wixstudio.com/u/bilonii)\
**Post date:** [January 5, 2023, 8:00am UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/4 "2023-01-05T08:00:11Z")

</div>

Hi! You can post the code here that i can edit it. Screenshots not the best way for next time 🙂

---

<div class="post-metadata">

**Author:** ![spark-c](https://avatars.discourse-cdn.com/v4/letter/s/50afbb/32.png) [@spark-c](https://forum.wixstudio.com/u/spark-c)\
**Post date:** [January 5, 2023, 8:08am UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/5 "2023-01-05T08:08:35Z")

</div>

Thank you very very much for helping out! 🙏🏼🙏🏼

```javascript
//Product Page
import { session } from 'wix-storage';
import wixLocation from 'wix-location';

$w.onReady(function() {

    $w("#Thebutton").onClick((event) => {
        $w("#productPage1").getProduct()
        .then((product) => {
            let theProduct = product._id;
            session.setItem("product", theProduct); 

        })
        .then(() => {
            wixLocation.to("/quote");
        })
        .catch((error) => {
            console.log(error);
        });
    });
});

```

```javascript
//notification.jsw
import wixCrm from 'wix-crm-backend';

export function quoteRequest() {
    wixCrm.notifications.notify(
        "New Order Requested! Check it out.",
        ["Browser","DashBoard","Mobile"],
        {
            "title": "New Order Requested",
            "actionTitle": "Check it out",
            "actionTarget": {"url":"https://wix.com/dashboard/f0ad5b20-0264-4f0e-aa1b-b9058cb0956d/database/Request"},
            "recipients": {"role": "All_Contributors"}
        }
    );
}

```

```javascript
//Quote page
import { quoteRequest } from 'backend/notification';
import _wixCrm from 'wix-crm';
import { session } from 'wix-storage';
import wixData from 'wix-data';

$w.onReady(function () {
    let product = session.getItem("product");

    $w("#dataset3").onReady(() => {
        console.log("The product dataset is ready to be filtered with the following ID:" + product);

        $w("#dataset3").setFilter(wixData.filter()
                .eq("_id", product)
            )
            .then(() => {
                console.log("The product is" + product);
                $w('#RequestForm').expand();
                $w('#ErrorStrip').collapse();
            })
            .catch((err) => {
                console.log(err);
                $w('#RequestForm').collapse();
                $w('#ErrorStrip').expand();
            });
    });

    $w.onReady(() => {
        $w('#dataset3').onReady(() => {
            $w("#dataset2").onBeforeSave(() => {
                let productFound = $w("#dataset3").getCurrentItem();
                let prodName = productFound.name;
                let product = productFound.sku;
                let prodIMG = productFound.mainMedia;

                $w("#dataset2").setFieldValues({
                    "title": prodName, 
                    "productSerialNo": product, 
                    "productImage": prodIMG, 
                });

                let checkFirst = $w('#input1').valid; 
                let checkLast = $w('#input2').valid;
                let checkPhone = $w('#input3').valid;
                let checkEmail = $w('#input4').valid;
                let checkDetail = $w('#proddetail').valid

                if (checkDetail && checkEmail && checkPhone && checkLast && checkFirst) {
                    $w('#dataset2').save(); 
                    $w('#errortext').hide(); 
                } else {
                    $w('#errortext').show(); 
                    console.log("Canceling save");
                    return false; 
                }

            });

        });

        $w("#dataset2").onAfterSave(() => {
            quoteRequest(); 
            console.log("A new notification was sent to all contributors.");
            $w('#RequestForm').collapse();
            $w('#ErrorStrip').collapse();
            $w('#SuccessStrip').expand(); 
            $w("#header1").scrollTo(); 
        });
    });
});

```

---

<div class="post-metadata">

**Author:** ![bilonii](https://sea1.discourse-cdn.com/wix/user_avatar/forum.wixstudio.com/bilonii/32/15984_2.png) [@bilonii](https://forum.wixstudio.com/u/bilonii)\
**Post date:** [January 5, 2023, 9:21am UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/6 "2023-01-05T09:21:52Z")

</div>

**// Product Page**

```javascript
import { session } from 'wix-storage';
import wixLocation from 'wix-location';

$w.onReady(function() {
  const selectProduct = async () => {
    try {
      const product = await $w('#productPage1').getProduct();
      session.setItem('product', product._id);
      wixLocation.to('/quote');
    } catch (error) {
      console.error(error);
    }
  }

  // Handle the button click event
  $w('#Thebutton').onClick(event => selectProduct());
});

```

// notification.jsw

```javascript
import wixCrm from 'wix-crm-backend';

// Send a notification to all contributors
export function sendNotification() {
  wixCrm.notifications.notify(
    'New Order Requested! Check it out.',
    ['Browser', 'DashBoard', 'Mobile'],
    {
      title: 'New Order Requested',
      actionTitle: 'Check it out',
      actionTarget: { url: 'https://wix.com/dashboard/f0ad5b20-0264-4f0e-aa1b-b9058cb0956d/database/Request' },
      recipients: { role: 'All_Contributors' }
    }
  );
}

```

// Quote page

```javascript
import { sendNotification } from 'backend/notification';
import _wixCrm from 'wix-crm';
import { session } from 'wix-storage';
import wixData from 'wix-data';

$w.onReady(function () {
  const selectedProductId = session.getItem('product');

  // Filter the dataset to show only the selected product
  $w('#dataset3').setFilter(wixData.filter().eq('_id', selectedProductId))
    .then(() => {
      console.log(`The selected product is ${selectedProductId}`);
      $w('#RequestForm').expand();
      $w('#ErrorStrip').collapse();
    })
    .catch((error) => {
      console.error(error);
      $w('#RequestForm').collapse();
      $w('#ErrorStrip').expand();
    });

  // Handle the form submission
  $w('#RequestForm').onSubmit(async (event) => {
    try {
      const selectedProduct = $w('#dataset3').getCurrentItem();
      $w('#dataset2').setFieldValues({
        title: selectedProduct.name,
        productSerialNo: selectedProduct.sku,
        productImage: selectedProduct.mainMedia
      });

      const isValidFirstName =
      const isValidLastName = $w('#input2').valid;
      const isValidPhone = $w('#input3').valid;
      const isValidEmail = $w('#input4').valid;
      const isValidDetails = $w('#proddetail').valid;

      if (isValidDetails && isValidEmail && isValidPhone && isValidLastName && isValidFirstName) {
        await $w('#dataset2').save();
        sendNotification();
        console.log('A new notification was sent to all contributors.');
        $w('#RequestForm').collapse();
        $w('#ErrorStrip').collapse();
        $w('#SuccessStrip').expand();
        $w('#header1').scrollTo();
      } else {
        $w('#errortext').show();
        console.log('Canceling save');
      }
    } catch (error) {
      console.error(error);
    }
  });
});

```

If you get Error, show the error codes from console.

---

<div class="post-metadata">

**Author:** ![spark-c](https://avatars.discourse-cdn.com/v4/letter/s/50afbb/32.png) [@spark-c](https://forum.wixstudio.com/u/spark-c)\
**Post date:** [January 6, 2023, 3:06am UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/7 "2023-01-06T03:06:27Z")

</div>

There is a problem in this line

```javascript
 $w('#RequestForm').onSubmit(async (event) => { error: Property 'onSubmit' does not exist on type 'ColumnStrip'.

```

---

<div class="post-metadata">

**Author:** ![anon72313111](https://avatars.discourse-cdn.com/v4/letter/a/94ad74/32.png) [@anon72313111](https://forum.wixstudio.com/u/anon72313111)\
**Post date:** [January 27, 2023, 7:35pm UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/8 "2023-01-27T19:35:28Z")

</div>

I answered your message on Twitter.

---

<div class="post-metadata">

**Author:** ![Certified\_Code](https://sea1.discourse-cdn.com/wix/user_avatar/forum.wixstudio.com/certified_code/32/80179_2.png) [@Certified\_Code](https://forum.wixstudio.com/u/Certified_Code)\
**Post date:** [January 11, 2025, 7:24am UTC](https://forum.wixstudio.com/t/add-request-quote-button-after-run-the-code-problem/7333/9 "2025-01-11T07:24:29Z")

</div>

Hey @spark-c

It can be difficult to setup Request a quote with code. With [Request Quote for Stores](https://www.wix.com/app-market/request-quote-for-stores), you can do the same by simply adding the widget to product page. It comes with a pre-built form where you can collect lead info and view them in Wix dashboard.
