Hyppää sisältöön

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"]:

// partner_id = [42, "Asiakas Oy"]
const customerId = String(partner_id[0]);  // "42"
const customerName = partner_id[1];        // "Asiakas Oy"