A powerup is an item that you can pick up with a full inventory, like a tome of power or bundle of lumber. If all items are powerups when you drop them from a creep/boss/quest or buy them from a store then you can pick them up no problem even with a full inventory.
Then all you have to do is run a trigger to check from the corresponding item in the acquiring unit's inventory and either add that item to the inventory (if it is not already there) or increase the charge of the item (if it is).
How do you make the powerup 'correspond' with the non powerup? Since wc3 doesn't allow for two dimensional arrays you have to use parallel arrays and fill them at initialization or shortly thereafter.
If you want to be able to look up corresponding items directly (so that you don't have to search the entire array ever time a unit picks up an item) I would recommend using the item's health as the array index. Make sure units in your map can't attack items or make the item invulnerable so that they can't attack an item and then pick it up to get a different one.
Does that clear it up for you a bit?