def create_child_products(self, main_id, ids, sizes, prices, images_grouped): """Creating child products (both colors and sizes). Arguments it gets are: main_id as product id of the master product, images_grouped that is a dict of images grouped by color (field i field) and dicts ids, sizes and prices (e.g. dict with color names as keys and fields of ids for it as values 'black': ['32854, '32855''])""" item = ExpressItem() i = 0 for k in ids: cur_id = main_id + "_" + chr(i + 97) item['product_id'] = [cur_id] item['master_product_id'] = [main_id] item['color'] = [k] # use this for some other path (our server) # images, thumbs = self.get_image_url(images_grouped[i]) if images_grouped: images = self.get_absolute_url(images_grouped[k]) # item['normal_image_url'], item['thumb_image_url'] = self.map_url_to_server(images,main_id) item['normal_image_url'] = basic.cdata_field(self.map_url_to_server(images, main_id)) self.xml.create_xml(item) item.clear() j = 0 for val in ids[k]: item['product_id'] = [cur_id + "_" + chr(j + 97)] item['master_product_id'] = [cur_id] if len(sizes): item['size'] = [sizes[k][j]] item['size_option_id'] = [ids[k][j]] item['price'] = [prices[k][j]] self.xml.create_xml(item) j += 1 i += 1
def parse_shop_look(self, hxs): products = hxs.select('//div[@id="cat-ens-prod-item"]') i = 0 # do this with actual id item = ExpressItem() whole_page = hxs.extract() whole_page = "".join(whole_page) ensemble_id = basic.get_middle_text(whole_page, "ensembleId: '", "',") name = hxs.select('//div[@id="cat-ens-prod-con"]/h1/text()').extract() name = basic.clean_string_field(name) item['ensemble_id'] = ensemble_id item['normal_image_url'] = self.shl_get_image(hxs) item['product_id'] = ["DUMMIE1"] item['shop_look'] = ['True'] item['normal'] = ['False'] item['shop_line'] = ['False'] item['in_stock'] = ['IN_STOCK'] item['name'] = name xml.create_xml(item) item.clear() for p in products: i += 1 item = ExpressItem() item['master_product_id'] = ['DUMMIE1'] item['product_id'] = ["DUMMIE1_" + str(i)] item['name'], item['price'], item['style'] = self.shl_basic_info(p) page = p.extract() item['variants'] = basic.cdata_field([self.shl_create_variants(self.get_variants(page))]) item['colors'] = basic.cdata_field(self.shl_get_swatches(p)) xml.create_xml(item)