Troubleshooting Wix Studio Cart Errors: A Deep Dive into 'CANT_ADD_TO_CART_WITHOUT_ITEMS' and Velo Solutions

Understanding the "CANT_ADD_TO_CART_WITHOUT_ITEMS" Error in Wix Studio

The "CANT_ADD_TO_CART_WITHOUT_ITEMS data: {} message when data is there!" error in Wix Studio, as discussed in the Wix Studio community forum, indicates a problem with how items are being added to the cart using Velo code, specifically the addToCurrentCart function. This error typically arises when the cart is not receiving the expected data structure or when required fields are missing or incorrect. The original poster was attempting to add items from a CMS collection to the cart, utilizing the wix-ecom-backend API.

Analyzing the Velo Code and Potential Issues

The user's problem centered around passing CMS items into the Wix Cart using Velo's backend addToCurrentCart function. The provided code snippet, based on the Velo API example, seemed logically sound but resulted in the aforementioned error. Here's the code in question:

export const myAddToCurrentCart = webMethod( Permissions.Anyone, async (productId, videoData, videoOptions) = {
 console.log("inside myAddToCurrentCart Cart.web videoData is", videoData);
 console.log("inside myAddToCurrentCart productId ", productId);
 console.log("inside myAddToCurrentCart Cart.web videoOptions is", videoOptions);

Several factors can contribute to this issue:

  • Data Structure Mismatch: The addToCurrentCart function expects a specific data structure. Ensure that the productId, videoData, and videoOptions are correctly formatted and contain the necessary information (e.g., quantity, price, variant IDs).
  • Missing Required Fields: Review the Wix Ecommerce API documentation for addToCurrentCart to identify all mandatory fields. Missing fields can cause the request to fail silently or return this generic error.
  • Asynchronous Issues: Ensure that the data being passed to addToCurrentCart is fully loaded and available before the function is called. Asynchronous operations, such as fetching data from the CMS, might not be complete when the function is executed.
  • Permissions: Double-check that the necessary permissions are set correctly for the webMethod. Insufficient permissions can prevent the function from executing properly.
  • Catalog Item ID: Verify that the productId being passed corresponds to the correct catalogItemID in the Wix catalog.

Troubleshooting Steps and Solutions

To resolve the "CANT_ADD_TO_CART_WITHOUT_ITEMS" error, follow these steps:

1. Inspect the Data Being Passed

Use console.log statements to inspect the contents of productId, videoData, and videoOptions immediately before calling addToCurrentCart. This will help you identify any missing or incorrect data. Pay close attention to data types and formatting.

2. Verify the Data Structure

Consult the Wix Ecommerce API documentation for addToCurrentCart to understand the expected data structure. Ensure that your data matches this structure exactly. The API documentation provides examples of the required format.

3. Implement Error Handling

Wrap the addToCurrentCart call in a try...catch block to catch any errors that might occur. Log the error message to the console for further investigation. This can provide more specific information about the cause of the error.

try {
 const result = await wixEcomBackend.currentCart.addToCurrentCart(productId, quantity, options);
 console.log("Item added to cart:", result);
} catch (error) {
 console.error("Error adding item to cart:", error);
}

4. Ensure Asynchronous Operations are Complete

If you are fetching data from the CMS or performing other asynchronous operations, ensure that these operations are complete before calling addToCurrentCart. Use async/await or Promises to handle asynchronous operations correctly.

5. Check Permissions

Verify that the Permissions.Anyone setting is appropriate for your use case. Ensure that the necessary permissions are granted to the function.

6. Validate Catalog Item ID

Confirm that the productId (which represents the catalogItemID) exists in the Wix catalog and is active. An incorrect or inactive catalogItemID will prevent the item from being added to the cart.

Additional Tips for Wix Store Owners and Developers

  • Use the Wix Data Hooks: Consider leveraging Wix Data Hooks to trigger actions when items are added to or removed from the cart.
  • Test Thoroughly: Test your code thoroughly with different products and scenarios to ensure that it works correctly in all cases.
  • Consult Wix Documentation: Refer to the official Wix Ecommerce API documentation for the most up-to-date information and examples.
  • Engage with the Wix Community: The Wix Studio community forum is a valuable resource for troubleshooting and getting help from other developers.

By following these steps and carefully analyzing the data being passed to addToCurrentCart, you should be able to resolve the "CANT_ADD_TO_CART_WITHOUT_ITEMS" error and successfully add items from your CMS collection to the Wix cart.

Start with the tools

Explore migration tools

See options, compare methods, and pick the path that fits your store.

Explore migration tools