Instagram and Facebook feeds in PrestaShop

Choose, connect and maintain PrestaShop social feeds with correct account requirements, caching, consent and performance checks.

mypresta.rocks · Updated 11/01/2026

Show social content where it helps customers understand your products or business. Choose an integration you can maintain, and measure its effect on the storefront.

What we would do

We would first check whether useful social content is missing from the customer's decision. For occasional posts, start with a curated grid of images you have permission to host. For regular updates, assess an existing cached-feed module before commissioning API work. Use a platform embed when its own interface is needed and its requests can follow your consent controls. If the account is neglected or the page needs better product information, address that first.

The route depends on your existing shop: its feed and consent modules, theme hooks, product and media data, integrations, languages, markets and the team maintaining the account. Check what the installed modules already provide. Rehearse the change on a private staging copy with the same theme and relevant modules, keeping any outbound publishing disabled. Plan the live switch, save the previous settings and agree how to remove the block if it fails.

If you want an existing module configured and the agreed storefront behaviour checked, the PrestaShop Module Installation & Configuration Service covers that setup.

Choose a display feed, product gallery or shop catalogue

A display feed shows recent social posts on your store. A product gallery connects selected images to the products they show. A social shop catalogue sends product data to a platform so people can discover products there. These are separate integrations with different permissions and goals. Displaying posts does not require paid advertising and does not install the Meta Pixel or social login. For channel selection and advertising, use the social marketing guide.

Choose the account where you already publish useful content. Product-in-use photos, customer images shared with permission, restocks and behind-the-scenes posts can add context. Generic filler and stale campaigns can weaken the page.

A feed's effect on orders depends on your audience, content and placement. Do not assume that a visual gallery raises conversion, or that it has no effect. Start with a clear purpose such as product discovery, reassurance or visits to your social profile.

MethodWhat you maintainWhat to checkChoose it when
Official embed or Facebook Page PluginPlatform embed and consent integrationThird-party scripts, layout limits and privacy behaviourYou need the platform interface and can defer its loading appropriately.
Cached API feedAccount permissions, tokens, scheduled refresh and templatesSnapshot age, failures and image requestsPosts change regularly and someone owns connection and refresh failures.
Static curated gridYour selected images and linksContent rights, image size and a review scheduleYou want selected examples and can update them manually.
No feed yetProduct information and the social account itselfMissing specifications, weak photos or unsuitable postsThe gallery would add decoration before solving the customer's actual question.

An individual Instagram post embed is different from a self-updating account grid. There is no need to add an API account feed when a few maintained images and ordinary links meet your goal.

Connect Instagram with the right login method

A supported Instagram account feed requires a Professional account, either Business or Creator.

There are two login routes. Instagram Login supports Professional accounts without requiring a connected Facebook Page. The Facebook Login route requires the Professional Instagram account to be linked to a Page and the appropriate Facebook permissions. Choose the route your integration actually supports. If an old integration still uses the retired Instagram Basic Display API, update or replace it: reconnecting the account will not restore support.

Account media retrieval, hashtag search and customer-photo moderation are different features. Access to your own posts does not grant arbitrary public hashtag retrieval. Check permissions and media rights before planning a customer gallery.

Instagram Feed Integration retrieves connected-account media, caches feed data and supports lazy loading. Its tiles link to the original Instagram post in a new tab. Where your installed release supports product tagging, test product-tag links separately from the tile's destination. Its media comes from API image URLs or video thumbnails; it does not provide an on-site lightbox or a local WebP resizing pipeline. Follow the module setup instructions.

Maintain tokens and scheduled refresh

Record which login route and token type you use. Expiry, revocation and renewal differ. A password change, removed permission or account change can require reauthorisation even if a scheduled task is running.

For Instagram Login, an integration can refresh an eligible long-lived token before expiry. The Facebook Login token path needs its own lifecycle handling. Do not apply Instagram's refresh endpoint indiscriminately to Facebook tokens.

  1. Connect the account and confirm that one media fetch succeeds.
  2. Configure a server cron job or the scheduling module actually installed on your shop.
  3. Run the refresh once through the integration's supported trusted task path.
  4. Check its result, last successful refresh time and snapshot age.
  5. Set an alert or review process for repeated failures and reauthorisation.

ps_emailalerts is an email-alert module, not a general-purpose scheduler. PrestaShop installations do not all have the same cron administration screen. Choose a refresh interval that matches your posting cadence and the provider's limits.

Keep credentials server-side. Use the module's documented authorisation for HTTP tasks, or its supported trusted command-line job. Do not expose tokens in storefront markup or public diagnostics.

Fetch data on a schedule and serve a cached result to visitors. Keep the last valid snapshot when a refresh fails, and decide when old content should be hidden. An expired token can stop new updates without immediately removing the cached gallery. If captions update but images fail, inspect the failed media requests and use the integration's supported refresh process. Cached post data and working image URLs are separate checks.

Show Facebook posts with a complete embed or cache

The Facebook Page Plugin can display Page content through a platform-controlled embed. A cached Graph API feed instead renders post data through your own templates. A static grid gives you direct selection without a live widget.

For an API feed, check Page permissions, the Page access token, the supported Graph API version and any app-review requirements. Maintain the version with Meta's lifecycle rather than copying a historical SDK version into a permanent snippet.

For a deferred embed, render a labelled fallback link first. When the customer chooses to load it, check the current consent state, create valid Page Plugin markup and initialise or parse that markup. Loading an SDK beside an ordinary link does not turn the link into a widget.

If you use viewport loading, check consent again when the observer fires. Handle consent withdrawal by stopping future loading and removing an active embed where appropriate. A one-time check at page load is insufficient for a widget that starts later.

Facebook Posts Integration provides an automatically updated storefront feed and retains the last valid feed if Facebook is unavailable. Follow its connection, cache and trusted refresh instructions. Its separate outbound article-publishing feature requires Blog Revolution; displaying Page posts and sending blog articles to Facebook are different directions of integration.

Choose placement and destination links

Start with the homepage below your main product offer, an About page or a community page. In Design, Positions, inspect the hooks your theme renders and the placements your module supports. Common candidates include displayHome and footer hooks.

Product-specific customer images can fit on a product page when they show the item being considered. A generic brand grid can distract from its images, delivery information and purchase button. Keep unrelated activity away from the cart and checkout.

Do not treat displayCMSDisputeInformation as a general hook for arbitrary CMS-page placement. Use a supported CMS content block or a module placement designed for the page. A module must implement a hook before moving it there will produce usable output. If an enabled feed is missing, check the intended shop context, supported hook, theme output and page restrictions before reconnecting the social account.

Decide where a tile should lead. A product link keeps a discovery path inside the shop. A platform link lets the customer view the original post. Label a separate follow action clearly. Use an on-site gallery only when your implementation actually provides one.

Curate content where your integration supports it. For customer images, get the necessary permission and remove material you can no longer use. Have a fallback for empty results, unavailable images and long periods without new posts.

Work through the customer journey

A workshop showing that it is active

A furniture workshop wants its About page to show the people making its products, but its social timeline also contains expired promotions. Choose workshop and packing photos for a static grid, with permission to use them and a labelled link to the social Page. Give a staff member responsibility for replacing an image when it no longer represents the business. Check the mobile page: the story and contact details should remain easy to find.

A customer photo featuring a cushion

A homewares shop wants a customer photo to help sell the cushion shown in it. Obtain permission, identify the exact product and check its availability and language-specific destination. Test the tile itself: if it opens the original social post, it has not become a product gallery. Use a supported product-linking implementation or a maintained image-and-product link. Keep unrelated posts out of that product page and check what appears when the item is withdrawn.

Control third-party requests and page cost

A server-cached API response avoids a fresh API request for every visitor. It does not automatically make all browser assets local. Remote media URLs can still cause requests to Meta's infrastructure.

Inventory the requests your chosen approach makes. Connect embeds and other non-essential third-party content to the consent controls appropriate to your audience and deployment. A static grid made from your own hosted images and ordinary outbound links avoids loading the platform's embed on page view.

  • Avoid downloading full-resolution originals for small grid tiles: use suitably sized images or the API's thumbnail URLs where available, lazy-load offscreen images and reserve their layout space.
  • Use an appropriately small gallery. Six or nine images can be a starting design choice, not a conversion rule.
  • Avoid synchronous SDK loading in the page head.
  • Use video thumbnails rather than downloading full videos for a grid.
  • If you build a local image pipeline, check media rights, permitted storage and refresh requirements.
  • Test the API failure path so a social outage cannot block the shop.

Measure before and after on the same page and device conditions. The current Core Web Vitals are LCP, INP and CLS. Total Blocking Time is a laboratory diagnostic and an interactivity proxy, rather than a Core Web Vital. Check network requests and main-thread work as well as the overall score.

Keep shared product previews accurate

The product preview shown when someone shares a shop link is separate from an embedded feed. Check og:title, og:description, og:image, og:url and the applicable product metadata in the final product page head.

Use a current public product URL and an image URL that returns the intended image. Keep product price and currency consistent with the displayed offer. Avoid duplicate tags from several theme or module providers. If a friendly-URL or SEO module changes product addresses, compare og:url with the current canonical address in each language. Open the generated og:image URL directly to check that the referenced image size actually exists.

After changing metadata, use Meta's Sharing Debugger to request a fresh scrape and inspect the result. Check that crawlers can reach both the page and the image. A normal product link on Instagram does not behave like a Facebook product preview.

Measure the feed and keep it working

Record feed interactions, outbound clicks and any feed-to-product clicks with your consented analytics. Compare host-page behaviour, orders and performance over a period that contains enough relevant traffic for the decision. A fixed number of days cannot guarantee a useful sample.

Follower growth or a higher order count after launch alone does not confirm that the feed caused it. Campaigns, seasonality and other page changes can affect both. Use a controlled comparison when the traffic allows it.

  1. Check account connection and last successful refresh.
  2. Open several images and verify their destinations.
  3. Test on mobile and with a keyboard. Check link labels, visible focus and useful text alternatives for images; captions must not depend on hover alone.
  4. Test before consent, after consent and after withdrawal. Use a fresh browser session and inspect network requests so an earlier consent choice does not mask premature loading.
  5. Simulate an unavailable API through a controlled staging test and verify the stale-cache or hidden-block policy. The rest of the page must remain usable; do not disrupt the production account to trigger a failure.
  6. Review performance and whether the content still supports the page's purpose.

Rehearse the switch and hand it over

  1. Record the current placement, settings and host-page performance before changing them.
  2. On staging, connect only the intended account, confirm a successful fetch and run the maintenance checks above. Prevent copied credentials or scheduled jobs from publishing to the real social account.
  3. After approval of those results, apply the tested settings in a planned live window. Keep the previous block and configuration available for reversal.
  4. Check the live page and the next scheduled refresh. Give the named maintainer the connection owner, failure-report location, review responsibilities and removal steps.

What to ask your developer or agency

  • Does this installation fetch posts only, or can a job also publish content outwards?
  • Which permissions does it need, who can reconnect the account, and how will staff learn that updates have stopped?
  • Which files and settings changed, and will the placement survive a theme update?
  • Where is the evidence for consent handling, media requests, failure behaviour and the intended tile destination?

Questions owners ask

Should I give the agency my Instagram password?

Use the integration's supported login or delegated access. Keep the business able to revoke access and reconnect after the agency leaves; passwords and tokens do not belong in support tickets.

Should every shop and language show the same feed?

Only if the posts, captions and destinations suit each audience. Ask how the installed integration scopes its settings, then switch shops and languages on staging to check the result before copying a configuration across markets.

Does an old post mean the connection is broken?

Check the newest eligible post on the source account, then compare the last successful fetch and displayed snapshot. This separates an inactive account from a failed task or a display/cache problem.

What should staff do when permission to use a photo is withdrawn?

Remove it from the displayed selection and any stored copies as required, then check the refreshed storefront and caches. Record the request so a later import does not quietly publish it again.

Loading...
Back to top