nopcommerce 3.3 python

nopcommerce 3.3 use Python to address product related

# ~*~ coding:utf-8 ~*~
#csv是一个读取csv文件的lib
import csv
#itertools生成组合和排列的lib
import itertools
#pyodbc是连接ms sql server的lib
import pyodbc
#cnxn是数据库连接  更改数据库连接方式,账号密码
cnxn = pyodbc.connect(DRIVER='{SQL Server Native Client 10.0}',SERVER='localhost',DATABASE='MicroAnalytix',UID='sa',PWD='密码')
#cursor是数据库浮标
cursor = cnxn.cursor()

#主方法
def process():
    #读取csv,转换成list 更改文件存储位置
    reader = list(csv.reader(open("c:/Users/Jenny/Desktop/related.csv")))
    #遍历数据,并处理, tips:跳过第一行
    for i in reader[1:]:
        #Cn2产生组合
        for j in itertools.combinations(i,2):
            #处理产生的Cn2组合
            recommend(j)
def recommend(j):
    #产生两次相互推荐
    genRec(j[0],j[1])
    genRec(j[1],j[0])
def genRec(a,b):
    #分别通过sku获得Product的Id
    aid = getIdFromSku(a)
    bid = getIdFromSku(b)
    #生成写RelatedProduct表的sql语句
    sql = "insert into dbo.RelatedProduct (ProductId1,ProductId2,DisplayOrder) values(%d,%d,%d)" % (aid,bid,0)
    #执行sql语句
    cursor.execute(sql)
    #提交事务
    cnxn.commit()
def getIdFromSku(a):
    sql = "select Id from dbo.Product where Sku='%s'" % a
    print sql
    cursor.execute(sql)
    row = cursor.fetchone()
    if row:
        return row[0]


if __name__ == "__main__":
    process()