Example #1
0
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
Example #2
0
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