Modul "MyOdoo odoo2odoo Connector"

STATUS

Version

Für Odoo 8.0 - Version 1.0.72 vom 23.03.2017 - Quelle: Verfügbar nur mit Software-Pflege-Vertrag

(Stern)  Kunden mit einem Software-Pflege Vertrag bekommen kostenlos unser exklusives Backend Theme . Wundern Sie sich deshalb nicht wegen des Aussehens der deutlich optimierten Screenshots auch in der Version 8. 


Themenbereiche



Funktionsumfang

Mit diesem Modul können Sie Ihr Odoo Hauptsystem mit Warenwirtschaft an ein Untersystem mit Odoo Webshop ankoppeln.
Es werden die Stammdaten (Kunden, Produkte inkl. Lagerbestand und Preislisten) von Muttersystem in separaten Webshop synchronisiert.
Kunden sowie Kundenbestellungen werden automatisch über eine Schattentabelle geholt und ins Muttersystem eingespielt.
Auftragsprozessänderungen wie Lieferstatus und Dokumente (AB, Lieferschein, Rechnung) werden im Webshop upgedatet.


Das Quell- und das Zielsystem müssen den gleichen Kontenrahmen haben!

Was muss im Mastersystem installiert werden?

Installieren Sie das Modul eq_odoo_connector_master unter Einstellungen > Lokale Apps


Der Odoo Connector installiert noch zusätzlich die folgenden 3 Module:

Zu sehen unter Abhängigkeiten.


ACHTUNG: das Modul connector_ecommerce hat noch Abhängigkeiten zu den Modulen:

  • sale_payment_method_automatic_workflow
  • sale_automatic_workflow
  • connector_base_product
  • sale_exceptions

Diese Module müssen im Master installierbar sein.

Der Tab Connector erscheint im Backend


Was muss im Clientsystem installiert werden?

Im Clientsystem muss ein Modul installiert werden:eq_website_quantity

Dieses Modul bewirkt, dass man die Lagerbestände anzeigen kann.

Voraussetzung ist das Equitania eq_website_customerportal bereits installiert ist.

Was darf nicht im Clientsystem installiert werden

Das Modul eq_sale_order_seperation darf im Clientsystem nicht installiert sein. Die Auswahl „Auftrag immer sofort bestätigen“ (unter Einstellungen > Kundenportal) darf man nicht aktivieren, um die richtige Funktionsweise des Moduls zu gewährleisten.

Einstellungen Mastersystem

Backend

BackendAnlegen → hier konfigurieren Sie die verschiedenen Client Systeme also Untershops

Vergeben Sie einen frei wählbaren Namen für Ihren Untershop.
Füllen Sie die URL, Port, Sprache, Datenbankname, Benutzername und Kennwort. Setzen Sie die Sprache auch unter den Push-Optionen.

Holen Sie dich die benötigten Daten ggf. von Ihrem Systemadministrator. Speichern Sie Ihre Einstellungen.

Testen der Verbindung

 Klicken Sie nach dem Speichern auf Verbindung testen.

Sie bekommen eine Statusmeldung.

Nur wenn der Verbindungstest zu Ihrem Clientsystem erfolgreich war, können Sie fortfahren. Andernfalls korrigieren Sie Ihre Eingaben.


Mapping konfigurieren

Gehen Sie unter MappingAnlegen

Leider müssen Sie die folgenden Tabellen im aktuellen Entwicklungsstand manuell anlegen. Dabei gehen Sie wie folgt vor:

Vergeben Sie einen passenden Namen und suchen Sie nach dem Modell (unten angegeben):



Über Eintrag hinzufügen, fügen Sie die Felder, die unten genannt sind über anhaken hinzu:

Speichern nicht vergessen!


Fertig konfiguriertes Mapping:


Wir empfehlen die folgende Konfiguration.

Verwenden Sie die folgenden Mappings für den PUSH Vorgang:

1.)  Product Template (Modell: product.template)

accessory_product_ids

alternative_description

alternative_product_ids

categ_id

default_code

description

description_purchase

description_sale

diameter

dimensions

ean13

eq_seo_name

height

image

image_medium

image_small

internal_note

length

list_price

loc_case

loc_rack

loc_row

lst_price

material

name

price

product_variant_ids

public_categ_ids

purchase_ok

sale_delay

sale_ok

standard_price

state

type

uom_id

uom_po_id

virtual_available

warranty

website_description

website_published

website_sequence

weighed_amount

weight

weight_net

width


2.)  Product Product (Modell: product.product)

alternative_description

categ_id

code

default_code

description

description_purchase

description_sale

diameter

dimensions

ean13

eq_minimum_qty

eq_sale_min_qty

eq_seo_name

height

image

image_medium

image_small

image_variant

is_product_variant

length

list_price

loc_case

loc_rack

loc_row

lst_price

name

price

product_tmpl_id

purchase_ok

sale_delay

sale_ok

standard_price

state

type

volume

warranty

website_published

website_sequence

website_url

weight

weight_net

width


3.)  Product Category ( Modell: product.category)

name

parent_id [many2one]


4.)  Product UOM ( Modell: product.uom)

category_id

name

uom_type


5.)  Product Material (Modell:product.material)

name


6.)  Partner (Modell: res.partner)
active
birthdate

city

comment

country_id

credit_limit

customer

date

email

eq_birthday

eq_prospective_customer

eq_unlocked_for_webshop
fax

function

image

is_company

lang

mobile

name

parent_id

phone

property_product_pricelist

street

street2

supplier

title

type

use_parent_address

vat

website

zip


    

7.) Product public category (Modell: product.public.category)

name

parent_id [many2one]


8.) Translation (Übersetzung) (Modell: ir.translation)
comments
lang
module
Name
res_id
source
type
value

Verwenden Sie außerdem die folgenden Felder für den PULL Vorgang:

9.) Sale order (Modell:sale.order)

amount_tax

amount_untaxed

client_order_ref

date_order

invoiced

order_line

order_policy

origin

partner_id

parent_id

partner_invoice_id

partner_shipping_id

picking_policy

pricelist_id

shipped

state

validity_date


10.) Sale orderline ( Modell: sale.order.line)

delay

name

order_id

price_unit

product_id

product_uom

product_uom_qty

sequence

state

th_weight

tax_id [many2many]


11.) Tax mapping (Modell: account.tax)

amount

applicable_type

base_sign

child_depend

description

domain

include_base_amount

name

price_include

python_applicable

ref_base_sign

ref_tax_sign

sequence

tax_sign

type

type_tax_use


12.) Country (Modell: res.country)

address_format

code

image

name


13.) Partneranrede (Modell: res.partner.title)

domain

name

shortcut


14.) Preislistenversion (Modell: product.pricelist.version)

active

date_start

date_end

items_id

name

not_in_overview

price1

price2

pricelist_id


15.) Mengeneinheit(ME) Kategorie (Modell: product.uom.categ)

category_id

name

uom_type


16.) Meldebestand (Modell: stock.warehouse.orderpoint)

active

name

product_id

product_max_qty

product_min_qty

qty_multiple


Beispiel fertig konfiguriertes Mapping:


Sie haben insgesamt 16 Mappings angelegt.

Das Mapping von Equitania Feldern

Das Mapping von Equitania Feldern, z.B. der Hausnummer eq_house_no erfolgt genauso wie das Mapping von "normalen" also Standardfeldern, falls das Feld in beiden Systemen existiert. Andernfalls ist ein Mapping benutzerdefinierter Felder nötig. (siehe folgender Abschnitt)


Mapping > Benutzerdefinierte Felder

Dieses Feld ist für die Fälle notwendig, wenn man Daten aus einem Feld übertragen will, dass es in einem der Systeme nicht gibt. Hier muss angegeben werden, in welches Feld der Inhalt dann geschrieben werden soll.


Arbeitsschritte

Unter dem Punkt Arbeitsschritte sehen Sie alle Arbeitsschritte, die das Master- zum Clientsystem ausgeführt hat, inklusive Statusmeldung.

Einstellungen Clientsystem


Im Clientsystem müssen noch Auslieferungsmethoden angelegt werden. Auslieferungsmethoden werden nicht automatisch übernommen.

Lesen Sie hierzu: https://equitania.atlassian.net/wiki/x/PQKQ

Bei der Nutzung der Mindermengenlogik müssen Sie das Mindermengenprodukt hinterlegen. 

- Bisher vorhandene Anreden auf neu hinzugefügte Anreden ändern: 

- Ermittlung der verwendeten Anreden: SELECT * FROM res_partner_title WHERE id IN (SELECT DISTINCT(title) FROM res_partner) 

- Ermittlung des Mappings der Anreden in Master-DB: SELECT * FROM odo_res_partner_title ORDER BY openerp_id 

- Verweis auf alte Anreden durch IDs der neuen Anreden ersetzen 

- Alte Anreden löschen 

Produktpush

Gehen Sie im Mastersystem auf Backend und einen Ihrer angelegten Shops und klicken Sie auf den Button Produktpush ausführen.


Die Produkte, die Sie in Ihrem Mastersystem erstellt hatten, sollten nun auch im Client unter Verkauf > Produktverzeichnis > Produkte

sichtbar sein. Es werden nur die Produkte angezeigt, die veröffentlicht sind.


Produkte dürfen NUR IM MASTERSYSTEM angelegt werden. Sind Produkte im Client angelegt worden, kann dies später beim Bestellpull zu Problemen führen.


Preislistenpush

Überspielen Sie Ihre Preislisten.

Partnerpush

Überspielen Sie Ihre gesamten Partner. Wählen Sie die Option "Nur Kunden", um nur Kunden zu übertragen.

Wenn der Initialpush einmal ausgeführt wurde, sorgt ein Cronjob dafür, dass Daten i.d.R. 1x pro Minute (je nach dem wie ihr Intervall eingestellt ist) abgeglichen werden.

Meldebestände

Überspielen Sie die Meldebestände.  

Anreden 

Überspielen Sie die Kontaktanreden.  

PULL-Optionen

Partnerpull ausführen

Klicken Sie unter Connector > Backend > PULL auf Partnerpull durchführen.


Gehen Sie unter Connector > Shadowtabellen > Neue Partner.

Wählen Sie einen / mehrere Partner aus und gehen Sie unter Mehr auf Partner verarbeiten.

Klicken Sie Alles akzeptieren.

WICHTIG - nur Partner mit dem Status Entwurf werden verarbeitet.

Ihre neuen Kontakte aus dem Clientsystem wurden ins Mastersystem übernommen.


Es ist auf jeden Fall notwendig, dass Sie vor dem Bestellungspull erst den Partnerpull ausführen und alle Partner akzeptieren, da es sonst aufgrund von Dateninkonsistenz zu einem Fehler kommen kann. Sie bekommen einen Fehler beim Bestellimport.


Bestellungspull ausführen


Gehen Sie unter Connector > Shadowtabellen > Neue Bestellungen

Hier sehen Sie nun die importierten Bestellungen aus dem Clientsystem.


Haken Sie die Bestellungen, die Sie ins Mastersystem übernehmen wollen an und klicken Sie unter Mehr > Bestellungen verarbeiten


Klicken Sie auf Alles akzeptieren:

WICHTIG - nur Bestellungen mit dem Status Entwurf werden verarbeitet. Die Aufträge des Public User werden ignoriert.


Ihre Bestellungen wurden importiert. Wenn Bestellungen importiert und dann im Master bestätigt werden, sollte das auch den Bestand verringern.


Sie sehen anhand der Felder, wann jeweils der letzte Pull durchgeführt wurde.

Testbestellung im Clientsystem:

 Übertragene Bestellung im Mastersystem:


Wenn es keine Änderungen gibt, öffnet sich ein entsprechendes Hinweisfenster:


Zurücksetzen der Systeme für neue Synchronisation

Falls in der Master-DB schon mal Synchronisationen liefen, müssen die Mappings zwischen Master und Servant zurückgesetzt werden:


Mastersystem
DELETE FROM odo_product_category;
DELETE FROM odo_product_material;
DELETE FROM odo_product_pricelist;
DELETE FROM odo_product_pricelist_item;
DELETE FROM odo_product_pricelist_version;
DELETE FROM odo_product_product;
DELETE FROM odo_product_template;
DELETE FROM odo_product_uom;
DELETE FROM odo_product_uom_categ;
DELETE FROM odo_res_partner;
DELETE FROM odo_res_partner_title;
DELETE FROM odo_res_lang;
DELETE FROM queue_job;
DELETE FROM odo_product_public_category;
DELETE FROM odo_res_currency;
DELETE FROM odo_res_currency_rate;
DELETE FROM odo_sale_order;
DELETE FROM odo_sale_order_line;
DELETE FROM odo_account_invoice;
DELETE FROM odo_account_invoice_line;
DELETE FROM odo_account_tax;
DELETE FROM odo_res_country;
DELETE FROM odo_stock_warehouse_orderpoint;
DELETE FROM odo_ir_translation;
DELETE FROM odo_backend;

In der Servant-DB: Entfernen der Produkte und ggf. Zurücksetzen der Tabellen, die auf Produkte verweisen:

Servant
DELETE FROM account_invoice_line;
DELETE FROM account_invoice;
DELETE FROM account_move;
DELETE FROM ir_attachment WHERE res_model = 'account.invoice'; 
ALTER SEQUENCE account_invoice_line_id_seq RESTART; 
ALTER SEQUENCE account_invoice_id_seq RESTART; 
ALTER SEQUENCE account_move_id_seq RESTART;

DELETE FROM sale_order_line;
DELETE FROM sale_order;
DELETE FROM ir_attachment WHERE res_model = 'sale.order'; 
ALTER SEQUENCE sale_order_line_id_seq RESTART;
ALTER SEQUENCE sale_order_id_seq RESTART;
DELETE FROM stock_pack_operation; 
DELETE FROM stock_picking; 
DELETE FROM stock_move;
DELETE FROM stock_quant;
DELETE FROM stock_inventory_line; 
DELETE FROM stock_inventory; 
DELETE FROM stock_production_lot; 
DELETE FROM procurement_order;
DELETE FROM stock_warehouse_orderpoint;
ALTER SEQUENCE stock_move_id_seq RESTART;
ALTER SEQUENCE stock_quant_id_seq RESTART;
ALTER SEQUENCE stock_warehouse_orderpoint_id_seq RESTART; 
ALTER SEQUENCE stock_inventory_line_id_seq RESTART; 
ALTER SEQUENCE stock_inventory_id_seq RESTART;
ALTER SEQUENCE stock_production_lot_id_seq RESTART; 
ALTER SEQUENCE procurement_order_id_seq RESTART;
DELETE FROM delivery_carrier;
ALTER SEQUENCE delivery_carrier_id_seq RESTART;
DELETE FROM product_template;
ALTER SEQUENCE product_product_id_seq RESTART;
ALTER SEQUENCE product_template_id_seq RESTART;
DELETE FROM product_category;
ALTER SEQUENCE product_category_id_seq RESTART;
DELETE FROM product_public_category;
ALTER SEQUENCE product_public_category_id_seq RESTART;
DELETE FROM product_material;
ALTER SEQUENCE product_material_id_seq RESTART;
DELETE FROM product_pricelist;
ALTER SEQUENCE product_pricelist_id_seq RESTART;
ALTER SEQUENCE product_pricelist_version_id_seq RESTART;
ALTER SEQUENCE product_pricelist_item_id_seq RESTART;
DELETE FROM res_users WHERE id > 4;
DELETE FROM res_partner WHERE id > 5;
DELETE FROM res_partner_title;
ALTER SEQUENCE res_partner_title_id_seq RESTART;
DELETE FROM mail_message;
DELETE FROM mail_mail;
DELETE FROM ir_attachment WHERE res_model = 'mail.compose.message'; 
ALTER SEQUENCE mail_message_id_seq RESTART;
ALTER SEQUENCE mail_mail_id_seq RESTART;
DELETE FROM mail_followers_mail_message_subtype_rel;
DELETE FROM mail_followers;
ALTER SEQUENCE mail_followers_id_seq RESTART;
Bereinigung für ir_property:
DELETE FROM ir_property where res_id LIKE 'res.partner,%' AND cast(split_part(res_id, ',', 2) as int) NOT IN (select id from res_partner);
DELETE FROM ir_property WHERE res_id LIKE 'product.template,%' AND cast(split_part(res_id, ',', 2) as int) NOT IN (SELECT id FROM product_template);
Bereinigung der Übersetzungen:
DELETE FROM ir_translation WHERE name LIKE 'product.template,%' AND COALESCE(res_id,0) > 0 AND res_id NOT IN (SELECT id FROM product_template);
DELETE FROM ir_translation WHERE (name = 'res.partner.title,name' OR name = 'res.partner.title,shortcut') AND res_id > 0;
Bereinigung der Konten:
DELETE FROM account_account WHERE user_type = 2 AND type = 'receivable' AND CAST(code as int) > 10000;
Falls im Servant ein Produkt für die Unterschreitung der Mindestbestellmenge gepflegt wurde:
UPDATE ir_config_parameter SET value = '0' WHERE key = 'eq.website.customerportal.min.order.net.price.product.id';


Nach dem Push der Produkte muss unter Einstellungen → Konfiguration → Kundenportal wieder die Einstellung "Produkt für Minderwert" gepflegt werden:

Voraussetzungen




Modulvideo

Release Note

  • Änderungen vom 23.03.2017

Ähnliche Inhalte

Nach Stichwort filtern

Derzeit gibt es keine Elemente mit den ausgewählten Stichwörtern.