Kenttäkartoitukset
Kattava taulukko kaikista Odoo → Custobar -kenttävastaavuuksista.
Tuotteet
flowchart LR
subgraph odoo["Odoo product.product"]
A1[id]
A2[name]
A3[list_price + taxes_id]
A4[weight]
A5[sale_ok]
A6["categ_id[1]"]
A7["categ_id[0]"]
A8[__last_update]
A9[default_code]
A10[barcode]
A11[quantity_svl]
end
subgraph custobar["Custobar products"]
B1[external_id]
B2[title]
B3[price]
B4[weight]
B5[visible]
B6[category]
B7[category_id]
B8[date]
B9[sku]
B10[ean]
B11["stock[].quantity"]
end
A1 --> B1
A2 --> B2
A3 -->|"verollinen × 100"| B3
A4 --> B4
A5 --> B5
A6 --> B6
A7 --> B7
A8 --> B8
A9 --> B9
A10 --> B10
A11 -->|"min 0"| B11
| # | Odoo | Custobar | Tyyppi | Muunnos |
|---|---|---|---|---|
| 1 | id |
external_id |
string | String(id) |
| 2 | name |
title |
string | Suoraan |
| 3 | list_price + taxes_id |
price |
integer | Verollinen hinta sentteinä |
| 4 | weight |
weight |
number | Suoraan (kg) |
| 5 | sale_ok |
visible |
boolean | true/false |
| 6 | categ_id[1] |
category |
string | Kategorian nimi tuplesta |
| 7 | categ_id[0] |
category_id |
string | Kategorian ID tuplesta |
| 8 | __last_update |
date |
string | Suoraan |
| 9 | default_code |
sku |
string | Ohitetaan jos false |
| 10 | barcode |
ean |
string | Ohitetaan jos false |
| 11 | quantity_svl |
stock[0].quantity |
integer | Math.max(0, arvo) |
| — | — | stock[0].shop_id |
string | Kiinteä: "Verkkokauppa" |
Asiakkaat
| # | Odoo | Custobar | Tyyppi | Muunnos |
|---|---|---|---|---|
| 1 | id |
external_id |
string | String(id) |
| 2 | display_name |
first_name |
string | Ohitetaan jos false |
| 3 | email_normalized |
email |
string | Ohitetaan jos false |
| 4 | phone_sanitized |
phone_number |
string | Ohitetaan jos false |
| 5 | street |
street_address |
string | Ohitetaan jos false |
| 6 | city |
city |
string | Ohitetaan jos false |
| 7 | zip |
zip_code |
string | Ohitetaan jos false |
| 8 | country_code |
country |
string | Ohitetaan jos false |
| 9 | vat |
vat |
string | Ohitetaan jos false |
| 10 | company_name |
company |
string | Ohitetaan jos false |
| 11 | create_date |
date_joined |
string | Suoraan |
Tilaukset (myyntiriveittäin)
| # | Odoo | Custobar | Tyyppi | Muunnos |
|---|---|---|---|---|
| 1 | order_id[1] / name |
sale_external_id |
string | Tilausnumero |
| 2 | partner_id[0] |
sale_customer_id |
string | Asiakkaan ID tuplesta |
| 3 | date_order |
sale_date |
string | Suoraan |
| 4 | amount_total |
sale_total |
integer | × 100 (senteiksi) |
| 5 | id (tilausrivi) |
external_id |
string | Rivin ID |
| 6 | product_id[0] |
product_id |
string | Tuotteen ID tuplesta |
| 7 | price_total / qty |
unit_price |
integer | Verollinen yksikköhinta sentteinä |
| 8 | product_uom_qty |
quantity |
number | Suoraan |
| 9 | price_unit × discount% × qty |
discount |
integer | Alennussumma sentteinä |
| 10 | price_total |
total |
integer | Rivin summa sentteinä |
Tärkeät muunnossäännöt
Rahamäärät sentteinä
Custobar vastaanottaa kaikki rahamäärät kokonaislukuina sentteinä:
| Euroarvo | Senttiarvo | Koodi |
|---|---|---|
| 19,95 € | 1995 |
Math.round(19.95 * 100) |
| 0,00 € | 0 |
Math.round(0 * 100) |
| 1 234,56 € | 123456 |
Math.round(1234.56 * 100) |
Odoo false → ohita kenttä
Odoo palauttaa tyhjät/puuttuvat kentät Python-arvona false, joka JSON:ssa on false (boolean). Nämä suodatetaan:
// Vain jos kentällä on oikea arvo
if (d.barcode && d.barcode !== false && d.barcode !== 'false') {
product.ean = d.barcode;
}
Odoo-tuplet → ID ja nimi
Viitekentät (many2one) palautuvat tuplena [id, "label"]: