如果您检查 django-oscar 导入器的源代码,编写自定义导入器代码并不太难。我自己做了这个,这里是最重要的步骤:
1/ 获取或创建一个 ProductClass 实例
product_class = ProductClass.objects.get_or_create(name='<some_name>')
2/ 为您的下一个产品创建一个类别字符串。该字符串的格式为“main_category>sub_category>even_deeper_category”。例如:“书籍>小说>惊悚片”
category_string = create_from_breadcrumbs('some>string>here')
3/ 创建你的产品
product = Product.objects.get_or_create(upc=upc)
product.product_class = product_class
product.title = ...
...
product.save()
4/ 更新这个新产品的 ProductCategory(它由一个类别字符串和一个产品组成)
ProductCategory.objects.update_or_create(product=product, category=category_string)
5/ 接下来您需要更新合作伙伴信息(每个产品都需要一个合作伙伴记录,这是存储定价信息的地方)。如果您自己创建产品并且不使用合作伙伴,则只需编一些随机名称。
partner = Partner.objects.get_or_create(name='Partner_Name')
importer = CatalogueImporter(logger=None)
importer._create_stockrecord(
item=product,
partner_name=partner.name,
partner_sku='ProductReferenceFromPartner'>,
price_excl_tax=<SELLING_PRICE>,
num_in_stock=<STOCK_COUNT>,
stats=None
)
你可以在这里查看我的源代码,但其中一些是荷兰语的。如果您有任何问题,您可以随时问我。我还通过自定义 Django 管理命令使用 csv 文件来填充我的数据库。