def find_dublicates_in_products ( prods_tree ): fh = open("prods.txt", 'r') st = fh.read() st=st.decode('cp1251').encode('utf-8') prods_tree1=etree.XML(st) temp=prods_tree1.findall("product") if len ( temp )==0: print "Error: no products" deleted=[] for tmp in temp: cur =tmp.find("variants/variant/sku") if cur.text==None: continue # print cur.text # print cur.text.decode('utf-8').encode('cp1251') find=etree.XPath ('//product/variants/variant[sku = \"'+cur.text+'\"]') sim=find(prods_tree1) if len (sim)==1 : continue else: try: ttt=deleted.index( cur.text ) #print deleted[ttt] except: #print "finded duplicated sku:"+cur.text+"Number dubles:"+str(len(sim)) q=len(sim) for i in range(0,len(sim)): if q> len(sim)-i : #print "removed product"+ sim[i].find("product-id").text api_set.remove_product_from_products ( sim[i].find("product-id").text,log,pas,domen ) deleted.append(cur.text) q=q-1 else: if sim[i].find("quantity").text=="0": #print "removed product"+ sim[i].find("product-id").text api_set.remove_product_from_products ( sim[i].find("product-id").text,log,pas,domen ) deleted.append(cur.text) q=q-1 #print deleted return temp
def initial_load( table,art_new,art_edited,art_old,art_noimage,prods_tree, art_index,top_level_category_id, pa_prod,parametri_produkta_site, pr_prod,priznaki_produkta_site, pr_var,priznaki_varianta_site,im,log,pas,domen): n=len (art_new) o=len (art_old) e=len (art_edited) ni=len (art_noimage) for i in range(0,len(table)): art = table[i][art_index].decode('cp1251') if art in art_new : n=n-1 # print "new__" + art.encode('utf-8')+"___ "+str(art_new.index(art))+"______" + str (n) id = post_product.post_product_in_catalog ( table[i],prods_tree,top_level_category_id, pa_prod,parametri_produkta_site,pr_prod,priznaki_produkta_site, pr_var,priznaki_varianta_site,im,log,pas,domen) if id is not None: post_product.add_image_to_product (id,table[i][im],log,pas,domen) else: if art in art_edited: e=e-1 # print "edited___" + art.encode('utf-8')+"___ "+str(art_edited.index(art))+"______" + str (e) prod_id = find_product_id_by_artikul ( prods_tree, art.encode('cp1251')) post_product.edit_product_in_catalog ( table[i],prod_id,top_level_category_id, pa_prod,parametri_produkta_site,pr_prod,priznaki_produkta_site, pr_var,priznaki_varianta_site,im,log,pas,domen) if art in art_noimage: ni=ni-1 # print "noimage : " + art.encode('utf-8')+"___ "+str (ni) prod_id = find_product_id_by_artikul ( prods_tree, art.encode('cp1251')) if prod_id is not None: post_product.add_image_to_product (prod_id,table[i][im],log,pas,domen) for oo in art_old : o=o-1 # print " old : " + oo.encode('utf-8')+"___ "+str (o) prod_id = find_product_id_by_artikul ( prods_tree, oo.encode('cp1251') ) api_set.remove_product_from_products ( prod_id,log,pas,domen ) return None