facebook_feed_sync
Update a google sheet with data from the Plentymarkets API for a Facebook catalog feed.
Installation:
Prepare the folder structure and get google sheet API access
- Place the credentials file from : Google Sheet API as 'credentials.json' (example: mv ~/Downloads/credentials.json /home/$USER/.config/gspread/credentials.json) into the config folder for
gspread. - Place the
config.inifile into thefacebook_feed_syncconfig folder- Linux: /home/$USER/.config/facebook_feed_sync/config.ini
- Windows: C:\\$USER\.config\facebook_feed_sync\config.ini
Here is an example for the config file:
[General]
google_sheet_id=
plenty_api_url=
lang=
[Mapping]
facebook_referrer=
image_match_criteria=
item_name_number=
gender_item_property=
age_item_property=
google_product_category_item_property=
material_variation_property=
url_variation_property=
sales_price_id=
color_attribute_id=
size_attribute_id=
main_warehouse=
- Get the ID of the target marketplace or Create a new marketplace availability:
{plenty-cloud-domain}/plenty/terra/system/orders/referrer- activate it and add the ID to the configuration.
- Set the marketplace availability for every variation you want to present on facebook.
- Create new variation or item properties(characteristics) for these fields or link existing properties:
- Item properties (characteristics)
{plenty-cloud-domain}/plenty/terra/system/item/character- gender_item_property [facebook:
gender] (target audience gender: 'Men', 'Women', 'Unisex') - age_item_property [facebook:
age_group] (target audience age group: 'Adult' or 'Child') - google_product_category_item_property [facebook:
google_product_category] (Text value of your google product category, see: list)
- gender_item_property [facebook:
- Variation properties
{plenty-cloud-domain}/plenty/terra/system/settings/properties/configuration/overview- material_variation_property [facebook:
material] (material type of the product e.g. Cotton, Hemp etc.) - url_variation_property [facebook:
link] (Link to your webshop)
- material_variation_property [facebook:
- Item properties (characteristics)
- Choose the criteria by which valid pictures are chosen for each variation, the picture with the lowest position of the images found is used for Facebook.
Example values:image_match_criteria=mandant;12345,image_match_criteria=marketplace;4.01. - Add the IDs of the properties to the matching configuration entry
- Assign the facebook market availability to on of your prices:
{plenty-cloud-domain}/plenty/terra/system/item/sales-priceand make sure that all variations contain a price. Then add the ID of the price to the configuration field:sales_price_id - Choose one of the three possible item names:
name1,name2orname3and add the number of the name to the configuration field:item_name_number - Assign the IDs of your color and size attribute to the configuration fields:
color_attribute_idandsize_attribute_id - Assign the ID of the warehouse used for shipping to the configuration field:
main_warehouse - Fill the properties with values and then add the IDs of the properties to the configuration
- Create a google sheet and add the following header to it:
id,title,description,availability,inventory,condition,price,link,image_link,brand,google_product_category,sale_price,sale_price_effective_date,item_group_id,gender,color,size,age_group,material,pattern,product_type,shipping,shipping_weight- Insert the text then select the field and go to Data->Split text into columns
- Get your Google Sheet ID:
- Example URL:
https://docs.google.com/spreadsheets/d/{SHEET ID}/edit?pli=1#gid=0 - Insert it into the configuration.
- Example URL:
- Make an initial setup of the sheet with:
python3 -m facebook_feed_sync -t all - Check if the google sheet looks good and go on Share at the top right and change access rights to anyone with the link
- Go to your business manager (catalogs) https://business.facebook.com/products/catalogs/, create a new datafeed: Catalog -> data-feeds -> Add products -> Use bulk upload -> Google Spreadsheets -> Next -> Insert the full link -> Choose the upload schedule.
- Setup the cronjob to run the script preferably on a device, which has a constant uptime (I use a raspberry Pi for example), Notice cronjobs don't go well with the Keyring authentication, so please provide the credentials within the configuration like this:
- Write the PlentyMarkets REST-API password into an empty file
- encrypt it
gpg --output test_file.gpg --encrypt --recipient {YOUR_GPG_RECIPIENT} test_file.txt - Add the PlentyMarkets REST-API username to the config under the section
[Credentials]as optionuser - Add the path to the GnuPG encrypted file to the config under the section
[Credentials]as optionpw_file
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
facebook_feed_sync-0.2.1.tar.gz
(26.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file facebook_feed_sync-0.2.1.tar.gz.
File metadata
- Download URL: facebook_feed_sync-0.2.1.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/1.0.10 CPython/3.7.3 Linux/5.10.0-rc1+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dae4942a110421c61184636102c2444a9d465ce9047db8a716d3fb59efbbf5a7
|
|
| MD5 |
b237fb4ab43375567442ea4614b4c54f
|
|
| BLAKE2b-256 |
c0ed83c8269a8d76c282a40912644d49296b23985c7a74bff405c5b4b24e8086
|
File details
Details for the file facebook_feed_sync-0.2.1-py3-none-any.whl.
File metadata
- Download URL: facebook_feed_sync-0.2.1-py3-none-any.whl
- Upload date:
- Size: 27.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/1.0.10 CPython/3.7.3 Linux/5.10.0-rc1+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13d49011552f9b68ecc7980792f543d6413d12f8a410871d3a01217a4c4d70eb
|
|
| MD5 |
9b292166197d40154c9552ab711c2585
|
|
| BLAKE2b-256 |
7e144ea11181745b2f345af7499169c738dcdc207b83c926ae43d88fad8e942c
|