How To Add a Export Script¶
Overview¶
LFS provides a generic export engine for products (see here for more). In this tutorial you will learn how to create your own scripts to format the data like you want to.
Note
If you don’t have a working LFS instance yet, you can just use our demo shop at http://demo.getlfs.com. Please be aware that we reset the database every two hours.
Steps¶
In order to create a new export script you should first create a new Django application (or use an existing one). This is beyond this tutorial. If you do not know how to do this, please refer to the excellent Django tutorial.
Within the __init__.py of your application create a function that will return the products, like so:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # python imports
import csv
# django imports
from django.http import HttpResponse
from django.core.mail import send_mail
# lfs imports
from lfs.export.utils import register
def export(request, export):
"""Export method for acme.com
"""
response = HttpResponse(mimetype="text/csv")
response["Content-Disposition"] = "attachment; filename=acme.txt"
writer = csv.writer(response, delimiter=";", quotechar='"', quoting=csv.QUOTE_ALL)
for product in export.get_products():
writer.writerow(product.id, product.get_name())
return response
register(export, "acme.com")
|
The code explained
- 1-6
- Some simple Python and Django imports. These may vary for your code.
- 9
- Imports the register method to register your script.
- 11
- The function which will contain your code to create the exported data.
- 14/15
- We decided to give a response with a download back. Your code may vary here.
- 16
- We decided to use Python csv modules. You code may vary here.
- 19
- All selected products can be get with the
get_products
method of the passed export object. - 24
- The registration of your function. This line must be called while Django is starting up.
Getting ready¶
Now you can go the management interface, create a new export, select the
products and your newly script and call it via the Export
button.
You might want to create a cron job which calls your script regularly. (See here for more)