NappLIB
NappLib https://pypi.org/project/napplib/
ToDo
Azure
- Blob Storage
- Listar último arquivo
- Listar todos arquivos
- Listar arquivo espefico
- Upload de arquivo
Napp HUB
- Produtos
- Cadastro de marca
- Cadastro de atributo
- Cadastro de categoria
- Cadastro de inventário em um canal
- Cadastro de inventário
-
Cadastro de produto
- Cadastro de produto filho
- Atualizar inventário
- Atualizar produto
- Vendas
- Cadastro de venda
- Cadastro de nota
- Cadastro de entrega
- Cadastro de cliente
- Cadastro de pagamento
- Atualizar status da venda
VTex
- Produtos
- Cadastro de produto
- Cadastro de SKU
- Cadastro de preco
- Cadastro de inventário
- Atualizar produto
- Atualizar SKU
- Atualizar preco
- Atualizar inventário
- Vendas
- ToDo...
Sobre
Nós criamos essa biblioteca para auxiliar na integração dos nosso serviços e parceiros:
- Serviços Azure
- Napp HUB
- FTP e Base de dados remotas
- Conexoes com Webservices
- Plataformas de Marketplace
Funções
Construir
Abra o arquivo setup.py e altere a versão, após a mudança basta executar o arquivo abaixo:
./build.sh
Instalação
pip install napplib
Azure Storage
from napplib.azure.blob_storage import BlobStorage
Função para retornar os dados do ultimo arquivo blob
BlobStorage.get_latest_blob(
account_name='AZURE_ACCOUNT_NAME',
account_key='AZURE_ACCOUNT_KEY',
path='AZURE_BLOB_ROOT_CONTAINER',
project='PROJECT_NAME',
store_name='STORE_NAME')
Obs: Vocë poderá adicionar o parametro custom_encoding caso seja diferente de utf8
Função para retornar os dados de um arquivo blob específico.
BlobStorage.get_blob(
account_name='AZURE_ACCOUNT_NAME',
account_key='AZURE_ACCOUNT_KEY',
path='AZURE_BLOB_ROOT_CONTAINER',
blob_path='project/store/2020/10/23/sample.csv')
Obs: Vocë poderá adicionar o parametro custom_encoding caso seja diferente de utf8
Função que envia um arquivo local para o azure blob storage utilizando o modelo Napp, Ex: project/store/year/month/day/file
BlobStorage.upload_blob(
account_name='AZURE_ACCOUNT_NAME',
account_key='AZURE_ACCOUNT_KEY',
path='AZURE_BLOB_ROOT_CONTAINER',
project='PROJECT_NAME',
store_name='STORE_NAME',
output_file='./files/sample.csv')
Lista todos arquivos blob de um determinado "projeto/loja"
BlobStorage.list_all_blobs(
account_name='AZURE_ACCOUNT_NAME',
account_key='AZURE_ACCOUNT_KEY',
path='AZURE_BLOB_ROOT_CONTAINER',
project='PROJECT_NAME',
store_name='STORE_NAME')
Para "parsear" os dados, poderá usar o seguinte modelo
delimiter = '|'
lines = content.split('\n')
for line in lines:
rows = line.split(delimiter)
try:
# parse here, rows[0], rows[1] ...
except:
# invlid line (always has one line empty)
pass
Obs: O split devera ocorrer por linha devido ao retorno do arquivo
Napp HUB
Importar todos modelos e controles
from napplib.hub.models.product import Product
from napplib.hub.models.product import StoreProduct
from napplib.hub.controller import HubController
Variáveis necessárias para usar este controle
hub_store_id = 0
hub_username = ''
hub_password = ''
hub_url = ''
Esta função cria todos objetos no Napp HUB responsáveis para integrar um produto. Será necessário criar todos modelos abaixo
- product
- store product
- categories
- brands
- attributes
Essa função possui alguns gatilhos que podem ser utilizados
- update_product: Esse gatilho atualiza o produto (product) quando verdadeiro, quando falso o controle ira somente criar o produto e não atualiza-lo caso exista.
- update_store_product**: Esse gatilho atualiza o estoque da loja (storeProduct) quando verdadeiro, quando falso o controle ira somente criar o inventário e não atualiza-lo caso exista.
Função
HubController.create_products(
server_url=hub_url,
token=hub_token,
store_id=hub_store_id,
products=hub_products,
use_sku=True,
update_product=True,
update_store_product=True)
Modelo StoreProduct
store_product = StoreProduct(
storeId=HUB_STORE_ID,
stockQuantity=0,
salePrice=0,
active=True,
productCode='',
productEan='',
erpCode='',
height=1,
width=1,
length=1,
weight=1,
measurementUnit='')
Modelo Product
hub_product = Product(
name='',
description='',
active=True,
mainImageURL='',
productCode='',
productEan='',
skuErp='',
storeId=HUB_STORE_ID,
attributes=[],
categories=[],
productBrandId=0,
storeProduct=store_product)
Vtex
Importar todos modelos e controles
from napplib.vtex.models.product import VtexProduct
from napplib.vtex.models.product import VtexSku
from napplib.vtex.models.product import VtexPrice
from napplib.vtex.models.product import VtexInventory
from napplib.vtex.models.product import VtexImage
from napplib.vtex.controller import VtexController
Variáveis necessárias para usar este controle
vtex_store = ''
vtex_url = f'https://{vtex_store}.vtexcommercestable.com.br/api'
vtex_price_url = f'https://api.vtex.com/{vtex_store}/pricing'
vtex_app_key = ''
vtex_app_token = ''
Função do controle que cria todos objetos de produto na Vtex, será necessário criar os respectivos modelos
- product
- sku
- price
- inventory
- image
Função
VtexController.create_products(
base_url=vtex_url,
base_url_price=vtex_price_url,
app_key=vtex_app_key,
app_token=vtex_app_token,
products=vtex_product)
Modelo Price
vtex_price = VtexPrice(
listPrice=0,
costPrice=0)
Modelo Inventory
vtex_inventory = VtexInventory(quantity=0)
Modelo Image
vtex_image = VtexImage(
IsMain=True,
Label='',
Name='',
Url='',
Text='')
Modelo SKU
vtex_sku = VtexSku(
IsActive=True,
Name='',
RefId='',
CreationDate='',
MeasurementUnit='',
price=vtex_price,
inventory=vtex_inventory,
images=vtex_image)
Modelo Product
vtex_product = VtexProduct(
Name='',
CategoryId=0,
BrandId=0,
RefId='',
IsVisible=True,
Description='',
DescriptionShort='',
ReleaseDate='',
Title='',
IsActive=True,
skus=vtex_sku)
Desenvolvedor
Napp Brain 🧠
leandro@nappsolutions.com