Produit
Un champ de saisie de recherche pour sélectionner un produit à partir du catalogue. Les données peuvent être recherchées par nom de produit ou référence. Utile pour lier des produits associés ou ajouter des références de produits dans des formulaires personnalisés. Ce champ peut être combiné avec un champ de type repeater pour configurer des galeries de produits.
Captures d'écran
Affichage du champ dans le formulaire :
![]()
Affichage du champ dans un groupe de champs :
Configuration
-
Paramètres :
- Nom : L'étiquette du champ.
- Slug : L'identifiant technique unique.
- Autoriser les produits virtuels : Option pour inclure les produits virtuels dans les résultats de recherche.
- Autoriser les packs : Option pour inclure les packs de produits dans les résultats de recherche.
-
Validation :
- Obligatoire : Détermine si le champ doit être rempli.
-
Design :
- Instructions : Texte affiché à côté du champ fournissant des détails sur les données nécessaires.
- Largeur : La largeur du champ dans le formulaire.
- Classes : Classes CSS personnalisées pour le style du champ.
- ID : Attribut ID personnalisé pour le champ.
- Texte avant : Texte supplémentaire affiché avant le champ.
- Texte après : Texte supplémentaire affiché après le champ.
Format de retour
- Type : Objet (RelationFieldValue) ou null
- Méthodes de l'objet :
// Retourne l'objet de l'entité associée
$product = $relationFieldValue->getEntity();
// Retourne les groupes de champs de l'entité associée
$fieldGroups = $relationFieldValue->getFieldGroups();
// Retourne le répéteur de l'entité associée
$productPresenter = $relationFieldValue->getPresenter();
info
La valeur du champ retourne un objet au lieu d'un tableau pour effectuer le chargement différé des sous-valeurs (objet, groupes de champs et répéteur pour certaines entités) et garantir la performance du processus.
Usage
/some-template.tpl
{* Object or Entity and Id *}
{assign var="data" value=$modules.customfieldgroups.data->get($product)}
{assign var="data" value=$modules.customfieldgroups.data->get('product', $product.id)}
{if $data.field_group_slug.field_slug}
<span>{$data.field_group_slug.field_slug->getEntity()->id}</span>
{* Entity related field groups *}
{assign var="entity_field_groups" value=$data.field_group_slug.field_slug->getFieldGroups()}
<span>{entity_field_groups.field_group_slug.field_slug}</span>
{/if}
/SomeClass.php
function someMethod()
{
$dataRetriever = DataRetrieverFacade::getInstance();
$data = $dataRetriever->get($object); // Object
$data = $dataRetriever->get('product', $idProduct); // Entity and id
$productData = $data['field_group_slug']['field_slug'];
$productObject = $productData ? $productData->getEntity() : null;
$productFieldGroups = $productData ? $productData->getFieldGroups() : [];
$productPresenter = $productData ? $productData->getPresenter() : null;
}

