Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami
Ricordati di inserire la versioni di Odoo per cui poni la domanda
  • Pagina:
  • 1
  • 2

ARGOMENTO: [V9] MTS - MTO Make To Stock vs Make To Order

[V9] MTS - MTO Make To Stock vs Make To Order 2 Anni 1 Mese fa #26548

  • Lotta
  • Avatar di Lotta
  • Online
  • Platinum Boarder
  • Messaggi: 450
  • Ringraziamenti ricevuti 14
  • Karma: 3
Ciao gigi,
mi piacerebbe approfondire il discorso :-)) in particolare in merito ai percorsi/routes,

La route dovrebbe essere è visualizzata da un widget che “pesca” nel campo m2m product_template.route_ids, (i cui ids sono delle chiavi FK che puntano alla tabella stock.location.route)

Dando retta al
amit-parik.blogspot.it/2012/05/openerp-p...t-configuration.html

(che mi sembra però fermo al 2012) la route buy NON sarebbe in alternativa a MTO, ma a “fabbricare”: se mettiamo “buy” compriamo il prodotto.
Ma SE le varie route_ids non sono esclusive ma additive, allora nella v10 esiste l’opzione MTO ma non trovo più la MTS.
Significherebbe quindi che un prodotto è MTS di default. Abilitare il MTO significa averli entrambi (almeno io non trovo più l'opzione esplicita MTS)


Ancora ….., attribuendo ad una sola categoria la possibilità di dorpshipping, adesso il widget delle route mi offre l’opzione dropshipping su tutti i prodotti …. prima non veniva visualizzata
Da ciò mi chiedo se l’opzione “fabbrica” sia in alternativa a “buy”, oppure "fabbrica" compaia una volta installato un modulo MRP e definita una categoria come “fabbricare”.
Ultima modifica: 2 Anni 1 Mese fa da Lotta.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[V9] MTS - MTO Make To Stock vs Make To Order 2 Anni 1 Mese fa #26549

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
In effetti con le rotte Odoo SA si è impegnata molto a render le cose incasinate e di difficile comprensione tale da rendere difficile spiegarle poi al cliente che deve usarle :(

Partiamo dalla base, le due rotte di approvvigionamento semplice

Acquista --> Ovvero richiedi al fornitore (MTS)
Produci --> Ovvero fai scattare la produzione, tale rotta viene creata dal modulo MRP

Odoo processa le regole ordinandole per priorità, la prima che è applicabile vince. La regola "produci" ha priorità sulla regola acquista.

Le rotte vengono impostare sulle righe dell'ordine di vendita prendendo i default dalla scheda prodotto con l'euristica di sopra a meno che non abiliti la scelta delle rotte sull'ordine di vendita.

MTO è una rotta di procurement e si applica sia ad "Acquista" che a "Produrre". Se vuoi che Odoo generi gli ordini (acquisti o produzione) in automatico devi abilitare la rotta MTO oppure definire le "regole di riordino" se nessuna delle due e definita gli automatismi non scattano.

MTO --> Acquista --> Genera Ordine Fornitore (o richiesta di gara se vogliam complicare il tutto)
MTO --> Produci --> Genera Ordine di Produzione

MTO correla Ordine di vendita ad Acquisto/Produzione mentre le regole di riordino semplicemente riforniscono il magazzino.

Dropshipping ma anche le varie rotte intra magazzini che ottieni configurando le regole di resupply nei vari magazzini son rotte di picking, ovvero di movimentazione della merce. Queste rotte si applicano alla merce disponibile.

A questo insieme di rotte poi si aggiungono quelle legate alla produzione, giusto per non farci mancar nulla :D

Se non fosse che mi serve l'autorizzazione ti farei uno screen della scheda logistica di un cliente dove le rotte selezionabili son 15 :D prendilo a fiducia.

Combinando correttamente i vari elementi di base riesci ad ottenere pressochè tutto (in realtà le rotte non limite lo hanno, son delle catene e non possono gestire grafi ed eventi di KO ... in altre parole non posso creare una rotta [o almeno io non ci so riuscito] che in un ambiente multi magazzino mi cerchi il prodotto su tutti i magazzini e solo alla fine lo acquisti).

Il rovescio della medaglia è che le rotte son difficili da configurare ed ancor di piu' da debbuggare.

Le rotte le puoi attribuire su singolo prodotto o su categoria (ma anche per punto di stoccaggio o magazzino :D) se presente sul prodotto la rotta ha priorità sul quella della categoria.

Le rotte vengono copiate nella riga dell'ordine di vendita o acquisto, un eventuale cambio della scheda prodotto quindi non influenza il comportamento degli ordini gia' confermati (e forse neanche delle bozze :( ).

Ancora una volta so di non esser stato sufficientemente chiaro, purtroppo la complessità dell'argomento rende limitativo lo strumento forum ... in ogni caso se ci son degli elementi non chiari chiedi pure per approssimazioni successive cerchero' di risponderti nei limiti delle mie conoscenze.

EDIT:

Acquista è una rotta dalla location di tipo "fornitore" alla location "fisica". In una location di tipo "fornitore" la merce è sempre disponibile. Ovvero la tipologia della location influenza il comportamento del sistema :)
@KTec
www.ktec.it
Ultima modifica: 2 Anni 1 Mese fa da gigidn.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[V9] MTS - MTO Make To Stock vs Make To Order 2 Anni 1 Mese fa #26550

  • Lotta
  • Avatar di Lotta
  • Online
  • Platinum Boarder
  • Messaggi: 450
  • Ringraziamenti ricevuti 14
  • Karma: 3
Ciao Gigi, grazie della spiegazione.

Andando a provare quanto hai gentilmente esposto, NON sono riuscito a trovare:
  • nelle righe degli ordini di vendita, la possibilità di indicare che il procurement sarà MTO o MTS
  • nella categoria prodotto, la possibilità di indicare che la categoria prodotto sia di product type buy, ovvero di procurement MTO/MTS


Chiedo CONFERMA:
per un caricamento di massa prodotti/inventario iniziale da SCRIPT esterno con la V10 , dovrei caricare per ogni singolo articolo di cui si intenda gestire un sistema MTS, Nel tab inventario
  • inserire in product_template.route_ids, le varie FK delle route buy/MTS per il prodotto
  • inserire in product_template.seller_ids, la FK del fornitore da cui acquistare
  • creare in stock.warehose.orderpoint, la singola specifica regola di riordino legato all’id prodotto, con i vari min/max/multiple/leadtime,
  • inserire la categoria prodotto, (della quale però come detto non riesco ad intervenire su MTO/MTS)

  • Mancherebbe qualcosa ?
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[V9] MTS - MTO Make To Stock vs Make To Order 2 Anni 1 Mese fa #26552

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
Andiamo un po' oltre allora ....

Le rotte vengono si copiate nella riga dell'ordine di vendita (o almeno questo è quello che ho sperimentato ma non mi so messo a fare un trace del codice e delle tabelle) ma non è detto che possano essere selezionate.

Quando definisci una rotta ne specifichi anche il suo ambito di applicazione, prodotto - categoria - righe ordine - magazzino.

Le rotte Buy, Produce, MTO son applicabili di default solo al prodotto ecco perchè non puoi specificarle nelle categorie.

Ti consiglio di analizzare bene le varie rotte per capire come funzionano. L'MTO ad esempio si ottiene combinando diversi aspetti della rotta. Una rotta MTO è una rotta che fa scattare un procurement e che sposta un prodotto da una location fornitori ad magazzino.

La rotta buy invece è semplice ... prende dallo stock e spedisce al cliente.

Se vuoi caricare in maniera massiva dei prodotti il modo piu' pulito è definirsi degli external_id che fanno riferimento alle rotte che vuoi inserire sul prodotto .... vediam se recupero uno spezzone di codice.


eccolo qui, una tipica struttura da usare da codice python esterno.
           new_product_data = {'sale_ok':True,
                                'purchase_ok': True,
                                'type': 'product',
                                'invoice_policy': 'delivery',
                                'default_code' : 'I'+str(product['itemSKU']),
                                'barcode': barcode,
                                'list_price':round(studio[stud]*3,2),
                                'name':product['title'],
                                'website_published': True if images[0] else False,
                                'standard_price':studio[stud],
                                'website_description':product['itemDescription'],
                                'public_categ_ids' : [[6,False,
                                                       parser.create_or_update_public_category(product['itemformat'],
                                                                                               product['categories'],
                                                                                               settimana)
                                                       ]],
                                #funzione dinamica che torna id delle categoria per far fronte al caso d'uso
                                'categ_id': create_or_update_category(stud),
                                'weight':product['itemweight'],
                                'product_brand_id':parser.create_or_update_brand(product['studio']),
                                #rotte specificate con i loro id effettivi ma sarebbe meglio usare gli external
                                'route_ids':[[6,False,[1,5]]],
                                'image':images[0] if images[0] else False}

Creta questa struttura e la struttura dei fornitori questo codice inserisce tutto:
            try:
                product_template = client.ProductTemplate.create(new_product_data)
                product_supplierinfo_data['product_code'] = product['itemSKU']
                product_supplierinfo_data['price'] = studio[stud]
                product_supplierinfo_data['product_tmpl_id'] = product_template.id
                client.ProductSupplierinfo.create(product_supplierinfo_data)
                if images[1]:
                    client.ProductFeaturePicture.create({'picture':images[1],
                                                         'sequence': 1,
                                                         'template_id':product_template.id
                                                         })
                print 'Creato',new_product_data['default_code']
            except BaseException as be:
                print be
                print 'impossibile importare',new_product_data['default_code']
                print new_product_data

Tieni presente che son degli estratti e che si riferiscono ad un caso d'uso specifico ma se ti interessa il codice completo mandami una mail e ti invio il tutto. Comunque trattari di codice molto specifico per una importazione specifica che puoi usare solo come esempio di base.
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
Tempo creazione pagina: 0.128 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam