Classe mappatura
La classe custom può essere utilizzata quando i normali strumenti di mappatura non sono sufficienti ed è quindi necessario utilizzare una classe service per avere il dato trasformato.
Per creare una classe custom per elaborare il campo da sincronizzare è necessario:
- Estendere la classe astratta
Sintra\SyncBundle\Service\CustomObjectFieldClassProvider\AbstractCustomObjectFieldProvider - Registrarla come servizio
Esempio di classe custom:
<?php
namespace App\Service;
use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag;
use Sintra\SyncBundle\Service\CustomObjectFieldClassProvider\AbstractCustomObjectFieldProvider;
use Pimcore\Model\DataObject\SalesChannel;
#[AutoconfigureTag(self::CUSTOM_OBJECT_FIELD_CLASS_KEY)]
class YourClassProvider extends AbstractCustomObjectFieldProvider
{
public function getPrettyName(): string
{
return "PRODUCT - Custom - Images list separated by comma";
}
public function getCustomObjectFieldResult(AbstractObject $dataObject, SalesChannel $salesChannel, string $language = null): array|string
{
// Do here your logic and return a string or an array
}
}
informazioni
Il metodo getPrettyName() deve ritornare un valore che inizia con {NOME_CLASSE} - per una naming convention
Una volta fatto questo sarà disponibile nella select all'interno del SalesChannelMapping.
