views:

62

answers:

2

Hello , i get this error when trying to submit the order in the shopping cart : Not all products are available in the requested quantity

I have set the quantity to 1000 and made it in stock ... I have just installed magento and some other extensions , , so what i did wrong ,,

+1  A: 

I'd be thinking what Will suggested and you obviously checked.

Unfortunately, this is probably one of those situations where you'll need to debug the core code to find out what's going on. Setup your local dev environment with xdebug (there are some good tutorials on how to do this depending on your OS, IDE and webserver but I find that Netbeans and apache2.2 work beautifully together) and then set a breakpoint in CartController.php inside updatePostAction() and trace it through.

Feel free to post back what you find, it might be useful to others.

Cheers, JD

Jonathan Day
Jonathan, this might sound weird, but can you detail your debug process a little more? For example, why the breakpoint is inserted and just what code you're using? I'm an intermediate PHP coder, but I've never really been able to thoroughly understand how to troubleshoot large projects and MVC-type things like Mage.
melee
+1  A: 

OK, I thought I'd better add a new answer so that I can add links and format code, etc. Apologies for the duplicate.

Well, learning to debug your code is definitely a big step up, but one that will provide a huge amount of insight into what the code is actually doing rather than relying on echo and print_r! :) Particularly for complex and genuinely object-oriented code where you jump around between objects all the time.

Firstly, make sure you're using a proper IDE. Again, I recommend Netbeans, but Eclipse will work. All links from here on will assume Netbeans.

There's a great tutorial on what debugging is with an example here on the Netbeans wiki. There are also setup guides for OSX, Windows and Ubuntu, so choose your poison!

The reason why I suggested the CartController.php and updatePostAction is because you can read from Magento's URL structure what module, controller and action are being called. So, if you inspect the form in the cart page (/checkout/cart), you'll see that the form submits to /checkout/cart/updatePost/, which means Mage_Checkout is the module, CartController is the controller and updatePostAction is the method. So when the user hits the "Update Shopping Cart" button, control (and the contents of the cart) will be passed to that method, hitting your breakpoint. You could also choose addAction in the same class to catch it as it is added from the product page.

Once you're in the active debugging session, inspect the variables and add watches (if necessary) to observe what's going on. Use your F8 key to move through and F7 to dive to interesting calls.

Debugging will definitely take you at least a day to get your head around the process, but the investment is definitely worthwhile, it will make you a much better developer.

Good luck! JD

Jonathan Day