Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions connector_spscommerce/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
**This file is going to be generated by oca-gen-addon-readme.**

*Manual changes will be overwritten.*

Please provide content in the ``readme`` directory:

* **DESCRIPTION.rst** (required)
* INSTALL.rst (optional)
* CONFIGURE.rst (optional)
* **USAGE.rst** (optional, highly recommended)
* DEVELOP.rst (optional)
* ROADMAP.rst (optional)
* HISTORY.rst (optional, recommended)
* **CONTRIBUTORS.rst** (optional, highly recommended)
* CREDITS.rst (optional)

Content of this README will also be drawn from the addon manifest,
from keys such as name, authors, maintainers, development_status,
and license.

A good, one sentence summary in the manifest is also highly recommended.
3 changes: 3 additions & 0 deletions connector_spscommerce/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import models
31 changes: 31 additions & 0 deletions connector_spscommerce/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Copyright (c) Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
'name': 'EDI Integration with SPS Commerce',
'summary': 'Integrate with retail stores using SPS Commerce',
'version': '11.0.1.0.0',
'license': 'AGPL-3',
'author': 'Open Source Integrators, Odoo Community Association (OCA)',
'website': 'https://github.com/OCA/connector-spscommerce',
'depends': [
'account',
'delivery',
'sale_stock',
'purchase',
'sale_automatic_workflow',
],
'data': [
'views/sale_view.xml',
'views/stock_view.xml',
'views/company_config_settings_view.xml',
'views/res_company.xml',
'views/res_partner.xml',
'views/account_invoice_view.xml',
],
'installable': True,
'auto_install': False,
'development_status': 'beta',
'maintainers': ['smangukiya'],
}
13 changes: 13 additions & 0 deletions connector_spscommerce/edi_scripts/connect_info.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
# Copyright (c) Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

# Set the parameters appropriately before attempting EDI connection
# Odoo Constants
USERNAME = '<db username>'
PWD = '<db password>'
DBNAME = '<Your Database Name>'
ERP_WWW = "http://<HOST>:<PORT>" or "ERP Domain"
EOL_MARKER = '~'
DEBUG = True
IN_PATH = '/opt/local-addons/connector_spscommerce/test/'
117 changes: 117 additions & 0 deletions connector_spscommerce/edi_scripts/csv_parser.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# -*- coding: utf-8 -*-
# Copyright (c) Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import csv
import itertools

CSV_PATH = '/tmp/csv_import/'
OUT_PATH = '/tmp/csv_export/'


def parse_csv(file):

# CSV COLUMNS
cols = [
'partner',
'po_num',
'date',
'ship_to_code',
'sku',
'upc',
'product_desc',
'product_qty',
'product_uom',
'price_unit',
'third_party',
'address1',
'address2',
'city',
'state',
'zip',
'country',
'billing_contact',
'billing_address1',
'billing_address2',
'billing_city',
'billing_state',
'billing_zip',
'billing_country',
'ship_not_before',
'cancel_after'
]

csv_obj = open(CSV_PATH + file, 'rb')
data = csv.reader(csv_obj, delimiter=',')
count = 1
record = {}
record['sku'] = []
record['upc'] = []

for col in itertools.islice(cols, 6, 9):
record[col] = []

for row in data:

if count == 1 and row[0] != 'H':

print("""INFO: ***** FAILURE - YOUR FILE DOES NOT HAVE THE REQUIRED
FIRST ROW WITH COLUMN HEADINGS:
EDI Loop | Order line | Partner | PO # | Date/UPC |
code?/product desc | quantity | UOM Price *****
""")
break

if count > 2 and row[0] == '':
# sale_id, sale_name = process_record(sock, uid, record)
break

if row[0] == 'H':

if record['sku']:

sale_id, sale_name = process_record(sock, uid, record)
record['sku'] = []
record['upc'] = []

for col in itertools.islice(cols, 6, 9):
record[col] = []

record['ship_to_code'] = row[14]
record['ship_not_before'] = row[31]
record['cancel_after'] = row[32]

# get partner, PO#, date
i = 2
for col in itertools.islice(cols, 0, 3):
record[col] = row[i]
i += 1

# get thirdparty info
i = 7
for col in itertools.islice(cols, 10, 16):
record[col] = row[i]
i += 1

# get billing address info
i = 15
for col in itertools.islice(cols, 17, 24):
record[col] = row[i]
i += 1

elif row[0] == 'I':

record['sku'].append(row[2])
record['upc'].append(row[4])

# get sale line data: sku, asin, product description, quantity,
# uom, price
i = 6
for col in itertools.islice(cols, 6, 9):
record[col].append(row[i])
i += 1

count += 1

sale_id, sale_name = process_record(sock, uid, record)

csv_obj.close()
Loading