Showcase & Tutorial - Drupal Commerce

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Este artigo trata do Drupal Commerce, um novo módulo e-commerce para o Drupal 7, que se encontra em desenvolvimento.

Por enquanto não inclui uma explicação completa do que é o Drupal Commerce, mas podem ler sobre o assunto aqui.
Recomendo que leiam antecipadamente, para não terem surpresas desagradáveis.

No entanto, este artigo já inclui um tutorial, que trata da versão 7.x-1.x-dev (de 08-Out-2010)...

A configuração da loja virtual e a criação de produtos ainda não é muito fácil, por isso vou demonstrar em detalhe, como instalar e configurar o modulo e as dependências, bem como como criar produtos e testar as compras.

Vou ainda explicar como configurar o suporte multi-lingua, suporte para imagens dentro do corpo do texto/body (através do módulo Insert) e ainda o suporte para o Euro.

Requisitos

Configurar os Idiomas

  • liguem os seguintes modulos Core: Content translation, Locale
  • naveguem para Configuration -> Regions and Languages -> Languages e adicionem as linguas que pretendam utilizar, ex, Portuguese, Portugal
  • em Detection and Selection, marquem URL e User (Session pode entrar em conflicto com a cache e alguns modulos, como o Administration Menu, Pathauto e Global Redirect)
  • naveguem para Configuration -> Regions and Languages -> Translate Interface -> Import para poderem importar as traduções dos ficheiros .po (um por lingua)
  • naveguem para Structure -> Block -> List e adicionem o bloco Language switcher (User interface text) a uma das sidebars

Configurar o Commerce

  • liguem os seguintes modulos Core: Field, Field UI, File, Image, Number, Options, Text
  • liguem os seguintes modulos Other: Address Field, Entity CRUD API, Entity Metadata, Insert
  • liguem os seguintes modulos Drupal Commerce: Cart, Checkout, Commerce, Customer, Line Item, Order, Payment, Price, Product, Product Reference
  • liguem os seguintes modulos Drupal Commerce UI: Commerce UI, Customer UI, Line Item UI, Order UI, Payment UI, Product UI
  • liguem os seguintes modulos Drupal Commerce Payment: Null payment
  • liguem os seguintes modulos Rules: Rules, Rules UI
  • liguem os seguintes modulos User Interface: WYSIWYG (opcional)
  • liguem os seguintes modulos Views: Views, Views UI
  • Customer e Customer UI têm bugs que causam avaria no site. evitem-nos
  • naveguem para Store -> Configuration -> Currency Settings, liguem o Euro e escolham o Euro como moeda predefinida
  • naveguem para Store -> Configuration -> Payment Settings e liguem o No Payment

Tipo de Produto

  • naveguem para Store -> Products -> Product Types e criem um tipo de produto, ex, Product
  • em Manage Fields, alterem o widget do Price para Price with currency. se desejarem, adicionem mais campos ao tipo de produto, por exemplo, size, weight, etc. são todos campos CCK.
  • em Manage Display, alterem a disposição dos campos para Default, Node Teaser e Line Item. certifiquem-se que o Price está visivel.

Tipo de Conteudo

  • navegem para Structure -> Content Types e criem um tipo de conteudo, ex, Product (não ha problema por ter o mesmo nome)
  • em Manage Fields, adicionem um campo chamado Product reference. selecionem Autocomplete. na configuração desse field, escolham o tipo de produto criado na config do Commerce, o Product
  • adicionem os também os campos Body (Text) e Image (File->Image) e configurem os parametros para o Insert no campo Image
  • em Manage Display, alterem a disposição do Node em full/default e teaser. será necessário alterar o Product Reference (add to cart) que adicionaram e o Product Price, para torna-los visiveis. adicionem também o Body (summary em teaser, default em default/full) e escondam o Image. Infelizmente ainda não separaram o SKU do Add To Cart.

Adicionar Produtos

  • naveguem para Store -> Products -> Add a Product para adicionar um novo produto
  • escrevam um SKU, Price (escolham moeda) e Status (active)
  • repitam para adicionar mais um ou dois produtos

Adicionar conteudos Produto

  • naveguem para Add new Content -> Product para adicionar um novo produto
  • escrevam um titulo, o SKU do produto criado anteriormente
  • escrevam um corpo de texto (campo Body) e adicionem uma imagem (campo Image)
  • cliquem em Insert, ao pé da imagem que acabaram de adicionar, para a colocar no corpo do texto. caso tenham instalado e configurado o WYSIWYG, é possivel desloca-la e redimensiona-la livremente
  • escolham a língua base, por ex, English
  • repitam para adicionar mais um ou dois produtos

Traduzir conteudos Produto

  • naveguem até ao(s) conteudo(s) produto(s) que criaram anteriormente e cliquem em Translate
  • cliquem add translation para Portuguese, Portugal (ou outra língua)
  • traduzam o que houver a traduzir (titulo/title, corpo/body)

Testar o carrinho de compras

  • adicionem produtos ao carrinho de compras
  • troquem para a lingua Portuguese, Portugal (ou outra língua)
  • adicionem os mesmos produtos (mas traduzidos) ao carrinho de compras
  • vão notar que, ao adicionarem o mesmo produto, mas noutra lingua, vai ser listado como o mesmo produto no carrinho, pois usa a mesma Product Reference.
  • façam o checkout e verifiquem a lista de encomendas em Store -> Orders -> List. novamente vão comprovar o mesmo

como poderam observar, já existe suporte MULTI-LINGUA off-the-box!!!
existem também displays especificos dos campos CCK (Fields/Content), como por ex, para os Nodes, Orders e futuramente Invoices (falado no video)

atirem dúvidas ou melhorem o tutorial como bem entenderem.

EDIT - Alpha2
commerce 7.x-1.0-alpha2
Last updated: October 9, 2010 - 08:16

Alpha 2 represents a ton of work on the systems in general and on the Payment module specifically. Contributed modules may actually begin to integrate payment components into the checkout process, as Commerce PayPal does for PayPal WPS. Transactions can actually be created and associated with orders, and are visible on an order's Payment tab in a View that includes a form for adding new payments. There's still work to be done, but it is now ready for some outside eyes to take a serious look at the way modules will have to integrate with checkout and the payment terminal.

I've recently made an effort to document all the info hooks int he Commerce modules in the Specification handbook on drupalcommerce.org. This work turned up some API inconsistencies that have been addressed. Additional attention still needs to be paid to the Entity and Field implementations to detect similar issues and develop a working specification.

The last couple of days have also seen bug fixes to get Commerce running on Drupal 7.0-beta1. Similar work was done on the Address Field module, so I rolled that into an alpha1 release for some serious testing and bug reporting as well.

Já podem utilizar o Drupal 7-beta1 com o Drupal Commerce 1.x-alpha2 ;)

EDIT - Tradução para entidades no Drupal 7
Estou na dúvida sobre o que isto significa - será que os nós continuam separados e se interligam, ou funciona tudo de maneira diferente, por exemplo, com as traduções transformadas em entidades/campos, ligados aos nós?

De qualquer maneira, este módulo, o Content Translation, que trabalha em conjunto com o modulo i18n, irá desempenhar um papel importante:

Content translation module 2.x for Drupal 7, maintained by the i18n team.

This project does not concern interface text translation, just content translation!

Introduces entity/field translation for the new translatable fields capability in Drupal 7.

This project does not replace the Internationalization project, which focuses on enabling a full multilingual workflow for site admins/builders. Content translation only replaces and enhances the core Content translation module. Some features, e.g. content language negotiation or taxonomy translation, might overlap but most of them are unrelated.

To reach a stable status this project needs help on some issues:

* The Title project aims to provide a field replacing node titles and thus make them translatable.
* The core translation queue has some issues that will need to be ported here, have a look to #778528: Define the language switcher's correct behavior for details.
* We still need to understand if the session language detection method belongs to core or should be provided by this project. See #817114: Remove the session language detection method for details.

Provalmente ainda é prematuro discutir o que vai sair daqui, pois os módulos contrib parece que estão na fase inicial...