// backend/http-functions.js import { response } from 'wix-http-functions'; import { addToCurrentCart, updateCurrentCart } from 'wix-ecom-backend/current-cart'; import { createCheckoutFromCurrentCart } from 'wix-ecom-backend/current-cart'; import { getCheckoutUrl } from 'wix-ecom-backend/checkout'; // GET /_functions/metaCheckout?products=123:2,456:1 export async function get_metaCheckout(request) { try { const url = new URL(request.url); const raw = url.searchParams.get('products'); // Meta sends URL-encoded; Wix gives you raw here if (!raw) return badRequest('Missing products'); // 1) Clear the cart (set to empty) await updateCurrentCart({ lineItems: [] }); // clears any stale items // 2) Parse items like "123:2,456:1" const lineItems = []; decodeURIComponent(raw).split(',').forEach(pair => { const [idStr, qtyStr] = pair.split(':'); const productId = (idStr || '').trim(); const quantity = Number(qtyStr); if (productId && quantity > 0) { lineItems.push({ quantity, catalogReference: { // Wix Stores appId (keep as-is) appId: '1380b703-ce81-ff05-f115-39571d94dfcd', catalogItemId: productId // If you use variants, include variant info per your catalog setup. } }); } }); if (!lineItems.length) return badRequest('No valid products'); // 3) Add all items to the current visitor's cart await addToCurrentCart({ lineItems }); // 4) Create a checkout based on the current cart const { checkout } = await createCheckoutFromCurrentCart(); // 5) Get the native Wix checkout URL and 302 redirect the shopper there const { checkoutUrl } = await getCheckoutUrl(checkout._id); return redirect302(checkoutUrl); } catch (err) { console.error('metaCheckout error:', err); return response({ status: 500, headers: { 'Content-Type': 'application/json' }, body: { error: 'server_error' } }); } } function badRequest(msg) { return response({ status: 400, headers: { 'Content-Type': 'application/json' }, body: { error: msg } }); } function redirect302(location) { return response({ status: 302, // temporary redirect headers: { Location: location } }); }
top of page

Contact Us

If you have questions or special inquiries, you're welcome to contact us or fill out the form below!

Monday 9 AM-5 PM

Tuesday 10 AM-6 PM

Wednesday 9 AM-5 PM

Thursday 10 AM-7 PM

Friday 10 AM-6 PM

Saturday 10 AM-4 PM

Sunday Closed
 

☎️ 201 564 7521

💌 wecare@getbare.com

bare--3308.jpg
BARE-07544.jpg
bottom of page