Cree una cuadrícula de datos de productos personalizada en Akeneo

Cree una cuadrícula de datos de productos personalizada en Akeneo

Cree una cuadrícula de datos de productos personalizada en Akeneo: defina columnas y configure la fuente de datos. Utilice la interfaz de usuario de Akeneo o el archivo YAML en su paquete personalizado. Integre datagrid en la interfaz de usuario de Akeneo a través de una pestaña o sección personalizada. Uso de cuadrículas de datos personalizadas en Akeneo, combinando los mejores aspectos de UI y configuraciones YAML y PHP. Una cuadrícula de datos en Akeneo es un componente de interfaz de usuario configurable que muestra datos tabulares. Ver cuadrícula de datos de producto personalizada: integre su cuadrícula de datos de producto personalizada en la interfaz de usuario de Akeneo creando una pestaña o sección personalizada dentro de la página de vista del producto y mostrando la cuadrícula allí. Amplíe las vistas existentes de Akeneo o cree una extensión de interfaz de usuario personalizada. Akeneo proporciona una API REST que le permite conectar sistemas externos o datos de productos de aplicaciones personalizadas. Puede utilizar la API para recuperar información del producto de fuentes externas y sincronizarla con Akeneo. DataGrid datagrid: acme_testbundle-product-picker-grid: opciones: entidadSugerencia: producto requireJSModules: – pim/datagrid/column-form-listener columnListener: dataField: identificador columnName: is_checked routerEnabled: false fuente: tipo: acme_testbundle_datasource_product entidad: ‘%pim_catalog. entidad.producto.clase%’ columnas: is_checked: frontend_type: booleano data_name: is_checked editable: true identificador: etiqueta: ID data_name: tipo de identificador: campo imagen: etiqueta: Imagen data_name: imagen frontend_type: producto-y-modelo-imagen etiqueta: etiqueta: Etiqueta nombre_datos: tipo de etiqueta: campo tipo_frontend: etiqueta-producto-y-modelo-producto propiedades: id: ~ id_técnico: ~ tipo_documento: ~ Agregar parámetros Tipo de fuente de datos: acme_testbundle_datagrid.datasource.product.class: Acme\TestBundle\ Datasource\ProductDatasource # Pim\Bundle\DataGridBundle\Datasource\ProductDatasource # servicios: acme_testbundle_datagrid.datasource.product: clase: ‘%acme_testbundle_datagrid.datasource.product.class%’ argumentos: – ‘@pim_catalog.object_manager.product’ – ‘@pim_enrich .query.product_and_product_model_query_builder_from_size_factory’ – ‘@pim_datagrid_serializer’ – ‘@pim_datagrid.event_subscriber.filter_entity_with_values_subscriber’ llamadas: – [ setMassActionRepository, [‘@pim_catalog.repository.product_mass_action’] ]etiqueta: – { nombre: oro_datagrid.datasource, tipo: acme_testbundle_datasource_product } DataSourceAdapterResolver pim_datagrid.datasource.adapter_resolver:
clase: ‘%pim_datagrid.datasource.adapter_resolver.class%’
asignaturas:
– ‘%pim_filter .datasource.orm_adapter.class%’
– ‘%pim_filter.datasource.product_orm_adapter.class%’
quien ama:
– [addProductDatasource, [‘pim_datasource_product’]] – [addProductDatasource, [‘pim_datasource_associated_product’]] – [addProductDatasource, [‘pim_datasource_associated_product_model’]] – [addProductDatasource, [‘pim_datasource_group_product’]] – [addProductDatasource, [‘wk_chatgpt_datasource_product’]] Formato de datos para el espacio de nombres de la cuadrícula de datos Acme\TestBundle\Datasource; utilice Doctrina\Common\Persistence\ObjectManager; utilice Gold\Bundle\DataGridBundle\Datasource\ResultRecord; utilice Symfony\Component\Serializer\Normalizer\NormalizerInterface; utilice Oro\Bundle\PimDataGridBundle\Datasource\ProductDatasource como BaseDataSource; utilice Gold\Bundle\PimDataGridBundle\EventSubscriber\FilterEntityWithValuesSubscriberConfiguration; utilice Akeneo\Pim\Enrichment\Component\Product\Query\ProductQueryBuilderFactoryInterface; utilice Akeneo\Pim\Enrichment\Component\Product\Model\EntityWithValuesInterface; utilice Gold\Bundle\PimDataGridBundle\EventSubscriber\FilterEntityWithValuesSubscriber; /** * Fuente de datos del producto, ejecutar consulta elasticsearch * */ class ProductDatasource extends BaseDataSource { /** @var ProductQueryBuilderInterface */ protected $pqb; /** @var ProductQueryBuilderFactoryInterface */ protected $factory; /** @var NormalizerInterface */ protected $normalizer; /** @var FilterEntityWithValuesSubscriber */ protected $filterEntityWithValuesSubscriber; / ** * @param ObjectManager $ OM * @param ProductQueryBuilderFactoryInterface $ Factory * @param NormalizerInterface $ Serializer * @param FilterEntityWithValuessUssUssubsCraiber $ FilterEntityWithValuSessUssUsSCRiber */ public Function __Construct (ObjectManager $ om, ProductQueryBuilderFactoryInterface $ Factoryerface, Normalizer $ SERTITERYATITY, FIETRATIVE, FILTERYATIT filterEntityWithValuesSubscriber, ) { padre::__construct($om, $factory, $serializer, $filterEntityWithValuesSubscriber); } /** * {@inheritdoc} */ función pública getResultados() { $listadeproductos = []; // establece la lista de productos $productModelList = [] establecer la lista de modelos de productos; $filas = [‘data’ => []]; $entidadesConValores ​​= $listadeproductos->getItems(); $modelEntitiesWithValues ​​​​​​= $productModelList->getItems(); foreach ($entitiesWithValues ​​​​as $entityWithValue) { $normalizedItem = $this->normalizeEntityWithValues($entityWithValue); $filas[‘data’][] = nuevoResultRecord($normalizedItem); } foreach ($modelEntitiesWithValues ​​​​as $modelEntityWithValue) { $normalizedItem = $this->normalizeEntityWithValues($modelEntityWithValue); $filas[‘data’][] = nuevoResultRecord($normalizedItem); } $filas[‘totalRecords’] = $listaProductos->getCount() + $listaModeloProductos->getCount(); devuelve $filas; } /** * Normaliza una entidad valorada con el conjunto completo de campos necesarios para mostrarla. * * @param array $item * * @return array */ función privada normalizeEntityWithValues($item): array { $productId = $this->getProductId($item); $Artículo normalizado = [
«identifier» => $item[‘identifier’] ?? $artículo[‘code’]»familia» => $artículo[‘family’]»grupos» => «», «habilitado» => $elemento[‘enabled’]»valores» => $artículo[‘value’]»creado» => $artículo[‘created’]»actualizado» => $artículo[‘updated’]»etiqueta» => $artículo[‘identifier’] ?? $artículo[‘code’], «imagen» => null, «document_type» => «product», «technical_id» => $productID, «id» => $productId, «search_id» => «product_».$productId, «is_checked» => REAL, ]; devolver $Artículo normalizado; } } Tenga en cuenta que el código proporcionado es un ejemplo simplificado y es posible que deba modificarse y ampliarse según sus requisitos específicos y la estructura de su fuente de datos personalizada. Recuerde cambiar el espacio de nombres y los nombres de las clases en el ejemplo para que se ajusten a la estructura de su proyecto. Vale la pena señalar que Akeneo proporciona un marco flexible y extensible que le permite adaptar y personalizar las fuentes de datos según las necesidades de su negocio. La fuente de datos que seleccione está determinada por sus necesidades de integración específicas, el tipo de datos que desea importar y la frecuencia de las actualizaciones. El mejor ejemplo para crear una cuadrícula de datos de productos personalizada en Akeneo https://webkul.com/blog/akeneo-shareable-product-url-generator-documenation/

About Francisco

Check Also

Desarrollo de aplicaciones de entrega de comestibles: una guía completa

Desarrollo de aplicaciones de entrega de comestibles: una guía completa

IntroducciónLa comodidad es clave para los consumidores en la era pospandemia. Por lo tanto, la …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *