initial commit: migrated from FossilSCM to git

This commit is contained in:
Brian Sakal
2022-03-23 14:44:28 -05:00
parent 0e9635541c
commit 7a0962831b
391 changed files with 105116 additions and 0 deletions
Submodule
+1
Submodule server/bitser added at 1d3ebe04cf
+827
View File
@@ -0,0 +1,827 @@
local DB = require('./piazza-lmdb')
local db = DB.init()
local user = require('./models/user')
local item = require('./models/item')
user.setdb(db)
item.setdb(db)
user.new({
username = 'brian',
password = 'buginoO1$',
firstname = 'Brian',
lastname = 'Sakal',
is_admin = true
})
user.new({
username = 'guest',
password = 'buginoo',
firstname = 'Guest',
lastname = 'Beast'
})
user.new({
username = 'w',
password = 'w',
firstname = 'Test',
lastname = 'User',
is_admin = true
})
item.new({subtype='frame', brand='BubbleGum', model='BB200', color='C2', color_description='Matte Black with Red tips', size='46-16-127', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB200', color='C3', color_description='Matte Brown', size='46-16-127', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB200', color='C4', color_description='Frosted Grey', size='46-16-127', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB201', color='C1', color_description='Matte Blue', size='47-16-127', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB201', color='C2', color_description='Matte Lavender', size='47-16-127', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB202', color='C1', color_description='Matte Light Brown -Blue', size='47-16-128', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB202', color='C2', color_description='Matte Brown', size='47-16-128', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB202', color='C3', color_description='Matte Navy Blue with Blue temples', size='47-16-128', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB203', color='C1', color_description='Matte Blue', size='47-16-125', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB203', color='C2', color_description='Matte Black with Orange temple tips', size='47-16-125', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB203', color='C3', color_description='Matte Purple with Pink temple tips', size='47-16-125', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB204', color='C1', color_description='Matte Burgundy', size='47-15-128', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB204', color='C2', color_description='Matte Moss Grey with Grey temples', size='47-15-128', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB204', color='C3', color_description='Matte Dark Grey with blue temples', size='47-15-125', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB204', color='C4', color_description='Matte Brown', size='47-15-125', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB204', color='C5', color_description='Matte Light Grey', size='47-15-125', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB204', color='C6', color_description='Matte Navy Blue', size='47-15-125', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB204', color='C7', color_description='Matte Black with Red temples', size='47-15-125', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB205', color='C1', color_description='Matte Brown', size='49-15-128', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB205', color='C2', color_description='Matte Black with Orange temples', size='49-15-128', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB205', color='C3', color_description='Matte Navy Blue', size='49-15-128', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB206', color='C1', color_description='Matte Purple with Lavender temples', size='47-16-131', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB206', color='C2', color_description='Matte Red with Black temples', size='47-16-131', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB207', color='C1', color_description='Matte Lavender with Purple temples', size='46-16-131', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB207', color='C2', color_description='Matte Grey with Orange temples', size='46-16-131', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB207', color='C3', color_description='Matte Off White with Red temples', size='46-16-131', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='BB207', color='C4', color_description='Matte Black with Black temples', size='46-16-131', material='TR90', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC010', color='C45', color_description='Shiny Lavender/Matte Pink and Purple temples', size='46-16-125', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC010', color='C80', color_description='Shiny Blue/Matte Light Blue temples', size='46-16-125', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC010', color='C86', color_description='Shiny Black/Matte Light Blue temples', size='46-16-125', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC015', color='C31', color_description='Shiny Black/Neon Green with Green and Black temples', size='45-15-125', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC015', color='C39', color_description='Shiny Black/pink/grey with Pink and Black temples', size='45-15-125', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC015', color='C80', color_description='Shiny Blue with Blue temples', size='45-15-125', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC017', color='C53', color_description='Light Purple/Grey with Purple and Grey temples', size='49-16-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC017', color='C55', color_description='Pink with Pink temples', size='49-16-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC017', color='C80', color_description='Blue with Blue and Light Blue temples', size='49-16-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC019', color='C3', color_description='Black and Red with Black and Red temples', size='48-16-130', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC019', color='C47', color_description='Lime Green/White/Teal with White and Teal temples', size='48-16-130', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC019', color='C80', color_description='Blue/Light Blue with Blue temples', size='48-16-130', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC027', color='C22', color_description='Navy Blue/Light Blue with Blue and Grey temples', size='48-16-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC027', color='C45', color_description='Shiny Lavender/Pink with Pink and Light Purple temples', size='48-16-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC027', color='C75', color_description='Shiny Orange/Yellow with Orange and Yellow temples', size='48-16-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC028', color='C3', color_description='Black and Red', size='49-17-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC028', color='C33', color_description='Dark Hot Pink', size='49-17-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='SC028', color='C80', color_description='Shiny Blue/Lt. Blue with Blue and Light Blue temples', size='49-17-135', material='TR90 and Silicone', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR708', color='C1', color_description='Matte Black with Black temples', size='40-15-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR708', color='C14', color_description='Matte Powder Blue with Blue temples', size='40-15-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR708', color='C15', color_description='Matte Light Purple with Light Purple temples', size='40-15-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR819', color='C1', color_description='Matte Black with Black temples', size='45-16-120', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR819', color='C14', color_description='Matte Powder Blue with Blue temples', size='45-16-120', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR819', color='C15', color_description='Matte Lavender with Lavender temples', size='45-16-120', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR869', color='C8', color_description='Matte Red with Red temples', size='44-16-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR869', color='C14', color_description='Matte Baby Blue with Blue temples', size='44-16-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR869', color='C15', color_description='Matte Lt. Purple with Purple temples', size='44-16-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR911', color='C14', color_description='Matte Baby Blue with Blue temples', size='44-15-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR911', color='C15', color_description='Matte Lavender with Lavender temples', size='44-15-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR912', color='C15', color_description='Matte Lavender with Lavender temples', size='43-16-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR912', color='C18', color_description='Matte Grey with Grey temples', size='43-16-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR936', color='C15', color_description='Matte Lavender with Lavender temples', size='44-16-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR936', color='C16', color_description='Matte Brown with Brown temples', size='44-16-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='TR936', color='C18', color_description='Matte Grey with Grey temples', size='44-16-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='S3594100', color='C14', color_description='Matte Baby Blue with Blue temples', size='41-15-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='BubbleGum', model='S3594100', color='C15', color_description='Matte Lavender with Lavender temples', size='41-15-115', material='TR90 | Includes elastic adjustable holder', price_silver=15, price_gold=12, description_short='TR90 optical frame for kids in durable material', categories={'Bubble Gum','Collections Catalog','Exclusive Labels','Kids','Optical Frames','Plastic','TR90 & Silicone'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2035', color='C1', color_description='Black and Gold', size='51-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2035', color='C2', color_description='Demi and Gold', size='51-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2035', color='C4', color_description='Black and Silver', size='51-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2036', color='C1', color_description='Black and Silver', size='50-19-142', material='Acetate and Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate and Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2036', color='C2', color_description='Multi Blue-Brown and Silver', size='50-19-142', material='Acetate and Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate and Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2036', color='C4', color_description='Black and Gold', size='50-19-142', material='Acetate and Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate and Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2039', color='C1', color_description='Black and Silver', size='55-17-145', material='Acetate and Metal', price_silver=18, price_gold=14, description_short='Unisex optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2041', color='C1', color_description='Black', size='52-18-143', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2041', color='C3', color_description='Blue', size='52-18-143', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2041', color='C4', color_description='Crystal Red', size='52-18-143', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2105', color='C1', color_description='Black and Gold', size='53-18-140', material='Acetate and Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate and Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2105', color='C2', color_description='Demi Amber and Gold', size='53-18-140', material='Acetate and Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate and Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='KD YC2105', color='C3', color_description='Caramel and Silver', size='53-18-140', material='Acetate and Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate and Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4170', color='2001', color_description='Ebony and Gold | 55-16-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4170', color='2007', color_description='Burgundy and Gold | 55-16-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4170', color='2022', color_description='Violet and Gold | 55-16-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4170', color='2031', color_description='Copper and Gold | 55-16-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4181', color='2001', color_description='Ebony and Gold | 53-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4181', color='2022', color_description='Violet and Gold | 53-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4181', color='2031', color_description='Copper and Gold | 53-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4205', color='2007', color_description='Red and Gold | 53-16-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4205', color='2022', color_description='Violet and Gold | 53-16-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='BV 4205', color='2031', color_description='Copper and Gold | 53-16-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='GY 7053', color='C01', color_description='Ebony and Gold | 53-15-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='GY 7053', color='C02', color_description='Copper and Gold | 53-15-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='GY 7053', color='C03', color_description='Violet and Gold | 53-15-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='8181', color='C03', color_description='Ebony and Silver | 53-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Mens optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='8181', color='C04', color_description='Gunmetal and Silver | 53-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Mens optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='8181', color='C05', color_description='Copper and Gold | 53-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Mens optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='8182', color='C02', color_description='Ebony and Silver | 52-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Mens optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='8182', color='C05', color_description='Copper and Gold | 52-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Mens optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='8184', color='C2', color_description='Ebony and Silver | 54-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Mens optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='8184', color='C3', color_description='Ebony and Gunmetal | 54-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Mens optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='8184', color='C4', color_description='Brown and Silver | 54-17-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Mens optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='1802', color='C3', color_description='Copper and Gold | 53-20-138', material='Monel Metal', price_silver=18, price_gold=14, description_short='Unisex optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='1802', color='C5', color_description='Navy Blue and Silver | 53-20-138', material='Monel Metal', price_silver=18, price_gold=14, description_short='Unisex optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 6821', color='C1',color_description='Black', size='53-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 6821', color='C2',color_description='Brown Multi', size='53-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 6821', color='C5',color_description='Lavender Multi', size='53-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='P7003', color='C1', color_description='Black and Silver details | 55-16-142', material='Acetate', price_silver=18, price_gold=14, description_short='Unisex optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='P7003', color='C2', color_description='Havanna and Gold details | 55-16-142', material='Acetate', price_silver=18, price_gold=14, description_short='Unisex optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='TF2192', color='C1', color_description='Ebony and Gold | 53-18-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='TF2192', color='C2', color_description='Copper and Gold | 53-18-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='TF2192', color='C4', color_description='Burgundy and Gold | 53-18-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='TF2192', color='C5', color_description='Purple and Silver | 53-18-140', material='Monel Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='WD4003', color='C2', color_description='Lavender-Grey Multi', size='53-15-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='WD4003', color='C4', color_description='Pearl-Grey Multi', size='53-15-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='WD4003', color='C6', color_description='Brick-Brown Multi', size='53-15-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='RD377', color='C2', color_description='Havanna and Gold details | 53-17-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='RD377', color='C3', color_description='Grey marble and Gold details | 53-17-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='RD377', color='C5', color_description='Burgundy marble and Gold details | 53-17-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='RD377', color='C7', color_description='Blue marble and Gold details | 53-17-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 650', color='C1', color_description='Honey-Aqua and Gold details', size='54-15-145', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 650', color='C2', color_description='Olive-Caramel and Gold details', size='54-15-145', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 650', color='C3', color_description='Violet-Lavender multi and Gold details', size='54-15-145', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 651', color='C1', color_description='Honey-Aqua and Gold details', size='53-16-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 651', color='C2', color_description='Olive-Caramel and Gold details', size='53-16-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 651', color='C3', color_description='Violet-Lavender multi and Gold details', size='53-16-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 652', color='C1', color_description='Black and Gold details', size='53-15-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 652', color='C2', color_description='Purple and Gold details', size='53-15-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 652', color='C3', color_description='Beige and Gold details', size='53-15-135', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 681', color='C2', color_description='Graffite Grey and Silver | 50-19-147', material='Metal and Plastic', price_silver=18, price_gold=14, description_short='Unisex optical frame, Metal and plastic', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal and plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 681', color='C2', color_description='Light Grey and Silver | 50-19-147', material='Metal and Plastic', price_silver=18, price_gold=14, description_short='Unisex optical frame, Metal and plastic', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal and plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 681', color='C4', color_description='Matte Brown and Gold | 50-19-147', material='Metal and Plastic', price_silver=18, price_gold=14, description_short='Unisex optical frame, Metal and plastic', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal and plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 683', color='C2', color_description='Matte Copper and Gold details', size='54-15-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 683', color='C3', color_description='Matte Purple and Gold details', size='54-15-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 683', color='C4', color_description='Matte Burgundy and Gold details', size='54-15-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 684', color='C1', color_description='Matte Black and Gold details', size='52-16-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 684', color='C3', color_description='Matte Purple and Gold details', size='52-16-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 684', color='C4', color_description='Matte Burgundy and Gold details', size='52-16-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 685', color='C1', color_description='Matte Black and Gold details', size='53-17-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 685', color='C3', color_description='Matte Purple and Gold details', size='53-17-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 685', color='C2', color_description='Matte Copper and Gold details', size='53-17-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 686', color='C1', color_description='Matte Black and Gold details', size='53-15-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 686', color='C3', color_description='Matte Purple and Gold details', size='53-15-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 686', color='C4', color_description='Matte Burgundy and Gold details', size='53-15-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 687', color='C1', color_description='Matte Black and Silver details', size='53-15-140', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 687', color='C2', color_description='Matte Copper and Gold details', size='53-15-142', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 687', color='C3', color_description='Matte Purple and Gold details', size='53-15-142', material='Metal', price_silver=18, price_gold=14, description_short='Lady optical frame, Metal', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 688', color='C5', color_description='Grey marble and Gold details', size='56-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 688', color='C6', color_description='Purple marble and Gold details', size='56-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 689', color='C7', color_description='Purple marble and Gold details', size='54-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 689', color='C6', color_description='Red marble and Gold details', size='54-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 689', color='C1', color_description='Black and Gold details', size='54-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 690', color='C1', color_description='Black and Gold details', size='53-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 690', color='C4', color_description='Blue and Gold details', size='53-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 690', color='C6', color_description='Purple and Gold details', size='53-18-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 691', color='C1', color_description='Purple Multi and Gold details| Size: 52-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 691', color='C6', color_description='Caramel and Gold details| Size: 52-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 691', color='C7', color_description='Violet Crystal and Gold details| Size: 52-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 692', color='C1', color_description='Black and Gold details | 53-17-140', material='Acetate', price_silver=18, price_gold=14, description_short='Mens optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 692', color='C2', color_description='Matte Black and Silver details | 53-17-140', material='Acetate', price_silver=18, price_gold=14, description_short='Mens optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='KD 692', color='C1', color_description='Matte Navy and Silver details | 53-17-140', material='Acetate', price_silver=18, price_gold=14, description_short='Mens optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Kadima', model='MG6003', color='C3', color_description='Burgundy and Gunmetal details', size='54-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='MG6003', color='C4', color_description='Violet Crystal and Silver details', size='54-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Kadima', model='MG6003', color='C5', color_description='Blue/Black and Gunmetal details', size='54-16-140', material='Acetate', price_silver=18, price_gold=14, description_short='Lady optical frame, Acetate', categories={'Kadima', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='1064', color='C2', color_description='Shiny Gun', size='54-18-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='3125', color='BUR',color_description='Shiny Burgundy', size='53-17-138', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Lady frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='3125', color='PNK',color_description='Shiny Pink', size='53-17-138', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Lady frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='5063', color='C3',color_description='Matte Blue /Navy', size='55-18-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Unisex frame, Metal', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='HG1731', color='C1', color_description='Black', size='53-16-140', material='Acetate', price_silver=10.50, price_gold=8.50, description_short='Acetate Lady frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='HG1731', color='C2', color_description='Brown', size='53-16-140', material='Acetate', price_silver=10.50, price_gold=8.50, description_short='Acetate Lady frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5177', color='C2', color_description='Shiny Silver-Black', size='59-15-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5177', color='C3', color_description='Shiny Gold-Brown', size='59-15-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5222', color='C1', color_description='Matte Black', size='53-17-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5222', color='C3', color_description='Matte Blue', size='53-17-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5222', color='C4', color_description='Matte Copper', size='53-17-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5239', color='C4', color_description='Matte Purple-Gold', size='51-17-135', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Lady frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5242', color='C1', color_description='Gold /Black', size='52-17-135', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Lady frame with Strass detail', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5242', color='C2', color_description='Gun /Violet', size='52-17-135', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Lady frame with Strass detail', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5242', color='C4', color_description='Copper /Brown', size='52-17-135', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Lady frame with Strass detail', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5280', color='C1', color_description='Matte Black', size='54-18-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5280', color='C2', color_description='Shiny Black', size='54-18-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='HG5280', color='C3', color_description='Shiny Gun', size='54-18-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='M18366', color='C2', color_description='Shiny Gold', size='55-18-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='M18366', color='C3N', color_description='Navy Blue', size='55-18-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='M18366', color='C3B', color_description='Brown/orange', size='55-18-140', material='Metal', price_silver=10.50, price_gold=8.50, description_short='Metal Mens frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Primmera', model='YH8014', color='C3', color_description='Black/Blue-Gold Mosaic', size='51-17-145', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH8030', color='C2', color_description='Matte Black/Blue Stripe', size='52-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH8030', color='C3', color_description='Matte Black/Burg Stripe', size='52-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH8030', color='C4', color_description='Matte Black/Burg Mottled', size='52-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH8086', color='C2', color_description='Black/Zebra', size='53-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH8086', color='C4', color_description='Brown/Caramel', size='53-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH8086', color='C5', color_description='Purple/Lavender', size='53-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH18082', color='C2009', color_description='Violet', size='54-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH18082', color='C2022', color_description='Grey/Blue', size='54-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH18082', color='C2028', color_description='Black/Wine', size='54-17-140', material='Injected', price_silver=10.50, price_gold=8.50, description_short='Injected Unisex frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Primmera', model='YH18090', color='C8', color_description='Black/Green', size='52-16-140', material='Acetate', price_silver=10.50, price_gold=8.50, description_short='Acetate Lady frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='YH18090', color='C9', color_description='Tortoise Shell/Havanna', size='52-16-140', material='Acetate', price_silver=10.50, price_gold=8.50, description_short='Acetate Lady frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Primmera', model='YH18090', color='C11',color_description='Black/Burgundy', size='52-16-140', material='Acetate', price_silver=10.50, price_gold=8.50, description_short='Acetate Lady frame', categories={'Primmera', 'Collections Catalog', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5453', color='669', color_description='Dark Demi/Gold', size='54-18-140', material='Metal and plastic', price_silver=35.00, price_gold=33.00, description_short='Lady optical frame, Metal and Plastic', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5454', color='414', color_description='Matte Navy', size='54-18-140', material='Metal', price_silver=35.00, price_gold=33.00, description_short='Mens optical frame, Metal', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5650', color='214', color_description='Havana', size='50-17-140', material='Plastic', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5837', color='414', color_description='Crystal Cobalt Blue', size='52-16-140', material='Plastic', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5847A', color='215', color_description='Tortoise Shell', size='55-16-140', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Lady optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5886', color='278', color_description='Matte Grey/Bone/Navy', size='54-19-140', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5908', color='201', color_description='Havanna', size='51-18-140', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5909', color='201', color_description='Dark Havanna', size='51-18-140', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Lady optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5933', color='229', color_description='Black/Cobalt Blue Temples', size='51-16-140', material='Plastic', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5957', color='040', color_description='Grey', size='52-17-135', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5958', color='204', color_description='Crystal Havanna/Cobalt Blue Temples', size='52-17-135', material='Plastic', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK5974', color='214', color_description='Demi Amber', size='55-17-145', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK8522', color='239', color_description='Matte Havanna/Grey', size='51-20-140', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK8535', color='214', color_description='Tortoise Shell', size='51-17-135', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Lady optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Calvin Klein', model='CK18707', color='620',color_description='Crystal Brick Red', size='53-18-140', material='Acetate', price_silver=35.00, price_gold=33.00, description_short='Unisex optical frame, Acetate', categories={'Calvin Klein', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE079', color='0SN4', color_description='Taupe and Coral ', size='53-16-140', material='Metal', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE091', color='033M', color_description='Light Taupe-Burgundy ', size='53-16-135', material='Metal', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE091', color='0S68', color_description='Light Grey-Black ', size='53-16-135', material='Metal', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE094', color='0323', color_description='Beige, Brown, Black Multi and Gold ', size='52-17-135', material='Plastic and Metal', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE096', color='0530', color_description='Black and Red ', size='55-16-135', material='Metal', price_silver=55.00, price_gold=50.00, description_short='Unisex optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE123', color='0301', color_description='Black ', size='53-16-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE123', color='0I21', color_description='Navy Blue ', size='53-16-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE123', color='0R10', color_description='Dark Copper-Blue ', size='53-16-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE125', color='0E59', color_description='Brown-Gold ', size='54-15-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE125', color='0287', color_description='Dark Copper-Gold ', size='54-15-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE125', color='0301', color_description='Black-Red-Bone-Gold ', size='54-15-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE134', color='08FC', color_description='Brown Marble/Multi and Gold ', size='53-18-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Unisex optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE134', color='300Y', color_description='Wine/Multi and Gold ', size='53-18-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Unisex optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE134', color='0300', color_description='Black/Multi', size='53-18-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Unisex optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE137', color='0E59', color_description='Violet-Mauve ', size='54-16-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE137', color='0301', color_description='Dark Brown-Red ', size='54-16-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE137', color='0320', color_description='Marble Brown-Gold ', size='54-16-135', material='Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE146', color='0300', color_description='Brown Stripe and Gold ', size='51-19-145', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Unisex optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE146', color='0579', color_description='Black and Silver', size='51-19-145', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Unisex optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE146', color='0581', color_description='Marble Frosted Blue and Matte Silver', size='51-19-145', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Unisex optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE660', color='0G96', color_description='Rust and Demi', size='52-17-135', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE672', color='0M65', color_description='Multi Brown and Beige', size='54-15-140', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE673', color='06HN', color_description='Demi Stipe and Taupe', size='53-17-140', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE679', color='01GQ', color_description='Brown and Mauve Multi', size='53-15-135', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE729N', color='096N',color_description='Black/Grey Multi and Taupe', size='53-16-140', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE730N', color='0700',color_description='Black and Red', size='53-17-140', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE738', color='01GQ', color_description='Brown and Coral Multi', size='52-16-140', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE738', color='0700', color_description='Black and Rose Taupe', size='52-16-140', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE738', color='0752', color_description='Marble Brown', size='52-16-140', material='Plastic', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE799', color='06DQ', color_description='Black and Blue Multi', size='53-15-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE799', color='0752', color_description='Marble Brown and Red', size='53-15-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE800', color='0ADQ', color_description='Rust Brown-Bone-Coral', size='52-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE800', color='09RV', color_description='Red Wine', size='52-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE800', color='07C4', color_description='Black and Blue', size='52-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE801', color='0971', color_description='Violet and Blue', size='53-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE801', color='09P2', color_description='Black and Red', size='53-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE801', color='09RV', color_description='Red Wine', size='53-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE804', color='05AH', color_description='Burgundy Multi', size='54-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE804', color='0APK', color_description='Tortoise Shell', size='54-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE804', color='0U75', color_description='Black', size='54-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE806L', color='06YZ', color_description='Light Havanna Beige & Grey| Size: 54-15-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE806L', color='0752', color_description='Marble Brown-Beige-Black', size='54-15-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE812', color='09H7', color_description='Black-Red-Gun', size='51-20-145', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE812', color='1GZY', color_description='Demi-Navy-Gun', size='51-20-145', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE813', color='096X', color_description='Multi Brown-Purple', size='54-15-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE813', color='0D78', color_description='Purple Crystal', size='54-15-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE814', color='0722', color_description='Demi ', size='54-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE814', color='0AR3', color_description='Wine ', size='54-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE814', color='0700', color_description='Black ', size='54-16-135', material='Plastic', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE816', color='0752', color_description='Marble Brown-Powder Pink-Gold', size='53-16-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE816', color='0AFG', color_description='Reddish Brown ', size='53-16-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE816', color='0700', color_description='Black ', size='53-16-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE817', color='0GEN', color_description='Brown Stripe and Aqua-Gold ', size='53-16-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE817', color='06YH', color_description='Brown Marble', size='53-16-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE817', color='0AFG', color_description='Red Wine-Brown-Gold', size='53-16-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE817', color='0700', color_description='Black', size='53-16-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE818', color='0713', color_description='Rust Brown ', size='54-15-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Carolina Herrera', model='VHE818', color='0752', color_description='Marble Brown-Red-Gold ', size='54-15-135', material='Plastic and Metal', price_silver=75.00, price_gold=70.00, description_short='Lady optical frame, Acetate and Metal', categories={'Carolina Herrera', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Converse', model='VCO0058Q', color='06L5', color_description='Light Fuschia and Crystal', size='53-17-140', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Ladys, Adult, Teens, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0058Q', color='06PF', color_description='Crystalline Lilac ', size='53-17-140', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Ladys, Adult, Teens, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0058Q', color='OT31', color_description='Violet/Powder Blue Temples', size='53-17-140', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Ladys, Adult, Teens, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0060Q', color='0741', color_description='DemiAmber/Blue Temples', size='52-17-145', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0060Q', color='0W60', color_description='Navy Blue/Crystal light blue', size='52-17-145', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0063Q', color='0840M', color_description='Frosted Grey/Neon Green', size='51-19-145', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Lightweight, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0065Q', color='0F94', color_description='Matte Cobalt Blue/Silver', size='55-17-145', material='Metal (Stainless Steel)', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Lightweight, Metal (Stainless Steel)', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal (Stainless Steel)'}})
item.new({subtype='frame', brand='Converse', model='VCO0065Q', color='0K07', color_description='Matte Black/Silver', size='55-17-145', material='Metal (Stainless Steel)', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Lightweight, Metal (Stainless Steel)', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal (Stainless Steel)'}})
item.new({subtype='frame', brand='Converse', model='VCO0065Q', color='0539', color_description='Matte Taupe/Silver', size='55-17-145', material='Metal (Stainless Steel)', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Lightweight, Metal (Stainless Steel)', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal (Stainless Steel)'}})
item.new({subtype='frame', brand='Converse', model='VCO0071Q', color='09GU', color_description='Navy dark Blue/Silver ', size='52-17-140', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0075Q', color='0W74', color_description='Matte Navy/Red Twist and Turn Temples', size='54-15-140', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0124Q', color='0627', color_description='Dark Crystal Grey/Matte Gun/Red', size='50-20-145', material='Metal and Plastic', price_silver=50.00, price_gold=48.00, description_short='Unisex frame, Lightweight, Metal and Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic and Metal'}})
item.new({subtype='frame', brand='Converse', model='VCO0133Q', color='0568', color_description='Shiny Gun/Red Twist and Turn Temples ', size='55-17-145', material='Metal', price_silver=50.00, price_gold=48.00, description_short='Mens frame, Metal', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal'}})
item.new({subtype='frame', brand='Converse', model='VCO0174Q', color='0892', color_description='Crystalline Grey', size='54-18-145', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Mens frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0174Q', color='0703Y', color_description='Matte Black/Blue Temples', size='54-18-145', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Mens frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0176Q', color='01AY', color_description='Brown', size='54-17-145', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Mens frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0176Q', color='7NSM', color_description='Matte Navy Blue', size='54-17-145', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Mens frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0184Q', color='0700', color_description='Black/Grey Twist and Turn Temples', size='53-16-140', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Mens frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0184Q', color='0738', color_description='Frosted Demi/Twist and Turn Olive temples', size='53-16-140', material='Plastic', price_silver=50.00, price_gold=48.00, description_short='Mens frame, Plastic', categories={'Converse', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Gant', model='GW102', color='BLKTO', color_description='Black/Tortoise Temples', size='53-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA3030', color='BLK', color_description='Black/Demi and Gold Temples', size='54-16-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Gant', model='GA3054', color='009', color_description='Matte Gunmetal/Navy and Red Temples', size='53-17-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Unisex frame, Metal (Stainless Steel)', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Gant', model='GA3099', color='002', color_description='Matte Black', size='54-16-140', material='Plastic', price_silver=20.00, price_gold=18.00, description_short='Unisex frame, Plastic', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Gant', model='GA3116', color='052', color_description='Tortoise Shell/Silver', size='50-19-140', material='Acetate and Metal ', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate and Metal', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Gant', model='GA3163', color='002', color_description='Matte Black/Houndstooth print Temples', size='51-19-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Unisex frame, Metal (Stainless Steel)', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Gant', model='GA4055', color='002', color_description='Matte Black/Tortoise Shell Temples', size='51-16-135', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Metal (Stainless Steel)', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4055', color='049', color_description='Matte Copper/Tortoise Shell Temples', size='51-16-135', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Metal (Stainless Steel)', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4055', color='070', color_description='Matte Burgundy/MaroonTemples', size='51-16-135', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Metal (Stainless Steel)', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4056', color='001', color_description='Black/Tortoise Shell Temples', size='52-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Petite Fit, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4056', color='052', color_description='Tortoise Shell', size='52-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Petite Fit, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4058', color='001', color_description='Black', size='50-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Petite Fit, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4058', color='056', color_description='Demi Amber', size='50-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Petite Fit, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4058', color='092', color_description='Navy Blue/Crystal Blue', size='52-18-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4065', color='001', color_description='Black', size='49-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Petite Fit, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4065', color='045', color_description='Almond Milk with Brown Temples', size='52-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4065', color='052', color_description='Tortoise Shell', size='49-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Petite Fit, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4069', color='069', color_description='Burgundy and Honey', size='50-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Petite Fit, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GA4070', color='001', color_description='Black', size='53-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys frame, Acetate', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Ladys frames'}})
item.new({subtype='frame', brand='Gant', model='GR105', color='MBLKGN', color_description='Matte Black/Shiny Gun/Matte Tortoise Temples', size='47-21-145', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Unisex frame, Rugger, Metal ', categories={'Gant', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', Metal}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1482ST', color='BLKGRY', color_description='Matte Black-Grey with rhinestones', size='50-19-135', material='Metal', price_silver=17.00, price_gold=15.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU1482ST', color='BRNPK', color_description='Matte Brown-Pink with rhinestones', size='50-19-135', material='Metal', price_silver=17.00, price_gold=15.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU1562', color='BRNOL', color_description='Shiny Copper/Gold', size='50-17-135', material='Metal', price_silver=17.00, price_gold=15.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU1652', color='BLK', color_description='Shiny Black/ Grey', size='52-17-135', material='Metal', price_silver=17.00, price_gold=15.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU1736', color='BLK', color_description='Matte Black-Gold with caramel temples', size='53-18-140', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU1803', color='MGRN', color_description='Matte Camouflage', size='53-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1811', color='MBRN', color_description='Frosted Caramel', size='53-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1827', color='BLK', color_description='Black with Matte Black Reptile Temples', size='54-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1827', color='BL', color_description='Matte Blueish Grey with Matte Black Reptile Temples', size='54-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1844', color='BL', color_description='Frosted Light Blue with Grey Temples', size='53-18-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1846', color='LBRN', color_description='Tree Bark with Capuccino', size='54-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1866F', color='052', color_description='Havanna marble with Brown and orangeTemples', size='55-18-145', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1869', color='052', color_description='Frosted Tortoise Shell with Matte Brown Temples', size='53-17-145', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1872', color='002', color_description='Matte Black with Black and Red Temples', size='53-17-145', material='Plastic', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Plastic', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1876', color='049', color_description='Matte Brown with Matte Brown-Matte Gold temples ', size='53-17-140', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1879', color='049', color_description='Matte Copper with Matte Brown temples', size='56-17-140', material='Metal ', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', Metal }, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Guess', model='GU1886', color='052', color_description='Matte Copper and Tortoise w/matte copper temples ', size='53-16-140', material='Metal and plastic', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Metal and plastic', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', Metal and plastic}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1889', color='092', color_description='Matte Navy Blue with Blue and Red temples ', size='53-16-145', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Metal (Stainless Steel)', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1889', color='009', color_description='Matte Gunmetal with Taupe temples ', size='53-16-145', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Metal (Stainless Steel)', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU1912', color='009', color_description='Matte Gunmetal with Matte Black temples', size='55-15-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal (Stainless Steel)', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Guess', model='GU1913', color='033', color_description='Matte Brown/Matte Gold with Matte Brown Temples', size='51-20-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal (Stainless Steel)', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU1926', color='009', color_description='Matte Gunmetal with Matte Brown-Navy temples ', size='54-17-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal (Stainless Steel)', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Guess', model='GU1961', color='005', color_description='Matte Black with Black/Wine temples', size='52-18-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Metal (Stainless Steel)', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Guess', model='GU2274', color='AMB', color_description='Marbled Caramel/Lavender', size='52-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2287', color='BLK', color_description='Black/White with Silver and Lilac Temples w/ rhinestones', size='52-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2288', color='BRN', color_description='Dark Honey with Matte Copper Temples w/ rhinestones', size='51-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2288', color='WHT', color_description='Crystal with White and Silver Temples w/ rhinestones', size='51-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2333', color='DKPUR', color_description='Gradient Purple with Reptile print Temples', size='52-18-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2347', color='BLK', color_description='Matte Black with Rhinestones', size='51-16-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2351', color='AMB', color_description='Marbled Caramel/Lavender & Matte Gold', size='53-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2373', color='BLK', color_description='Black and Crystal w/silver chain insert on temples', size='51-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2381', color='TO', color_description='Tortoise Shell with Matte Gold and Copper Braid on temple', size='52-16-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2383', color='PUR', color_description='Gradient Mauve and Light Honey', size='52-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GUA2385', color='PUR', color_description='Gradient Mauve and Light Honey', size='52-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2387', color='O64', color_description='Dark Purple w/rhinestones on Temples', size='54-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2387', color='O64', color_description='Dark Purple w/rhinestones on Temples', size='51-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2388', color='BRN', color_description='Matte Brown with Rhinestones on Temples', size='52-18-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2414', color='BLK', color_description='Black/Aqua w/rhinestones on Temples', size='50-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2414', color='TO', color_description='Dark Tortoise/Bone w/rhinestones on Temples', size='50-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2414', color='BE', color_description='Light Beige/Dark Brown w/rhinestones on Temples', size='50-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2415', color='BL', color_description='Pearly Light Blue w/rhinestones on Temples', size='51-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2417', color='081', color_description='Dark Violet', size='49-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2417', color='096', color_description='Dark Forest Green', size='52-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2463', color='BLPUR', color_description='Transparent Blueish Purple', size='55-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2464', color='Burd', color_description='Dark Burgundy/Red', size='54-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2466', color='BLGRN', color_description='Frosted Blueish Green', size='54-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2466', color='PRBL', color_description='Frosted Purple-Blue', size='54-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2466', color='BLK', color_description='Black with Wine temples', size='54-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2492', color='052', color_description='Havanna Brown wth gold chain detail', size='52-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2494', color='001', color_description='Black and Crystal', size='53-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2494', color='056', color_description='Tortoise & Olive Green', size='53-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2506', color='005', color_description='Black with animal print/black temples', size='52-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2513', color='047', color_description='Transparent Honey with animal print/brown temples', size='53-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2514', color='BLK', color_description='Black', size='50-17-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2514', color='049', color_description='Matte Brown', size='50-17-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2514', color='082', color_description='Matte Violet', size='50-17-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2516', color='001', color_description='Satin Black and Silver temples w/Black tips', size='53-17-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2516', color='048', color_description='Matte Brown and Gold temples w/Tortoise Shell tips', size='53-17-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2516', color='048', color_description='Matte Brown and Gold temples w/Tortoise Shell tips', size='53-17-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2517', color='081', color_description='Crystalline Violet', size='50-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2521', color='049', color_description='Matte Brown and Tortoise Shell temples', size='53-16-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2523', color='048', color_description='Caramel/Gold', size='52-16-135', material='Metal and Plastic', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal and Plastic', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal and Plastic'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2553', color='005', color_description='Black-Blue with sparkles', size='53-16-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2554', color='050', color_description='Brown with Strass', size='52-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2561F', color='045', color_description='Crystalline Brown', size='53-15-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2566', color='005', color_description='Black-Matte Gold', size='53-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2568', color='002', color_description='Matte Black with Rhinestones', size='52-17-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2582', color='052', color_description='Tortoise Shell/Light Purple', size='51-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2589', color='092', color_description='Blue and Crystal w/silver side detail', size='54-17-140', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2596', color='003', color_description='Black and Crystal', size='49-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2604', color='001', color_description='Black-Tortoise-Matte Gold', size='52-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2604', color='050', color_description='Brown-Tortoise-Orange-Matte Copper Temples', size='52-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2604', color='068', color_description='Lipstick Red with Matte Copper Temples', size='52-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2606', color='066', color_description='Strawberry Red', size='52-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2527', color='049', color_description='Matte Copper/Matte Gold and Teal tips', size='51-16-135', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2635', color='001', color_description='Tortoise Shell-Matte Gold/Gold', size='54-14-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2635', color='050', color_description='Brown-Tortoise-Orange-Matte Copper', size='54-14-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU2635', color='083', color_description='Purple with Matte Silver Temples', size='54-14-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU3025', color='052', color_description='Matte Demi/Shiny Copper', size='51-21-135', material='Acetate and Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate and Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU3025', color='073', color_description='Bubblegum Matte Pink/Shiny Gold', size='51-21-135', material='Acetate and Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate and Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU3025', color='088', color_description='Matte Teal/Shiny Green', size='51-21-135', material='Acetate and Metal', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate and Metal', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Acetate and Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Guess', model='GU9145', color='091', color_description='Matte Navy/Neon Yellow', size='48-16-130', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Unisex optical frame, Acetate', categories={'Guess', 'Collections Catalog', 'Designer Brands', 'Teens', 'Children', 'Optical Frames', 'Acetate'}, tags={'Teens', 'Children', 'Unisex frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD105', color='BLKBL', color_description='Black and Crystal Blue', size='49-17-130', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Acetate', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD105', color='BLKGRN', color_description='Black and Crystal Green', size='49-17-130', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Acetate', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD123T', color='005', color_description='Matte Black Matte Gun and Navy Temples', size='47-17-130', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD123T', color='009', color_description='Matte Gun Matte Gun and Navy Temples', size='47-17-130', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD129T', color='001', color_description='Black', size='47-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Acetate', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD403', color='AGUN', color_description='Brushed Gunmetal', size='59-17-145', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD428', color='BLK', color_description='Black', size='54-17-145', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Acetate', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD478', color='BLK', color_description='Matte Black', size='52-18-145', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD0511', color='DBRN', color_description='Brown/Copper', size='53-15-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys optical frame, Acetate', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', Acetate}, tags={'Adult', 'Ladys frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD0531', color='001', color_description='Black/Silver with strass', size='53-16-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Lady optical frame, Acetate', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD0532', color='002', color_description='Black/Animal Print w/strass', size='52-16-135', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Ladys optical frame, Metal', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal'}, tags={'Adult', 'Ladys frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD0539', color='001', color_description='Black/Granite w/strass', size='54-17-135', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Ladys optical frame, Acetate', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', Acetate}, tags={'Adult', 'Ladys frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD0721', color='BRN', color_description='Matte Brown', size='53-18-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal (Stainless Steel)', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Harley Davidson', model='HD0781', color='091', color_description='Matte Black', size='57-17-150', material='Acetate', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Acetate', categories={'Harley Davidson', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Hugo Boss', model='BO0084', color='6EC', color_description='Black ', size='52-16-140', material='Acetate', price_silver=37.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Hugo Boss', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Hugo Boss', model='BO0209', color='KOL', color_description='Matte Matte Navy ', size='54-18-140', material='Metal Stainless Steel', price_silver=37.00, price_gold=35.00, description_short='Mens optical frame, Metal (Stainless Steel)', categories={'Hugo Boss', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Hugo Boss', model='BO0230', color='LHI', color_description='Brown/Orange ', size='57-17-140', material='Acetate', price_silver=37.00, price_gold=35.00, description_short='Unisex optical frame, Acetate', categories={'Hugo Boss', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Hugo Boss', model='BO0233', color='LH2', color_description='Matte Copper Brown/Pink ', size='54-16-140', material='Metal', price_silver=37.00, price_gold=35.00, description_short='Ladys optical frame, Metal', categories={'Hugo Boss', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Ladys frames'}})
item.new({subtype='frame', brand='Hugo Boss', model='BO0235', color='LEI', color_description='Frosted Blue ', size='53-17-140', material='Acetate', price_silver=37.00, price_gold=35.00, description_short='Unisex optical frame, Acetate', categories={'Hugo Boss', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Hugo Boss', model='BO0257', color='5FC', color_description='Marble Brown ', size='53-16-140', material='Acetate', price_silver=37.00, price_gold=35.00, description_short='Unisex optical frame, Acetate', categories={'Hugo Boss', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Hugo Boss', model='BO0262/F', color='TAY', color_description='Matte Black ', size='54-16-140', material='Acetate', price_silver=37.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Hugo Boss', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Hugo Boss', model='BO0318', color='RCT', color_description='Frosted Blue ', size='52-17-140', material='Acetate', price_silver=37.00, price_gold=35.00, description_short='Unisex optical frame, Acetate', categories={'Hugo Boss', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kenneth Cole Reaction', model='KC746', color='005', color_description='Dark Brown Reptile', size='53-15-135', material='Acetate', price_silver=12.00, price_gold=10.00, description_short='Lady optical frame, Acetate', categories={'Kenneth Cole Reaction', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Kenneth Cole Reaction', model='KC746', color='050', color_description='Honey Brown Reptile', size='53-15-135', material='Acetate', price_silver=12.00, price_gold=10.00, description_short='Lady optical frame, Acetate', categories={'Kenneth Cole Reaction', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Kenneth Cole Reaction', model='KC778', color='092', color_description='Matte Navy Blue', size='55-17-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Kenneth Cole Reaction', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Kenneth Cole Reaction', model='KC779', color='009', color_description='Matte Brown', size='54-16-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Kenneth Cole Reaction', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Kenneth Cole Reaction', model='KC780', color='002', color_description='Matte Black/Frosted Crystal', size='50-17-140', material='Plastic', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Plastic', categories={'Kenneth Cole Reaction', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Kenneth Cole Reaction', model='KC782', color='002', color_description='Matte Gunmetal', size='53-18-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Kenneth Cole Reaction', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Kenneth Cole Reaction', model='KC782', color='049', color_description='Matte Copper Brown', size='53-18-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Kenneth Cole Reaction', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Kenneth Cole Reaction', model='KC783', color='049', color_description='Matte Copper Brown', size='52-17-140', material='Metal (Stainless Steel)', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Kenneth Cole Reaction', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Kenneth Cole New York', model='KC203', color='002', color_description='Matte Gun/Granite Temples', size='53-17-135', material='Metal', price_silver=22.00, price_gold=20.00, description_short='Lady optical frame, Metal', categories={'Kenneth Cole New York', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Kenneth Cole New York', model='KC254', color='001', color_description='Black', size='51-18-140', material='Plastic', price_silver=22.00, price_gold=20.00, description_short='Mens optical frame, plastic', categories={'Kenneth Cole New York', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Kenneth Cole New York', model='KC258', color='001', color_description='Black/Matte Gold Temples', size='54-15-135', material='Plastic', price_silver=22.00, price_gold=20.00, description_short='Unisex optical frame, Plastic', categories={'Kenneth Cole New York', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Kenneth Cole New York', model='KC258', color='052', color_description='Demi/Matte Gold Temples', size='54-15-135', material='Plastic', price_silver=22.00, price_gold=20.00, description_short='Unisex optical frame, Plastic', categories={'Kenneth Cole New York', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Kenneth Cole New York', model='KC259', color='001', color_description='Satin Black/Demi Temples', size='54-16-135', material='Metal (Stainless Steel)', price_silver=22.00, price_gold=20.00, description_short='Unisex optical frame, Metal (Stainless Steel)', categories={'Kenneth Cole New York', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Kenneth Cole New York', model='KC259', color='045', color_description='Matte Copper/Matte Demi Temples', size='54-16-135', material='Metal (Stainless Steel)', price_silver=22.00, price_gold=20.00, description_short='Unisex optical frame, Metal (Stainless Steel)', categories={'Kenneth Cole New York', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Kenneth Cole New York', model='KC266', color='091', color_description='Matte Navy/Gun', size='52-18-145', material='Plastic and Metal', price_silver=22.00, price_gold=20.00, description_short='Unisex optical frame, Plastic and Metal', categories={'Kenneth Cole New York', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic and Metal'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Kenneth Cole New York', model='KC271', color='002', color_description='Matte Black', size='54-18-145', material='Plastic', price_silver=22.00, price_gold=20.00, description_short='Mens optical frame, plastic', categories={'Kenneth Cole New York', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2223', color='001', color_description='Matte Black/Green', size='56-17-145', material='Metal', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Metal', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2233', color='424', color_description='Matte Navy/Neon Green', size='53-17-145', material='Metal', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Metal', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2233', color='210', color_description='Matte Brown', size='53-17-145', material='Metal', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Metal', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2239', color='424', color_description='Matte Black/Neon Yellow', size='56-17-140', material='Metal', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Metal', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2239', color='002', color_description='Matte Black/Blue', size='56-17-140', material='Metal', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Metal', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2242', color='002', color_description='Matte Black', size='54-16-1xx', material='Metal', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Metal', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2242', color='424', color_description='Matte Blue', size='54-16-1xx', material='Metal', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Metal', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2660', color='215', color_description='Blue/Black Marble', size='53-15-140', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Unisex optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2660', color='001', color_description='Black', size='53-15-140', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Unisex optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2672', color='214', color_description='Tortoise/Olive Green', size='52-17-140', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2685', color='210', color_description='Striped Brown Grey', size='53-16-140', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Unisex optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2738', color='615', color_description='Burgundy/Red', size='53-15-135', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Lady optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2769', color='001', color_description='Black Butterscotch', size='52-15-140', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Unisex optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2771', color='424', color_description='Blue/Black-Yellow stripe', size='53-18-145', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2774', color='035', color_description='Grey and Black', size='54-15-140', material='Plastic', price_silver=35.00, price_gold=32.00, description_short='Lady optical frame, Plastic', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2774', color='467', color_description='Azure Aqua', size='54-15-140', material='Plastic', price_silver=35.00, price_gold=32.00, description_short='Lady optical frame, Plastic', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2783', color='210', color_description='Frosted Brown', size='53-16-135', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2794', color='604', color_description='Matte Brown', size='52-17-140', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Acetate', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Lacoste', model='L2818', color='424', color_description='Crystalline Blue', size='53-15-145', material='Plastic', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Lacoste', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='37KD', color='001', color_description='Matte Black', size='52-20-135', material='Acetate', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Acetate', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', Acetate}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='4278', color='005', color_description='Matte Black', size='54-16-140', material='Flexon Plastic', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='4281', color='001', color_description='Matte Black-Neon Yellow', size='52-16-140', material='Flexon Plastic', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='7070/2', color='035', color_description='Matte Black', size='57-15-135', material='Stealth Plastic', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='7078', color='401', color_description='Matte Teal', size='57-15-140', material='Plastic', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='7097', color='215', color_description='Matte Tortoise', size='54-17-140', material='Plastic', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='7102', color='002', color_description='Matte Black', size='55-15-140', material='Plastic', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='7104', color='001', color_description='Matte Black', size='54-17-140', material='Plastic', price_silver=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Nike', model='FLEET', color='001', color_description='Matte Black', size='55-16-140', material='TR90', price_gold=35.00, price_gold=32.00, description_short='Mens optical frame, Plastic', categories={'Nike', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'TR90', 'Plastic'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PE0010O', color='005', color_description='Matte Black', size='53-15-140', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PE0020O', color='004', color_description='Crystalline Dark Smoke', size='53-18-140', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0031OA', color='005', color_description='Matte Burgundy', size='53-18-140', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0034O', color='004', color_description='Black/Yellow ', size='52-18-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0034O', color='002', color_description='Matte Dark Brown/Grey', size='52-18-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0034O', color='005', color_description='Crystalline Red/Grey-orange', size='52-18-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0035OA', color='001', color_description='Matte Black/Frosted Crystal ', size='53-17-145', material='Plastic', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Plastic', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0035OA', color='004', color_description='Matte Black/Frosted Orange ', size='53-18-145', material='Plastic', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Plastic', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0035OA', color='001', color_description='Black/Frosted Crystal', size='53-17-145', material='Acetate ', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0044OA', color='003', color_description='Tortoise/Red Suede', size='56-16-140', material='Acetate and Rubber', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0047O', color='003', color_description='Tortoise Shell ', size='53-19-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0047OA', color='009', color_description='Dark Tortoise ', size='57-17-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0047OA', color='011', color_description='Crystalline Blue ', size='57-17-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0048O', color='003', color_description='Tortoise Shell ', size='55-17-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0051OA', color='005', color_description='Crystalline Blue ', size='54-18-140', material='Plastic', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Plastic', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0051O', color='003', color_description='Crystalline Grey/Neon Yellow ', size='54-18-140', material='Plastic', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Plastic', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0051OA', color='001', color_description='Black ', size='56-15-140', material='Plastic', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Plastic', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0053OA', color='005', color_description='Matte Brown/Orange ', size='55-16-145', material='Plastic', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Plastic', categories={'Puma', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0066O', color='001', color_description='Matte Silver/Orange/White ', size='54-16-140', material='Metal', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Metal', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0067O', color='001', color_description='Black/Tortoise Shell ', size='53-18-140', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0067O', color='003', color_description='Crystalline Blue/Black ', size='53-18-140', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0067O', color='004', color_description='Tortoise/Orange ', size='53-18-140', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0068O', color='005', color_description='Crystalline Blue/Black ', size='52-17-140', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0075OA', color='003', color_description='Dark Grey/Crystalline Yellow ', size='56-16-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Puma', model='PU0075OA', color='001', color_description='Dark Navy Blue ', size='56-16-145', material='Acetate', price_silver=40.00, price_gold=35.00, description_short='Mens optical frame, Acetate', categories={'Puma', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB5228', color='2000', color_description='Black', size='50-17-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Unisex optical frame, Acetate', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB5228', color='2012', color_description='Tortoise Shell', size='50-17-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Unisex optical frame, Acetate', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB5248', color='2000', color_description='Black', size='51-19-145', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Unisex optical frame, Acetate', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB5248', color='2012', color_description='Tortoise Shell', size='51-19-145', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Unisex optical frame, Acetate', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB5298', color='2012', color_description='Tortoise Shell', size='53-17-135', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Unisex optical frame, Acetate', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB5316', color='2012', color_description='Tortoise Shell', size='53-16-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Unisex optical frame, Acetate', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB5316', color='2034', color_description='Tortoise Shell', size='53-16-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Unisex optical frame, Acetate', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Unisex frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB5360', color='5713', color_description='Tortoise Shell w/Matte Gold metal temples| Size: 52-18-145', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Ladies optical frame, Acetate', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB6263', color='2509', color_description='Matte Black', size='54-17-145', material='Metal', price_silver=45.00, price_gold=42.00, description_short='Mens optical frame, Metal', categories={RayBan, 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB6336M', color='2503', color_description='Matte Black', size='53-16-140', material='Metal', price_silver=45.00, price_gold=42.00, description_short='Mens optical frame, Metal', categories={RayBan, 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB6336M', color='2758', color_description='Matte Brown', size='53-16-140', material='Metal', price_silver=45.00, price_gold=42.00, description_short='Mens optical frame, Metal', categories={RayBan, 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB6336', color='2857', color_description='Matte Silver/Mauve', size='51-18-140', material='Metal and Plastic', price_silver=45.00, price_gold=42.00, description_short='Unisex optical frame, Metal and Plastic', categories={RayBan, 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal and Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Ray Ban', model='RB8750', color='1195', color_description='Matte Silver/ Mauve plastic temples| Size: 54-17-140', material='Metal', price_silver=45.00, price_gold=42.00, description_short='Ladies optical frame, Metal', categories={RayBan, 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2148', color='451', color_description='Teal and Shiny Gold', size='52-17-140', material='Metal', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Metal', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2674A', color='214', color_description='Demi Amber', size='54-15-135', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2676', color='315', color_description='Crystalline Olive Green', size='55-17-140', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Mens optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2677A', color='001', color_description='Black ', size='55-17-145', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Mens optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2749', color='741', color_description='Caramel and Bone', size='53-16-140', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2750', color='649', color_description='Burgundy and Demi', size='54-17-140', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2765', color='214', color_description='Tortoise Shell and Gold details', size='53-16-135', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2778', color='210', color_description='Caramel and Animal-Floral print', size='53-17-140', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2780', color='214', color_description='Tortoise Shell and Gold details', size='54-18-145', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Unisex optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2781', color='052', color_description='Olive Marble and Silver details', size='55-17-145', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Unisex optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2789', color='001', color_description='Black', size='52-15-140', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2789', color='996', color_description='Multicolor Crystal', size='52-15-140', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Lady optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Salvatore Ferragamo', model='SF2790', color='214', color_description='Tortoise Shell and Gold details', size='54-16-140', material='Acetate', price_silver=55.00, price_gold=50.00, description_short='Unisex optical frame, Acetate', categories={'Salvatore Ferragamo', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Timberland', model='TB513', color='002', color_description='Matte Gunmetal', size='52-16-140', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1276-1', color='002', color_description='Matte Black', size='55-18-140', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Timberland', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1308', color='090', color_description='Matte Navy', size='54-17-145', material='Plastic', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Plastic', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1347', color='049', color_description='Matte Brown/Orange ', size='55-17-140', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Timberland', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1350', color='009', color_description='Matte Gun/Olive ', size='54-17-145', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1350', color='037', color_description='Matte Brown', size='54-17-145', material='Metal', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Metal', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teens', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1351', color='091', color_description='Matte Navy/Matte Silver ', size='56-17-145', material='TR90', price_gold=20.00, price_gold=18.00, description_short='Mens optical frame, TR90', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'TR90'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1353', color='005', color_description='Matte Black', size='51-20-140', material='TR90', price_gold=20.00, price_gold=18.00, description_short='Mens optical frame, TR90', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'TR90'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1580', color='092', color_description='Matte Blue/Tortoise ', size='54-17-145', material='Plastic', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Plastic', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1619', color='090', color_description='Navy Blue/Matte Silver ', size='54-17-145', material='Plastic', price_silver=20.00, price_gold=18.00, description_short='Mens optical frame, Plastic', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Tom Ford', model='TF5392', color='050', color_description='Taupe and Matte Gold ', size='54-18-135', material='Metal and plastic', price_silver=80.00, price_gold=75.00, description_short='Lady optical frame, Metal and Plastic', categories={'Tom Ford', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal and Plastic'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Tom Ford', model='TF5392', color='020', color_description='Grey and Matte Gold ', size='54-18-135', material='Metal and plastic', price_silver=80.00, price_gold=75.00, description_short='Lady optical frame, Metal and Plastic', categories={'Tom Ford', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Metal and Plastic'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Tom Ford', model='TF5142', color='059', color_description='Grey and Gold detail ', size='54-15-135', material='Acetate', price_silver=80.00, price_gold=75.00, description_short='Lady optical frame, Acetate', categories={'Tom Ford', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Tom Ford', model='TF5431', color='001', color_description='Black and Gold detail ', size='53-16-145', material='Acetate', price_silver=80.00, price_gold=75.00, description_short='Lady optical frame, Acetate', categories={'Tom Ford', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1026', color='UNV', color_description='Dark Chocolate', size='50-18-135', material='Metal (Stainless Steel)', price_silver=40.00, price_gold=38.00, description_short='Unisex Optical frames, Metal', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1163', color='V60', color_description='Dark Chocolate/Burgundy', size='56-14-140', material='Metal (Stainless Steel)', price_silver=40.00, price_gold=38.00, description_short='Mens Optical frames, Metal (Stainless Steel)', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1195', color='MPZ', color_description='Black', size='54-17-145', material='Metal (Stainless Steel)', price_silver=40.00, price_gold=38.00, description_short='Mens Optical frames, Metal (Stainless Steel)', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1284', color='FO5', color_description='Matte Gunmetal', size='53-17-140', material='Metal (Stainless Steel)', price_silver=40.00, price_gold=38.00, description_short='Mens Optical frames, Metal (Stainless Steel)', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1326', color='03V', color_description='Chocolate/Orange', size='52-17-140', material='Metal (Stainless Steel)', price_silver=40.00, price_gold=38.00, description_short='Mens Optical frames, Metal (Stainless Steel)', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1353', color='K0C', color_description='Matte Black/Frosted Granite', size='51-17-145', material='Acetate', price_silver=40.00, price_gold=38.00, description_short='Mens optical frame, Acetate', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1353', color='K03', color_description='Matte Demi Brown', size='51-17-145', material='Acetate', price_silver=40.00, price_gold=38.00, description_short='Mens optical frame, Acetate', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1357', color='K2F', color_description='Black', size='53-17-145', material='Metal ', price_silver=40.00, price_gold=38.00, description_short='Mens Optical frames, Metal', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1406', color='T99', color_description='Matte Demi Brown-Blue', size='54-17-145', material='Acetate', price_silver=40.00, price_gold=38.00, description_short='Mens optical frame, Acetate', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1436', color='U7M', color_description='Black/Matte Silver', size='53-17-145', material='Acetate', price_silver=40.00, price_gold=38.00, description_short='Mens optical frame, Acetate', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1477', color='N9P', color_description='Matte Demi Brown', size='50-21-145', material='Acetate', price_silver=40.00, price_gold=38.00, description_short='Mens optical frame, Acetate', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tommy Hilfiger', model='TH1489', color='KJ1', color_description='Light Shiny Gunmetal', size='55-19-143', material='Metal (Stainless Steel)', price_silver=40.00, price_gold=38.00, description_short='Mens Optical frames, Metal (Stainless Steel)', categories={'Tommy Hilfiger', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal (Stainless Steel)'}, tags={'Adult', 'Teens', 'Mens frames'}})
item.new({subtype='frame', brand='Tory Burch', model='TY2055', color='1475', color_description='Grey Marble ', size='53-16-135', material='Acetate', price_silver=60.00, price_gold=55.00, description_short='Lady optical frame, Acetate', categories={'Tory Burch', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTK006', color='0F98', color_description='Lavender/Silver ', size='49-16-125', material='Metal', price_silver=45.00, price_gold=42.00, description_short='Teen optical frame, Metal', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Teens', 'Optical Frames', 'Metal'}, tags={'Teen frames'}})
item.new({subtype='frame', brand='Tous', model='VTO318S', color='08R9', color_description='Copper/Demi Temples w/pearl detail ', size='54-17-135', material='Metal', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Metal', categories={'Tous', 'Collections Catalog', 'Designer Brands' , 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO347', color='08M6', color_description='Violet-Gold/Taupe Temples', size='53-15-135', material='Metal', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Metal', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO348', color='01HD', color_description='Violet-Silver/Lavender w/Tous logo print Temples', size='54-17-135', material='Metal', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Metal (Stainless Steel)', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Metal'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO821', color='0B87', color_description='Lavender/Gradient Temples', size='53-15-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Acetate', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO878', color='0D27', color_description='Powder Blue/Rubber Temples', size='53-15-135', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Acetate', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO878', color='0M79', color_description='Beige/Rubber Temples', size='53-15-135', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Acetate', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO881', color='0XAB', color_description='Mauve/Silver', size='51-18-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Acetate', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO930', color='0700', color_description='Black/Grey Tous logo print Temples', size='52-16-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Acetate', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO930', color='06PB', color_description='Caramel/Brown & Beige Tous logo print Temples', size='52-16-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Acetate', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Tous', model='VTO933', color='07TB', color_description='Marble Brown/Coral and Brown Temples-Gold', size='53-16-140', material='Acetate', price_silver=45.00, price_gold=42.00, description_short='Lady optical frame, Acetate', categories={'Tous', 'Collections Catalog', 'Designer Brands', 'Adult', 'Teen', 'Optical Frames', 'Acetate'}, tags={'Adult', 'Teens', 'Lady frames'}})
item.new({subtype='frame', brand='Converse', model='VCO0058Q', color='0741', size='53- - ', material='plastic', price_silver=50, price_gold=48, categories={'Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames'}})
item.new({subtype='frame', brand='Converse', model='VCO0059Q', color='0703', size='53- - ', material='plastic', price_silver=50, price_gold=48, categories={'Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames'}})
item.new({subtype='frame', brand='Converse', model='VCO0059Q', color='09GU', size='53- - ', material='plastic', price_silver=50, price_gold=48, categories={'Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames'}})
item.new({subtype='frame', brand='Converse', model='VCO0063Q', color='06RV', size='51- - ', material='plastic', price_silver=50, price_gold=48, categories={'Unisex frame', 'Plastic Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0069Q', color='0978', size='51- - ', material='metal', price_silver=50, price_gold=48, categories={'Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames'}})
item.new({subtype='frame', brand='Converse', model='VCO0075Q', color='0703', size='54- - ', material='plastic', price_silver=50, price_gold=48, categories={'Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0124Q', color='0627H', size='50- - ', material='metal', price_silver=50, price_gold=48, categories={'Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames'}})
item.new({subtype='frame', brand='Converse', model='VCO0131Q', color='0722Y', size='54- - ', material='plastic', price_silver=50, price_gold=48, categories={'Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames'}})
item.new({subtype='frame', brand='Converse', model='VCO0133Q', color='0627', size='55- - ', material='metal', price_silver=50, price_gold=48, categories={'Mens frame', 'Metal Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames', 'Metal'}})
item.new({subtype='frame', brand='Converse', model='VCO0174Q', color='0W47Y', size='54- - ', material='plastic', price_silver=50, price_gold=48, categories={'Mens frame', 'Plastic Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0176Q', color='0700', size='54- - ', material='plastic', price_silver=50, price_gold=48, categories={'Mens frame', 'Plastic Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Converse', model='VCO0184Q', color='7NSM', size='53- - ', material='plastic', price_silver=50, price_gold=48, categories={'Mens frame', 'Plastic Converse', 'Collections Catalog', 'Designer Brands'}, tags={'Adult', 'Optical Frames', 'Plastic'}})
item.new({subtype='frame', brand='Kapricci', model='K9991', color='C27', size='52-16-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9991', color='C96', size='52-16-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9991', color='C99', size='52-16-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9992', color='C27', size='55-17-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9992', color='C98', size='55-17-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9992', color='C99', size='55-17-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9993', color='C27', size='51-18-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9993', color='C96', size='51-18-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9993', color='C99', size='51-18-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9994', color='C26', size='52-17-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9994', color='C76', size='52-17-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9994', color='C95', size='52-17-135', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9995', color='C26', size='54-16-142', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9995', color='C30', size='54-16-142', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Kapricci', model='K9995', color='C66', size='54-16-142', material='metal', price_silver=10, price_gold=8, description_short='Metal Unisex frame', categories={'Kapricci', 'Exclusive Labels', 'Adult', 'Optical Frames', 'Metal'}, tags={'Adult', 'Unisex frames'}})
item.new({subtype='frame', brand='Timberland', model='TB1540', color='048', price_silver=20, price_gold=18, description_short='Mens optical frame, Plastic', categories={'Timberland', 'Collections Catalog', 'Designer Brands', 'Adult', 'Optical Frames', 'Plastic'}, tags={'Adult', 'Mens frames'}})
item.new({subtype='frame', brand='Guess', model='GU2467', color='BRN', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU2506', color='066', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU2515', color='049', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU2378', color='BLK', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU2378', color='BRN', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU1940', color='005', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU1948', color='020', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU1857', color='009', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU1677', color='GUN', price_silver=17, price_gold=15})
item.new({subtype='frame', brand='Guess', model='GU1799', color='GUN', price_silver=20, price_gold=18})
item.new({subtype='frame', brand='Guess', model='GU1617', color='GUN', price_silver=17, price_gold=15})
-- Set names for all the items thus far:
local item_records = db:findByStructure({subtype='frame'})
for _,item_record in ipairs(item_records) do
item_record.name = item_record.brand..' '..item_record.model..' ('..item_record.color..')'
item_record:save()
end
-- Lenses
--[=[
local single_vision_options, multifocal_options, base_options = {}, {}, {}
single_vision_options.sph = { '0.00',
'+0.25',
'+0.50',
'+0.75',
'+1.00',
'+1.25',
'+1.50',
'+1.75',
'+2.00',
'+2.25',
'+2.50',
'+2.75',
'+3.00',
'+3.25',
'+3.50',
'+3.75',
'+4.00',
'+4.25',
'+4.50',
'+4.75',
'+5.00',
'+5.25',
'+5.50',
'+5.75',
'+6.00',
'+6.25',
'+6.50',
'+6.75',
'+7.00',
'-0.25',
'-0.50',
'-0.75',
'-1.00',
'-1.25',
'-1.50',
'-1.75',
'-2.00',
'-2.25',
'-2.50',
'-2.75',
'-3.00',
'-3.25',
'-3.50',
'-3.75',
'-4.00',
'-4.25',
'-4.50',
'-4.75',
'-5.00',
'-5.25',
'-5.50',
'-5.75',
'-6.00',
'-6.25',
'-6.50',
'-6.75',
'-7.00'}
single_vision_options.cyl = { '0.00',
'0.25',
'0.50',
'0.75',
'1.00',
'1.25',
'1.50',
'1.75',
'2.00',
'2.25',
'2.50',
'2.75',
'3.00'}
single_vision_options.material = {'cr39', 'polycarbonate', 'blue-bocker', 'glass'}
single_vision_options.ar = {true, false}
single_vision_options.photochromatic = {'none', 'photogray', 'photobrown'}
for _,sph in ipairs(single_vision_options.sph) do
for _,cyl in ipairs(single_vision_options.cyl) do
for _,material in ipairs(single_vision_options.material) do
for _,ar in ipairs(single_vision_options.ar) do
for _,photochromatic in ipairs(single_vision_options.photochromatic) do
--[[ cr39 0.90
photochromatic $6
high-sph(4.25) +$1, high-cyl +$1
blue-bocker +$1.50
]]
item.new({subtype='single-vision-lens', sph=sph, cyl=cyl, material=material, ar=ar, photochromatic=photochromatic, price_silver=0, price_gold=0})
end
end
end
end
end
multifocal_options.strength1 = {'0.00',
'0.25',
'0.50',
'0.75',
'1.00',
'1.25',
'1.50',
'1.75',
'2.00',
'2.25',
'2.50',
'2.75',
'3.00'}
multifocal_options.strength2 = {'1.00',
'1.25',
'1.50',
'1.75',
'2.00',
'2.25',
'2.50',
'2.75',
'3.00'}
multifocal_options.material = {'cr39', 'polycarbonate', 'blue-bocker', 'glass'}
multifocal_options['type'] = {'progressive', 'ft28', 'blended'}
multifocal_options.ar = {true, false}
multifocal_options.photochromatic = {'none', 'photogray', 'photobrown'}
for _,strength1 in ipairs(multifocal_options.strength1) do
for _,strength2 in ipairs(multifocal_options.strength2) do
for _,material in ipairs(multifocal_options.material) do
for _,ar in ipairs(multifocal_options.ar) do
for _,photochromatic in ipairs(multifocal_options.photochromatic) do
for _,_type in ipairs(multifocal_options['type']) do
--[[ Bifocal
AR +$1
Flat-top $2.40
Photogray $9
Invisible $1.90
Photogray ?
]]
--[[ Progressive
]]
item.new({subtype='multifocal-lens', strength1=strength1, strength2=strength2, material=material, ar=ar, photochromatic=photochromatic, ['type']=_type, price_silver=0, price_gold=0})
end
end
end
end
end
end
base_options.base = {'2', '4', '6', '8'}
base_options.add = {'1.00',
'1.25',
'1.50',
'1.75',
'2.00',
'2.25',
'2.50',
'2.75',
'3.00'}
base_options.material = {'cr39', 'ft', 'kriptok', 'progressive'}
base_options.ar = {true, false}
base_options.photochromatic = {'none', 'photogray', 'photobrown'}
for _,base in ipairs(base_options.base) do
for _,add in ipairs(base_options.add) do
for _,material in ipairs(base_options.material) do
for _,ar in ipairs(base_options.ar) do
for _,photochromatic in ipairs(base_options.photochromatic) do
item.new({subtype='base-lens', base=base, add=add, material=material, ar=ar, photochromatic=photochromatic, price_silver=0, price_gold=0})
end
end
end
end
end
]=]
-- Equipment
item.new({subtype='equipment', name='Ophthalmic Unit', brand='Dongwoo', model='TW-1521TW', price_silver=0, price_gold=0, description_short='Ophthalmic Unit'})
item.new({subtype='equipment', name='Autorefractometer', brand='Dongwoo', model='TW-9200K', price_silver=0, price_gold=0, description_short='Autorefractometer with Keratometer'})
item.new({subtype='equipment', name='Color Lensometer', brand='Dongwoo', model='TW-8090', price_silver=0, price_gold=0, description_short='Color Lensometer'})
item.new({subtype='equipment', name='Phoropter', brand='Dongwoo', model='TW-1450A', price_silver=0, price_gold=0, description_short='Phoropter'})
item.new({subtype='equipment', name='PD Meter', brand='Dongwoo', model='TW-2210', price_silver=0, price_gold=0, description_short='PD Meter'})
item.new({subtype='equipment', name='PD Meter', brand='Dongwoo', model='TW-2213', price_silver=0, price_gold=0, description_short='PD Meter'})
item.new({subtype='equipment', name='Slit Lamp', brand='Dongwoo', model='YZ5F1', price_silver=0, price_gold=0, description_short='Slit Lamp'})
item.new({subtype='equipment', name='Trial Lens Set (104 pcs.)', brand='', model='', price_silver=0, price_gold=0, description_short='Trial Lens Set (104 pcs.)'})
item.new({subtype='equipment', name='Trial Lens Set (158 pcs.)', brand='', model='', price_silver=0, price_gold=0, description_short='Trial Lens Set (158 pcs.)'})
item.new({subtype='equipment', name='Trial Lens Set (232 pcs.)', brand='', model='', price_silver=0, price_gold=0, description_short='Trial Lens Set (232 pcs.)'})
item.new({subtype='equipment', name='Trial Lens Set (266 pcs.)', brand='', model='', price_silver=0, price_gold=0, description_short='Trial Lens Set (266 pcs.)'})
-- still need info for:
--item.new({subtype='equipment', name='Chart Projector', brand='Dongwoo', model='', price_silver=0, price_gold=0, description_short='Chart Projector'})
--item.new({subtype='equipment', name='Ophthalmoscope', brand='Dongwoo', model='', price_silver=0, price_gold=0, description_short='Ophthalmoscope'})
--item.new({subtype='equipment', name='Pachymeter', brand='Dongwoo', model='', price_silver=0, price_gold=0, description_short='Pachimeter'})
--item.new({subtype='equipment', name='Prism Bar', brand='Dongwoo', model='', price_silver=0, price_gold=0, description_short='Prism Bar'})
--item.new({subtype='equipment', name='Retinoscope', brand='Dongwoo', model='', price_silver=0, price_gold=0, description_short='Retinoscope'})
-- Accessories
-- still need info for:
--item.new({subtype='accessory', name='Case', brand='', model='', price_silver=0, price_gold=0, description_short=''})
--item.new({subtype='accessory', name='Cord', brand='', model='', price_silver=0, price_gold=0, description_short=''})
--item.new({subtype='accessory', name='Lens Cleaner Cloth', brand='', model='', price_silver=0, price_gold=0, description_short='Microfiber Cloth Lens Cleaner'})
--item.new({subtype='accessory', name='Lens Cleaner Bottle', brand='', model='', price_silver=0, price_gold=0, description_short=''})
--item.new({subtype='accessory', name='Nosepads', brand='', model='', price_silver=0, price_gold=0, description_short=''})
--item.new({subtype='accessory', name='Screws', brand='', model='', price_silver=0, price_gold=0, description_short=''})
+29
View File
@@ -0,0 +1,29 @@
local application = {}
application.setdb = function(db)
application.db = db
end
application.new = function(t)
local application_record = {}
application_record.type = 'application'
application_record.username = t.username
application_record.salutation = t.salutation
application_record.firstname = t.firstname
application_record.lastname = t.lastname
application_record.position = t.position
application_record.store = t.store
application_record.address = t.address
application_record.practice_type = t.practice_type
application_record.phone_office = t.phone_office
application_record.phone_cell = t.phone_cell
application_record.email = t.email
application_record.submitted_at = os.time()
application_record.status = 'open'
application.db:insertrecord(application_record)
return application_record
end
return application
+15
View File
@@ -0,0 +1,15 @@
local cart = {}
cart.setdb = function(db)
cart.db = db
end
cart.newForUser = function(user_record)
local cart_record = {['type']='cart', lineitem_ids={}, user_id=user_record.id}
cart.db:insertrecord(cart_record)
user_record.current_cart_id = cart_record.id
user_record:save()
return cart_record
end
return cart
+23
View File
@@ -0,0 +1,23 @@
local customprice = {}
customprice.setdb = function(db)
customprice.db = db
end
customprice.find = function(item_record, user_record, db)
return customprice.db:findByStructure({type='custom_price', item_id=item_record.id, user_id=user_record_id})[1]
end
customprice.new = function(t, db)
local customprice_record = {}
customprice_record.type = 'custom_price'
customprice_record.user_id = t.user.id
customprice_record.item_id = t.item.id
customprice_record.price = t.price
customprice.db:insertrecord(customprice_record)
return customprice_record
end
return customprice
+54
View File
@@ -0,0 +1,54 @@
local basexx = require 'basexx'
local uuid = require 'lua_uuid'
local vips = require 'vips'
local thumbnail = require './models/thumbnail'
local image = {}
-- where images are saved:
--image.directory = 'thumbnails/'
image.setdb = function(db)
image.db = db
end
image.new = function(img_buffer, original_filename)
local image_record = {};
image_record['type'] = 'image'
image_record.original_filename = original_filename
local new_filename = uuid()
--local vips_image = vips.Image.new_from_buffer(img_buffer, "", {access = "sequential"})
local thumbnail_original = vips.Image.new_from_buffer(img_buffer, "") -- don't give `{access = "sequential"}` option as 3rd parameter, since then it won't be able to be read twice: once for 960px thumbnail, and again for the 180px
local thumbnail_960 = thumbnail_original:thumbnail_image(960)
local thumbnail_180 = thumbnail_original:thumbnail_image(180)
--[[
thumbnail_original:write_to_file(thumbnail_original_path, {compression=9}) -- LMDBTODO: instead of writing to file, store in record; store each thumbnail in individual records (type='thumbnail'), so binser doesn't have to deserialize all the sizes just to get one (small) size
thumbnail_960:write_to_file(thumbnail_960_path, {compression=9})
thumbnail_180:write_to_file(thumbnail_180_path, {compression=9})
]]
local thumbnail_original_record = thumbnail.newfromvips(thumbnail_original)
local thumbnail_960_record = thumbnail.newfromvips(thumbnail_960)
local thumbnail_180_record = thumbnail.newfromvips(thumbnail_180)
-- TODO: close/release vips buffers, unless vips binding does it automatically
image_record.thumbnail_original_id = thumbnail_original_record.id
image_record.thumbnail_960_id = thumbnail_960_record.id
image_record.thumbnail_180_id = thumbnail_180_record.id
if image.db ~= nil then
image.db:insertrecord(image_record)
end
return image_record;
end
image.new_from_base64 = function(img_base64, original_filename)
local img_buffer = basexx.from_base64(img_base64)
return image.new(img_buffer, original_filename);
end
return image;
+44
View File
@@ -0,0 +1,44 @@
local util = require('./piazza-util')
local user = require'./models/user'
local customprice = require'./models/customprice'
local item = {}
item.setdb = function(db)
item.db = db
end
item.defaults = {
name = ''
}
item.create = function(t)
-- util.setdefaults(t, item.defaults)
--if t.name == nil then
-- t.name = t.brand .. ' ' .. t.model .. ' (' .. t.color .. ')'
--end
return t
end
item.new = function(t)
t = t or {}
local i = item.create(t)
i.type = 'item'
i.image_ids = {}
i.inventory = 0
item.db:insertrecord(i)
return i
end
item.priceof = function(item_record, user_record)
local customprice_record = customprice.find(item_record, user_record)
if customprice_record ~= nil then
return customprice_record.price
end
if user.isgold(user_record) then
return item_record.price_gold
end
return item_record.price_silver
end
return item
+25
View File
@@ -0,0 +1,25 @@
local item = require'./models/item'
local lineitem = {}
lineitem.setdb = function(db)
lineitem.db = db
end
lineitem.new = function(t)
local li = {}
li.type = 'lineitem'
li.cart_id = t.cart.id
li.item_id = t.item.id
li.quantity = t.quantity or 1
local item_record = t.item
local cart_record = t.cart
local user_record = lineitem.db:getrecord(cart_record.user_id)
li.price = item.priceof(item_record, user_record)
lineitem.db:insertrecord(li)
table.insert(cart_record.lineitem_ids, li.id)
cart_record:save()
return li
end
return lineitem
+24
View File
@@ -0,0 +1,24 @@
local order = {}
order.setdb = function(db)
order.db = db
end
order.new = function(t)
local order_record = {}
order_record.type = 'order'
order_record.cart_id = t.cart.id
order_record.user_id = t.cart.user_id
order_record.date_ordered = os.time()
order_record.status = 'open'
order_record.progress = 'ordered'
order.db:insertrecord(order_record)
t.cart.order_id = order_record.id
t.cart:save()
return order_record
end
return order
+17
View File
@@ -0,0 +1,17 @@
local thumbnail = {}
thumbnail.setdb = function(db)
thumbnail.db = db
end
thumbnail.newfromvips = function(vipsimage)
local t = {}
t['type'] = 'thumbnail'
t.src = vipsimage:write_to_buffer('.png', {compression=9})
thumbnail.db:insertrecord(t)
return t
end
return thumbnail
+36
View File
@@ -0,0 +1,36 @@
local hash = require('./piazza-util').hash
local user = {}
user.setdb = function(db)
user.db = db
end
user.new = function(t)
local u = {}
u.type = 'user'
u.username = t.username
u.password_hash = hash(t.password)
u.salutation = t.salutation or 'mr'
u.firstname = t.firstname or ''
u.lastname = t.lastname or ''
u.position = t.position or ''
u.store = t.store or ''
u.address = t.address or ''
u.practice_type = t.practice_type or ''
u.phone_office = t.phone_office or ''
u.phone_cell = t.phone_cell or ''
u.email = t.email or ''
u.tier = t.tier or 'silver'
u.is_admin = t.is_admin or false
user.db:insertrecord(u)
return u
end
user.isgold = function(user_record)
return user_record.tier == 'gold'
end
return user
+846
View File
@@ -0,0 +1,846 @@
--local xxhash = require( "xxhash" )
--local uuid = require( 'resty.jit-uuid' )
local uuid = require( 'lua_uuid' )
local DB = require( "./piazza-lmdb" )
local db = DB.init()
local user = require'./models/user'
local item = require'./models/item'
local image = require'./models/image'
local thumbnail = require'./models/thumbnail'
local cart = require'./models/cart'
local lineitem = require'./models/lineitem'
local order = require'./models/order'
local customprice = require'./models/customprice'
local application = require'./models/application'
local util = require( './piazza-util' )
local models = {user, item, image, thumbnail, cart, lineitem, order, customprice, application}
for _, model in ipairs(models) do
model.setdb(db)
end
-- password hash:
local hash = util.hash
local sessions = {} -- keys are session_hashes, values are whatever the server wants to store
local validate = util.validate
local api = {};
api.post = function()
return {message="I did a post."}
end
api.attemptlogin = function(req)
local validation_errors = validate(req, {
username = {'string', required=true},
password = {'string', required=true}
})
if #validation_errors > 0 then
return {errors=validation_errors}
else
local user_record = db:findOne(function(record)
return record.type == 'user' and record.username == req.username
end)
if user_record == nil then
return {success = false, error="no such user"}
elseif user_record.password_hash ~= hash(req.password) then
return {success = false, error="wrong password"}
-- TODO: add 'elseif' to make sure user isn't already logged-in, so two sessions aren't made for the same user who clicked 'login' button twice; although this will make it impossible to sign-in from two different computers
else
local session_hash = uuid()
sessions[session_hash] = {user_id = user_record.id}
if user_record.current_cart_id == nil then
cart.newForUser(user_record)
end
return {
success = true,
-- user = db:preparecopy(user_record, {'password_hash'}),
-- cart = db:preparecopy(user_record.current_cart),
user = user_record:copyandtransform({
id = 'copy',
username = 'copy',
firstname = 'copy',
tier = 'copy',
is_admin = 'copy'
}),
cart = db:getrecord(user_record.current_cart_id):copyandtransform({
id = 'copy',
lineitem_ids = {'list', {
id = 'copy',
quantity = 'copy',
price = 'copy',
item_id = {
id = 'copy',
name = 'copy',
brand = 'copy',
model = 'copy',
color = 'copy'
}
}}
}),
session_hash = session_hash
}
end
end
end
api.logout = function(req)
local session_hash = req.session_hash
if session_hash ~= nil and sessions[session_hash] ~= nil then
sessions[session_hash] = nil
return {success=true}
else
return {error="no such session_hash"} -- TODO: this could happen if user logged-in, then fastcgi was restarted (thus clearing the sessions table), and then logged-out
end
end
api.getone = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true},
['type'] = {'string', required=true},
id = {'db_ref', to=req['type'], required=true, load_as='record'},
structure = {'table', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local record_copy = loaded_records.record:copyandtransform(req.structure)
return {success = true, record = record_copy}
end
end
--[[ -- too big of a security concern. it could return the whole DB to a clever attacker
api.getall = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true},
filter = {'table', required=true}, -- TODO: ensure 'filter' is a non-empty table, for security reasons, because then the whole DB will be returned
structure = {'table', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local records = db:findByStructure(req.filter)
local record_copies = db:copyandtransformall(records, req.structure)
return {success=true, records = record_copies}
end
end
]]
api.setproperty = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
record_type = {'string', required=true},
record_id = {'db_ref', to=req.record_type, required=true, load_as='record'},
key = {'string', required=true}
-- value = {'string', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local record = loaded_records.record
record[req.key] = req.value
record:save()
return {success=true}
end
end
api.insertrecord = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true},
record = {'table', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local id = db:insertrecord(req.record)
return {success=true, id = id}
end
end
-- admin function: add item
api.additem = function(req)
local validation_errors = validate(req, {
session_hash = {'session', required=true, is_admin=true},
item = {'table', required=true}
}, nil, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
item.new(req.item)
-- if saving succeeds, return success message
return {success=true}
end
end
-- admin function: delete item
api.deleteitem = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
item_id = {'db_ref', to='item', required=true, load_as='item_record'}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
-- delete item
--loaded_records.item_record:delete()
loaded_records.item_record.deleted = true
loaded_records.item_record:save()
-- if deletion succeeds, return success message
return {success=true}
end
end
-- admin function: update item
-- session_hash, item_id, properties_to_update
api.updateitem = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
item_id = {'db_ref', to='item', required=true, load_as='item_record'},
properties_to_update = {'table', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
util.merge(loaded_records.item_record, req.properties_to_update)
loaded_records.item_record:save()
--db:update(loaded_records.item_record, req.properties_to_update)
-- if update succeeds, reply with success
return {success=true}
end
end
api.fulliteminfo = function(req)
local validation_errors, loaded_records = validate(req, {
item_id = {'db_ref', to='item', required=true, load_as='item_record'}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local item_record_copy = loaded_records.item_record:copyandtransform({
id = 'copy',
['type'] = 'copy',
description_short = 'copy',
size = 'copy',
material = 'copy',
color_description = 'copy'
})
-- if update succeeds, reply with success
return {success=true, item=item_record_copy}
end
end
--[[
api.newimage = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
image_base64 = {'base64', required=true, load_as = 'image_base64'},
original_filename = {'string', required=true} -- so we can tell for which frame it is in retrospect
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
image.new_from_base64(loaded_records.image_base64, req.original_filename, db)
return {success=true}
end
end
]]
-- admin function: create new empty frame record
-- session_hash
api.createnewframe = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local new_frame_record = item.new({
subtype='frame',
brand='',
model='',
color = '',
color_description = '',
name = '',
description_short = '',
size = '',
material = '',
price_silver = 0,
price_gold = 0,
inventory = 0
})
local new_frame_record_copy = new_frame_record:copyandtransform({
id = 'copy',
['type'] = 'copy',
subtype = 'copy',
brand = 'copy',
model = 'copy',
color = 'copy',
color_description = 'copy',
name = 'copy',
description_short = 'copy',
size = 'copy',
material = 'copy',
price_silver = 'copy',
price_gold = 'copy',
inventory = 'copy'
})
-- if update succeeds, reply with success
return {success=true, new_frame=new_frame_record_copy}
end
end
-- admin function: add image to item
-- session_hash, item_id, image_base64, original_filename
api.addimagetoitem = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
item_id = {'db_ref', to='item', required=true, load_as='item_record'},
image_base64 = {'base64', required=true, load_as='image_base64'},
original_filename = {'string', required=true} -- so we can tell for which frame it is in retrospect
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local image_record = image.new_from_base64(loaded_records.image_base64, req.original_filename)
local item_record = loaded_records.item_record
-- image_record.item = item_record -- not all images have a `.item` property, so we should rather link the image to the item by `item.images`
if item_record.image_ids == nil then item_record.image_ids = {} end
table.insert(item_record.image_ids, image_record.id)
item_record:save()
local image_record_copy = image_record:copyandtransform({
id = 'copy',
['type'] = 'copy',
original_filename = 'copy',
thumbnail_960_id = 'copy',
thumbnail_180_id = 'copy',
thumbnail_original_id = 'copy'
})
-- if update succeeds, reply with success
return {success=true, image=image_record_copy}
end
end
api.deleteitemimage = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
item_id = {'db_ref', to='item', required=true, load_as='item_record'},
image_id = {'db_ref', to='image', required=true, load_as='image_record'}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local image_record = loaded_records.image_record
local item_record = loaded_records.item_record
-- image_record.item = item_record -- not all images have a `.item` property, so we should rather link the image to the item by `item.images`
if item_record.image_ids == nil then item_record.image_ids = {} end
local image_index = 0
repeat
image_index = image_index + 1
until item_record.image_ids[image_index] == image_record.id or item_record.image_ids[image_index] == nil
table.remove(item_record.image_ids, image_index)
item_record:save()
-- also delete the image_record, and the files it points to
image_record:delete()
db:delete(image_record.thumbnail_original_id)
db:delete(image_record.thumbnail_960_id)
db:delete(image_record.thumbnail_180_id)
-- if update succeeds, reply with success
return {success=true}
end
end
api.itemsbystring = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true},
search_string = {'string', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local item_records = db:findAll(function(record)
return record.type == 'item' and string.find(record.model, req.search_string) ~= nil
end)
item_records = db:copyandtransformall(item_records, {
id = 'copy',
['type'] = 'copy',
brand = 'copy',
model = 'copy',
color = 'copy'
})
return {success=true, results = item_records}
end
end
api.framesbystring = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true},
search_string = {'string', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local item_records = db:findAll(function(record)
return record.subtype == 'frame' and string.find(record.model, req.search_string) ~= nil
end)
item_records = db:copyandtransformall(item_records, {
id = 'copy',
['type'] = 'copy',
subtype = 'copy',
name = 'copy',
brand = 'copy',
model = 'copy',
color = 'copy',
color_description = 'copy',
description_short = 'copy',
size = 'copy',
material = 'copy',
price_silver = 'copy',
price_gold = 'copy',
inventory = 'copy'
})
return {success=true, results = item_records}
end
end
api.itemimages = function(req)
local validation_errors, loaded_records = validate(req, {
--session_hash = {'session', required=true},
item_id = {'db_ref', to='item', required=true, load_as='item_record'}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local item_record = loaded_records.item_record
if item_record.image_ids == nil then
item_record.image_ids = {}
item_record:save()
end
local image_records = db:copyandtransformall(item_record.image_ids, {
id = 'copy',
['type'] = 'copy',
original_filename = 'copy',
thumbnail_960_id = 'copy',
thumbnail_180_id = 'copy',
thumbnail_original_id = 'copy'
})
return {success=true, images = image_records}
end
end
-- admin function: change user's tier
-- session_hash, user_id, tier
api.changeusertier = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
user_id = {'db_ref', to='user', required=true, load_as='user_record'},
tier = {'string', required=true, is_any_of={'gold','silver'}}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
--db:update(loaded_records.user_record, {tier=req.tier})
loaded_records.user_record.tier = req.tier
loaded_records.user_record:save()
-- if update succeeds, reply with success
return {success=true}
end
end
-- admin function: give custom price to user for certain item
-- session_hash, user_id, item_id, price
api.setuseritemprice = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
user_id = {'db_ref', to='user', required=true, load_as='user_record'},
item_id = {'db_ref', to='item', required=true, load_as='item_record'},
price = {'number', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
-- find previously-existing special price between this user and this item
local custom_price_record = db:findOne(function(record) return record.type == 'custom_price' and record.user_id == loaded_records.user_record.id and record.item_id == loaded_records.item_record_id end)
-- if no existing special price is found, insert one into DB
if custom_price_record == nil then
customprice.new({user_id=loaded_records.user_record.id, item_id=loaded_records.item_record.id, price=req.price})
-- if insert succeeds, reply with success
return {success=true}
-- if insert fails, reply with error
-- if existing special price is found, update it
else
--db:update(custom_price_record, {price = req.price})
custom_price_record.price = req.price
custom_price_record:save()
-- if update succeeds, reply with success
return {success=true}
-- if update fails, reply with error
end
end
end
-- function: update item quantity in current cart; if zero, remove; if was zero, add to cart
api.updateitemquantityincart = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true},
item_id = {'db_ref', to='item', required=true, load_as='item_record'},
quantity = {'number', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
-- find cart based on session_hash
local current_user_record = db:getrecord( loaded_records.session.user_id )
local cart_record = db:getrecord(current_user_record.current_cart_id)
-- if cart not found, create one
if cart_record == nil then
cart_record = cart.newForUser(current_user_record)
end
-- find lineitem for this item in cart
local lineitem_record_id = util.findOne(cart_record.lineitem_ids, function(lineitem_id)
local lineitem = db:getrecord(lineitem_id)
return lineitem.item_id == loaded_records.item_record.id
end)
local lineitem_record
-- if lineitem not found, create one
if lineitem_record_id == nil then
if req.quantity > 0 then
lineitem_record = lineitem.new({cart=cart_record, item=loaded_records.item_record, quantity=req.quantity})
end
else
lineitem_record = db:getrecord(lineitem_record_id)
if req.quantity > 0 then
-- update quantity in lineitem
--db:update(lineitem_record, {quantity = req.quantity})
lineitem_record.quantity = req.quantity
lineitem_record:save()
-- if the item is being removed from the cart
elseif req.quantity == 0 then
-- remove item from cart
util.removefromtable(cart_record.lineitem_ids, lineitem_record.id)
--db:remove(lineitem_record)
lineitem_record:delete()
cart_record:save()
end
end
local lineitem_records_copy = db:copyandtransformall(cart_record.lineitem_ids, {
id = 'copy',
['type'] = 'copy',
item_id = {
id = 'copy',
['type'] = 'copy',
name = 'copy',
brand = 'copy',
model = 'copy',
color = 'copy',
price_silver = 'copy',
price_gold = 'copy',
inventory = 'copy',
price = 'copy',
},
quantity = 'copy',
price = 'copy'
})
return {success=true, lineitems = lineitem_records_copy}
end
end
-- function: place order (i.e. current cart)
api.placeorder = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
-- find cart based on session_hash
local current_user_record = db:getrecord( loaded_records.session.user_id )
local cart_record = db:getrecord( current_user_record.current_cart_id )
-- if cart not found, reply with error
if cart_record == nil then
return {error="No cart for current user."}
elseif #cart_record.lineitem_ids == 0 then
return {error="Cart is empty."}
else
-- if cart found, create order out of it
local order_record = order.new({cart=cart_record})
-- if order creation successful, create new empty cart for user and reply with success
for _, lineitem_id in ipairs(cart_record.lineitem_ids) do
local lineitem_record = db:getrecord(lineitem_id)
local item_record = db:getrecord(lineitem_record.item_id)
item_record.inventory = item_record.inventory - lineitem_record.quantity
item_record:save()
end
local new_cart_record = cart.newForUser(current_user_record)
return {success=true, order_id = order_record.id, new_cart_record = new_cart_record}
end
end
end
-- admin function: list open orders
api.listopenorders = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
-- find open orders
local open_order_records = db:findAll(function(record)
return record.type == 'order' and record.status == 'open'
end)
-- local open_orders = db:preparecopies(open_order_records)
local open_orders = db:copyandtransformall(open_order_records, {
id = 'copy',
['type'] = 'copy',
cart_id = 'copy',
user_id = {
id = 'copy',
['type'] = 'copy',
firstname = 'copy',
lastname = 'copy',
store = 'copy'
},
date_ordered = 'copy',
status = 'copy',
progress = 'copy'
})
return {success=true, orders=open_orders}
end
end
-- admin function: list open orders
api.loadorder = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
order_id = {'db_ref', to='order', load_as='order_record'}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local order_record_copy = loaded_records.order_record:copyandtransform({
id = 'copy',
['type'] = 'copy',
progress = 'copy',
cart_id = {
id = 'copy',
['type'] = 'copy',
lineitem_ids = {
'list',
{
id = 'copy',
['type'] = 'copy',
price = 'copy',
quantity = 'copy',
item_id = {
id = 'copy',
['type'] = 'copy',
name = 'copy'
}
}
}
}
})
return {success=true, order=order_record_copy}
end
end
-- admin function: mark order as packed, shipped, and delivered
api.updateorderstatus = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
order_id = {'db_ref', to='order', required=true, load_as='order_record'},
status = {'string', required=true, is_any_of={'open','packed','shipped','paid'}}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
-- if order found, update status
--db:update(loaded_records.order_record, {status = req.status})
loaded_records.order_record.status = req.status
loaded_records.order_record:save()
-- if update succeeds, reply with success
return {success=true}
end
end
-- function: find items according to privileges and characteristics
api.itemsbyfilter = function(req)
local filter = req.filter
local item_records = db:findAll(function(record)
if record.type ~= 'item' then return false end
--if record.inventory == nil then record.inventory = 0; record:save() end
if record.inventory < 1 then return false end
-- if user is not signed-in, he cannot see all items:
if req.session_hash == nil then
for k,v in pairs(filter) do
if record[k] ~= v then return false end
if item.restricted == true then return false end
end
-- if user is signed-in, he may see all items:
else
for k,v in pairs(filter) do
if record[k] ~= v then return false end
end
end
return true
end)
local item_records_copy = db:copyandtransformall(item_records, {
id = 'copy',
name = 'copy',
brand = 'copy',
model = 'copy',
color = 'copy',
color_description = 'copy',
size = 'copy',
material = 'copy',
description_short = 'copy',
price_gold = 'copy',
price_silver = 'copy',
inventory = 'copy',
image_ids = {
'list',
{
id = 'copy',
['type'] = 'copy',
thumbnail_180_id = 'copy',
thumbnail_960_id = 'copy',
thumbnail_original_id = 'copy'
}
}
})
-- TODO: only send the price for each item according to the user's tier, or his own special pricing. don't send price_silver and price_gold
return {success=true, items = item_records_copy}
end
-- function: submit new user application, to be accepted or declined by admin
api.submitnewuserapplication = function(req)
local validation_errors, loaded_records = validate(req, {
username = {'string', required=true},
salutation = {'string', required=true, is_any_of={'mr','ms','mrs','dr'}},
firstname = {'string', required=true},
lastname = {'string', required=true},
position = {'string', required=true},
store = {'string', required=true},
address = {'string', required=true},
practice_type = {'string', required=true},
phone_office = {'string', required=true},
phone_cell = {'string', required=true},
email = {'string', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
application.new({
['type'] = 'application',
username = req.username,
salutation = req.salutation,
firstname = req.firstname,
lastname = req.lastname,
position = req.position,
store = req.store,
address = req.address,
practice_type = req.practice_type,
phone_office = req.phone_office,
phone_cell = req.phone_cell,
email = req.email
})
-- if update succeeds, reply with success
return {success=true}
end
end
api.acceptnewuserapplication = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
application_id = {'db_ref', to='application', required=true, load_as='application_record'},
password = {'string', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
local application_record = loaded_records.application_record
user.new({
password = req.password,
username = application_record.username,
salutation = application_record.salutation,
firstname = application_record.firstname,
lastname = application_record.lastname,
position = application_record.position,
store = application_record.store,
address = application_record.address,
practice_type = application_record.practice_type,
phone_office = application_record.phone_office,
phone_cell = application_record.phone_cell,
email = application_record.email,
tier='silver'
})
--db:update(application_record, {status = 'accepted', accepted_at = os.time()})
application_record.status = 'accepted'
application_record.accepted_at = os.time()
application_record:save()
-- if update succeeds, reply with success
return {success=true}
end
end
-- admin function: list open application records
api.listnewuserapplications = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
-- find open applications
local open_application_records = db:findAll(function(record) return record.type == 'application' and record.status == 'open' end)
local open_applications = db:copyandtransformall(open_application_records, {
id='copy',
['type'] = 'copy',
username = 'copy',
salutation = 'copy',
firstname = 'copy',
lastname = 'copy',
position = 'copy',
store = 'copy',
address = 'copy',
practice_type = 'copy',
phone_office = 'copy',
phone_cell = 'copy',
email = 'copy',
submitted_at = 'copy'
})
return {success=true, open_applications=open_applications}
end
end
api.declinenewuserapplication = function(req)
local validation_errors, loaded_records = validate(req, {
session_hash = {'session', required=true, is_admin=true},
application_id = {'db_ref', to='application', required=true, load_as='application_record'},
password = {'string', required=true}
}, db, sessions)
if #validation_errors > 0 then
return {errors=validation_errors}
else
--db:update(loaded_records.application_record, {status = 'declined', declined_at = os.time()})
local application_record = loaded_records.application_record
application_record.status = 'declined'
application_record.declined_at = os.time()
application_record:save()
-- if update succeeds, reply with success
return {success=true}
end
end
api.getthumbnail = function(thumbnail_id)
return db:getrecord(thumbnail_id).src
end
return api
+237
View File
@@ -0,0 +1,237 @@
lightningmdb_lib=require "lightningmdb"
lightningmdb = _VERSION>="Lua 5.2" and lightningmdb_lib or lightningmdb
MDB = setmetatable({}, {__index = function(t, k)
return lightningmdb["MDB_" .. k]
end})
--local binser = require'binser'
local bitser = require'bitser/bitser'
local lrandom = require'random' -- 'lrandom' luarocks package
local lrandom_sequence = lrandom.new(os.time())
-- helper function to generate random integer
local randomid = function()
local min = 0
local max = 256*256*256*256-1 -- 32-bits exactly; TODO: confirm this isn't larger than 32-bits
return lrandom.value(lrandom_sequence, min, max)
end
local piazzadb = {}
local dbmt = {}
dbmt.__index = dbmt
local recordmt = {}
recordmt.__index = recordmt
piazzadb.init = function()
local env = lightningmdb.env_create()
env:set_mapsize(4096*1000000000) -- 4GB max DB size
env:open('./piazza.lmdb', MDB.NOSUBDIR+MDB.NOLOCK, 420)
local transaction = env:txn_begin(nil, 0)
local dbi = transaction:dbi_open(nil, 0) -- only need one db handle; can be reused in later transactions
transaction:commit()
local db = {}
db.env = env
db.dbi = dbi
setmetatable(db, dbmt)
return db
end
dbmt.serializerecord = function(db, record)
record.db = nil
--return binser.serialize(record)
return bitser.dumps(record)
end
dbmt.deserializerecord = function(db, record_string)
--local record = binser.deserializeN(record_string, 1)
local record = bitser.loads(record_string)
record.db = db
setmetatable(record, recordmt)
return record
end
-- helper function to get a new available id
dbmt.newid = function(db)
local transaction = db.env:txn_begin(nil, 0)
-- generate new ids and check for pre-existing entry in DB until an available ID is found:
local id, v
local count = 2
repeat
id = randomid()
count=count+1
v = transaction:get(db.dbi, id)
until v == nil
transaction:commit()
return id
end
dbmt.getstring = function(db, id)
local transaction = db.env:txn_begin(nil, 0)
local v = transaction:get(db.dbi, id)
transaction:commit()
return v
end
dbmt.setstring = function(db, id, s) -- DON'T USE THIS DIRECTLY! Everything that goes into the DB must pass through binser (the serializer), because if not it there's no way to loop through all records, because it's impossible to tell what's a record (i.e. binser table) and what's a raw string
local transaction = db.env:txn_begin(nil, 0)
transaction:put(db.dbi, id, s, 0)
transaction:commit()
end
dbmt.delete = function(db, id)
local transaction = db.env:txn_begin(nil, 0)
transaction:del(db.dbi, id, nil)
transaction:commit()
end
-- gets record cast from raw string into lua table, outfitted with metatable methods
dbmt.getrecord = function(db, id)
local record_string = db:getstring(id)
return db:deserializerecord( record_string )
end
-- stores Lua table as record
dbmt.setrecord = function(db, id, t)
local record_string = db:serializerecord(t)
db:setstring(id, record_string)
end
-- stores Lua table as new record, assigning it a random ID
dbmt.insertrecord = function(db, t)
local id = db:newid()
t.id = id
setmetatable(t, recordmt)
local record_string = db:serializerecord(t)
db:setstring(id, record_string)
return id
end
dbmt.records = function(db)
local transaction = db.env:txn_begin(nil, 0)
local cursor = transaction:cursor_open(db.dbi)
--cursor:get(nil, nil, MDB.FIRST)
local k, v
return function()
k, v = cursor:get(k, MDB.NEXT)
if k then
return k, db:deserializerecord(v)
else
cursor:close()
transaction:commit()
end
end
end
dbmt.findAll = function(db, fn)
local t = {}
for id,record in db:records() do
if fn(record, id) then table.insert(t, record) end
end
return t
end
dbmt.findOne = function(db, fn)
for id,record in db:records() do
if fn(record, id) then return record end
end
return nil
end
dbmt.close = function(db)
db.env:dbi_close(db.dbi)
end
dbmt.copyandtransformall = function(db, list, structure)
local copy = {}
for _, el in ipairs(list) do
local record
if type(el) == 'number' then -- if it's an ID, get the record
record = db:getrecord(el)
elseif type(el) == 'table' then -- if it's a record itself
record = el
end
table.insert(copy, record:copyandtransform(structure))
end
return copy
end
dbmt.findByStructure = function(db, structure)
local t = {}
for _,record in db:records() do
local does_match = true
for k,v in pairs(structure) do
if type(v) == 'table' then -- TODO: everything within this `if` needs to be fleshed-out; it doesn't do JOINs yet
if v[1] == 'list' then
if type(record[k]) ~= 'table' then -- TODO: find more accurate way to check whether it's a list, which excludes 'object' tables but includes empty lists (i.e. `#record[k] > 0` won't work)
does_match = false
break
end
end
else
if record[k] ~= v then
does_match = false
break
end
end
end
if does_match then table.insert(t, record) end
end
return t
end
recordmt.save = function(record)
record.db:setrecord(record.id, record)
end
recordmt.delete = function(record)
record.db:delete(record.id)
end
recordmt.getref = function(record, key)
return record.db:getrecord(record[key..'_id'])
end
recordmt.copyandtransform = function(record, structure)
local db = record.db
local copy = {}
for k,op in pairs(structure) do
if op=='copy' then
copy[k] = record[k]
elseif type(op)=='table' then -- it can either be a 'list' directive, or a substructure
if op[1] == 'list' or op[1] == 'array' then
local subcopy = {}
local substructure = op[2]
if substructure == nil then -- if it's a list of scalars, e.g. strings
for _,el in ipairs(record[k]) do
table.insert(subcopy, el)
end
else -- if it's a list of tables/records, of which we want just a portion as per the substructure
if record[k] ~= nil then
for _,el in ipairs(record[k]) do
local referenced_record = db:getrecord(el)
table.insert(subcopy, referenced_record:copyandtransform(substructure))
end
end
end
copy[k] = subcopy
elseif op[1] == nil then -- if it's just a single referenced table
local substructure = op
local referenced_record = db:getrecord(record[k]) -- e.g. k='some_record_id'
copy[k] = referenced_record:copyandtransform(substructure)
end
end
end
return copy
end
return piazzadb
+17
View File
@@ -0,0 +1,17 @@
prompt = require "prompt"
prompt.colorize = true
prompt.name = "piazza"
prompt.history = "/tmp/.piazza_lua_history"
prompt.prompts = {"% ", "%% "}
DB = require( "./piazza-lmdb" )
db = DB.init()
api = require'./piazza-api-lmdb'
user = require'./models/user'
item = require'./models/item'
cart = require'./models/cart'
image = require'./models/image'
prompt.enter()
+126
View File
@@ -0,0 +1,126 @@
local util = {}
local table_is_empty = function(t)
return next(t) == nil
end
local is_in = function(value, list)
for _,el in ipairs(list) do
if value == el then
return true
end
end
return false
end
util.hash = function(v) -- TODO: maybe use Argon2 [https://luarocks.org/modules/thibaultcha/argon2]
--xxhash:update(v)
--return xxhash:digest()
return v
end
--[[
Uses 'schema' to verify:
Existence of required value in 'req'
They have proper types
The DB references actually exist
]]
--[[ schema = {
user_id = {'db_ref', to='user', required=true, load_as='user_record'} -- `load_as` so a DB search doesn't have to be done again after validation
price = {'number', required=true}
}
]]
util.validate = function(req, schema, db, sessions)
local errors = {}
local loaded_records = {}
for property, rules in pairs(schema) do
local expected_value_type = rules[1]
local value = req[property]
if rules.required == true then
if value == nil then
table.insert(errors, "Expected '"..property.."' to be provided.")
end
end
if expected_value_type == 'number' or expected_value_type == 'string' or expected_value_type == 'table' then
if type(value) ~= expected_value_type then
table.insert(errors, "Expected '"..property.."' to be a "..expected_value_type..".")
elseif rules.is_any_of ~= nil then
if not is_in(value, rules.is_any_of) then
table.insert(errors, "Expected '"..property.."' to be one of (".. table.concat(rules.is_any_of,',') ..").")
end
end
elseif expected_value_type == 'db_ref' then
local expected_record_type = rules.to
local record = db:findOne(function(record) return record.id == value and record.type == expected_record_type end)
if record == nil then
table.insert(errors, "Expected '"..property.."' to point to a '"..expected_record_type.."' in the database.")
else
loaded_records[rules.load_as] = record
end
elseif expected_value_type == 'base64' then
local _, start_of_base64_string_index = string.find(value, "data:.-/.-;base64,")
start_of_base64_string_index = start_of_base64_string_index + 1
local base64_adjusted = string.sub(value, start_of_base64_string_index) -- must remove "data:*/*;base64," from the beginning of the string
loaded_records[rules.load_as] = base64_adjusted
elseif expected_value_type == 'session' then
local session = sessions[value]
if session == nil then
table.insert(errors, "No such session.")
else
if rules.is_admin == true and db:getrecord(session.user_id).is_admin ~= true then
table.insert(errors, "Current user is not admin.")
else
loaded_records.session = session
end
end
end
end
return errors, loaded_records
end
util.run_every = function(interval_in_s, fn)
local co = coroutine.create(function()
local t1 = os.time()
while true do
if os.time()-t1 > interval_in_s*1000 then
fn()
t1 = os.time()
end
coroutine.yield()
--posix.unistd.sleep(interval_in_s)
end
end)
return co
end
util.setdefaults = function(t, defaults)
for k,v in pairs(defaults) do
if t[k] == nil then
t[k] = v
end
end
end
util.merge = function(dest, source)
for k,v in pairs(source) do
dest[k] = v
end
end
util.findOne = function(t, fn)
for i,v in ipairs(t) do
if fn(v, i) then return v end
end
return nil
end
util.removefromtable = function(t, v)
local i = 1
while t[i] ~= v do i = i + 1 end
table.remove(t, i)
return i
end
return util
+288
View File
@@ -0,0 +1,288 @@
--[=[
This example serves a file/directory browser
It defaults to serving the current directory.
Usage: lua examples/serve_dir.lua [<port> [<dir>]]
]=]
local port = arg[1] or 8000
local dir = '../public/'
local new_headers = require "http.headers".new
local http_server = require "http.server"
local http_util = require "http.util"
local http_version = require "http.version"
local ce = require "cqueues.errno"
local lfs = require "lfs"
local lpeg = require "lpeg"
local uri_patts = require "lpeg_patterns.uri"
local cjson = require "cjson"
local mimetypes = require "mimetypes"
local api = require './piazza-api-lmdb'
local replyJSON = function(t, stream)
stream.res_headers:upsert(":status", "200")
stream.res_headers:append('content-type', 'application/json')
stream:write_headers(stream.res_headers, false)
stream:write_body_from_string( cjson.encode(t) )
end
--local mdb do
-- -- If available, use libmagic https://github.com/mah0x211/lua-magic
-- local ok, magic = pcall(require, "magic")
-- if ok then
-- mdb = magic.open(magic.MIME_TYPE+magic.PRESERVE_ATIME+magic.RAW+magic.ERROR)
-- local mgc_file = '/usr/share/misc/magic.mgc'
-- if mdb:load(mgc_file) ~= 0 then
-- error(magic:error())
-- end
-- end
--end
local uri_reference = uri_patts.uri_reference * lpeg.P(-1)
local default_server = string.format("%s/%s", http_version.name, http_version.version)
local xml_escape do
local escape_table = {
["'"] = "&apos;";
["\""] = "&quot;";
["<"] = "&lt;";
[">"] = "&gt;";
["&"] = "&amp;";
}
function xml_escape(str)
str = string.gsub(str, "['&<>\"]", escape_table)
str = string.gsub(str, "[%c\r\n]", function(c)
return string.format("&#x%x;", string.byte(c))
end)
return str
end
end
local human do -- Utility function to convert to a human readable number
local suffixes = {
[0] = "";
[1] = "K";
[2] = "M";
[3] = "G";
[4] = "T";
[5] = "P";
}
local log = math.log
if _VERSION:match("%d+%.?%d*") < "5.1" then
log = require "compat53.module".math.log
end
function human(n)
if n == 0 then return "0" end
local order = math.floor(log(n, 2) / 10)
if order > 5 then order = 5 end
n = math.ceil(n / 2^(order*10))
return string.format("%d%s", n, suffixes[order])
end
end
local function _reply(myserver, stream) -- luacheck: ignore 212
-- Read in headers
local req_headers = assert(stream:get_headers())
local req_method = req_headers:get ":method"
-- Log request to stdout
assert(io.stdout:write(string.format('[%s] "%s %s HTTP/%g" "%s" "%s"\n',
os.date("%d/%b/%Y:%H:%M:%S %z"),
req_method or "",
req_headers:get(":path") or "",
stream.connection.version,
req_headers:get("referer") or "-",
req_headers:get("user-agent") or "-"
)))
-- Build response headers
local res_headers = new_headers()
stream.res_headers = res_headers
res_headers:append(":status", nil)
res_headers:append("server", default_server)
res_headers:append("date", http_util.imf_date())
if req_method == 'POST' then
local endpoint = req_headers:get(":path"):sub(6) -- TODO: match exact proper path, and return 404 if no match; shave-off the leading '/cgi' from the path
if api[endpoint] ~= nil then
local req = cjson.decode(stream:get_body_as_string())
replyJSON( api[endpoint](req) , stream )
return
end
end
if req_method ~= "GET" and req_method ~= "HEAD" then
res_headers:upsert(":status", "405")
assert(stream:write_headers(res_headers, true))
return
end
local path = req_headers:get(":path")
local thumbnail_id = string.match(path, '/thumbnailsdb/(.+)%.png')
if req_method == 'GET' and thumbnail_id ~= nil then
res_headers:upsert(":status", "200")
res_headers:append("content-type", "image/png")
assert(stream:write_headers(res_headers, false))
local src = api.getthumbnail(tonumber(thumbnail_id))
stream:write_chunk(src, true)
return
end
-- use LPEG to create a uri table with the URI in different forms:
local uri_t = assert(uri_reference:match(path), "invalid path")
path = http_util.resolve_relative_path("/", uri_t.path or nil)
local real_path = dir .. path
local file_type = lfs.attributes(real_path, "mode")
if file_type == "directory" then
-- check for index.html
local fd, err, errno = io.open(real_path..'/index.html', "rb")
if not fd then
-- directory listing
path = path:gsub("/+$", "") .. "/"
res_headers:upsert(":status", "200")
res_headers:append("content-type", "text/html; charset=utf-8")
assert(stream:write_headers(res_headers, req_method == "HEAD"))
if req_method ~= "HEAD" then
assert(stream:write_chunk(string.format([[
<!DOCTYPE html>
<html>
<head>
<title>Index of %s</title>
<style>
a {
float: left;
}
a::before {
width: 1em;
float: left;
content: "\0000a0";
}
a.directory::before {
content: "📁";
}
table {
width: 800px;
}
td {
padding: 0 5px;
white-space: nowrap;
}
td:nth-child(2) {
text-align: right;
width: 3em;
}
td:last-child {
width: 1px;
}
</style>
</head>
<body>
<h1>Index of %s</h1>
<table>
<thead><tr>
<th>File Name</th><th>Size</th><th>Modified</th>
</tr></thead>
<tbody>
]], xml_escape(path), xml_escape(path)), false))
-- lfs doesn't provide a way to get an errno for attempting to open a directory
-- See https://github.com/keplerproject/luafilesystem/issues/87
for filename in lfs.dir(real_path) do
if not (filename == ".." and path == "/") then -- Exclude parent directory entry listing from top level
local stats = lfs.attributes(real_path .. "/" .. filename)
if stats.mode == "directory" then
filename = filename .. "/"
end
assert(stream:write_chunk(string.format("\t\t\t<tr><td><a class='%s' href='%s'>%s</a></td><td title='%d bytes'>%s</td><td><time>%s</time></td></tr>\n",
xml_escape(stats.mode:gsub("%s", "-")),
xml_escape(http_util.encodeURI(path .. filename)),
xml_escape(filename),
stats.size,
xml_escape(human(stats.size)),
xml_escape(os.date("!%Y-%m-%d %X", stats.modification))
), false))
end
end
assert(stream:write_chunk([[
</tbody>
</table>
</body>
</html>
]], true))
end
else
res_headers:upsert(":status", "200")
res_headers:append("content-type", 'text/html')
assert(stream:write_headers(res_headers, req_method == "HEAD"))
if req_method ~= "HEAD" then
assert(stream:write_body_from_file(fd))
end
end
elseif file_type == "file" then
local fd, err, errno = io.open(real_path, "rb")
local code
if not fd then
if errno == ce.ENOENT then
code = "404"
elseif errno == ce.EACCES then
code = "403"
else
code = "503"
end
res_headers:upsert(":status", code)
res_headers:append("content-type", "text/plain")
assert(stream:write_headers(res_headers, req_method == "HEAD"))
if req_method ~= "HEAD" then
assert(stream:write_body_from_string("Fail!\n"..err.."\n"))
end
else
res_headers:upsert(":status", "200")
-- local mime_type = mdb and mdb:file(real_path) or "application/octet-stream"
local mime_type = mimetypes.guess(real_path) or 'application/octet-stream'
res_headers:append("content-type", mime_type)
assert(stream:write_headers(res_headers, req_method == "HEAD"))
if req_method ~= "HEAD" then
assert(stream:write_body_from_file(fd))
end
end
elseif file_type == nil then
res_headers:upsert(":status", "404")
assert(stream:write_headers(res_headers, true))
else
res_headers:upsert(":status", "403")
assert(stream:write_headers(res_headers, true))
end
end
local function reply(myserver, stream)
xpcall(function()
_reply(myserver, stream)
end,
function(err)
print('ERROR: ', err)
print(debug.traceback())
end)
end
local myserver = assert(http_server.listen {
host = "localhost";
port = port;
max_concurrent = 100;
onstream = reply;
onerror = function(myserver, context, op, err, errno) -- luacheck: ignore 212
local msg = op .. " on " .. tostring(context) .. " failed"
if err then
msg = msg .. ": " .. tostring(err)
end
assert(io.stderr:write(msg, "\n"))
end;
})
-- Manually call :listen() so that we are bound before calling :localname()
assert(myserver:listen())
do
local bound_port = select(3, myserver:localname())
assert(io.stderr:write(string.format("Now listening on port %d\n", bound_port)))
end
-- Start the main server loop
assert(myserver:loop())
+62
View File
@@ -0,0 +1,62 @@
local msg = function(mime, s)
local res = {}
local a = function(s) table.insert(res, s) end
a('Content-Type: ')
a(mime)
a('; charset="utf-8"\r\nContent-Transfer-Encoding: quoted-printable\r\nContent-Disposition: inline\r\n\r\n')
a(s)
a('\r\n\r\n')
return table.concat(res)
end
local plaintext = function(subject, s)
local res = {}
local a = function(s) table.insert(res, s) end
a('Subject: ')
a(subject)
a('\r\n')
a('MIME-Version: 1.0\r\n')
a(msg('text/plain', s))
return table.concat(res)
end
local html = function(subject, s)
local res = {}
local a = function(s) table.insert(res, s) end
a('Subject: ')
a(subject)
a('\r\n')
a('MIME-Version: 1.0\r\n')
a(msg('text/html', s))
return table.concat(res)
end
local plaintext_html = function(subject, s1, s2)
local boundary_string = 'wedcoi' -- TODO:check boundary string against s1 and s2
local res = {}
local a = function(s) table.insert(res, s) end
a('Subject: ')
a(subject)
a('\r\n')
a('MIME-Version: 1.0\r\nContent-Type: multipart/alternative; boundary="')
a(boundary_string)
a('"\r\n\r\n')
a('--')
a(boundary_string)
a('\r\n')
a(msg('text/plain', s1))
a('\r\n\r\n')
a('--')
a(boundary_string)
a('\r\n')
a(msg('text/html', s2))
a('--')
a(boundary_string)
a('--')
return table.concat(res)
end
return {
plaintext=plaintext,
html=html,
plaintext_html=plaintext_html
}
+20
View File
@@ -0,0 +1,20 @@
local sendemail = require'./smtp'
local message = require'smtp-message'
--local mymsg = message.plaintext('A Subject', 'A plaintext body of a message.')
local mymsg = message.plaintext_html('An HTML email with plaintext alternative', 'Please open in an HTML-capable email client. Get with the 21st-century.', [[
<html><head></head>
<body>
<h1>Piazza Optical</h1>
<h6>How... manipulative of an ad this is.</h6>
</body></html>
]])
sendemail({
message=mymsg,
from='brian@sakal.us',
to='briansakal@gmail.com',
host='sakal.us',
username='brian@sakal.us',
password='buginoO1$',
ehlo_host='piazzaoptical.com'
})
+83
View File
@@ -0,0 +1,83 @@
local cqueues = require'cqueues'
local socket = require'cqueues.socket'
local openssl_context = require'openssl.ssl.context'
local base64 = require'base64'
local get_default_ehlo_host = function()
return 'debian' -- TODO read from /etc/hosts
end
local send_auth_plain = function(opts)
if opts.host==nil or opts.from==nil or opts.to==nil then error('`host`, `from`, and `to` are required.') end
local host = opts.host
local port = opts.port or 25 --587
local username = opts.username
local password = opts.password
local ehlo_host = opts.ehlo_host or get_default_ehlo_host()
local from = opts.from
local to = opts.to
-- `message` includes Subject and other headers. Use stmp-message.lua to construct a message string.
local message = opts.message or 'Subject: \r\n\r\n\r\n.\r\n'
--local subject = opts.subject or ''
--local body = opts.body or ''
local connection = socket.connect(host, port)
connection:settimeout(5)
local read = function()
local m = connection:read('*l') or ''
print('<-- '..m)
return m
end
local read_until = function(code_desired, substring)
local substring_needed = (substring ~= nil)
local code, line
repeat
line = read()
code = string.sub(line,1,3)
until code == code_desired and (not substring_needed or line:find(substring) ~= nil)
end
local write = function(m)
print('--> '..m)
connection:write(m)
end
read_until('220')
write('STARTTLS\r\n')
read_until('220')
local ctx = openssl_context.new('TLSv1_2', false)
local ok, err = connection:starttls(ctx)
if not ok then print('starttls error', err) end
write('EHLO '..ehlo_host..'\r\n')
read_until('250','PLAIN')
write('AUTH PLAIN '..base64.encode(username..'\0'..username..'\0'..password)..'\r\n')
read_until('235') -- auth successful
write('MAIL FROM:<'..from..'>\r\n')
read_until('250')
write('RCPT TO:<'..to..'>\r\n')
read_until('250')
write('DATA\r\n')
read_until('354')
write(message)
--write('Subject: '..subject..'\r\n\r\n')
--write(body..'\r\n')
write('\r\n.\r\n')
read_until('250')
write('QUIT')
--read_until('221')
connection:close()
end
return send_auth_plain