| Line 7... |
Line 7... |
| 7 |
from datetime import datetime, date, timedelta
|
7 |
from datetime import datetime, date, timedelta
|
| 8 |
from dtr import main
|
8 |
from dtr import main
|
| 9 |
from dtr.dao import AffiliateInfo, Order, SubOrder, FlipkartAffiliateInfo
|
9 |
from dtr.dao import AffiliateInfo, Order, SubOrder, FlipkartAffiliateInfo
|
| 10 |
from dtr.main import getBrowserObject, getStore, ParseException, ungzipResponse, \
|
10 |
from dtr.main import getBrowserObject, getStore, ParseException, ungzipResponse, \
|
| 11 |
Store as MStore, sourceMap, tprint
|
11 |
Store as MStore, sourceMap, tprint
|
| - |
|
12 |
from dtr.reports.affiliatereco import getSkuData
|
| - |
|
13 |
from dtr.storage.DataService import Clicks, Users, FlipkartOrders
|
| - |
|
14 |
from dtr.utils.utils import fetchResponseUsingProxy
|
| - |
|
15 |
from elixir import *
|
| 12 |
from pprint import pprint
|
16 |
from pprint import pprint
|
| 13 |
from pymongo.mongo_client import MongoClient
|
17 |
from pymongo.mongo_client import MongoClient
|
| 14 |
import hashlib
|
18 |
import hashlib
|
| 15 |
import importlib
|
19 |
import importlib
|
| 16 |
import json
|
20 |
import json
|
| 17 |
import mechanize
|
21 |
import mechanize
|
| 18 |
import pymongo
|
22 |
import pymongo
|
| 19 |
import re
|
23 |
import re
|
| 20 |
import traceback
|
24 |
import traceback
|
| 21 |
import urllib
|
25 |
import urllib
|
| 22 |
from dtr.utils.utils import fetchResponseUsingProxy
|
- |
|
| 23 |
|
26 |
|
| 24 |
USERNAME='saholic1@gmail.com'
|
27 |
USERNAME='saholic1@gmail.com'
|
| 25 |
PASSWORD='spice@2020'
|
28 |
PASSWORD='spice@2020'
|
| 26 |
ORDER_TRACK_URL='https://m.flipkart.com/order_details'
|
29 |
ORDER_TRACK_URL='https://m.flipkart.com/order_details'
|
| 27 |
AFFILIATE_URL='https://www.flipkart.com/affiliate/login'
|
30 |
AFFILIATE_URL='https://www.flipkart.com/affiliate/login'
|
| Line 29... |
Line 32... |
| 29 |
AFF_REPORT_URL='http://www.flipkart.com/affiliate/reports/ordersReport?order_status_filter=%s&startdate=%s&enddate=%s'
|
32 |
AFF_REPORT_URL='http://www.flipkart.com/affiliate/reports/ordersReport?order_status_filter=%s&startdate=%s&enddate=%s'
|
| 30 |
AFF_STATUS_CANCELLED='cancelled'
|
33 |
AFF_STATUS_CANCELLED='cancelled'
|
| 31 |
AFF_STATUS_APPROVED='approved'
|
34 |
AFF_STATUS_APPROVED='approved'
|
| 32 |
AFF_STATUS_DISAPPROVED='disapproved'
|
35 |
AFF_STATUS_DISAPPROVED='disapproved'
|
| 33 |
AFF_STATUS_PENDING='pending'
|
36 |
AFF_STATUS_PENDING='pending'
|
| - |
|
37 |
categoryMap = {3:"Mobiles", 5:"Tablets"}
|
| 34 |
|
38 |
|
| 35 |
|
39 |
|
| 36 |
class Store(MStore):
|
40 |
class Store(MStore):
|
| 37 |
OrderStatusMap = {
|
41 |
OrderStatusMap = {
|
| 38 |
main.Store.ORDER_PLACED : ['approval', 'processing', 'shipping'],
|
42 |
main.Store.ORDER_PLACED : ['approval', 'processing', 'shipping'],
|
| Line 155... |
Line 159... |
| 155 |
data = {'__FK':token,
|
159 |
data = {'__FK':token,
|
| 156 |
'email':'saholic1@gmail.com',
|
160 |
'email':'saholic1@gmail.com',
|
| 157 |
'password':'e8aacf6fc1e3998186a4a8e56e428f66'
|
161 |
'password':'e8aacf6fc1e3998186a4a8e56e428f66'
|
| 158 |
}
|
162 |
}
|
| 159 |
br.open(AFFILIATE_LOGIN_URL, urllib.urlencode(data))
|
163 |
br.open(AFFILIATE_LOGIN_URL, urllib.urlencode(data))
|
| 160 |
for delta in range(0,45):
|
164 |
for delta in range(1,2):
|
| 161 |
yester5date = date.today() - timedelta(delta)
|
165 |
yester5date = date.today() - timedelta(delta)
|
| 162 |
syester5date = yester5date.strftime('%Y-%m-%d')
|
166 |
syester5date = yester5date.strftime('%Y-%m-%d')
|
| 163 |
for status in [AFF_STATUS_PENDING, AFF_STATUS_CANCELLED, AFF_STATUS_DISAPPROVED]:
|
167 |
for status in [AFF_STATUS_PENDING, AFF_STATUS_CANCELLED, AFF_STATUS_DISAPPROVED]:
|
| 164 |
try:
|
168 |
try:
|
| 165 |
br.open(AFF_REPORT_URL % (status, syester5date, syester5date))
|
169 |
br.open(AFF_REPORT_URL % (status, syester5date, syester5date))
|
| Line 187... |
Line 191... |
| 187 |
affiliateInfo.productTitle = tdElements[0].find('a').text
|
191 |
affiliateInfo.productTitle = tdElements[0].find('a').text
|
| 188 |
#updateMap['subOrders.$.unitPrice'] = price
|
192 |
#updateMap['subOrders.$.unitPrice'] = price
|
| 189 |
#updateMap['subOrders.$.cashBackAmount'], updateMap['subOrders.$.cashBacPercentage'] = self.getCashbackAmount(productCode, price)
|
193 |
#updateMap['subOrders.$.cashBackAmount'], updateMap['subOrders.$.cashBacPercentage'] = self.getCashbackAmount(productCode, price)
|
| 190 |
offers.append(affiliateInfo)
|
194 |
offers.append(affiliateInfo)
|
| 191 |
self._saveToAffiliate(offers)
|
195 |
self._saveToAffiliate(offers)
|
| - |
|
196 |
|
| - |
|
197 |
yester5date = date.today() - timedelta(1)
|
| - |
|
198 |
syester5date = yester5date.strftime('%Y-%m-%d')
|
| - |
|
199 |
self.db.flipkartOrderAffiliateInfo.find({"saleDate":syester5date})
|
| - |
|
200 |
for order in self.db.flipkartOrderAffiliateInfo.find({"saleDate":syester5date}):
|
| - |
|
201 |
userId = None
|
| - |
|
202 |
subTagId = None
|
| - |
|
203 |
email = None
|
| - |
|
204 |
subTagId = order.get("subTagId")
|
| - |
|
205 |
if subTagId:
|
| - |
|
206 |
click = session.query(Clicks).filter_by(tag = subTagId).first()
|
| - |
|
207 |
if click is not None:
|
| - |
|
208 |
userId= click.user_id
|
| - |
|
209 |
user = session.query(Users.email).filter_by(id = userId).first()
|
| - |
|
210 |
if user is not None:
|
| - |
|
211 |
email = user.email
|
| - |
|
212 |
|
| - |
|
213 |
flipkartOrder = FlipkartOrders()
|
| - |
|
214 |
flipkartOrder.user_id = userId
|
| - |
|
215 |
flipkartOrder.identifier = order.get("identifier")
|
| - |
|
216 |
flipkartOrder.email = email
|
| - |
|
217 |
flipkartOrder.subtagId = order.get("subTagId")
|
| - |
|
218 |
flipkartOrder.created = datetime.strptime(order.get("saleDate"), "%Y-%m-%d")
|
| - |
|
219 |
flipkartOrder.status = order.get("conversionStatus")
|
| - |
|
220 |
flipkartOrder.title = order.get("productTitle")
|
| - |
|
221 |
flipkartOrder.price = order.get("price")
|
| - |
|
222 |
flipkartOrder.quantity = order.get("quantity")
|
| - |
|
223 |
flipkartOrder.productCode = order.get("productCode")
|
| - |
|
224 |
skuData = getSkuData(2, order.get("productCode"))
|
| - |
|
225 |
if skuData is not None:
|
| - |
|
226 |
flipkartOrder.catalogId = skuData.get("skuBundleId")
|
| - |
|
227 |
flipkartOrder.brand = skuData.get("brand")
|
| - |
|
228 |
flipkartOrder.model = skuData.get("model_name")
|
| - |
|
229 |
flipkartOrder.category = categoryMap.get(skuData.get("category_id"))
|
| - |
|
230 |
flipkartOrder.title =skuData.get("source_product_name")
|
| - |
|
231 |
|
| - |
|
232 |
session.commit()
|
| 192 |
|
233 |
|
| 193 |
def _saveToAffiliate(self, offers):
|
234 |
def _saveToAffiliate(self, offers):
|
| 194 |
collection = self.db.flipkartOrderAffiliateInfo
|
235 |
collection = self.db.flipkartOrderAffiliateInfo
|
| 195 |
mcollection = self.db.merchantOrder
|
236 |
mcollection = self.db.merchantOrder
|
| 196 |
for offer in offers:
|
237 |
for offer in offers:
|