The ShopItem API manages the product stock en price updates on Beslist.nl. Only products that has a change in the stock and/or price are being updated using an Observer. After a product change the item is are being invalidated and then prepared for an update. If the observer/event is not triggered (eg by database updates outside of Magento, or by modules that are directly connected) then an item will not be invalidated.
These items can be found in the decided_items table and can then be put on needs_update 1. The table is filled when the feed is generated, so you already catch that part.
After an item has been invalidated, this will be transferred to Beslist by means of a cron and at that moment the data will also be refreshed again.
In the case that changes are made directly in the database, the product change is not seen by the extension. Herefore we've implemented the option to invalidate and update all products once a day so that everything can still be invalidated and updated in a case like this, under "External Stock Tools".
Products ordered via the store are therefore neatly validated and updated at Beslist, but if the inventory is updated directly in the database, it is not planned for an update.
Within a Magento change we use the following events;
1) Event: cataloginventory_stock_item_save_after
At: $ item-> getStockStatusChangedAuto () => stock status becomes different
At: $ item-> getQtyCorrection () => number becomes different
2) Event: catalog_product_save_before
At: $ product-> hasDataChanges () => When data is modified from product
3) Event: sales_model_service_quote_submit_before
All items within the quote (cart) are invalidated (both simple and config)
If your using an external Database tool like Magmi you can hook up the tool regarding the database import to catch this.