Social Autopost (dfsocialautopost)
Install and configure automatic posting of your new products to Facebook, Telegram, X, LinkedIn and Pinterest.
Overview
The DataFirefly Social Autopost module (dfsocialautopost) automatically posts your new PrestaShop products to five social networks: Facebook Page, Telegram, X (Twitter), LinkedIn and Pinterest. As soon as a product is created or updated, it is queued and then published by a secure cron, with its image, its price and a message that is customisable per network.
The module is compatible with PrestaShop 8.0 to 9.x, PHP 7.4 to 8.3, multistore, and requires no Composer dependency.
Installation
- Download the
dfsocialautopost.ziparchive from your DataFirefly account. - In the PrestaShop back office, go to Modules > Module Manager, click Upload a module and select the ZIP.
- The module installs, creates its queue table, registers its hooks and generates a unique cron token.
- Click Configure to access the settings.
At install, the module automatically freezes the start date: no existing product is posted. Only products created or updated after install enter the queue.
General configuration
Posting mode
Two modes are available:
- Queue + secure cron (recommended): each product is added to the queue and published in the background by the cron. This is the most reliable mode, which never slows down a product save and handles retries cleanly.
- Immediate (best-effort): posting is attempted directly when the product is saved. Simpler to test, but dependent on network availability at that moment.
The secure cron
The configuration page shows a cron URL protected by a secret token, with a copy button. It has the following form:
https://YOUR-DOMAIN/index.php?fc=module&module=dfsocialautopost&controller=cron&token=YOUR_TOKEN
Add this URL to your hosting’s cron task, for example every 5 to 10 minutes:
*/10 * * * * curl -s "https://YOUR-DOMAIN/index.php?fc=module&module=dfsocialautopost&controller=cron&token=YOUR_TOKEN" >/dev/null 2>&1
The token prevents any unauthorised trigger of the cron. Do not share it publicly. If it leaks, regenerate it from the configuration: the old URL will then stop working.
Anti-backfill guard
The start date frozen at install ensures your already-online catalogue is never mass-posted. You can start distribution with peace of mind: only new products go out.
Filters
You can refine what is posted:
- By category: post only products belonging to certain categories.
- By active status: post only active products.
- By date added: combined with the anti-backfill guard.
Connecting the social networks
Each network is enabled independently and has its own credentials. A Test connection button instantly checks their validity.
Facebook (Page)
- Page ID: the numeric identifier of your Facebook page.
- Page Access Token: a page access token (publishing permissions), obtained via a Meta / Graph API app.
The module posts via the Graph API (/feed endpoint, or /photos when an image is available).
Telegram
- Bot Token: the token provided by @BotFather when creating your bot.
- Chat ID: the identifier of the target channel or group (the bot must be an admin there).
X (Twitter)
- API Key and API Secret (consumer keys).
- Access Token and Access Token Secret.
The module signs its requests with OAuth 1.0a, posts the text via API v2 and uploads the image via the v1.1 media endpoint.
- Access Token: access token with publishing permission.
- Organization URN: the URN of your company page, in the format
urn:li:organization:XXXXXX.
- Access Token: Pinterest API v5 access token.
- Board ID: the identifier of the board to pin products to.
Message templates and variables
For each network, you compose a message template. The following variables are replaced at publishing time:
{name}— product name{price}— price incl. tax{price_tax_excl}— price excl. tax{reference}— reference{description_short}— short description{url}— product page URL{category}— default category{manufacturer}— manufacturer{quantity}— stock quantity{shop_name}— shop name
Adapt the tone to each network: short and direct on X, visual on Pinterest, institutional on LinkedIn. The product cover image is sent automatically when the network allows it.
The queue
The module’s admin menu shows the queue. Each row lists the product, the channel, the status, the number of attempts, the message and the date. The possible statuses are:
- Queued — waiting to be processed by the cron.
- Processing — being published.
- Posted — published successfully; the identifier returned by the network is stored.
- Failed — posting failed after the allowed number of attempts.
Two actions are available: Re-publish a row, and Process the queue manually from the toolbar.
Troubleshooting
- Nothing is posted: check that the cron is actually called (correct URL + token) and that at least one network is enabled with valid credentials.
- A single network fails: use the connection test button for the network concerned; a failure does not prevent the other networks from posting.
- No image: some networks require a publicly accessible image; make sure the product has a cover image.
- Duplicates: the queue deduplicates entries; in immediate mode, avoid combining it with the cron on the same product.