Insert missing records from another table and update timestamp?
Well - I dreamed up the following - now it's up to yo to try and 'break' it with your real data :)

set nocount on
declare @Stores table (Store varchar(100),Address varchar(100), Product varchar(100));
insert into @Stores values ('Walmart','123 Fake St','702640');
insert into @Stores values ('Walmart','123 Fake St','704651');
insert into @Stores values ('Walmart','123 Fake St','709999');
insert into @Stores values ('Target','456 Main St','789562');
insert into @Stores values ('Target','456 Main St','777898');
insert into @Stores values ('Target','456 Main St','723456');

declare @Scanned table (Timestamp Date,Store varchar(100), Address varchar(100), Product varchar(100));
insert into @Scanned values ('2016-10-06','Walmart','123 Fake St','702640');
insert into @Scanned values ('2016-10-06','Walmart','123 Fake St','704651');
insert into @Scanned values ('2016-10-06','Target','456 Main St','789562');

WITH StoreVisits
AS (
    SELECT DISTINCT TIMESTAMP
        ,Store
    FROM @Scanned
    )
SELECT a.TIMESTAMP
    ,b.Store
    ,b.Address
    ,b.product
    ,CASE 
        WHEN c.Product IS NULL
            THEN 'not-scanned'
        ELSE 'scanned'
        END
FROM Storevisits a
JOIN @Stores b ON b.store = a.store
LEFT JOIN @Scanned c ON c.Store = b.store
    AND c.Address = b.Address
    AND c.Product = b.Product
    AND C.TIMESTAMP = A.TIMESTAMP
WHERE c.product IS NULL


It produces the following result set