Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Organizando o catálogo do seu e-commerce com MongoDB - 7masters-imasters mongodb

Organizando o catálogo do seu e-commerce com MongoDB - 7masters-imasters mongodb

Organizando o catálogo do seu e-commerce com

Apresentação
@guilhermeguitte
Trabalho na Leroy Merlin Brasil.
Co-organizer Meetup de Laravel em SP.
http://www.guitte.org

Alguns números...

6.650 categorias para exposição de clientes.
748 agrupamentos de características.
2.000 características técnicas.
~70.000 produtos ativos.
~20% de renovação de gama de produtos (produtos que não mais mais comercializados).

Catálogo de um e-commerce

Gestão de características de produtos

Na maioria dos bancos relacionais...

Gestão de caractéristicas de produto

Gestão de caractéristicas de produto

Gestão de caractéristicas de produto

Com MongoDB

Utilizamos embbed documents

Products
ProductBanks

Schema do produto

ProductBanks

Características do tipo:
Inteiro.
Float.
Livre
Opções/Multiplas opções.
Formatos com máscara.
Sufixo.
Prefixo.
etc...

ProductBanks

Detém os valores das características preenchidas.

Products

Products

Products
ProductBanks

Products
ProductBanks
Characteristics
Characteristics

Multitree
Exposição para o cliente

Multitree

Products
ProductBanks
Characteristics
Characteristics
Multitree

"Mas você não 'embeda' o 'productBank'?"

Estamos contratando!
e-mail: [email protected]: [Vaga]

Obrigado!

Guilherme Guitte

September 02, 2016
Tweet

More Decks by Guilherme Guitte

Other Decks in Technology

Transcript

  1. • 6.650 categorias para exposição de clientes. • 748 agrupamentos

    de características. • 2.000 características técnicas. • ~70.000 produtos ativos. • ~20% de renovação de gama de produtos (produtos que não mais mais comercializados).
  2. Características do tipo: • Inteiro. • Float. • Livre •

    Opções/Multiplas opções. • Formatos com máscara. • Sufixo. • Prefixo. • etc... ProductBanks
  3. { "_id": "<PRODUCT BANK ID>", "characteristics": [ .. { "type":

    "regex", "regex_expression": "^\\d+(\\.\\d+)?(\\/\\d+)?$", "regex_description": "Formatos aceitos: 1/4;1.1/4 ou 1", "position": 16, "name": "Potência", "values": null, "groupId": "56cb15688bda09bf7a8b4e9f", "groupName": "Potência", "groupCharacteristicId": "56cb15688bda09bf7a8b4ea0", "suffixes": ["W","HP(s)","V","CV","BTU","mW"], "_id": "56fbb80b04f08b5c70303ab2", "layout-pre": "", "interval": "10", "description": "", "layout-pos": "W", } ... } ProductBanks
  4. Products { "_id": 89387235, "productBank": "<PRODUCT BANK ID>", "short_name": "Torneira

    para Banheiro de Mesa Cromada Gap Roca", "name": "Torneira para Banheiro de Mesa Bica Alta Cromada Gap Roca", "characteristics": { "local indicado": "Banheiro", "uso indicado": "Mesa", "altura da bica": [ "Bica Alta" ], "mobilidade da bica": [ "Fixa" ], "altura da torneira": "23.4", "comprimento da bica": "15.4", "acionamento": "1/4 de Volta Ajustável", "pressao de funcionamento minima": "3", "pressao de funcionamento maxima": "40", "bitola em polegadas": "1/2", "material": [ "Metal" ], "tipo de material": [ "Bronze", "Latão" ] }
  5. Multitree { "_id": "<MULTITREE ID>", "name": "torneiras", "productIds": [ "<PRODUCT

    ID>", "<PRODUCT ID>V", "<PRODUCT ID>", "<PRODUCT ID>", "<PRODUCT ID>" ], "parent": "<MULTITREE_ID>", "ancestors": [ {"multitree objects"}, {"multitree objects"}, {"multitree objects"} ] }