added command to laod products from woo.enreda.coop, required extra env variables

This commit is contained in:
Sam
2021-02-22 10:21:13 +00:00
parent d53a6337b5
commit 42d806f557
4 changed files with 56 additions and 2 deletions

View File

@@ -12,12 +12,13 @@ https://docs.djangoproject.com/en/2.2/ref/settings/
import os
import dotenv
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Get variables from .env
import dotenv
dotenv.read_dotenv(
dotenv=os.path.join(BASE_DIR, '../.env'),
override=True

View File

@@ -0,0 +1,45 @@
import logging
import os
from django.conf import settings
from django.core.management.base import BaseCommand
from companies.models import Company
from utils.woocommerce import migrate_shop_products
import dotenv
dotenv.read_dotenv(
dotenv=os.path.join(settings.BASE_DIR, '../.env'),
override=True
)
logging.basicConfig(
filename='logs/addtestdata.log',
filemode='w',
format='%(levelname)s:%(message)s',
level=logging.INFO,
)
class Command(BaseCommand):
url = "https://woo.enreda.coop/"
help = 'Load data from example site https://woo.enreda.coop/ '
def handle(self, *args, **kwargs):
print("Migrate data from Enreda WooCommerce...\n")
# find or create company instance
enreda, created = Company.objects.get_or_create(company_name='enreda', web_link=self.url)
# set credentials
credentials = {
'key': os.getenv('WC_KEY'),
'secret': os.getenv('WC_SECRET')
}
enreda.credentials = credentials
enreda.save()
# migrate shop
print(f"Starting migration...")
products_created = migrate_shop_products(self.url, credentials['key'], credentials['secret'] )
print(f"Products created: {len(products_created)}")

View File

@@ -9,4 +9,7 @@ AWS_ACCESS_KEY_ID_S3 = ''
AWS_SECRET_ACCESS_KEY_S3 = ''
S3_BUCKET=''
AWS_ACCESS_KEY_ID_SES = ''
AWS_SECRET_ACCESS_KEY_SES = ''
AWS_SECRET_ACCESS_KEY_SES = ''
# WooCommerce test credentials
WC_KEY = ''
WC_SECRET = ''

View File

@@ -27,6 +27,11 @@ def get_wcapi_instance(url, key, secret, version="wc/v3"):
def migrate_shop_products(url, key, secret, version="wc/v3"):
"""Tries to connect to WooCommerce site @ url with given credentials
If succesful, returns list of Product instances created
"""
# get wcapi
wcapi = get_wcapi_instance(url, key, secret, version)