Another day… another magento problem!
I was asked to look into a problem with an automated stock level update script not updating the stock levels. This update script was using the Magento API and on the face of things everything looked ok as the script ran without any errors, the product prices got updated but the stock levels never changed.
After a bit of investigating I found the problem was caused by an incorrect usage of the Magento API and the original update statement was similar to:-
$proxy->call($sessionId, 'product.update', array('PRD0001', array( 'price'=>12.50, 'qty'=>12, 'is_in_stock'=>1, 'discontinued'=>0 ) ) );
However, the update of the is_in_stock and qty fields is not done against the product (via product.update) but against the product inventory (via product_stock.update) so this code had to be updated to the following:-
continue reading…