Possibilità programmatiche di lavorare con l’estensione

Modificato il Gio, 27 Lug, 2023 alle 11:15 AM

M2E Pro funziona basandosi sulla funzionalità principale di Magento. Il Modulo identifica tutte le modifiche ai prodotti effettuate tramite l'interfaccia di Magento e le sincronizza sui Channels.

È anche possibile aggiornare i Dati dei Prodotti di Magento (quantità, prezzo, stato, ecc.) senza utilizzare la funzionalità principale di Magento. Ma M2E Pro non rileverà le modifiche nel caso in cui siano apportate tramite:

  • iniezioni SQL dirette

  • diversi strumenti di importazione/esportazione/aggiornamento.

Ci sono due metodi programmatici per tenere M2E Pro informato riguardo alle modifiche dei dati dei Prodotti di Magento:

  • Il metodo dell'oggetto (modello) osserva le modifiche apportate a tutti gli Attributi dei Prodotti di Magento e informa M2E Pro a riguardo. 

  • Il metodo strutturale (modello) tiene traccia delle modifiche solo nei più cruciali attributi dei Prodotti di Magento, come il Prezzo, la Quantità e lo Stato. Successivamente, notifica M2E Pro riguardo a queste modifiche.

Per trovare i modelli nel tuo sistema di File di Magento, segui questo percorso:

app/code/Ess/M2ePro/PublicServices

Se aggiorni le informazioni sul Prodotto Magento con l'aiuto dello strumento di importazione Magmi, ti consigliamo di utilizzare un plug-in dedicato M2E Pro. Questo ti consente di riflettere correttamente gli aggiornamenti dei prodotti.

Metodo dell'oggetto

Il metodo dell'oggetto ti consente di tenere traccia delle modifiche in tutti gli attributi utilizzati nelle impostazioni dei Prodotti di Magento. Attiva l'aggiunta automatica/rimozione dei Prodotti da M2E Pro Listings (Auto Aggiungi/Rimuovi regole), così come elenco, Relist, Ferma e tutte le opzioni disponibili di Revise Regole in Politica di Sincronizzazione.

Questo metodo inizia a rilevare le modifiche dal momento in cui registri i Prodotti di Magento (ovvero, li aggiungi per essere osservati).

Codici snippet per la creazione di un modello di oggetto M2E Pro

Il frammento di codice di seguito mostra come creare un modello di oggetto M2E Pro.

// $this->_objectManager istanza di \Magento\Framework\ObjectManagerInterface

$model = $this->_objectManager->create('\Ess\M2ePro\PublicServices\Product\ObjectChange');

// hai un ID prodotto per l'osservazione

$model->observeProduct(561);

// hai '\Magento\Catalog\Model\Product' object for observing

$product = $this->productFactory->create();

$product->load(561);

$model->observeProduct($product);

// apportare modifiche a questi prodotti tramite direct sql

$model->applicazioni();

Come usare il metodo oggetto

Segui questi passi per implementare correttamente un modello di oggetto M2E Pro e far sì che informi l'estensione di tutte le modifiche ai dati dei Prodotti Magento. Prima di iniziare, esamina il frammento di codice qui sopra.

Passo 1. Crea un modello di oggetto M2E Pro. 

Passo 2. Registra i Prodotti Magento di cui desideri osservare le modifiche. Ci sono due modi per farlo - o utilizzare il metodo $model->osservaProdotto e passare ID prodotto attraverso di esso o utilizzare un oggetto della classe '\Magento\Catalog\Model\Product'.

Passo 3. Una volta registrati i Prodotti, puoi manipolare i dati di questi prodotti utilizzando SQL injection o qualsiasi altro mezzo.

Passo 4. Avvia il metodo applyChanges() per tutti i prodotti registrati. Durante l'esecuzione di questo metodo, M2E Pro osserverà automaticamente tutte le modifiche ai prodotti che sono state effettuate al di fuori dei Modelli Core di Magento.

Importante! Non consigliamo di creare un modello di oggetto M2E Pro individuale per ogni prodotto. La pratica migliore in questo caso è registrare tutti i prodotti Magento necessari, apportare le modifiche necessarie e avviare il metodo applyChanges() per tutti questi prodotti alla fine. In questo modo, si farà un'iniezione, invece di numerosi per ogni prodotto individualmente.

Inoltre, il metodo dell'oggetto non è adatto per un grande numero di modifiche ai prodotti (ad esempio, nell'ordine delle decine di migliaia) poiché richiede molte risorse. Questo metodo osserva le modifiche in tutti gli Attributi di Magento e rallenta l'esecuzione del codice. Di conseguenza, gli strumenti di importazione/aggiornamento (se presenti) funzioneranno a velocità ridotte.

Metodo strutturale

Utilizzando il metodo Strutturale, puoi informare M2E Pro sulle modifiche apportate a particolari Attributi dei tuoi Prodotti Magento, come Prezzo, Quantità e Stato.

Questo metodo richiede solo notifiche che confermano le modifiche nei dati specifici dei Prodotti Magento.

Il metodo Strutturale attiva le seguenti azioni automatiche di M2E Pro: 

  • Elenco, Relist, Ferma regole di sincronizzazione

  • Regole Di Revisione Prezzo/Quantità

Il resto delle azioni automatiche non verrà avviato se si utilizza il modello Strutturale.

Codici snippet per la creazione di un modello strutturale M2E Pro

La snippet di codice qui sotto mostra come viene creato un modello strutturale M2E Pro per quanto riguarda i cambiamenti di Prezzo, Quantità e Stato.

// $this->_objectManager istanza di \Magento\Framework\ObjectManagerInterface

$model = $this->_objectManager->create('\Ess\M2ePro\PublicServices\Product\SqlChange');

// informa M2E Pro di qualche modifica del prodotto con ID 17

$model->markProductChanged(17);

// cambia prezzo al prodotto con ID 18 e poi notifica M2E Pro

$model->markPriceWasChanged(18);

// modifica QTY al prodotto con ID 19 e poi notifica M2E Pro

$model->markQtyWasChanged(19);

// modifica lo stato del prodotto con ID 20 e poi notifica M2E Pro

$model->markStatusWasChanged(20);

// make attribute 'custom_attribute_code' value change from 'old' to 'new' in product with ID 21

// in store with ID 1 and then notify M2E Pro

$model->markProductAttributeChanged(21, 'custom_attribute_code', 1, 'old', 'new');

$model->applicaCambiamenti();

Come usare il metodo strutturale

Segui questi passi per implementare correttamente un modello strutturale di M2E Pro e far sì che notifichi l'estensione delle specifiche modifiche ai dati dei Prodotti Magento. Prima di iniziare, esamina il frammento di codice qui sopra.

Passo 1. Crea un modello strutturale di M2E Pro. Puoi scegliere di rilevare le modifiche in uno dei due modi:

  • $model->markPriceWasChanged / $model->markQtyWasChanged / $model->markStatusWasChanged – se è necessario manipolare i dati solo in particolare gli attributi di Magento

  • $model->markProductChanged – se è necessario manipolare i dati in tutti e tre gli Attributi di Magento contemporaneamente

Passo 2. Apporta modifiche agli Attributi dei Prodotti Magento (ad esempio, utilizzando richieste SQL dirette).

Passo 3. Avvia il metodo applyChanges() del modello strutturale per tutti i prodotti. Durante l'esecuzione di questo metodo, M2E Pro osserverà automaticamente tutte le modifiche ai prodotti che sono state apportate al di fuori dei Modelli Core di Magento.

Importante! Non raccomandiamo di creare un modello strutturale di M2E Pro individuale per ogni prodotto. La pratica migliore in questo caso è creare un unico modello per tutti i prodotti Magento necessari, apportare le modifiche necessarie e avviare il metodo applyChanges() per tutti questi prodotti alla fine. In questo modo, effettuerai una sola iniezione, anziché numerose iniezioni per ogni prodotto singolarmente.

Utilizza sempre il modello strutturale per un grande numero di modifiche ai Prodotti Magento. Rispetto al metodo dell'oggetto, quello Strutturale funziona più velocemente e non richiede molte risorse.

Non applicare questo metodo se il tuo sistema sta utilizzando tutte le azioni automatiche di M2E Pro.

Invece di utilizzare metodi programmatici, puoi abilitare l'opzione Traccia le Modifiche Dirette al Database per rilevare le modifiche di Prezzo e Quantità dei Prodotti Magento effettuate senza utilizzare le funzionalità di base di Magento. Clicca qui per conoscere dettagliatamente questa opzione.

Metodo oggetto vs metodo strutturale

Questa comparazione potrebbe aiutarti a capire quale metodo funzionerà meglio in base alle tue esigenze, al numero di Prodotti Magento e al tipo di modifiche che apporti, alle risorse di sistema disponibili, ecc.

Criterio

Metodo dell'oggetto

Metodo strutturale

Criterio

Metodo dell'oggetto

Metodo strutturale

Magento Modifiche ai dati del prodotto disponibili per il tracciamento

Ogni attributo utilizzato nelle impostazioni del prodotto Magento

Solo gli attributi Prezzo, Quantità e Stato in Magento

Adatto per grandi Magento Inventari 

No

Livello di difficoltà

Più facile da implementare

Più complessa, richiede competenze tecniche approfondite

Velocità di funzionamento

Lento

Più veloce

Impatto sulle risorse del sistema

Elevato di risorse

Non crea un carico considerevole sul sistema

Questo articolo ti è stato utile?

Fantastico!

Grazie per il tuo feedback

Siamo spiacenti di non poterti essere di aiuto

Grazie per il tuo feedback

Facci sapere come possiamo migliorare questo articolo!

Seleziona almeno uno dei motivi
La verifica CAPTCHA è richiesta.

Feedback inviato

Apprezziamo il tuo sforzo e cercheremo di correggere l’articolo