Internal Online Store Database Design Issue
You'll can solve the problem by adding more linking tables. You can alter your design to resemble something like this:

CREATE TABLE Items
(
    itemID INT PRIMARY KEY IDENTITY(1,1)
    ,itemDetails NVARCHAR(100)
)
GO
CREATE TABLE Regions
(
    regionID INT PRIMARY KEY IDENTITY(1,1)
    ,regionName NVARCHAR(100)
)
GO
CREATE TABLE AddOns
(
    addOnID INT PRIMARY KEY IDENTITY(1,1)
    ,addOnDetails NVARCHAR(100)
)
GO
CREATE TABLE ItemAddOns
(
    itemAddOnID INT PRIMARY KEY IDENTITY(1,1)
    ,itemID INT
    ,addOnID INT
    ,CONSTRAINT [FK_ItemAddons_Items] FOREIGN KEY (itemID) REFERENCES dbo.Items (itemID)
    ,CONSTRAINT [FK_ItemAddons_AddOns] FOREIGN KEY (addOnID) REFERENCES dbo.AddOns (addOnID)
)
GO
CREATE TABLE ItemAvailability
(
     itemAvailabilityID INT PRIMARY KEY IDENTITY(1,1)
    ,itemID INT 
    ,regionID INT
    ,cost INT
    ,CONSTRAINT [FK_ItemAvailability_Regions] FOREIGN KEY (regionID) REFERENCES dbo.Regions (regionID)
    ,CONSTRAINT [FK_ItemAvailability_Items] FOREIGN KEY (itemID) REFERENCES dbo.Items (itemID)  
)
GO
CREATE TABLE AddOnAvailability
(
    addOnAvailabilityID INT PRIMARY KEY IDENTITY(1,1)
    ,addOnID INT 
    ,regionID INT
    ,cost INT
    ,CONSTRAINT [FK_AddOnAvailability_Regions] FOREIGN KEY (regionID) REFERENCES dbo.Regions (regionID)
    ,CONSTRAINT [FK_AddOnAvailability_AddOns] FOREIGN KEY (addOnID) REFERENCES dbo.AddOns (addOnID)
) 


Something like that setup will allow you to easily query the cost for any Items and AddOns by any region. If AddOns are not restricted to particular Items you can omit the ItemAddOns table.