Index: up_multi.module
===================================================================
--- up_multi.module	(revision 1387)
+++ up_multi.module	(working copy)
@@ -246,8 +246,20 @@
 }
 
 function up_multi_stock_adjust($sku, $qty, $location) {
+    foreach (module_implements('up_multi_stock_adjust') as $module) {
+        //Invoke function directly so we can pass by reference.
+        $function = $module . '_up_multi_stock_adjust';
+        $function($sku, $qty, $location);
+    };
+
+    // If a record for this sku in this location does not yet exist,
+    // create it
+    if (! db_result(db_query("SELECT COUNT(store_id) FROM {up_store_stock} WHERE model = '%s' AND store_id = %d", $sku, $location))) {
+        db_query("INSERT INTO {up_store_stock} (store_id, model, stock_level) VALUES ('%s', %d, 0)", $location, $sku);
+    };
+
     db_query("UPDATE {up_store_stock} SET stock_level = stock_level + %d WHERE model = '%s' AND store_id = '%d'", $qty, $sku, $location);
-    return db_result(db_query("SELECT stock_level FROM up_store_stock WHERE model = '%s' AND store_id = %d", $sku, $location));
+    return db_result(db_query("SELECT stock_level FROM {up_store_stock} WHERE model = '%s' AND store_id = %d", $sku, $location));
 }
 
 function up_multi_get_price($nid, $location) {
