Iluria
Ilúria é uma empresa brasileira de e-commerce que fornece uma plataforma bastante interessante para quem está começando uma loja virtual e precisa de algo simples e funcional. O sistema do Ilúria é realmente simples e de fácil uso, por isso continuo recomendando essa plataforma caso a sua necessidade seja básica e seu negócio ainda estiver começando.
Porém quando você começar a ter necessidades mais específicas, personalizações no sistema de sua loja e melhor colocação nas buscas o Ilúria infelizmente deixará de te atender e surgirá a necessidade de migrar para uma plataforma mais completa.
Vantagens do Iluria
- É uma plataforma brasileira!
- E isso ajuda a obter suporte.
- É legal colaborar com o crescimento de empresas nacionais!
- O preço é bom!
- Eles fornecem 15 dias grátis
- Para um catálogo de 50 produtos custa R$ 9,90, 200 produtos R$ 29,90 e o preço vai aumentando de acordo com a quantidade produtos cadastrados.
- É fácil de usar
- A plataforma tem uma admin bastante simples e fácil de usar.
Desvantagens do Iluria
- GOOGLE & SEO
- Apesar de o site dizer que é otimizado para o Google, o Iluria não fornece muitas opções de fácil acesso para otimizar o SEO da loja, não tem area para customizar URLs, descriptions, tags, sitemap etc… e isso seria possível apenas programando o template.
- As configurações padrão de SEO não são suficientes para uma boa colocação no Google.
- Falta de relatórios analíticos
O Iluria não oferece muitos relatórios analíticos e isso torna bastante difícil fazer re-marketing.- Carrinho abandonado
O Iluria não tem controle de carrinho de compras abandonado e isso impossibilita que você lembre seu cliente sobre compras esquecidas, e está é uma das melhoras práticas para recuperar vendas. - Buscas
Outro relatório interessante seria o relatório de buscas, o cliente entra na sua loja e digita na busca “azul” mas não encontra as camisetas azuis que você tem no seu catálogo e então vai para outra loja. O iluria deveria ter um relatório para te informar isso, pois dessa forma você pode melhorar a descrição e tags de seus produtos que da próxima vez a “camiseta azul” seja encontrada!
- Carrinho abandonado
- Não tem API
Essa é gravíssima, injustificável, imperdoável !!!!
Estamos em 2017 e o mundo da web gira em torno de API qualquer possibilidade de estender, criar plugins, melhorar seria através de APIs, eu enviei um e-mail para o Iluria perguntando e disseram que simplesmente não tem nenhum tipo de API e isso é injustificável para uma empresa já estabelecida como a Iluria. Sem API os problemas são:- Não é possível estender as funcionalidades da plataforma.
- Não é possível programar web-hooks para disparar envios de e-mails por exemplo usando IFTTT, Zapier e outras tecnologias de automação.
- Não é possível cadastrar produtos em massa que você já tenha em seu banco de dados ou planilha.
- Não é possível integrar com market places como MercadoLivre e Buscapé.
- Não ajuda nem na hora de migrar para outra plataforma como vocês verão nos códigos a seguir.
- Seus dados não te pertencem
Bom, pelo menos é o que parece, e isso me leva a creditar que a falta de uma API possa fazer parte de alguma estratégia do Iluria para não permitir a saída dos clientes.- Exportar lista de clientes e produtos é limitada. No admin até existem as opções exportar para a lista de produtos e clientes, mas as informações exportadas não são suficientes. (mostrarei em seguida)
Eu ainda continuo recomendando o Ilúria para quem está começando no e-commerce é com certeza a plataforma mais acessível. Mas realmente gostaria que essa empresa abrisse os olhos para a oportunidade que eles tem em mãos e trabalhassem para oferecer mais funcionalidades para os clientes, evitando assim que abandonem a plataforma quando começarem a crescer e eu ficaria mais feliz em estar aqui falando apenas das vantagens de uma plataforma nacional de e-commerce.
Preciso migrar e agora?
Na hora que precisar migrar para outra plataforma você precisa ter certeza de que o seu histórico não será perdido, e no caso do Iluria isso é em difícil pois as opções existentes não fornecem muitos dados.
O que você precisa manter:
- Cadastro de produtos e variantes (contendo imagens)
- Histórico de vendas
- Cadastro de clientes
O primeiro desafio é conseguir esses dados, no caso do projeto em que eu trabalhei na migração decidimos não migrar nem o cadastro de clientes (pois já existia um cadastro em paralelo no MailChimp) e nem o histórico de vendas (pois é possível ter esta informação no gateway de pagamento).
Portanto o que posso mostrar aqui neste post é como migrar a sua lista de produtos cadastrados e para isso utilizei a lista limitada fornecida pelo Iluria como ponto de partida e também um script em Python para pegar os dados dos produtos via crawler.
Para exportar a lista de produtos utilize o menu relatórios -> estoque de produtos conforma a imagem abaixo:
Você irá baixar um arquivo .csv
com o seguinte formato:
Produto;Nome;Varia��o 1;Varia��o 2;Varia��o 3;Estoque;Pre�o;Pre�o de custo;Nome do fornecedor
3F553C;Madeira 147;1,40 x 1,40;;;Sob encomenda;160,00;;
3F553B;Diversos 115;1,40 x 1,40;;;Sob encomenda;160,00;;
3F553B;Diversos 115;1,40 x 2,00;;;Sob encomenda;220,00;;
Você deve estar se perguntando o porquê dos caracteres �
no exemplo acima?
Bom como se já não bastasse tudo o que relacionei acima o Iluria ainda surpreende com mais isso, OS DADOS ESTÃO em codificação
ISO-8859-1
e mais uma vez me perguntei em que ano estamos? porquê não está emUTF-8
??
E as minhas imagens?
Bom, agora que entra a parte divertida, como percebem o arquivo que exportamos acima não traz muita informação sobre o produto, não tem o texto de descrição e também não tem uma referência para a imagem do produto, portanto resolveremos isso com Python!!!
Python FTW
Puxando os dados do Iluria através de crawling
O código dessa parte é bem simples (pode melhorar) mas o que apresento aqui é o que funcionou para mim nesta migração:
primeiro vamos criar um arquivo chamado utils.py
# coding: utf-8
import csv
import shutil
import requests
from bs4 import BeautifulSoup
def get_image_and_description(produto, link):
"""Baixa a imagem do iluria e salva no diretório atual
Pega o texto de descrição do produto e retorna
se não encontrar retorna None.
"""
user_agent = {'User-agent': 'Mozilla/5.0'}
response = requests.get(link, headers = user_agent)
if response.status_code != 200:
return
soup = BeautifulSoup(response.content, "html.parser")
image_element = soup.find("img", {"id": "big-image"})
if image_element:
image_url = "http:{0}".format(image_element['src'])
image_url = image_url.replace("450xN", "850xN")
image_content = requests.get(image_url, stream=True)
if image_content.status_code == 200:
filename = "{0}.jpg".format(produto)
with open(filename, "wb") as image_file:
shutil.copyfileobj(image_content.raw, image_file)
del image_content
description_element = soup.find(
"div", {"class": "product-description"}, text=True)
if description_element:
return description_element[0]
# HACK ALLERT!!
# A função abaixo "imita" uma classe
def IluriaDictReader(data, **kwargs):
"""Lê o csv do Iluria em ISO-8859-1"""
csv_reader = csv.DictReader(data, **kwargs)
for row in csv_reader:
yield {
key: value.decode('iso-8859-1').encode('utf8')
for key, value in row.iteritems()
}
A primeira função acima irá fazer o download da imagem do Iluria e também salvar a descrição do produto já que essas informações não tem no csv
exportado e caso você precise de outras informação basta adicionar mais elementos ao soup.find
e retornar os dados.
Até aqui com as 2 funções acima já é possível imaginar em como fazer uma migração mas agora você tem que decidir para qual plataforma migrar, vamos falar delas!
Para este projeto analisamos algumas alternativas ao Iluria e tentamos dar preferência a alternativas nacionais e vamos falar delas.
-
Box Loja Essa pareceu ser uma opção bem próxima ao Iluria, os preços são bons entre 20 e 50 por mês de acordo com a quantidade de produtos, não cobram taxas por cada venda efetuada e parece ter algumas facilidades para customização. Porém mais uma vez o que tirou essa plataforma da lista de candidatos foi a falta e API, eu vasculhei o site deles, fóruns e Google, vi até em sites de freelancers pessoas procurando quem fizesse isso via algum script robô para migrar dados de Magento para o Box loja pelo fato deles ainda não terem API. E no rodapé do site deles não tem um link bem claro escrito developers ou API, e isso foi motivo suficiente para eliminar apesar de parecer uma boa opção.
-
Loja Integrada (recomendado !!!)
Tá aqui mais uma opção que parece ser fantástica, e como nome sugere eles fornecem uma API!!! e por isso estão de parabéns!!! Esta plataforma é muito bem falada, e realmente parece uma plataforma de e-commerce que está a frente dos concorrentes, eu gostaria muito de ter migrado este projeto para o Loja Integrada, porém aqui pesou a questão comercial, os preços do Loja Integrada ainda não são tão convidativos quanto dos concorrentes acima, e isso parece ser justo pois oferecem mais vantagens, porém neste ponto aqui o Shopify acabou ganhando
Shopify
Shopify é uma empresa Canadense que oferece uma das mais utilizadas plataformas de e-commerce do mundo (supostamente 150 mil lojas) é escrita em Ruby on Rails, mas apesar disso possui uma API bastante completa e muito bem documentada. Além disso o Shopify criou o Liquid uma linguagem de template bastante fácil e inspirada no já conhecido Jinja portante muito confortável para qualquer programador Python interagir.
Vantagens do Shopify
- Confiável
- Uma empresa do porte do Shopify mantém um suporte bastante ativo e o minimo que podemos esperar é uma plataforma estável e confiável.
- Integrada
- A API do Shopify é muito bem escrita e com documentação completa tornando fácil interagir tanto para importar e exportar dados, quanto para criar aplicações que estendam as funcionalidades.
- APPs
- Por conta da API citada acima, o Shopify oferece um market place de APPs é possível encontra ruma variedade de plugins tando gratuitos quanto comerciais para instalar na sua loja e você também pode usar a API para criar seus próprios APPs.
- Temas!!!
- Isso é muito importante e o Shopify parece ter feito da forma certa, pois como já mencionei a linguagem de templates é fácil de usar então isto resulta em muitos templates disponíveis gratuitamente e também empresas como Envato, Themes Monster etc oferecendo várias opções comerciais, e isto também fácil para encontrar desenvolvedores para customizar temas.
- SEO, Google, Buscas
- Essa é uma parte muito interessante, de maneira simples é possível customizar as opções de SEO e os resultados são muito bons, poucas horas depois de migrar já tínhamos resultados diferentes no Google. (analisados através do Google developer tools)
- Relatórios
- O Shopify oferece desde o plano mais básico alguns relatórios essenciais como o controle de carrinhos abandonados, buscas efetuadas, balanço de vendas etc.. E os planos mais superiores ainda oferecem relatórios customizados.
- Smart Collections
- Aqui está outro recurso interessante, para quem tem muitos produtos e não quer ficar organizando manualmente é possível criar regras para que os produtos sejam automaticamente colocados em determinadas categorias/menus usando condições simples como sempre que aparecer ‘camiseta’ no título colocar este produto na categoria ‘roupas’, etc…
- Preço
- O plano básico do Shopify custa 30 dólares (pouco mais de 100,00) e oferece um grande número de funcionalidades e ainda é possível incluir APPs para obter ainda mais recursos.
- Biliotecas
- O próprio Shopify mantém bibliotecas em algumas linguagens como Ruby, Java, C#, Python e PHP para interagir com a API deles 🙂
Desvatagens do Shopify
- Admin em Inglês
- Os temas de front-end podem ser traduzidos para qualquer lingua, mas o admin apenas em inglês e isso dificulta bastante a adoção mesmo para quem fala a lingua inglesa pois alguns termos como “fulfillment” não são de fácil tradução.
- Complexidade do Admin
- Este problema só ocorre na primeira semana de uso, em pouco tempo você já se acostuma com a UI do admin, porém nas primeiras horas navegando você irá soltar muitos “What The Fuck???”
- Compatibilidade com a realidade brasileira
- O Shopify já atende bem tudo o que uma loja brasileira precisa, porém é bem claro que estão preparados para um estilo diferente de comércio, algumas coisas como taxas, estoque etc são feitas de um modo que não é usual no Brasil mas isso acredito que seja mais um problema de adaptação pois talvez nossos comércios que precisem se adaptar a um esquema mais organizado, e isso exige tempo e paciência.
- Meios de pagamento
- É possível configurar Paypal, PagSeguro, Mercadopago, Moip, Bitcoins entre outros. Eles tem o sistema preparado para trabalhar bem com todas essas plataformas, porém você só pode escolher Paypal + 1 para ser ativado em sua loja simultaneamente, ou seja, Paypal + Pagseguro, ou Paypal + Mercado Pago. Não é possível dar opção de seu cliente escolher qual gateway deseja usar.
- Correios só através de app
- Até existe um cálculo de correio integrado, mas é por faixa de CEP e você precisa configurar os preços manualmente, para ter um frete automático você precisa usar um APP adicional, é muito fácil de instalar, basta clicar em um botão! mas você tem que pagar + 5 dólares por mês para usar.
Mesmo com as desvantagens listadas acima o Shopify pareceu uma boa escolha, e a empresa está ativamente respondendo questões de brasileiros no seu fórum indicando que logo irão implementar mais facilidades e resolver essas limitações.
Decidimos migrar para o Shopify!!!
Interagindo com a API do Shopify via Python
Apesar do Shopify manter uma biblioteca Python para interagir com a API deles, eu analisei e achei que a solução mantida por eles não é muito Pythonica então continuei procurando.
Encontrei o projeto Python-Shopify que ainda não estava totalmente funcional e então fiz um fork e comecei a contribuir, arrumei alguns bugs e fiz o release para o PyPI. portanto agora é possível usar com pip install python-shopify
.
Portanto em nosso projeto agora é a hora de criar o código que vai popular os produtos no banco de dados do Shopify usando aqueles dados que extraímos no código que mostrei acima.
Rode pip install python-shopify slugify tqdm
e então no arquivo api.py
import os
from slugify import slugify
from shopify.products import (
ProductsApiWrapper, Product, Image, Variant, Option
)
# FILL THE DATA below with data generated in Shopify-> admin -> apps
api_key = ''
password = ''
store_name = 'sua-loja'
paw = ProductsApiWrapper(api_key, password, store_name)
# Get a list of existing products, limited to 250 :(
existing = [item.title for item in paw.list(limit=250)]
def create_product(items):
"""Items is a list of dictionaries representing each product variant
of the same product with the same ID and other data
keys: ['description', 'price', 'name', 'link', 'size', 'stock']
items = [
# first variant holds full data and is default
{'name': 'Awesome t-shirt',
'code': '123456',
'description': '<html>',
'size': 'P',
'price': '22.5',
'stock': 2},
# Other variants
{'size': 'M',
'price': '25.5',
'stock': 2},
{'size': 'G',
'price': '29.5',
'stock': 0},
]
"""
# The first item should be the complete item holding all the fields
# other items can have only the variants
data = items[0]
# Iluria gives us ISO-8859-1 :(
name = data['name'].decode('utf-8')
if name in existing or paw.list(title=name):
# skip existing
print "Already registered, skipping..."
# or perform an update!!!
return
product = Product(
title=data['name'],
body_html=data['description'],
)
# There should be a 123456.jpg file in the same folder
# alternatively you can use a URL provided in data
image_filename = "{0}.jpg".format(data['code'])
if os.path.exists(image_filename):
image = Image()
image.attach(image_filename)
product.add_image(image)
elif data.get('image_url'):
product.add_image(Image(src=data['image_url']))
# using the first word in title as tag
# Product "T-shirt Blue 09" got tag "t-shirt"
tag = data['name'].split()[0]
tag = u''.join(i for i in tag if not i.isdigit())
product.add_tags(tag.strip().lower())
# You can add only 3 options
# at positions 1, 2 and 3
# you should add options before adding its variants
product.add_option(
Option(
name="Size",
position=1,
)
)
for item in items:
product.add_variant(
Variant(
option1=item['size'],
# option2=data['size'],
# option3=data['size'],
title="Size",
price=item['price'],
# SKU should be different for each variant
sku=data["code"] + slugify(item['size']),
position=1,
inventory_policy="continue",
fulfillment_service="manual",
inventory_management="shopify",
inventory_quantity=int(item['stock']),
taxable=False,
weight=300,
weight_unit="g", # g, kg
requires_shipping=True
)
)
try:
product = paw.create(product)
except Exception as e:
# do a proper logging here please!!!
print e
print product
print items
return product
Eu inclui o exemplo acima no repositório do Python-Shopify
Agora precisamos juntar nossos 2 arquivos utils.py e api.py em um script e ai rodar a migração dos produtos.
import os
from collections import defaultdict
from tqdm import tqdm
from api import create_product
from utils import get_image_and_description, IluriaDictReader
BASE_URL = "http://www.sua_loja_iluria.com.br/pd-"
reader = IluriaDictReader(open('iluria_produtos_estoque.csv'), delimiter=";")
produtos = defaultdict(list)
for item in reader:
size = item['Variaxe7xe3o 1']
produtos[item["Produto"]].append(
{
"link": "{base}{slug}.html".format(
base=BASE_URL, slug=item['Produto']
),
"name": item["Nome"],
"size": size,
"price": item['Prexe7o'].replace(",", "."),
"stock": item['Estoque'],
"code": item['Produto']
}
)
for produto, items in tqdm(produtos.items()):
data = items[0] # cada item é uma lista com variações
# pegamos a descrição e já fazemos o download da imagem
# idealmente teriamos 2 funções, mas estamos só hackeando!!! :)
data['description'] = get_image_and_description(
data['code'], data['link']
)
if not os.path.exists('{0}.jpg'.format(produto)):
# sem imagem sem cadastro!!!
continue
if not data['name']:
# name é obrigatório
continue
# criamos o produto na API do Shopify e success!!!
create_product(items)
Após o término do script você terá seus produtos cadastrados no Shopify e então os próximos passos será escolher e customizar seu tema (ou criar um próprio) e ai configurar sua loja, dominios, frete etc..
Apps recomendados:
- Correios – SEDEX – PAC
- Shipping Tracker
Iluria uma empresa que tem uma boa plataforma mas que está perdendo a oportunidade de se tornar a maior plataforma de e-commerce brasileira por simplesmente não investir em evolução tecnológica de sua plataforma.
Loja Integrada aparentemente a melhor opção para quem quer se manter em uma plataforma brasileira, não tenho mais informações pois não cheguei realmente a utilizar, mas eles poderiam melhorar os preços de entrada, assim iriam atrair as lojas que inevitavelmente irão sair do Iluria
Shopify uma ótima opção, com muita coisa a melhorar para o público brasileiro mas mesmo assim com um pouco de dedicação e leitura das documentações é possível criar uma loja 100% funcional em poucas horas!!!
Para referencia: A loja que migramos no projeto citado é a https://fundosemtecido.com.br/ que comercializa fundos fotográficos para fotógrafos e conseguimos efetuar a migração desde a exportação dos dados, criação de tema personalizado, configurações de admin até colocar no ar em apenas 2 dias.
Links:
Please enable JavaScript to view the comments powered by Disqus.