Adding to shopping cart thru the API results in Out Of Stock

Posted by Community Admin on 05-Aug-2018 00:16

Adding to shopping cart thru the API results in Out Of Stock

All Replies

Posted by Community Admin on 13-Jun-2013 00:00

I'm probably missing something obvious... when I add a product to the shopping cart thru the API, it comes in with an error message of "Out Of Stock".  

Code snippet is below.  I don't know what to do with the "OptionsDetails " parameter in the addToCart ... that may be part of the problem.

I've tried with several different SKU's, even ones that I "shopped into the cart" without problem.

So, what am I supposed to do with the OPtionsDetails parameter, and why does it come in with the OutOfStock error?

Any insight much appreciated!
-tim

--SNIP
Product LessThanMinItem = GetProductBySku("F127479");
OptionsDetails od = new OptionsDetails();
ordersManager.AddToCart(cartOrder, LessThanMinItem, od, 1); // add the item to the cart
odersManager.SaveChanges(); 
--ENd Snip

Posted by Community Admin on 13-Jun-2013 00:00

Hi Tim,

This is probably because you are adding the Master Version of the product instead of the Live Version. Since version 6.0 we have introduced content lifecycle to Ecommerce and passing the Master Version typically results in giving you this inventory message. Here is the code that you need to use the only difference is calling LifeCycle.GetLive, and in my example id is the current id that results in your error message right now.

CartOrder currentCartOrder = this.TryGetShoppingCartForUser(orderManager);
Product productMaster = CatalogManager.GetProduct(new Guid(id));
 
Product product = CatalogManager.Lifecycle.GetLive(productMaster) as Product;
 
OptionsDetails optionDetails = new OptionsDetails();
                 
OrdersManager.AddToCart(currentCartOrder, product, optionDetails, 1);


Have in mind that the TryGetShoppingCartForUser is an extension method that we already have, but to use it you would need to implement IOrdersControl in your class. I would recommend this as a way of getting the current CartOrder as opposed to writing your own method, as it makes better use of our code.

Hope this helps!
Regards,
Svetla
Telerik
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

This thread is closed