Subversion Repositories SmartDukaan

Rev

Rev 11562 | Rev 11571 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 11562 Rev 11563
Line 773... Line 773...
773
    elif (float(lowestSellingPrice - ourNlc))/lowestSellingPrice >=0 and (float(lowestSellingPrice - ourNlc))/lowestSellingPrice <=.02:
773
    elif (float(lowestSellingPrice - ourNlc))/lowestSellingPrice >=0 and (float(lowestSellingPrice - ourNlc))/lowestSellingPrice <=.02:
774
        return 'MEDIUM'
774
        return 'MEDIUM'
775
    else:
775
    else:
776
        return 'LOW'  
776
        return 'LOW'  
777
 
777
 
778
def decideCategory(itemInfo):
778
def decideCategory(val):
779
    print "length****",len(itemInfo)
779
    print type(val)
-
 
780
    print val
-
 
781
    print "dusdlsdkskd"
780
    global itemSaleMap
782
    global itemSaleMap
781
    global cantCompete 
783
    global cantCompete 
782
    global buyBoxItems 
784
    global buyBoxItems 
783
    global competitive 
785
    global competitive 
784
    global competitiveNoInventory
786
    global competitiveNoInventory
Line 788... Line 790...
788
    global prefButNotCheap
790
    global prefButNotCheap
789
    
791
    
790
    catalog_client = CatalogClient().get_client()
792
    catalog_client = CatalogClient().get_client()
791
    inventory_client = InventoryClient().get_client()
793
    inventory_client = InventoryClient().get_client()
792
    
794
    
793
    for val in itemInfo:
795
    spm = val.sourcePercentage
794
        spm = val.sourcePercentage
796
    #print "Fetching details of ",val.fkSerialNumber
795
        #print "Fetching details of ",val.fkSerialNumber
797
    #flipkartDetails = fetchDetails(val.fkSerialNumber,scraper)
796
        #flipkartDetails = fetchDetails(val.fkSerialNumber,scraper)
798
    try:
797
        try:
799
        flipkartDetails = fetchDetails(val.fkSerialNumber,scraper)
798
            flipkartDetails = fetchDetails(val.fkSerialNumber,scraper)
800
    except Exception as e:
799
        except Exception as e:
801
        print "Unable to fetch details of",val.fkSerialNumber
800
            print "Unable to fetch details of",val.fkSerialNumber
802
        print e
801
            print e
803
        exceptionItems.append(val)
802
            exceptionItems.append(val)
804
        return
803
            continue
805
    
804
        
806
    try:
805
        try:
807
        request_url = "https://api.flipkart.net/sellers/skus/%s/listings"%(str(val.skuAtFlipkart))
806
            request_url = "https://api.flipkart.net/sellers/skus/%s/listings"%(str(val.skuAtFlipkart))
808
        r = requests.get(request_url, auth=('m2z93iskuj81qiid', '0c7ab6a5-98c0-4cdc-8be3-72c591e0add4'))
807
            r = requests.get(request_url, auth=('m2z93iskuj81qiid', '0c7ab6a5-98c0-4cdc-8be3-72c591e0add4'))
809
        print "Inventory info",r.json()
808
            print "Inventory info",r.json()
810
        stock_count = int((r.json()['attributeValues'])['stock_count'])
809
            stock_count = int((r.json()['attributeValues'])['stock_count'])
811
    except:
810
        except:
812
        stock_count = 0
811
            stock_count = 0
813
    
812
        
814
    val.ourFlipkartInventory = stock_count
813
        val.ourFlipkartInventory = stock_count
815
    
814
        
816
    if (flipkartDetails.totalAvailableSeller==0):
815
        if (flipkartDetails.totalAvailableSeller==0):
817
        exceptionItems.append(val)
816
            exceptionItems.append(val)
818
        return
817
            continue
819
    
818
        
820
    mpItem = MarketplaceItems.get_by(itemId=val.item_id,source=OrderSource.FLIPKART)
819
        mpItem = MarketplaceItems.get_by(itemId=val.item_id,source=OrderSource.FLIPKART)
821
    warehouse = inventory_client.getWarehouse(val.warehouseId)
820
        warehouse = inventory_client.getWarehouse(val.warehouseId)
822
    
821
        
823
    itemSaleList = []
822
        itemSaleList = []
824
    oosForAllSources = inventory_client.getOosStatusesForXDaysForItem(val.item_id, 0, 3)
823
        oosForAllSources = inventory_client.getOosStatusesForXDaysForItem(val.item_id, 0, 3)
825
    oosForFlipkart = inventory_client.getOosStatusesForXDaysForItem(val.item_id, OrderSource.FLIPKART, 5)
824
        oosForFlipkart = inventory_client.getOosStatusesForXDaysForItem(val.item_id, OrderSource.FLIPKART, 5)
826
    oosForFlipkartLastDay = inventory_client.getOosStatusesForXDaysForItem(val.item_id, OrderSource.FLIPKART, 1)
825
        oosForFlipkartLastDay = inventory_client.getOosStatusesForXDaysForItem(val.item_id, OrderSource.FLIPKART, 1)
827
    itemSaleList.append(oosForAllSources)
826
        itemSaleList.append(oosForAllSources)
828
    itemSaleList.append(oosForFlipkart)
827
        itemSaleList.append(oosForFlipkart)
829
    itemSaleList.append(calculateAverageSale(oosForAllSources))
828
        itemSaleList.append(calculateAverageSale(oosForAllSources))
830
    itemSaleList.append(calculateAverageSale(oosForFlipkart))
829
        itemSaleList.append(calculateAverageSale(oosForFlipkart))
831
    itemSaleList.append(calculateAverageSale(oosForFlipkartLastDay))
830
        itemSaleList.append(calculateAverageSale(oosForFlipkartLastDay))
832
    itemSaleList.append(calculateTotalSale(oosForFlipkart))
831
        itemSaleList.append(calculateTotalSale(oosForFlipkart))
833
    itemSaleMap[val.item_id]=itemSaleList
832
        itemSaleMap[val.item_id]=itemSaleList
834
    
833
        
835
    if flipkartDetails.rank==0:
834
        if flipkartDetails.rank==0:
836
        flipkartDetails.ourSp = mpItem.currentSp
835
            flipkartDetails.ourSp = mpItem.currentSp
837
        ourSp = mpItem.currentSp
836
            ourSp = mpItem.currentSp
838
    else:
837
        else:
839
        ourSp = flipkartDetails.ourSp
838
            ourSp = flipkartDetails.ourSp
840
    vatRate = catalog_client.getVatPercentageForItem(val.item_id, warehouse.stateId, flipkartDetails.ourSp)
839
        vatRate = catalog_client.getVatPercentageForItem(val.item_id, warehouse.stateId, flipkartDetails.ourSp)
841
    val.vatRate = vatRate
840
        val.vatRate = vatRate
842
    if (flipkartDetails.ourBuyTrend == 'PrefCheap') or (flipkartDetails.rank==1 and flipkartDetails.totalAvailableSeller==1):
841
        if (flipkartDetails.ourBuyTrend == 'PrefCheap') or (flipkartDetails.rank==1 and flipkartDetails.totalAvailableSeller==1):
843
        temp=[]
842
            temp=[]
844
        temp.append(flipkartDetails)
843
            temp.append(flipkartDetails)
845
        temp.append(val)
844
            temp.append(val)
846
        secondLowestTp=0 if flipkartDetails.totalAvailableSeller==1 else getOtherTp(flipkartDetails,val,spm,False)
845
            secondLowestTp=0 if flipkartDetails.totalAvailableSeller==1 else getOtherTp(flipkartDetails,val,spm,False)
847
        prefSellerTp=0 if flipkartDetails.totalAvailableSeller < 2 else getOtherTp(flipkartDetails,val,spm,True)  
846
            prefSellerTp=0 if flipkartDetails.totalAvailableSeller < 2 else getOtherTp(flipkartDetails,val,spm,True)  
848
        flipkartPricing = __FlipkartPricing(flipkartDetails.ourSp,getOurTp(flipkartDetails,val,spm,mpItem),None,getLowestPossibleTp(flipkartDetails,val,spm,mpItem),secondLowestTp,getLowestPossibleSp(flipkartDetails,val,spm,mpItem),prefSellerTp)
847
            flipkartPricing = __FlipkartPricing(flipkartDetails.ourSp,getOurTp(flipkartDetails,val,spm,mpItem),None,getLowestPossibleTp(flipkartDetails,val,spm,mpItem),secondLowestTp,getLowestPossibleSp(flipkartDetails,val,spm,mpItem),prefSellerTp)
849
        temp.append(flipkartPricing)
848
            temp.append(flipkartPricing)
850
        temp.append(mpItem)
849
            temp.append(mpItem)
851
        buyBoxItems.append(temp)
850
            buyBoxItems.append(temp)
852
        return
851
            continue
853
    
852
        
854
    if (flipkartDetails.ourBuyTrend == 'PrefNCheap'):
853
        if (flipkartDetails.ourBuyTrend == 'PrefNCheap'):
855
        temp=[]
854
            temp=[]
856
        temp.append(flipkartDetails)
855
            temp.append(flipkartDetails)
857
        temp.append(val)
856
            temp.append(val)
858
        secondLowestTp=0 if flipkartDetails.totalAvailableSeller==1 else getOtherTp(flipkartDetails,val,spm,False)
857
            secondLowestTp=0 if flipkartDetails.totalAvailableSeller==1 else getOtherTp(flipkartDetails,val,spm,False)
859
        prefSellerTp=0 if flipkartDetails.totalAvailableSeller < 2 else getOtherTp(flipkartDetails,val,spm,True)  
858
            prefSellerTp=0 if flipkartDetails.totalAvailableSeller < 2 else getOtherTp(flipkartDetails,val,spm,True)  
860
        flipkartPricing = __FlipkartPricing(flipkartDetails.ourSp,getOurTp(flipkartDetails,val,spm,mpItem),None,getLowestPossibleTp(flipkartDetails,val,spm,mpItem),secondLowestTp,getLowestPossibleSp(flipkartDetails,val,spm,mpItem),prefSellerTp)
859
            flipkartPricing = __FlipkartPricing(flipkartDetails.ourSp,getOurTp(flipkartDetails,val,spm,mpItem),None,getLowestPossibleTp(flipkartDetails,val,spm,mpItem),secondLowestTp,getLowestPossibleSp(flipkartDetails,val,spm,mpItem),prefSellerTp)
861
        temp.append(flipkartPricing)
860
            temp.append(flipkartPricing)
862
        temp.append(mpItem)
861
            temp.append(mpItem)
863
        prefButNotCheap.append(temp)
862
            prefButNotCheap.append(temp)
864
        return
863
            continue
865
    
864
        
866
    if (flipkartDetails.ourBuyTrend == 'NPrefCheap') and (flipkartDetails.rank==1):
865
        if (flipkartDetails.ourBuyTrend == 'NPrefCheap') and (flipkartDetails.rank==1):
867
        temp=[]
866
            temp=[]
868
        temp.append(flipkartDetails)
867
            temp.append(flipkartDetails)
869
        temp.append(val)
868
            temp.append(val)
870
        prefSellerTp=0 if flipkartDetails.totalAvailableSeller < 2 else getOtherTp(flipkartDetails,val,spm,True)  
869
            prefSellerTp=0 if flipkartDetails.totalAvailableSeller < 2 else getOtherTp(flipkartDetails,val,spm,True)  
871
        flipkartPricing = __FlipkartPricing(flipkartDetails.ourSp,getOurTp(flipkartDetails,val,spm,mpItem),None,getLowestPossibleTp(flipkartDetails,val,spm,mpItem),None,getLowestPossibleSp(flipkartDetails,val,spm,mpItem),prefSellerTp)
870
            flipkartPricing = __FlipkartPricing(flipkartDetails.ourSp,getOurTp(flipkartDetails,val,spm,mpItem),None,getLowestPossibleTp(flipkartDetails,val,spm,mpItem),None,getLowestPossibleSp(flipkartDetails,val,spm,mpItem),prefSellerTp)
872
        temp.append(flipkartPricing)
871
            temp.append(flipkartPricing)
873
        temp.append(mpItem)
872
            temp.append(mpItem)
874
        cheapButNotPref.append(temp)
873
            cheapButNotPref.append(temp)
875
        return
874
            continue
876
    
875
        
877
    
876
        
878
    lowestTp = getOtherTp(flipkartDetails,val,spm,False)
877
        lowestTp = getOtherTp(flipkartDetails,val,spm,False)
879
    ourTp = getOurTp(flipkartDetails,val,spm,mpItem)
878
        ourTp = getOurTp(flipkartDetails,val,spm,mpItem)
880
    lowestPossibleTp = getLowestPossibleTp(flipkartDetails,val,spm,mpItem)
879
        lowestPossibleTp = getLowestPossibleTp(flipkartDetails,val,spm,mpItem)
881
    lowestPossibleSp = getLowestPossibleSp(flipkartDetails,val,spm,mpItem)
880
        lowestPossibleSp = getLowestPossibleSp(flipkartDetails,val,spm,mpItem)
882
    prefSellerTp = getOtherTp(flipkartDetails,val,spm,True)
881
        prefSellerTp = getOtherTp(flipkartDetails,val,spm,True)
883
    
882
        
884
    if (ourTp<lowestPossibleTp):
883
        if (ourTp<lowestPossibleTp):
885
        temp=[]
884
            temp=[]
886
        temp.append(flipkartDetails)
885
            temp.append(flipkartDetails)
887
        temp.append(val)
886
            temp.append(val)
888
        flipkartPricing = __FlipkartPricing(ourSp,ourTp,lowestTp,lowestPossibleTp,None,None,None)
887
            flipkartPricing = __FlipkartPricing(ourSp,ourTp,lowestTp,lowestPossibleTp,None,None,None)
889
        temp.append(flipkartPricing)
888
            temp.append(flipkartPricing)
890
        negativeMargin.append(temp)
889
            negativeMargin.append(temp)
891
        return
890
            continue
892
    
891
        
893
    if (flipkartDetails.lowestSellerSp > lowestPossibleSp) and val.ourFlipkartInventory!=0:
892
        if (flipkartDetails.lowestSellerSp > lowestPossibleSp) and val.ourFlipkartInventory!=0:
894
        type(val.ourFlipkartInventory)
893
            type(val.ourFlipkartInventory)
-
 
894
            temp=[]
-
 
895
            temp.append(flipkartDetails)
-
 
896
            temp.append(val)
-
 
897
            flipkartPricing = __FlipkartPricing(ourSp,ourTp,lowestTp,lowestPossibleTp,None,lowestPossibleSp,prefSellerTp)
-
 
898
            temp.append(flipkartPricing)
-
 
899
            temp.append(mpItem)
-
 
900
            competitive.append(temp)
-
 
901
            continue
-
 
902
        
-
 
903
        if (flipkartDetails.lowestSellerSp) > lowestPossibleSp and val.ourFlipkartInventory==0:
-
 
904
            temp=[]
-
 
905
            temp.append(flipkartDetails)
-
 
906
            temp.append(val)
-
 
907
            flipkartPricing = __FlipkartPricing(ourSp,ourTp,lowestTp,lowestPossibleTp,None,lowestPossibleSp,prefSellerTp)
-
 
908
            temp.append(flipkartPricing)
-
 
909
            temp.append(mpItem)
-
 
910
            competitiveNoInventory.append(temp)
-
 
911
            continue
-
 
912
        
-
 
913
        temp=[]
895
        temp=[]
914
        temp.append(flipkartDetails)
896
        temp.append(flipkartDetails)
915
        temp.append(val)
897
        temp.append(val)
916
        flipkartPricing = __FlipkartPricing(ourSp,ourTp,lowestTp,lowestPossibleTp,None,lowestPossibleSp,prefSellerTp)
898
        flipkartPricing = __FlipkartPricing(ourSp,ourTp,lowestTp,lowestPossibleTp,None,lowestPossibleSp,prefSellerTp)
917
        temp.append(flipkartPricing)
899
        temp.append(flipkartPricing)
918
        temp.append(mpItem)
900
        temp.append(mpItem)
-
 
901
        competitive.append(temp)
-
 
902
        return
-
 
903
    
-
 
904
    if (flipkartDetails.lowestSellerSp) > lowestPossibleSp and val.ourFlipkartInventory==0:
-
 
905
        temp=[]
-
 
906
        temp.append(flipkartDetails)
-
 
907
        temp.append(val)
-
 
908
        flipkartPricing = __FlipkartPricing(ourSp,ourTp,lowestTp,lowestPossibleTp,None,lowestPossibleSp,prefSellerTp)
-
 
909
        temp.append(flipkartPricing)
-
 
910
        temp.append(mpItem)
-
 
911
        competitiveNoInventory.append(temp)
-
 
912
        return
-
 
913
    
-
 
914
    temp=[]
-
 
915
    temp.append(flipkartDetails)
-
 
916
    temp.append(val)
-
 
917
    flipkartPricing = __FlipkartPricing(ourSp,ourTp,lowestTp,lowestPossibleTp,None,lowestPossibleSp,prefSellerTp)
-
 
918
    temp.append(flipkartPricing)
-
 
919
    temp.append(mpItem)
919
        cantCompete.append(temp)
920
    cantCompete.append(temp)
920
    
921
    
921
    #return cantCompete, buyBoxItems, competitive, competitiveNoInventory, exceptionItems, negativeMargin, cheapButNotPref, prefButNotCheap
922
    #return cantCompete, buyBoxItems, competitive, competitiveNoInventory, exceptionItems, negativeMargin, cheapButNotPref, prefButNotCheap
922
 
923
 
923
def getOtherTp(flipkartDetails,val,spm,prefferedSeller):
924
def getOtherTp(flipkartDetails,val,spm,prefferedSeller):
924
    if val.parent_category==10011 or val.parent_category==12001:
925
    if val.parent_category==10011 or val.parent_category==12001:
Line 1916... Line 1917...
1916
        [t.join() for t in threads] 
1917
        [t.join() for t in threads] 
1917
        threads = []
1918
        threads = []
1918
        return endOffset
1919
        return endOffset
1919
    else:
1920
    else:
1920
        count = 0
1921
        count = 0
1921
        pool = ThreadPool(5)
1922
        pool = ThreadPool(10)
1922
        startOffset = itemPopulated
1923
        startOffset = itemPopulated
1923
        endOffset = startOffset
1924
        endOffset = startOffset
1924
        while(count<10 and endOffset<len(itemInfo)):
1925
        while(count<10 and endOffset<len(itemInfo)):
1925
            endOffset = startOffset + 50
1926
            endOffset = startOffset + 50
1926
            if (endOffset >= len(itemInfo)):
1927
            if (endOffset >= len(itemInfo)):
1927
                endOffset = len(itemInfo)
1928
                endOffset = len(itemInfo)
-
 
1929
                
-
 
1930
            print itemInfo[startOffset:endOffset]
1928
            pool.map(decideCategory,itemInfo[startOffset:endOffset])
1931
            pool.map(decideCategory,itemInfo[startOffset:endOffset])
1929
            #t = Process(target=decideCategory,args=(itemInfo[startOffset:endOffset], scraper))
1932
            #t = Process(target=decideCategory,args=(itemInfo[startOffset:endOffset], scraper))
1930
            #t = threading.Thread(target=partial(decideCategory, itemInfo[startOffset:endOffset], scraper))
1933
            #t = threading.Thread(target=partial(decideCategory, itemInfo[startOffset:endOffset], scraper))
1931
            #t = threading.Thread(target=partial(test, startOffset, endOffset))
1934
            #t = threading.Thread(target=partial(test, startOffset, endOffset))
1932
            #threads.append(t)
1935
            #threads.append(t)
1933
            startOffset = startOffset + 50
1936
            startOffset = startOffset + 50
1934
            count+=1
1937
            count+=1
1935
        #[t.start() for t in threads]
1938
        #[t.start() for t in threads]
1936
        #[t.join() for t in threads] 
1939
        #[t.join() for t in threads] 
1937
        #threads = []
1940
        #threads = []
-
 
1941
        pool.close()
-
 
1942
        pool.join()
1938
        return endOffset
1943
        return endOffset
1939
    
1944
    
1940
    
1945
    
1941
def main():
1946
def main():
1942
    parser = optparse.OptionParser()
1947
    parser = optparse.OptionParser()