- Advanced Custom Fields
- Custom Post Types
- Taxonomies
- CPT Widget System
- Front-office integration with Smarty
- Shortcodes
- Is the module compatible with multistore?
- Is data preserved during an update?
- Can I use ACF on multiple entity types at the same time?
- Can I export and import my configurations?
- Is the module compatible with my theme?
- What types of Custom Post Types can I create?
- How do I display my CPTs outside their archive page?
ACF (Advanced Custom Fields) & CPT (Custom Post Types) - PrestaShop Module
Overview
ACF Field Builder is the PrestaShop module that turns your store into a truly flexible CMS. Add custom fields to your products, categories, CMS pages and customer profiles, then create your own content types — all without writing a single line of code.
PrestaShop offers limited fields for your products and categories. To add business-specific information such as technical specifications, FAQs, badges or certifications, you typically need to modify the database and code custom templates. ACF Field Builder eliminates this complexity: create any type of field in a few clicks from the back office, and the data is automatically available in your Smarty templates via a simple and intuitive API.
Key features:
- Over 15 field types available (text, image, video, repeater, relation...)
- Custom Post Types with custom URLs and optimized SEO
- Taxonomies to categorize and filter your content
- Native multilingual support on all fields
- Drag & drop interface to reorder your fields
- Customizable templates via the PrestaShop override system
- Widget system to display your CPTs anywhere on the site
Features
Advanced Custom Fields
The core of the module is a field group system that you freely associate with your PrestaShop entities. Create a group, define its location rules (products, categories, CMS pages, customers or Custom Post Types), then add the fields you need. Each field has validation, presentation and multilingual translation options.
Field types cover all needs: basic fields (text, textarea, WYSIWYG editor, number, email, URL), choice fields (select, checkbox, radio, true/false, star rating), media fields (image, gallery, YouTube/Vimeo video, downloadable file) and advanced fields (repeater for repeatable groups, relation to products or categories, color picker, date and datetime).
Custom Post Types
Create your own content types independent of the PrestaShop catalog. Real estate listings, portfolios, testimonials, guides, events, recipes — the possibilities are endless. Each content type has its own slug, customizable URLs with a prefix, an optional archive page and configurable SEO meta tags with dynamic variables such as {title}, {shop_name} and {type_name}.
Taxonomies
Taxonomies allow you to categorize and filter your custom content. They work like product categories but apply to your Custom Post Types. Create taxonomies (Transaction, Property Type, Budget...) then define the associated terms (Sale, Rental, House, Apartment...). Taxonomies appear in the sidebar when editing a post for quick selection.
CPT Widget System
Display posts from your Custom Post Types (blog, events, portfolio...) outside their archive page, directly on your homepage, footer, or anywhere on your site.
3 integration methods to choose from:
1. Via the back office (PrestaShop hooks)
Open a CPT type in the builder > Step 2 > "Widget" section. Enable the widget, choose the hook (displayHome, displayFooter, etc.), the number of posts and the title. Save: the widget displays automatically on the front office.
2. Via a Smarty tag (page builders, templates)
{acf_widget type="blog" limit="6"}
{acf_widget type="events" limit="3" title="Upcoming events" show_view_all=false}
{acf_widget type="blog" template="module:wepresta_acf/views/templates/front/cpt/widget-blog.tpl"}
Works in all .tpl templates and Smarty blocks of page builders (Creative Elements, etc.).
3. Via a shortcode (CMS content)
[acf_widget type="blog" limit="6"]
[acf_widget type="blog" limit="3" show_title="false"]
Works in CMS pages and descriptions (products, categories).
Available parameters:
| Parameter | Default | Description |
|---|---|---|
type |
required | CPT type slug |
limit |
6 | Number of posts displayed |
show_title |
true | Show the title |
title |
type name | Custom title |
show_view_all |
true | Link to the archive page |
template |
auto | Specific Smarty template (Smarty tag only) |
Overridable templates:
Create a type-specific template in your theme:
themes/{theme}/modules/wepresta_acf/views/templates/front/cpt/widget-blog.tpl
Front-office integration with Smarty
The $acf variable is automatically available in all your Smarty templates. Several methods allow you to display your data: field() for escaped text values, raw() for raw data, render() for formatted HTML rendering of images and videos, label() for translated labels of choice fields, has() to check for the existence of a value, and repeater() to loop over repeatable fields.
To display ACF fields in a product listing, use the batch prefetch available since version 1.2.0:
{assign var='pAcf' value=$acf->forProduct($product.id_product)}
{$pAcf->field('field_slug')}
Shortcodes
Integrate your fields directly into CMS pages or product descriptions via the WYSIWYG editor using shortcodes: [acf field="brand"], [acf_render field="image"], [acf_group id="1"] or [acf_repeater slug="specs"]...[/acf_repeater].
Installation
- Download the module ZIP file from PrestaShop Addons
- In the PrestaShop back office, go to Modules > Module Manager
- Click Upload a module and select the ZIP file
- Once installed, click Configure
The module automatically creates the necessary tables in your database during installation and is immediately functional.
Configuration
Field Groups
Access the interface via Modules > ACF Field Builder, Advanced Custom Fields tab. Click + Add Group to create a new group. Fill in the title, check the automatically generated slug, add an optional description, then define the location rules to associate the group with the desired entities (products, categories, CMS pages, customers or Custom Post Types).
Field Configuration
Each field is configured via three tabs: General Settings (multilingual title, slug, contextual instructions, activation), Validation (required field, min/max values, regular expression) and Presentation (label display on front office, value translation, custom CSS class and HTML ID).
Custom Content Types
From the Custom Post Types tab, create your content types with a multilingual name, a technical slug, a description and a Material Design icon. Then configure the URLs (prefix, archive page) and SEO meta tags with the available dynamic variables.
CPT Widgets
In the builder of each CPT type, the Step 2 tab exposes a Widget section allowing you to configure automatic display via PrestaShop hooks without writing code. See the CPT Widget System section for full details on options.
Requirements
- PrestaShop 8.0+ or 9.x
- PHP 8.1 or higher
- PHP intl extension enabled (for multilingual support)
- Back-office access with administrator rights
FAQ
Is the module compatible with multistore?
Yes, fields can be configured per store or shared between multiple stores in multistore mode.
Is data preserved during an update?
Yes, all data is stored in dedicated tables and is never deleted during module updates.
Can I use ACF on multiple entity types at the same time?
Yes, the same field group can be associated with multiple content types via location rules. For example, a group can apply simultaneously to products and categories.
Can I export and import my configurations?
Yes, the Sync tab allows you to export your field groups as JSON and import them to another store.
Is the module compatible with my theme?
Yes, the module is compatible with Classic, Hummingbird and all themes compliant with PrestaShop standards.
What types of Custom Post Types can I create?
The module is entirely flexible: real estate listings, blog posts, portfolios, customer testimonials, guides, events, recipes, technical data sheets — any type of structured content your business needs.
How do I display my CPTs outside their archive page?
Use the CPT widget system introduced in version 1.3.0. Three methods are available: via the back office (PrestaShop hooks), via a Smarty tag in your templates, or via a shortcode in your CMS pages. See the CPT Widget System section for details.
Support
For any technical questions or assistance requests, contact us via the PrestaShop Addons messaging system or consult the documentation included with the module.
Changelog
Version 1.3.0
CPT Widget System
Major new feature allowing you to display posts from your Custom Post Types (blog, events, portfolio...) outside their archive page — on the homepage, footer, or anywhere on your site — via three integration methods: PrestaShop hook from the back office, Smarty tag in templates, or shortcode in CMS pages. Templates are overridable per type directly from your theme.
Refactored archive templates
Archive templates now use reusable partials (_partials/posts-grid.tpl, _partials/pagination.tpl). No visual change — same rendering as before.
Fix
- Fixed saving of
configandseo_configfields in the CPT type update API
Update
Upload the module files, then click "Upgrade" in the back office (Modules > WePresta ACF). Widget hooks are registered automatically. No database migration required.
Version 1.4.0
New Navigation Structure
- "ACF / CPT" section in the back-office sidebar, replacing the old "WePresta" tab.
- Separate ACF and CPT tabs, each expandable with dynamic sub-tabs.
- Dynamic sub-tabs for each ACF group created (appearing under the ACF tab).
- Dynamic sub-tabs for each CPT type created (appearing under the CPT tab).
- Sub-tabs are automatically created, renamed, and deleted during CRUD operations.
Version 1.2.0
- Batch ACF prefetch for product listings (
actionProductSearchComplete) - Custom fields on product thumbnails
- New Smarty helper for category pages integration
- Improved field rendering performance
To use the Smarty helper on product thumbnails, insert into your template:
{assign var='pAcf' value=$acf->forProduct($product.id_product)}
{$pAcf->field('field_slug')}
Version 1.0.0
- Initial version
- 15+ custom field types
- Custom Post Types with SEO URLs
- Taxonomy system
- Native multilingual support
- Drag & drop interface
- Customizable templates
- Shortcodes for CMS pages
- JSON export/import of configurations
- PrestaShop 8.x and 9.x compatibility