File packages/variation_upload.py changed (mode: 100644) (index b950cb3..667be57) |
... |
... |
except ImportError: |
10 |
10 |
print("the sortedcontainers module is required to run this program.") |
print("the sortedcontainers module is required to run this program.") |
11 |
11 |
raise ImportError |
raise ImportError |
12 |
12 |
|
|
|
13 |
|
class EmptyFieldWarning(Exception): |
|
14 |
|
def __init__(self, errorargs): |
|
15 |
|
Exception.__init__(self, "Following field/s are empty {0}".format(errorargs)) |
|
16 |
|
self.errorargs = errorargs |
13 |
17 |
|
|
14 |
18 |
def writeCSV(dataobject, name, columns, upload_path): |
def writeCSV(dataobject, name, columns, upload_path): |
15 |
19 |
'''Write Data into new CSV for Upload |
'''Write Data into new CSV for Upload |
|
... |
... |
def variationUpload(flatfile, intern_number, folder): |
69 |
73 |
pack_length = 0 |
pack_length = 0 |
70 |
74 |
pack_width = 0 |
pack_width = 0 |
71 |
75 |
pack_weight = 0 |
pack_weight = 0 |
|
76 |
|
attributes = '' |
|
77 |
|
|
72 |
78 |
try: |
try: |
73 |
79 |
if(row['package_height'] and |
if(row['package_height'] and |
74 |
80 |
row['package_length'] and |
row['package_length'] and |
|
... |
... |
def variationUpload(flatfile, intern_number, folder): |
88 |
94 |
if(row['package_weight']): |
if(row['package_weight']): |
89 |
95 |
pack_weight = int(row['package_weight']) |
pack_weight = int(row['package_weight']) |
90 |
96 |
|
|
|
97 |
|
if(not(pack_width or pack_length or pack_height or pack_weight)): |
|
98 |
|
raise EmptyFieldWarning('package properties') |
|
99 |
|
|
91 |
100 |
if(row['color_name']): |
if(row['color_name']): |
92 |
101 |
attributes = 'color_name:' + row['color_name'] |
attributes = 'color_name:' + row['color_name'] |
93 |
102 |
|
|
94 |
103 |
if(row['size_name'] and number_sizes > 1): |
if(row['size_name'] and number_sizes > 1): |
95 |
104 |
attributes += ';size_name:' + row['size_name'] |
attributes += ';size_name:' + row['size_name'] |
96 |
105 |
|
|
|
106 |
|
if(not(attributes)): |
|
107 |
|
raise EmptyFieldWarning('plentymarkets attributes') |
|
108 |
|
|
97 |
109 |
try: |
try: |
98 |
110 |
values = ['', '', row['item_sku'], row['item_name'], '', |
values = ['', '', row['item_sku'], row['item_name'], '', |
99 |
111 |
pack_length * 10, |
pack_length * 10, |
|
... |
... |
def EANUpload(flatfile, export, stocklist, folder): |
178 |
190 |
if(barcode == 'EAN'): |
if(barcode == 'EAN'): |
179 |
191 |
code = row['external_product_id'] |
code = row['external_product_id'] |
180 |
192 |
|
|
|
193 |
|
if(not(barcode)): |
|
194 |
|
raise EmptyFieldWarning('barcode(EAN)') |
181 |
195 |
values = [ |
values = [ |
182 |
196 |
barcode_types[barcode]['id'], barcode_types[barcode]['name'], |
barcode_types[barcode]['id'], barcode_types[barcode]['name'], |
183 |
197 |
barcode_types[barcode]['type'], code, |
barcode_types[barcode]['type'], code, |
|
... |
... |
def EANUpload(flatfile, export, stocklist, folder): |
206 |
220 |
if(barcode == 'FNSKU'): |
if(barcode == 'FNSKU'): |
207 |
221 |
code = row['fnsku'] |
code = row['fnsku'] |
208 |
222 |
|
|
|
223 |
|
if(not(code)): |
|
224 |
|
raise EmptyFieldWarning('barcode(FNSKU)') |
|
225 |
|
|
209 |
226 |
if(code): |
if(code): |
210 |
227 |
Data[row['MASTER'] + barcode]['Code'] = code |
Data[row['MASTER'] + barcode]['Code'] = code |
211 |
228 |
|
|
File product_import.py changed (mode: 100644) (index 6363d0b..971deb5) |
... |
... |
import platform |
5 |
5 |
import os |
import os |
6 |
6 |
import ntpath |
import ntpath |
7 |
7 |
from packages.item_upload import itemUpload, itemPropertyUpload, WrongEncodingException |
from packages.item_upload import itemUpload, itemPropertyUpload, WrongEncodingException |
8 |
|
from packages.variation_upload import variationUpload, setActive, EANUpload, marketConnection |
|
|
8 |
|
from packages.variation_upload import variationUpload, setActive, EANUpload, marketConnection, EmptyFieldWarning |
9 |
9 |
from packages.stock_upload import priceUpload |
from packages.stock_upload import priceUpload |
10 |
10 |
from packages.amazon_data_upload import amazonSkuUpload, amazonDataUpload, asinUpload, featureUpload |
from packages.amazon_data_upload import amazonSkuUpload, amazonDataUpload, asinUpload, featureUpload |
11 |
11 |
from packages.image_upload import imageUpload |
from packages.image_upload import imageUpload |
12 |
|
from packages.log_files import fileNotFoundLog, keyErrorLog, wrongEncodingLog, unboundLocalLog |
|
|
12 |
|
from packages.log_files import fileNotFoundLog, keyErrorLog, wrongEncodingLog, unboundLocalLog, emptyFieldWarningLog |
13 |
13 |
|
|
14 |
14 |
|
|
15 |
15 |
def main(): |
def main(): |
|
... |
... |
def main(): |
87 |
87 |
try: |
try: |
88 |
88 |
print("\nItem Upload\n") |
print("\nItem Upload\n") |
89 |
89 |
itemUpload(sheet, intern_number, upload_folder) |
itemUpload(sheet, intern_number, upload_folder) |
90 |
|
except WrongEncodingException as wexc: |
|
|
90 |
|
except WrongEncodingException: |
91 |
91 |
wrongEncodingLog(log_path=log_folder, step_number=step, step_desc=step_name[step], file_name="flatfile") |
wrongEncodingLog(log_path=log_folder, step_number=step, step_desc=step_name[step], file_name="flatfile") |
92 |
92 |
except KeyError as kexc: |
except KeyError as kexc: |
93 |
93 |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
|
... |
... |
def main(): |
97 |
97 |
fileNotFoundLog(log_path=log_folder, step_number=step, step_desc=step_name[step], file_name="flatfile") |
fileNotFoundLog(log_path=log_folder, step_number=step, step_desc=step_name[step], file_name="flatfile") |
98 |
98 |
except UnboundLocalError as uexc: |
except UnboundLocalError as uexc: |
99 |
99 |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
|
100 |
|
except EmptyFieldWarning as eexc: |
|
101 |
|
emptyFieldWarningLog(log_path=log_folder, step_number=step, step_desc=step_name[step], field_name=eexc.errorargs, file_name=ntpath.basename(sheet)) |
100 |
102 |
except Exception as exc: |
except Exception as exc: |
101 |
103 |
print("Item Upload failed!\n") |
print("Item Upload failed!\n") |
102 |
104 |
print("Here: ", exc, '\n') |
print("Here: ", exc, '\n') |
|
... |
... |
def main(): |
114 |
116 |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
115 |
117 |
except UnboundLocalError as uexc: |
except UnboundLocalError as uexc: |
116 |
118 |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
|
119 |
|
except EmptyFieldWarning as eexc: |
|
120 |
|
emptyFieldWarningLog(log_path=log_folder, step_number=step, step_desc=step_name[step], field_name=eexc.errorargs, file_name=ntpath.basename(sheet)) |
117 |
121 |
except Exception as exc: |
except Exception as exc: |
118 |
122 |
print("VariationUpload failed!\n") |
print("VariationUpload failed!\n") |
119 |
123 |
e = sys.exc_info() |
e = sys.exc_info() |
|
... |
... |
def main(): |
148 |
152 |
featureUpload(flatfile=sheet, feature='sleeve_type', feature_id=8, folder=upload_folder) |
featureUpload(flatfile=sheet, feature='sleeve_type', feature_id=8, folder=upload_folder) |
149 |
153 |
featureUpload(flatfile=sheet, feature='pattern_type', feature_id=11, folder=upload_folder) |
featureUpload(flatfile=sheet, feature='pattern_type', feature_id=11, folder=upload_folder) |
150 |
154 |
featureUpload(flatfile=sheet, feature='collar_style', feature_id=12, folder=upload_folder) |
featureUpload(flatfile=sheet, feature='collar_style', feature_id=12, folder=upload_folder) |
|
155 |
|
featureUpload(flatfile=sheet, feature='closure_type', feature_id=14, folder=upload_folder) |
|
156 |
|
featureUpload(flatfile=sheet, feature='style_name', feature_id=15, folder=upload_folder) |
|
157 |
|
featureUpload(flatfile=sheet, feature='care_instructions', feature_id=16, folder=upload_folder) |
151 |
158 |
step += 1 |
step += 1 |
152 |
159 |
setActive(sheet, export, upload_folder) |
setActive(sheet, export, upload_folder) |
153 |
160 |
step += 1 |
step += 1 |
|
... |
... |
def main(): |
158 |
165 |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
159 |
166 |
except UnboundLocalError as uexc: |
except UnboundLocalError as uexc: |
160 |
167 |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
|
168 |
|
except EmptyFieldWarning as eexc: |
|
169 |
|
emptyFieldWarningLog(log_path=log_folder, step_number=step, step_desc=step_name[step], field_name=eexc.errorargs, file_name=ntpath.basename(sheet)) |
161 |
170 |
except OSError as err: |
except OSError as err: |
162 |
171 |
print(err) |
print(err) |
163 |
172 |
print("Missing Data, check if you have\n - a flatfile\n - a intern file table\n - export file from plentymarkets\n - a sheet with the stock numbers!\n") |
print("Missing Data, check if you have\n - a flatfile\n - a intern file table\n - export file from plentymarkets\n - a sheet with the stock numbers!\n") |
164 |
|
sys.exit() |
|
165 |
173 |
|
|
166 |
174 |
print("\nOpen your amazon storage report and save it as an csv.\n") |
print("\nOpen your amazon storage report and save it as an csv.\n") |
167 |
175 |
|
|
|
... |
... |
def main(): |
191 |
199 |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
192 |
200 |
except UnboundLocalError as uexc: |
except UnboundLocalError as uexc: |
193 |
201 |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
|
202 |
|
except EmptyFieldWarning as eexc: |
|
203 |
|
emptyFieldWarningLog(log_path=log_folder, step_number=step, step_desc=step_name[step], field_name=eexc.errorargs, file_name=ntpath.basename(sheet)) |
194 |
204 |
|
|
195 |
205 |
print("\nCreate a upload file for the additional Information to Amazon Products like bullet points, lifestyle etc.\n") |
print("\nCreate a upload file for the additional Information to Amazon Products like bullet points, lifestyle etc.\n") |
196 |
206 |
|
|
|
... |
... |
def main(): |
201 |
211 |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
202 |
212 |
except UnboundLocalError as uexc: |
except UnboundLocalError as uexc: |
203 |
213 |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
|
214 |
|
except EmptyFieldWarning as eexc: |
|
215 |
|
emptyFieldWarningLog(log_path=log_folder, step_number=step, step_desc=step_name[step], field_name=eexc.errorargs, file_name=ntpath.basename(sheet)) |
204 |
216 |
|
|
205 |
217 |
print("\nCollect the ASIN Numbers matching to the Variationnumber(Sku) and format them into the dataformat format.\n") |
print("\nCollect the ASIN Numbers matching to the Variationnumber(Sku) and format them into the dataformat format.\n") |
206 |
218 |
|
|
|
... |
... |
def main(): |
211 |
223 |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
212 |
224 |
except UnboundLocalError as uexc: |
except UnboundLocalError as uexc: |
213 |
225 |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
|
226 |
|
except EmptyFieldWarning as eexc: |
|
227 |
|
emptyFieldWarningLog(log_path=log_folder, step_number=step, step_desc=step_name[step], field_name=eexc.errorargs, file_name=ntpath.basename(sheet)) |
214 |
228 |
|
|
215 |
229 |
print("\nCollect the imagelinks from the flatfile, sorts them and assigns the variation ID.\n") |
print("\nCollect the imagelinks from the flatfile, sorts them and assigns the variation ID.\n") |
216 |
230 |
|
|
|
... |
... |
def main(): |
234 |
248 |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
keyErrorLog(log_path=log_folder, step_number=step, step_desc=step_name[step], key_name=kexc, file_name=ntpath.basename(sheet)) |
235 |
249 |
except UnboundLocalError as uexc: |
except UnboundLocalError as uexc: |
236 |
250 |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
unboundLocalLog(log_path=log_folder, step_number=step, step_desc=step_name[step], filename=ntpath.basename(sheet), variable_name=uexc.args) |
|
251 |
|
except EmptyFieldWarning as eexc: |
|
252 |
|
emptyFieldWarningLog(log_path=log_folder, step_number=step, step_desc=step_name[step], field_name=eexc.errorargs, file_name=ntpath.basename(sheet)) |
237 |
253 |
except Exception as err: |
except Exception as err: |
238 |
254 |
print(err) |
print(err) |
239 |
255 |
print("Market connection failed!") |
print("Market connection failed!") |