Skip to content

[TODO] Reformat the below pasted doc from David's word doc.

Grocery Key

GK data updater:

This project syncs data from Odoo to GK. It creates all flat files required by GK to keep the ecommerce platform up to date. It is written on C# and hosted in AWS. It runs every two hours.

Repository: https://bitbucket.org/communitynaturalfoods/odootogkflatfileintegration/src/master/

Odoo API Doc: https://app.swaggerhub.com/apis-docs/CALGARY_COOP_DEV/odooToKioskPointOfSale.API/1.0.7

This project doesn’t require any change at this point.

GK reporting process:

This project pulls data from GK and creates excel files (reporting files). Currently, it’s pulling Sale information that finance is using to report sales. It’s also capable of pulling product information, this information is useful for the ecommerce department for reporting. It is written on C# and hosted in AWS. It runs once a day (12 pm).

Repository: https://bitbucket.org/communitynaturalfoods/gkdataexports/src/master/

Odoo API Doc: https://app.swaggerhub.com/apis-docs/CALGARY_COOP_DEV/odooToKioskPointOfSale.API/1.0.7

GK API Doc: https://storeapi.grocerkeydev.com/apidocs/index.html

Probably, I can refactor this process to insert sale and product data into a DB, instead of using excel files, I think this will be better for accessibility.

GK Inventory transfer process:

This project syncs inventory movements from GK to CRS system (Legacy system that still manages our perpetual inventory). This process was created as a work around to keep our inventory up to date. It is written on Python and hosted in AWS. It runs twice a day (11 am and 5pm).

Repository: https://bitbucket.org/communitynaturalfoods/odoo_to_crs_transfer_sync/src/master/

Odoo API Doc: https://app.swaggerhub.com/apis-docs/CALGARY_COOP_DEV/odooToKioskPointOfSale.API/1.0.7

GK API Doc: https://storeapi.grocerkeydev.com/apidocs/index.html

This project doesn’t require any change at this point.

GK/Odoo mass image uploader:

This project mass uploads images into Odoo. The GK data updater will later pull the images from Odoo and sync them into GK.

Repository: https://bitbucket.org/communitynaturalfoods/odoo_mass_image_uploader/src/master/

This project doesn’t require any change at this point.

GK Sales synchronizer:

This process is meant to sync GK sales into Odoo using the Pub-Sub pattern. This process is the Publisher. It pulls GK sales information from GK, using API calls, then the process transforms the data using Odoo models, and pushes it into AWS SNS and SQS services.

Repository: https://bitbucket.org/communitynaturalfoods/grocerykeyorderspublisher/src/main/

API Repository: https://bitbucket.org/communitynaturalfoods/grocerykeyintegration.api/src/master/

Odoo API Doc: https://app.swaggerhub.com/apis-docs/CALGARY_COOP_DEV/odooToKioskPointOfSale.API/1.0.7

GK API Doc: https://storeapi.grocerkeydev.com/apidocs/index.html

This process is incomplete, it requires the following changes: - Add new GK API endpoint functionality to process that calculates sale order discounts. GK ticket #10025. - Process needs to be able to handle Refunds. Refunds in GK work completely different than Refunds in Odoo. GK might need to create new API endpoints that allows an easier integration of this. - Create a new Odoo module capable of pull objects from AWS SNS and SQS services to create sales records in Odoo (Subscriber).

NOTE: The intention of using the Pub-Sub pattern is to allow process to be loosely coupled. For example, if something is failing on the Subscriber side, the Publisher can continue to sync sales to AWS SNS and SQS. So, whenever the Subscriber gets recovered it can pull all missing sales. (Provide Json file that creates the SNS and SQS infrastructure in AWS)

Odoo

Promotion Module

This project customizes Odoo, out of the box, promotion module to allow the management of the POS promotions, this includes exposing API endpoints that lets AMPM integrates with Odoo. Repository: https://github.com/CNFIT/CNF-Odoo-sh/tree/13.0_202203_promotion_module/cnf_sale_promotion API doc. Repository: https://bitbucket.org/communitynaturalfoods/odootokioskpointofsale.api/src/master/

• Views/Models customizations to allow the creation of POS promotions. (done)
• Add View/Model relationship between promo module and POS module. (done)
• API endpoints
    ○ Rules. (done)
        § Documentation (Started but incomplete)
    ○ Single used coupons. (pending)
        § Documentation (pending)
    ○ Single used coupons validation. (pending)
        § Documentation (pending)
• Module documentation
    ○ Module description. (done)
    ○ Rule examples. (pending)
    ○ Single used coupons. (pending)

Note: This module customizations need to be discussed with AMPM, so they can customize their promo module to accept all our rule parameters. (Provide module documentation)

Odoo to CRS Pos Order Synchronizer (KIOSK Orders)

This is a C# console application synchronizing POS orders from Odoo to CRS (legacy system). This console application gets the POS orders from Odoo through the Odoo Muk API. Then, it transforms all the orders into Json documents, in a format that CRS can understand. Finally, it posts them to a location where the CNF POS Digester processes them.

Repository: https://bitbucket.org/communitynaturalfoods/odootocrsposordersyncer/src/main/

This project doesn’t require any change at this point.

NOTE: If new Point of sales are added to Odoo and you still need to keep CRS (legacy system) up to date, this project should be able to sync all orders from Odoo to CRS. However, new settings need to be added to this project config files (see Readme for more information).

Odoo Inventory transfer process:

This project syncs inventory movements from Odoo to CRS system (Legacy system that still manages our perpetual inventory). This process was created to keep our inventory up to date. It is written on Python and hosted in AWS. It runs twice a day (11 am and 5pm).

Repository: https://bitbucket.org/communitynaturalfoods/odoo_to_crs_transfer_sync/src/master/

This project doesn’t require any change at this point. Note: It’s the same project as GK inventory transfer, but it uses different files for the sync. CRS APIs

PRATS API (Purchase Orders, Receipts, Adjustments, Transfers, Sales)

This project exposes thru an API Receipts, Adjustments, Transfers and Sales information located in the CRS database (Mysql). It is based on Python – Django Rest framework and it’s currently hosted in AWS. This API is being used for the Odoo Finance implementation.

Repository: https://bitbucket.org/communitynaturalfoods/rats-api/src/master/

API Doc: https://app.swaggerhub.com/apis/CALGARY_COOP_DEV/cnfPRATS.API/1.0.3

This project doesn’t require any change at this point.

Product Catalog API

This project exposes thru an API CNF product catalog information. It is based on Python – Django Rest framework and it’s currently hosted in AWS. This API is being used for Odoo to sync product catalog information.

Repository: https://bitbucket.org/communitynaturalfoods/catalog-api/src/master/

This project doesn’t require any change at this point.

Sage API

This project exposes thru an API Sage vendor and bank information. It is based on Python – Django Rest framework and it’s currently hosted in AWS.

Repository: https://bitbucket.org/communitynaturalfoods/sage_api/src/master/

API Doc: https://app.swaggerhub.com/apis/CALGARY_COOP_DEV/cnfSAGE.API/1.0.1

This project doesn’t require any change at this point.

CNF Mobile Apps

MyCNF Program app

This IOS app enrolls in-store customers to have access to our discounts. Application certificate expires on April 4th, 2023

Repository: https://bitbucket.org/communitynaturalfoods/membership-app-newer-ios/src/master/

Inventory System app

This IOS app helps the staff to do inventory on the stores. Last inventory was on October 31st, 2022. Application certificate expires on October 8th, 2023

Repository IPhones/Tablets: https://bitbucket.org/communitynaturalfoods/inventory-app-newer-ios/src/master/

Repository IPods: https://bitbucket.org/communitynaturalfoods/inventory-app-ipod-5-5s/src/master/

CNF App

This IOS app does the store receiving, transfers, adjustments, etc. It’s used in a daily basis. Application certificate expires on October 3rd, 2023

Repository: https://bitbucket.org/communitynaturalfoods/cnf-app/src/master/

CRS system: Legacy system that still manages our perpetual inventory.