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
Help me check the coding part for men what is wrong with them:
- Product page:
- Backend:
- Quote page:
I really need help, so anyone could help me out, I would thank you from the bottom of my heart:pray:t3:


I would check the implementation of your save call as indicated by the error. Here are the API docs for dataset save
You may also reach out to code queen for support with their tutorial if they have exposed a way to contact.
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
Hi! You can post the code here that i can edit it. Screenshots not the best way for next time 
Thank you very very much for helping out! 

//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);
});
});
});
//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"}
}
);
}
//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();
});
});
});
// Product Page
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
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
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.
There is a problem in this line
$w('#RequestForm').onSubmit(async (event) => { error: Property 'onSubmit' does not exist on type 'ColumnStrip'.
I answered your message on Twitter.
Hey @spark-c
It can be difficult to setup Request a quote with code. With 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.