Skip to main content

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

  1. 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.
  2. Place the config.ini file into the facebook_feed_sync config 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=
  1. 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.
  2. Set the marketplace availability for every variation you want to present on facebook.
  3. 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)
    • 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)
  4. 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.
  5. Add the IDs of the properties to the matching configuration entry
  6. Assign the facebook market availability to on of your prices: {plenty-cloud-domain}/plenty/terra/system/item/sales-price and make sure that all variations contain a price. Then add the ID of the price to the configuration field: sales_price_id
  7. Choose one of the three possible item names: name1, name2 or name3 and add the number of the name to the configuration field: item_name_number
  8. Assign the IDs of your color and size attribute to the configuration fields: color_attribute_id and size_attribute_id
  9. Assign the ID of the warehouse used for shipping to the configuration field: main_warehouse
  10. Fill the properties with values and then add the IDs of the properties to the configuration
  11. 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
  12. 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.
  13. Make an initial setup of the sheet with: python3 -m facebook_feed_sync -t all
  14. Check if the google sheet looks good and go on Share at the top right and change access rights to anyone with the link
  15. 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.
  16. 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 option user
    • Add the path to the GnuPG encrypted file to the config under the section [Credentials] as option pw_file

Metadata

Release files for facebook-feed-sync 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for facebook-feed-sync 0.2.1
File Size Uploaded Provenance Actions
facebook_feed_sync-0.2.1.tar.gz 26.0 kB Without provenance Details for facebook_feed_sync-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for facebook-feed-sync 0.2.1
File Interpreter ABI Platform Actions
facebook_feed_sync-0.2.1-py3-none-any.whl Python 3 none any Details for facebook_feed_sync-0.2.1-py3-none-any.whl

Total release size: 53.6 kB

Release files / facebook_feed_sync-0.2.1.tar.gz

Download URL facebook_feed_sync-0.2.1.tar.gz
Size 26.0 kB
Tags Source
SHA-256 checksum
How to use checksums
dae4942a110421c61184636102c2444a9d465ce9047db8a716d3fb59efbbf5a7
BLAKE2b-256 checksum
How to use checksums
c0ed83c8269a8d76c282a40912644d49296b23985c7a74bff405c5b4b24e8086
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.10 CPython/3.7.3 Linux/5.10.0-rc1+

Release files / facebook_feed_sync-0.2.1-py3-none-any.whl

Download URL facebook_feed_sync-0.2.1-py3-none-any.whl
Size 27.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
13d49011552f9b68ecc7980792f543d6413d12f8a410871d3a01217a4c4d70eb
BLAKE2b-256 checksum
How to use checksums
7e144ea11181745b2f345af7499169c738dcdc207b83c926ae43d88fad8e942c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.10 CPython/3.7.3 Linux/5.10.0-rc1+

Security for facebook-feed-sync 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page