Personalizzare Dati prodotto su Magento 2

Aggiungere attributi prodotto a Clerk.io attraverso l'estensione di Magento.

Inviare attributi semplici tramite Magento 2

Se gli attributi che vuoi inviare sono già disponibili come attributi semplici nel tuo admin di Magento 2, possono essere facilmente aggiunti nel pannello Clerk.

1. Vai su Store -> Product

Qui puoi vedere tutti gli attributi disponibili nel tuo negozio. Trovi i codici degli attributi che vuole inviare a Clerk.io: (Attribute Codes)

2. Assicurati che il tuo attributo sia Visibile e usato in Product Listing. Puoi controllare cliccando sull'attributo e andando su Storefront Properties:

3. Vai a Stores->Configuration->Clerk->Configuration

4. Sotto Synchronization -> Additonal Fields, scrivi i codici degli attributi separati da virgole

5. Fai clic su Save Config nell'angolo destro:

(*se non trovi l'estensione Clerk, assicurati di selezionare il giusto store view, selezionando da "Scope" in alto a Sinistra.)

Screenshot 2021-09-16 at 12.46.04

6. Vai su System -> Cache Management 

7. Libera qui le varie cache:

8. Dopo aver implementato i tuoi attributi, vai su my.clerk.io->Data e clicca su Start New Data Sync in alto a destra.

Inviare attributi custom

Gli attributi custom  possono essere aggiunti attraverso l'estensione in FTP.


Questo file gestisce gli attributi del prodotto:
vendor->clerk->magento2->Model->Adapter->Product.php

Ogni attributo ha il proprio fieldHandler, nella funzione addFieldHandlers() 
Aggiungi qui il tuo attributo, con la seguente sintassi:

$this->addFieldHandler('CLERK_ATTRIBUTE_NAME', function($item) {
   return MAGENTO2_LOGIC;
});

Dove CLERK_ATTRIBUTE_NAME definisce il nome che si vuole che abbia in Clerk.io, e MAGENTO2_LOGIC è il codice per estrarre l'attributo da Magento 2.

Importare Dati di prodotto semplici per Prodotti Configurabili

Il codice che segue può essere utilizzato per recuperare qualsiasi dato che si desidera da prodotti semplici all'interno di un prodotto configurabile, in modo che Clerk.io possa riceverlo come un array di dati.

Questo è particolarmente utile per attributi come SKU, taglie o colori, per renderli ricercabili e filtrabili in Clerk.io.
Come lo script degli attributi personalizzati di cui sopra, i dati dei prodotti configurabili possono essere aggiunti attraverso l'estensione in FTP.

Questo file gestisce gli attributi del prodotto:
vendor->clerk->magento2->Model->Adapter->Product.php

AggiungI il seguente codice al file:

$this->addFieldHandler('CLERK_ATTRIBUTE_NAME', function ($item) {
$simple_products_array = [];
if ($item->getTypeId() === Configurable::TYPE_CODE) {
$simple_products = $item->getTypeInstance()->getUsedProducts($item);
foreach ($simple_products as $product) {
array_push($simple_products_array, $product->getATTRIBUTE_TEXT());
}
}
return array_values(array_unique($simple_products_array));
});

Dove CLERK_ATTRIBUTE_NAME definisce il nome che si vuole che abbia in Clerk.io, e getATTRIBUTE_TEXT è la funzione get con il testo dell'attributo che si sta chiamando, per esempio $product->getSKU().

Infine, includI i tuoi nuovi attributi nell'estensione Clerk.io in Magento 2, sotto Synchronization -> Additional Fields. (Come fatto al punto 4)

Dopo aver implementato i tuoi attributi, vai su my.clerk.io->Data e clicca su Start New Data Sync in alto a destra.