Hello, I coded a website that allows you to pick from a list of products a quantity for each item then add them all at once
to your cart, it does work kind of…
For example, it works like a Grocery list in that you pick the quantity of each item you want. like below;
Oranges x 5
Apples x 3
Carrots x 6
Lettuce x 2
Popcorn x 1
However when you hit Buy Now sometimes you get
Oranges x 5
Carrots x 6
Popcorn x 1
And you are missing the Lettuce and Apples you selected.
If you refresh then try again you might get all the items you chose then next time only two of what you selected.
It makes me feel like I need to delay the addtocart function as it does not have enough time to add all the products but not sure how.
I am sure there is a more efficient way to code this but I got it to work besides it being random which products actually add.
A few notes.
-
The log does say all the products are added.
-
I do have onchange events for each qty selector.
-
The product ID is correct for each item.
-
The more different items I add the worst it is If I just chose two items like Carrots and Apples it will work every time.
import { cart } from 'wix-stores';
$w.onReady(function () {
$w("#bruno").onChange(CartButtonEnableDisable);
$w("#drooling").onChange(CartButtonEnableDisable);
$w("#conniption").onChange(CartButtonEnableDisable);
$w("#cookiedoh").onChange(CartButtonEnableDisable);
$w("#dirtyoh").onChange(CartButtonEnableDisable);
$w("#doublefudge").onChange(CartButtonEnableDisable);
$w("#chocojunkie").onChange(CartButtonEnableDisable);
$w("#elegangsta").onChange(CartButtonEnableDisable);
$w("#freeloader").onChange(CartButtonEnableDisable);
$w("#testy").onChange(CartButtonEnableDisable);
$w("#cappuccino").onChange(CartButtonEnableDisable);
$w("#golddigger").onChange(CartButtonEnableDisable);
$w("#nicebuns").onChange(CartButtonEnableDisable);
$w("#karen").onChange(CartButtonEnableDisable);
$w("#fritz").onChange(CartButtonEnableDisable);
$w("#ohfudger").onChange(CartButtonEnableDisable);
$w("#minty").onChange(CartButtonEnableDisable);
$w("#dolce").onChange(CartButtonEnableDisable);
$w("#dang").onChange(CartButtonEnableDisable);
$w("#kiddo").onChange(CartButtonEnableDisable);
});
function CartButtonEnableDisable() {
let donut1=Number($w("#bruno").value);
let donut2=Number($w("#drooling").value);
let donut3=Number($w("#conniption").value);
let donut4=Number($w("#cookiedoh").value);
let donut5=Number($w("#dirtyoh").value);
let donut6=Number($w("#doublefudge").value);
let donut7=Number($w("#chocojunkie").value);
let donut8=Number($w("#elegangsta").value);
let donut9=Number($w("#freeloader").value);
let donut10=Number($w("#testy").value);
let donut11=Number($w("#cappuccino").value);
let donut12=Number($w("#golddigger").value);
let donut13=Number($w("#nicebuns").value);
let donut14=Number($w("#karen").value);
let donut15=Number($w("#fritz").value);
let donut16=Number($w("#ohfudger").value);
let donut17=Number($w("#minty").value);
let donut18=Number($w("#dolce").value);
let donut19=Number($w("#dang").value);
let donut20=Number($w("#kiddo").value);
let totalDonuts = (donut1 + donut2 + donut3 + donut4 + donut5 + donut6 + donut7 + donut8 + donut9 + donut10 + donut11 + donut12 + donut13 + donut14 + donut15 + donut16 + donut17 + donut18 + donut19 + donut20)
if((totalDonuts >= 6)){
$w('#buyNow').enable();
} else $w('#buyNow').disable();
console.log(totalDonuts)
}
export function buyNow_click(event) {
let brunoqty=Number($w("#bruno").value);
let droolingqty=Number($w("#drooling").value);
let conniptionqty=Number($w("#conniption").value);
let cookiedohqty=Number($w("#cookiedoh").value);
let dirtyohqty=Number($w("#dirtyoh").value);
let fudgeqty=Number($w("#doublefudge").value);
let chocojunkieqty=Number($w("#chocojunkie").value);
let elegangstaqty=Number($w("#elegangsta").value);
let freeloaderqty=Number($w("#freeloader").value);
let testyqty=Number($w("#testy").value);
let cappucinoqty=Number($w("#cappuccino").value);
let golddiggerqty=Number($w("#golddigger").value);
let nicebunsqty=Number($w("#nicebuns").value);
let karenqty=Number($w("#karen").value);
let fritzqty=Number($w("#fritz").value);
let fudgerqty=Number($w("#ohfudger").value);
let mintyqty=Number($w("#minty").value);
let dolceqty=Number($w("#dolce").value);
let dangqty=Number($w("#dang").value);
let kiddoqty=Number($w("#kiddo").value);
let bruno="4bc810fb-97e5-640a-a5b6-94126092ef96"
let drooling="554f5ca5-db54-c838-49ed-ffa168190e70"
let conniption="8601b979-85bd-0630-65af-64e908fee1f7"
let cookiedoh="4b383860-8b9a-4d39-1496-28d1e088728b"
let dirtyoh="e5e0b76a-175b-d903-b37d-8b7d5c68d2f1"
let fudge="1946d03d-9999-19e6-40d6-60d49d969a74"
let chocojunkie="b5bd3b2a-301b-13db-98a9-ca1360e7572a"
let elegangsta="0e21a287-c9b4-34d1-9625-3d1f04055131"
let freeloader="0551f7ca-f91d-cc8f-bd84-454b0669a7da"
let testy="4763505c-cd2e-8ddf-758e-560d00caf0e8"
let cappucino="6c869f62-b2b2-eb5c-316c-9b6e1de7bbfa"
let golddigger="b09b80db-ab5f-4017-5174-c14810e53fc5"
let nicebuns="d741a62b-5f83-23a3-5ecc-5243c93167cf"
let karen="19449e24-8945-a3c2-9a24-2a51c318a963"
let fritz="9fb7a881-d670-8cff-97cc-e1085a7fd3ed"
let fudger="ff63bb84-815f-5330-667f-9850948d6034"
let minty="9850e303-f282-ddfe-2d8f-4982d7c45fcf"
let dolce="5c528992-70da-0e1f-47f2-875a6634a510"
let dang="67dcdbc0-a8d2-adac-381d-13eead20822b"
let kiddo="56c0e5f6-77bc-7eee-3bcf-ea193a2c7318"
$w("#shoppingCartIcon1").addToCart(bruno,brunoqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(drooling,droolingqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(conniption,conniptionqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(cookiedoh,cookiedohqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(dirtyoh,dirtyohqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(fudge,fudgeqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(chocojunkie,chocojunkieqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(elegangsta,elegangstaqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(freeloader,freeloaderqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(testy,testyqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(cappucino,cappucinoqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(golddigger,golddiggerqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(nicebuns,nicebunsqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(karen,karenqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(fritz,fritzqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(fudger,fudgerqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(minty,mintyqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(dolce,dolceqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(dang,dangqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
$w("#shoppingCartIcon1").addToCart(kiddo,kiddoqty)
.then( () => {
console.log("Product added");
} )
.catch( (error) => {
console.log(error);
} );
}
Any suggestions on how to either delay it so it has time to add all selections to cart or how to make this better would be greatly appreciated!
Thanks!
