A estrutura de integração fornece os mecanismos e componentes para:
Isso significa que:
A estrutura de comércio eletrônico pode ser usada com:
A estrutura de integração de eCommerce é um AEM Add-On.
Seu representante de vendas poderá fornecer todos os detalhes, de acordo com o mecanismo apropriado.
A estrutura fornece os requisitos básicos para seu próprio projeto.
É sempre necessário um certo trabalho de desenvolvimento para adaptar a estrutura às suas especificações.
A instalação de AEM padrão inclui a implementação de eCommerce AEM genérico (JCR).
Atualmente, isso se destina a fins de demonstração ou como base básica para uma implementação personalizada de acordo com suas necessidades.
Para otimizar a operação, tanto o AEM quanto o mecanismo de comércio eletrônico se concentram em sua própria área de especialização. A informação é transferida entre os dois em tempo real; por exemplo:
AEM pode:
Solicitação:
Fornecer:
O mecanismo de comércio eletrônico pode:
Fornecer:
Processo:
Os detalhes exatos dependerão do mecanismo de comércio eletrônico e da implementação do projeto.
Vários componentes predefinidos AEM são fornecidos para usar a camada de integração. Atualmente, eles incluem:
Várias opções de pesquisa também estão disponíveis.
A estrutura de integração fornece a API, uma variedade de componentes para ilustrar a funcionalidade e várias extensões para fornecer exemplos de métodos de conexão:
A estrutura oferece acesso a funcionalidades como:
AEM eCommerce é implementado com um mecanismo de eCommerce:
A instalação de AEM padrão inclui a implementação de eCommerce AEM genérico (JCR).
Atualmente, isso se destina a fins de demonstração ou como base básica para uma implementação personalizada de acordo com suas necessidades.
AEM eCommerce implementado em AEM usando desenvolvimento genérico com base no JCR é:
Ao importar dados de um mecanismo de comércio para seu site de comércio eletrônico AEM, um provedor de comércio é usado para fornecer dados aos importadores. Um único provedor de comércio pode suportar vários importadores.
Um provedor de comércio é AEM código personalizado para:
Dois exemplos de provedores de comércio estão disponíveis para AEM:
Embora normalmente um projeto precise desenvolver seu próprio provedor de comércio personalizado e específico para o PIM e o schema de dados do produto.
Os importadores geometrixx utilizam arquivos CSV; há uma descrição do schema aceito (com propriedades personalizadas permitidas) nos comentários acima de sua implementação.
O ProductServicesManager mantém (por meio de OSGi) uma lista de implementações das interfaces ProductImporter e CatalogBlueprintImporter. Eles estão listados no campo suspenso Importador/Provedor de Comércio do assistente do importador (usando a propriedade commerceProvider
como nome).
Quando um importador/provedor de comércio específico estiver disponível na lista suspensa, todos os dados suplementares necessários devem ser definidos (dependendo do tipo de importador) em:
/apps/commerce/gui/content/catalogs/importblueprintswizard/importers
/apps/commerce/gui/content/products/importproductswizard/importers
A pasta na pasta apropriada importers
deve corresponder ao nome do importador; por exemplo:
.../importproductswizard/importers/geometrixx/.content.xml
O formato do arquivo de importação de origem é definido pelo importador. Ou o importador pode estabelecer uma conexão (por exemplo, WebDAV ou http) com o mecanismo de comércio.
O sistema integrado atende às seguintes funções para manter os dados:
Usuário do Gerenciamento de Informações do Produto (PIM) que mantém:
Autor/Gerente de marketing que mantém:
Surfista/Comprador que:
Embora a localização real possa depender da implementação; por exemplo, genérico ou com um mecanismo de comércio eletrônico:
Se as duas categorias a seguir puderem ser diferenciadas, isso permitirá que você defina URLs claros com uma estrutura significativa (árvores de nós cq:Page
) e, portanto, muito próximas à gestão de conteúdo AEM clássica):
*categorias estruturais *
A árvore de categoria que define o que é um produto; por exemplo:
/products/mens/shoes/sneakers
Categorias de marketing
Todas as outras categorias de um produto podem pertencer a; por exemplo:
/special-offers/christmas/shoes
)
Para retratar e gerenciar seu produto, você desejará manter uma variedade de informações sobre ele.
Os dados do produto podem ser:
mantido diretamente em AEM (genérico).
mantido no mecanismo de comércio eletrônico e disponibilizado no AEM.
Dependendo do tipo de dados, ele é sincronizado conforme necessário ou acessado diretamente; por exemplo, dados altamente voláteis e críticos, como preços de produtos, são recuperados do mecanismo de comércio eletrônico em cada solicitação de página para garantir que eles estejam sempre atualizados.
Em ambos os casos, quando os dados do produto foram inseridos/importados para AEM, eles podem ser vistos no console Products. Aqui, as visualizações de cartão e lista de um produto mostram informações como:
Para os produtos adequados, podem também ser mantidas informações sobre as variantes. Por exemplo, para os artigos de vestuário, as diferentes cores disponíveis são mantidas como variantes:
Os atributos individuais mantidos sobre cada produto podem depender do mecanismo de comércio eletrônico que está sendo usado e da implementação AEM. Eles estão disponíveis (conforme apropriado) ao visualizar páginas de produtos e/ou editar informações de produtos e podem incluir:
Imagem
Uma imagem do produto.
Título
O nome do produto.
Descrição
Uma descrição textual do produto.
Tags
Tags usadas para agrupar produtos relacionados.
Categoria do ativo padrão
Uma categoria padrão para ativos.
Dados de ERP
Informações de ERP (Enterprise Resource Planning, planejamento de recursos empresariais).
SKU
Informações sobre a unidade de manutenção de reservas (SKU).
Cor
Tamanho
Preço
O preço unitário do produto.
Resumo
Um resumo dos recursos do produto.
Recursos
Detalhes completos dos recursos do produto.
Uma seleção de ativos pode ser mantida para produtos individuais. Normalmente, isso inclui imagens e vídeos.
Um catálogo agrupa os dados do produto para facilitar o gerenciamento e a representação para o comprador. Muitas vezes um catálogo é estruturado de acordo com atributos como língua, área geográfica, marca, estação, hobby, esporte, entre muitos outros.
AEM suporta conteúdo de produto em vários idiomas. Ao solicitar dados, a estrutura de integração recupera o idioma da árvore atual (por exemplo, en_US
para páginas em /content/geometrixx-outdoors/en_US
).
Para uma loja multilíngue, você pode importar o catálogo para cada árvore de idioma individualmente (ou copiá-lo por meio de MSM).
Assim como com os idiomas, as grandes empresas multinacionais podem precisar atender a várias marcas.
As tags também podem ser usadas para agrupar produtos em um catálogo. Eles podem ser usados para catálogos mais dinâmicos, como ofertas sazonais.
Dependendo da sua implementação, você pode importar os dados do produto necessários para o seu catálogo base para AEM de:
Outras alterações nos dados do produto serão inevitáveis:
Após a importação inicial, as alterações nos dados do produto são inevitáveis.
Ao usar um mecanismo de comércio eletrônico, os dados do produto são mantidos lá e precisam estar disponíveis no AEM. Esses dados do produto precisam ser sincronizados quando as atualizações forem feitas.
Isso pode depender do tipo de dados:
Uma sincronização periódica é usada juntamente com um feed de dados de alterações.
Além disso, você pode selecionar atualizações específicas para uma atualização expressa.
Dados altamente voláteis, como informações sobre preços, são recuperados do mecanismo de comércio para cada solicitação de página, para garantir que estejam sempre atualizados.
Importar um catálogo grande com um grande número de produtos (normalmente mais de 100.000) de um mecanismo de eCommerce (PIM) pode afetar o sistema devido ao grande número de nós. Também pode retardar a instância de criação se os produtos tiverem ativos associados (por exemplo, imagens de produtos). Isso se deve ao fato de que o pós-processamento desses ativos consome muita CPU e memória.
Existem várias estratégias que você pode escolher para resolver esses problemas:
Se um nó JCR tiver muitos nós secundários diretos (por exemplo, 1000 e mais), os buckets (pastas fantasmas) são necessários para garantir que o desempenho não seja afetado. Eles são gerados de acordo com um algoritmo ao importar.
Esses compartimentos assumem a forma de pastas fantasmas que são introduzidas na estrutura do catálogo, mas podem ser configurados para que não fiquem visíveis em URLs públicos.
Esse cenário envolve a configuração de duas instâncias do autor:
instância do autor principal
Importa dados do produto do PIM, no qual o pós-processamento dos caminhos do ativo está desativado.
Instância dedicada do autor DAM
Importa e pós-processa ativos de produtos do PIM, em seguida, os replica de volta para a instância do autor principal para uso.
Nos casos em que os produtos não contêm ativos (imagens) a serem importados, é possível importar os dados do produto sem ser afetado pelo pós-processamento do ativo.
Os testes de desempenho devem ser considerados nas implementações AEM eCommerce:
Ambiente do autor:
A atividade em segundo plano (por exemplo, a importação) pode ocorrer ao mesmo tempo que a atividade normal do usuário (por exemplo, edição de página) e mesmo se o desempenho do front-end for (em geral) dado uma prioridade mais alta, um mau desempenho observado por autores online pode levar a frustração capaz de bloquear uma decisão ao vivo.
Ambiente de publicação:
A replicação é um processo essencial para garantir que o conteúdo seja publicado de forma rápida e confiável. Isso pode ser afetado pela forma como o autor agrupa o conteúdo a ser publicado.
Front-end:
A mistura de invalidações de front-end e cache pode levar a surpresas de desempenho. Testar ajuda a evitar isso.
Observe que este teste de desempenho requer conhecimento e análise do seu público alvo:
Volumes de conteúdo
Atividade do usuário:
Processos em segundo plano
Requisitos de manutenção (backup, otimização do Tar PM, coleta de lixo do armazenamento de dados etc.)
Para todas as implementações, é possível ter em mente os seguintes pontos:
Como produto, as unidades de manutenção de estoque e as categorias podem ser numerosas, tente usar o menor número possível de nós para modelar o conteúdo.
Quanto mais nós você tiver, mais flexível será o seu conteúdo (por exemplo, parsys). No entanto, tudo é uma troca e você precisa de flexibilidade individual (por padrão) ao manipular (por exemplo) produtos 30K?
Evite a duplicação o máximo possível (veja a localização) ou, quando o fizer, pense em quantos nós sua duplicação resultará.
Tente marcar o seu conteúdo o máximo possível para preparar a otimização do query.
Por exemplo:
/content/products/france/fr/shoe/reebok/pump/46 SKU
deve ter uma tag por nível de conteúdo (por exemplo, país, idioma, categoria, marca, produto). Procurando por
/element(*,my:Sku)[@country=’france’ and @language=’fr’
e
@category=’shoe’ and @brand=’reebok’ and @product=’pump’]
será drasticamente mais rápido do que procurar por
/jcr:root/content/france/fr/shoe/reebok/pump/element(*,my:Sku)
Em sua pilha técnica, planeje modelos e serviços de acesso a conteúdo muito fatorizados. Esta é uma prática recomendada geral, mas é ainda mais crucial para ela, pois você pode, em fases de otimização, adicionar caches de aplicativos para dados lidos com muita frequência (e com os quais você não deseja preencher o cache de pacotes).
Por exemplo, o gerenciamento de atributos é, com frequência, um bom candidato para armazenamento em cache, pois se refere a dados atualizados por meio da importação de produtos.
Considere o uso de páginas proxy.
As seções de catálogo fornecem a você, por exemplo:
As páginas de produtos fornecem informações abrangentes sobre produtos individuais. As atualizações dinâmicas de também são refletidas; por exemplo, alterações de preço registradas no mecanismo de comércio eletrônico.
As páginas do produto são páginas AEM que usam o componente Product; por exemplo, no modelo Commerce Product:
O componente Produto fornece:
Essas informações permitem que o comprador selecione o seguinte ao adicionar um item à sua cesta:
São páginas AEM que fornecem principalmente informações estáticas; por exemplo, uma introdução e uma visão geral com links para as páginas de produtos subjacentes.
O componente Product pode ser adicionado a qualquer página com uma página principal que forneça os metadados necessários (ou seja, os caminhos para cartPage
e cartObject
). No local da demonstração, Geometrixx Outdoors, isso é fornecido por UserInfo.jsp
.
O componente Product também pode ser personalizado de acordo com seus requisitos individuais.
As páginas de proxy são usadas para simplificar a estrutura do repositório e otimizar o armazenamento para catálogos grandes.
A criação de um catálogo usará dez nós por produto, pois fornece componentes individuais para cada produto que você pode atualizar e personalizar dentro do AEM. Esse grande número de nós pode se tornar um problema se seu catálogo contiver centenas ou até milhares de produtos. Para evitar qualquer problema, você pode criar seu catálogo usando páginas de proxy.
As páginas de proxy usam uma estrutura de dois nós ( cq:Page
e jcr:content
) que não contém nenhum conteúdo real do produto. O conteúdo é gerado, no momento da solicitação, referenciando os dados do produto e a página do modelo.
No entanto, há uma compensação. Você não poderá personalizar suas informações de produto dentro do AEM, um modelo padrão (definido para seu site) será usado.
Nenhum problema ocorrerá se você importar um catálogo grande sem páginas de proxy.
Você pode converter de uma metodologia para a outra a qualquer momento. Também é possível converter uma subseção do catálogo.
Os vendedores são um método testado e testado de oferecer descontos para atrair os compradores a fazer uma compra e/ou recompensar a fidelidade do cliente.
Fornecimento de cupons:
Motores de comércio externo também podem fornecer comprovantes.
No AEM:
Um comprovante é um componente baseado em página que é criado/editado com o console Sites.
O componente Voucher fornece:
Os vendedores não têm data/hora de entrada e de saída, mas usam as campanhas pai.
AEM usa o termo Voucher, isso é sinônimo do termo Cupom.
As promoções, juntamente com comprovantes, permitem que você realize cenários como:
Geralmente, as promoções não são mantidas pelos gerentes de informações do produto, mas pelos gerentes de marketing:
Uma Promoção é um componente baseado em página que é criado/editado com o console Sites. "
Promoção da oferta:
Você pode conectar promoções a uma campanha para definir a data/hora de ativação/desativação.
Você pode conectar promoções a uma experiência para definir seus segmentos.
As promoções que não estão ligadas a uma experiência não serão acionadas por si mesmas, mas ainda poderão ser acionadas por um Voucher.
O componente de Promoção contém:
AEM as promoções também são integradas à Gestão de campanha a1/>:
Uma promoção pode ser realizada em uma experiência ou diretamente na campanha:
Se uma promoção for mantida em uma experiência, ela poderá ser automaticamente aplicada a um segmento de audiência.
Por exemplo, no site de amostra geometrixx-outdoors, a promoção:
/content/campaigns/geometrixx-outdoors/big-spender/ordervalueover100/free-shipping
está em uma experiência e, portanto, é acionado automaticamente sempre que o segmento ( ordervalueover100
) é resolvido.
Se uma promoção não for exibida em uma experiência (somente na campanha), ela não poderá ser automaticamente aplicada a uma audiência. No entanto, ele ainda pode ser acionado se o comprador inserir um comprovante em seu carrinho e esse comprovante fizer referência à promoção.
Por exemplo, a promoção:
/content/campaigns/geometrixx-outdoors/article/10-bucks-off
está fora de uma experiência e, portanto, nunca é acionado automaticamente (isto é: com base na segmentação). No entanto, ele é referenciado pelos comprovantes que podem ser encontrados em várias experiências dentro da campanha do artigo. A inserção desses códigos de comprovante no carrinho resultará no acionamento da promoção.
Quando um comprador se registra, os detalhes da conta precisam ser sincronizados entre o AEM e o mecanismo de comércio eletrônico. Os dados confidenciais são mantidos independentemente, mas os perfis são compartilhados:
O mecanismo exato pode depender do cenário:
As contas de usuário existem em ambos os sistemas:
A conta de usuário existe somente em AEM:
A conta de usuário existe somente no mecanismo de comércio eletrônico:
Ao usar um mecanismo de comércio eletrônico, AEM somente armazena a ID da conta e a senha (opcionalmente, um grupo de usuários). Todas as outras informações são armazenadas no mecanismo de comércio eletrônico.
Ao usar um mecanismo de comércio eletrônico, é necessário garantir que as contas criadas para usuários que fazem logon em uma instância AEM sejam replicadas (por exemplo, por meio de workflows) para qualquer outra instância AEM que se comunique com esse mecanismo.
Caso contrário, essas outras instâncias AEM também tentarão criar contas para os mesmos usuários no mecanismo. Essas ações falharão com um DuplicateUidException
vindo do mecanismo.
Muitas vezes, a inscrição é necessária para que o comprador tenha acesso ao carrinho de compras. Isso requer o registro (Criar conta) para que uma conta específica do cliente possa ser criada.
Um carrinho de compras anônimo e check-out também são suportados.
Após a inscrição, o comprador pode fazer logon com sua conta para que suas ações possam ser rastreadas e seus pedidos atendidos.
O logon único (SSO) é fornecido, de modo que os autores sejam conhecidos tanto no AEM quanto no sistema de comércio eletrônico sem precisar fazer logon duas vezes.
Os dados de transação do mecanismo de comércio eletrônico são combinados com informações pessoais sobre o comprador. AEM usa alguns desses dados como dados de perfil. A ação de um formulário no AEM grava informações de volta ao mecanismo de comércio eletrônico.
Há uma página que permite gerenciar facilmente as informações de sua conta. Você pode acessá-la clicando em Minha conta na parte superior de uma página geometrixx ou navegando até /content/geometrixx-outdoors/en/user/account.html
.
Seu site precisará armazenar uma seleção de endereços; incluindo endereços de delivery, faturamento e alternativos. Isso pode ser implementado usando formulários com base no formato de endereço padrão ou você pode usar o componente Catálogo de endereços fornecido pela AEM.
Esse componente do Catálogo de endereços permite que você:
Você pode escolher o endereço desejado como padrão.
O componente do catálogo de endereços pode ser acessado na página Minha conta clicando em Catálogo de endereços ou navegando até /content/geometrixx-outdoors/en/user/account/address-book.html
.
Você pode clicar em Adicionar novo endereço… para adicionar um novo endereço no seu catálogo de endereços. Ele abre um formulário que você pode preencher e, em seguida, clicar em Adicionar endereço.
Você pode inserir vários endereços em seu Catálogo de endereços.
O Catálogo de Endereços é usado ao fazer check-out do carrinho:
Os endereços são mantidos abaixo de user_home/profile/addresses
.
Por exemplo, para Alison Parker, estaria em /home/users/geometrixx/aparker@geometrixx.info/perfil/address
Você pode escolher qual endereço deseja como padrão, essas informações são mantidas no perfil do comprador em vez de no endereço. A propriedade do perfil address.default
é definida com o caminho do endereço selecionado para o valor.
O mecanismo de comércio eletrônico usa o contexto (essencialmente as informações do comprador) para determinar o preço que está retendo e, em seguida, fornece as informações corretas ao AEM.
Ao comprar, o comprador irá procurar as páginas de produtos e selecionar itens para colocá-los em seus carrinhos de compras. Quando eles forem fazer check-out, um pedido poderá ser feito.
Um cliente anônimo pode:
Dependendo da configuração de suas informações de endereço da instância, ou do registro do cliente, pode ser necessário antes do check-out.
Um cliente registrado pode:
O carrinho de compras fornece:
uma visão geral dos itens selecionados
links para as páginas de produtos dos itens selecionados
a capacidade de:
O carrinho de compras é salvo de acordo com o mecanismo usado:
Em ambos os casos, os itens permanecem no carrinho (e podem ser restaurados) durante o logon/logout (mas somente no mesmo computador/navegador). Por exemplo:
navegue como anonymous
e adicione produtos ao carrinho
fazer logon como Allison Parker
- o carrinho dela está vazio
adicionar produtos ao carrinho
desconectar - o carrinho mostrará os produtos para anonymous
entrar novamente como Allison Parker
- seus produtos são restaurados
Um carrinho anônimo só pode ser restaurado no mesmo computador/navegador.
Não é recomendável testar a restauração do conteúdo do carrinho com a conta admin
, pois isso pode entrar em conflito com a conta admin
do mecanismo de comércio eletrônico (por exemplo, hybris).
os híbridos podem ser configurados para remover carrinhos pendentes após um período de tempo definido.
Antes do check-out, as alterações de preços são refletidas (em ambos os sistemas) à medida que ocorrem.
Dependendo das informações de implementação sobre um pedido mantidas no mecanismo de comércio eletrônico ou no AEM, essas informações são renderizadas pelo AEM.
São armazenadas várias informações, que podem incluir:
ID do pedido
O número de referência do pedido.
Instalado
A data em que o pedido foi feito.
Status
O estado da encomenda; por exemplo, Entregue.
Moeda
A moeda do pedido.
Itens de conteúdo
Uma lista de itens pedidos.
Subtotal
O custo total dos itens solicitados.
Imposto
A quantia de quaisquer impostos devidos no pedido.
Envio
Custos de envio.
Total
O valor total do pedido; itens encomendados, impostos e compras.
Endereço de cobrança
O endereço para o qual a fatura deve ser enviada.
Token de pagamento
O método de pagamento.
Status do pagamento
O status do pagamento.
Endereço de envio
O endereço para o qual as mercadorias devem ser enviadas.
Método de envio
O método de navegação; por exemplo, terra, mar ou ar.
Número de rastreamento
Qualquer número de rastreamento usado pela empresa de envio.
Link de rastreamento
O link usado para rastrear o pedido durante o envio.
Os campos usados no assistente de criação de pedido dependem de haver um andaime otimizado ao toque definido para o local. No exemplo genérico, isso pode ser encontrado em:
/etc/scaffolding/geometrixx-outdoors/order/jcr:content/cq:dialog
Quando a ordem é mantida dentro AEM console Ordem mostra o seguinte para cada ordem:
Depois de fazer um pedido, os compradores geralmente retornarão para:
Depois de receber o delivery do pedido, os compradores também podem desejar visualização do histórico de pedidos feitos durante um período de tempo.
O atendimento e o rastreamento de pedidos geralmente são gerenciados pelo mecanismo de comércio eletrônico. As informações podem ser exibidas AEM usando o componente Histórico de pedidos, que mostra todos os detalhes relevantes, incluindo os comprovantes e as promoções aplicadas. Por exemplo:
O check-out é implementado com formulários AEM padrão. Isso permite que o gerente de marketing personalize a experiência com conteúdo de marketing.
Em seguida, o eCommerce gerencia o processo de finalização com entrada dos formulários AEM.
Os detalhes do pagamento, incluindo as informações de cartão de crédito, são geralmente gerenciados pelo mecanismo de comércio eletrônico. AEM transmitir essas informações transacionais ao motor (a partir do local em que são transmitidas a um serviço de processamento de pagamentos).
A complicação do setor de cartões de pagamento (PCI) pode ser alcançada.
A ordem é confirmada na tela e pode ser acompanhada com o controle de pedidos.
Como AEM usa páginas padrão para produtos, você pode usar o componente de pesquisa padrão para criar uma página de pesquisa.
Se você precisar de uma implementação mais completa, poderá:
CommerceService
e use o componente de pesquisa eCommerce na sua página de pesquisa.Ao usar um mecanismo de eCommerce, a API de pesquisa de eCommerce pode ser totalmente implementada na solução de mecanismo de eCommerce, para que você possa usar o componente de pesquisa de eCommerce fornecido prontamente. A pesquisa facetada permite pesquisar no JCR e/ou no mecanismo: