Spree Commerce é um framework open source para e-commerce desenvolvido em Ruby on Rails. É uma solução flexível e configurável com funções básicas de loja online como produtos, pedidos e pagamentos. Spree possui uma comunidade ativa de desenvolvedores que contribuem para melhorias e extensões da plataforma.
5. Curiosidade: Desde então, teve mais de 430
colaboradores. Em 1 de julho de 2011, Spree
recebeu US $ 1,5 milhões em financiamento de
sementes de AOL e Verdadeiros Ventures . As
empresas que utilizam Spree incluem Chipotle
Mexican Grill( NYSE : CMG), e Second Life.
Spree foi baixado 216.478 vezes em 21 de
setembro de 2013.
6. Tipo de Plataforma
Ruby on Rails:
Muitas vezes
simplesmente Rails, é um open
source framework de aplicações
web que funciona através
da linguagem de programação
Ruby .
7. Licenças BSD
É uma família de licenças de software livre
permissivas, impondo restrições mínimas relativas à
redistribuição de software coberto. Isso está em
contraste com copyleft licenças, que têm
reciprocidade partes-alike exigências.
8. Funções básicas:
Uma aplicação criada sobre o Spree é composta de um core e
uma ou mais extensões.
O core é basicamente uma aplicação Rails sem view. Uma
extensão é basicamente uma aplicação Rails que
complementa o core. Quando baixamos o Spree ele já vem
com diversas extensões, como por exemplo o tema padrão
pelo qual navegamos na loja e o suporte a pagamentos com
cartão via Authorize.net. As extensões estão localizadas na
pasta vendor/ extensions.
9. No Spree existe o conceito de taxon e taxonomia. Um taxon é
uma espécie de tag que pode pertencer a um pai e pode ter
vários filhos. Quando falamos de pais e filhos, estamos
falando de uma hierarquia e uma taxonomia é justamente
isso, uma hierarquia de taxons.
O Spree vem com um tarefa rake chamada db: bootstrap que
popula o banco com dados de demonstração e cria duas
taxonomias. A primeira taxonomia tem com pai o
taxon marca e a segunda tem como pai o taxon categoria.
Desse modo, um produto pode ter o taxon Ferrari e o
taxon Esportivos, podendo pertencer a duas taxonomias ao
mesmo tempo.
10. Uma vez que o usuário
escolheu os produtos que
ele quer comprar, ele deve
escolher a forma de
envio deles. Cada forma de
envio esta mapeada a uma
zona. Uma zona pode ser
composta por uma
combinação de países,
estados e outras zonas.
Caso queiram utilizar
estados brasileiros, podem
utilizar esse seed. Métodos de envio
11. Quando mapeamos uma forma de envio à
uma zona, devemos escolher uma calculadora.
Uma calculadora é uma classe que recebe um
pedido e computa o valor final, após aplicar
impostos e coisas similares.
O core do Spree já vem com distintas
calculadoras, mas elas são somente
ativadas pela extensão calculators, que vem
junto com a aplicação.
12. Mais de 45.000
varejistas de todo o
mundo selecionaram
a plataforma para
alimentar o seu
crescimento.
15. ,
Ruby é uma linguagem de programação
interpretada multiparadigma, de tipagem
dinâmica e forte, com gerenciamento de
memória automático, originalmente
planejada e desenvolvida no Japão em 1995,
por Yukihiro "Matz" Matsumoto, para ser
usada como linguagem de script.
16. Banco de Dados Suportado
A aplicação é extensível, e roda sobre
qualquer banco de dados suportado pelo
Rails (foi testada em MySQL, PostgreSQL e
Sqlite3).
17. Configurações necessárias do servidor
Hardware: Processador dual ou quad core, de 3
Ghz, memória RAM 8 GB, uma boa placa mãe
(Uma configuração para servidor).
Software: Ferramenta para desenvolvimento
com Ruby ou Rails.
18. Possui URLs amigáveis: Sim
Meta tags únicas: Sim
Redirect 301: Não
Integração com Google Analytics: Sim
Integração avançada com programas de links patrocinados
Google AdWords: Não
19. Plataforma é escalável? Sim, através do Spree Extensions.
Gera relatórios gerenciais, tipos de relatórios gerados e grau de
customização? Não.
Possui interface para dispositivos móveis? Sim
Manutenção fácil, difícil, por que? Fácil. Possui comunidade
ativa trabalhando na plataforma.
20. •Parte do trabalho está pronto.
•Comunidade para desenvolvimento.
•Configurável.
21. Curva de aprendizado para
entender o código, poucos testes,
métodos longos, classes com mais
de uma responsabilidade,
complexidade desnecessária em
alguns pontos.