Bazaarvoice by Blue Acorn
This Adobe App Builder extension provides a secure and efficient way for Adobe Commerce merchants to store and consume their Bazaarvoice credentials. All configurations, including sensitive credentials, are managed directly within the Adobe Commerce Admin backend. The App Builder application securely retrieves these settings and makes them available to your storefront via API, enabling the display of user-generated content and integration with Bazaarvoice services.
Table of Contents
- Features
- Requirements
- Installation
- Configuration (Adobe Commerce Backend)
- Environment Variables (App Builder Operational)
- Usage
- Development
- Support
- Contributing
Features
- Secure Credential Storage: Bazaarvoice credentials are stored securely within your Adobe Commerce backend, which the App Builder application can then securely retrieve at runtime.
- Frontend API Access: The App Builder application exposes a secure API endpoint for your frontend to retrieve necessary Bazaarvoice credentials and configuration, enabling direct interaction with Bazaarvoice services.
- Centralized Configuration: All Bazaarvoice-specific settings are managed by the merchant directly within the familiar Adobe Commerce Admin Panel UI.
- Easy Integration: Designed for quick and straightforward deployment as an App Builder application.
- Adobe App Builder Powered: Leveraging the power and scalability of Adobe App Builder for reliable performance and easy deployment.
- Marketplace Ready: Compatible with Adobe Exchange for effortless installation and updates.
Requirements
Before installing this extension, ensure you have the following:
- Adobe Commerce (Cloud, SaaS or On-Premise): Version 2.4.x or higher.
- Adobe Developer App Builder Project: An active App Builder project configured for your Adobe Commerce instance’s organization.
- Bazaarvoice Account: A valid Bazaarvoice account with API access credentials.
- Node.js and npm/yarn: For local development and testing of the App Builder application.
- Adobe I/O CLI: For deploying App Builder actions.
-
Admin SDK Module: The
magento/commerce-backend-sdkmodule must be installed in your Adobe Commercecomposer.json. Add the following line to yourcomposer.jsonunder therequiresection:JSON
"magento/commerce-backend-sdk": "3.0.0 as 2.3.0"After adding, run
composer update. - IMS Authentication: Ensure IMS (Identity Management System) authentication is configured and working on your Adobe Commerce instance, as this is typically used for secure API communication with Adobe services, including App Builder actions.
Installation
You can install this extension either by downloading it directly from the repository or from the Adobe Exchange marketplace.
Downloading the latest release
- Download the Extension: Get the latest release package from the release page.
- Extract the Files: Unzip the downloaded package to your preferred development directory. This directory contains the Adobe App Builder project.
- Configure App Builder Operational Environment Variables: Before deploying, set the necessary environment variables for your App Builder actions as described in the Environment Variables (App Builder Operational) section. These are critical for the App Builder app’s ability to communicate with Adobe Commerce and perform internal encryption. You can do this by creating a
.envfile in the root of the extracted App Builder project. - Deploy App Builder Actions:
- Navigate to the root directory of the extracted App Builder project (where the
app.config.yamlfile is located). - Install npm dependencies using
npm install -
(Optional) Set App Builder Context: To avoid interactive prompts during deployment, you can explicitly set your project and workspace using
aio app use:Bash
aio app use <your-project-id> <your-workspace-name>(Replace
<your-project-id>and<your-workspace-name>with your actual values, which you can find in the Adobe Developer Console.)OR
You can use the following combination to select interactively your destination environment:
aio console org select aio console project select aio console workspace select aio app use --merge -
Deploy the App Builder actions using the Adobe I/O CLI:
Bash
aio app deployIf you didn’t use
aio app use, follow the prompts to select your App Builder project and workspace.
- Navigate to the root directory of the extracted App Builder project (where the
- Configure Bazaarvoice Settings in Adobe Commerce Backend: After deploying the App Builder app, you must configure your Bazaarvoice settings in your Adobe Commerce Admin panel as described in the Configuration (Adobe Commerce Backend) section.
Via Adobe Exchange Marketplace
- Log in to Adobe Commerce Admin: Access your Adobe Commerce admin panel.
- Navigate to System > Web Setup Wizard (or Component Manager in newer versions):
- Find the Extension: Search for “Bazaarvoice App Builder Extension” (or similar) in the Marketplace.
- Install the Extension: Follow the on-screen instructions to install the extension. This process handles the deployment of the Adobe App Builder actions to your connected project. You will be prompted to provide values for the App Builder operational environment variables (e.g.,
ENCRYPTION_KEY,ENCRYPTION_IV) as listed in the Environment Variables (App Builder Operational) section. - Configure Bazaarvoice Settings in Adobe Commerce Backend: After the marketplace installation is complete, proceed to configure all Bazaarvoice-specific settings within your Adobe Commerce Admin panel as detailed in the Configuration (Adobe Commerce Backend) section.
Configuration (Adobe Commerce Backend)
All Bazaarvoice-specific configurations for this extension are managed by the merchant directly within the Adobe Commerce Admin Panel. The deployed Adobe App Builder application will then retrieve these settings at runtime via secure API calls to your Adobe Commerce instance.
- Access Bazaarvoice Configuration in Adobe Commerce:
- Log in to your Adobe Commerce Admin Panel.
- Navigate to Bazaarvoice > General Configuration in the left-hand navigation menu.
- Configure Bazaarvoice Settings: Fill in the following details using information provided by Bazaarvoice:
- Enable Bazaarvoice Extension: (Required) Select
Yesto activate the integration orNoto deactivate it. - Environment: (Required) Choose the Bazaarvoice environment your store connects to (
StagingorProduction). - Client Name: (Required) Enter your unique Bazaarvoice client name.
- Enable BV Product Families: Select
Yesto enable the use of Bazaarvoice Product Families. - Deployment Zone: Specify the Bazaarvoice deployment zone (e.g.,
main_site,mobile_site). - Locale: Enter the default locale for Bazaarvoice content (e.g.,
en_US,fr_CA). - Cloud SEO Key: Provide the Cloud SEO key for your Bazaarvoice integration.
- Enable BV Pixel: Select
Yesto enable the Bazaarvoice Pixel for analytics tracking. - Debug: Select
Yesto enable debug output from the Bazaarvoice integration.
- Enable Bazaarvoice Extension: (Required) Select
- Save Configuration: Click “Save Config” to apply your changes in Adobe Commerce.
- Verify Functionality: After configuration, test your frontend integration to ensure the App Builder app is correctly retrieving and utilizing the Bazaarvoice settings.
Environment Variables (App Builder Operational)
These environment variables are crucial for the operational functioning and security of the Adobe App Builder application itself. They allow the App Builder to connect to your Adobe Commerce instance and perform internal data protection. These are not the Bazaarvoice-specific settings for your store, which are configured in the Adobe Commerce Admin.
For local development, these are typically set in your .env file within your App Builder project. For deployed environments (e.g., via Adobe Exchange Marketplace or CI/CD), these variables are configured directly within the Adobe Developer Console UI for your specific App Builder workspace/action, or provided via marketplace prompts during installation.
ENCRYPTION_KEY- Description: A 32-byte (64-character hexadecimal string) key used by the App Builder application for internal encryption operations, such as protecting sensitive configuration data retrieved from Adobe Commerce before processing or transmitting to the frontend.
-
How to Generate: You can generate a secure key using
openssl:Bash
openssl rand -hex 32 -
Example
.enventry:ENCRYPTION_KEY=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2
ENCRYPTION_IV- Description: A 16-byte (32-character hexadecimal string) Initialization Vector (IV) used in conjunction with the
ENCRYPTION_KEYfor encryption. -
How to Generate: You can generate a secure IV using
openssl:Bash
openssl rand -hex 16 -
Example
.enventry:ENCRYPTION_IV=f1e2d3c4b5a69876543210fedcba9876
- Description: A 16-byte (32-character hexadecimal string) Initialization Vector (IV) used in conjunction with the
Important Notes:
- Security: It’s crucial to generate strong, unique values for
ENCRYPTION_KEY,ENCRYPTION_IV - Don’t Commit
.env: If you’re using a.envfile for local development, DO NOT commit it to your version control system (e.g., Git). Add.envto your.gitignorefile to prevent accidental exposure of sensitive information.
Usage
Once the App Builder application is deployed and its settings are configured in the Adobe Commerce backend, your Adobe Commerce frontend (or any other client-side application) can consume the Bazaarvoice configuration and credentials through the App Builder API endpoint.
Adobe Commerce Storefont and Edge Delivery Services Blocks
Refer to the EDS and Storefront Blocks Setup Instructions to set this up in Adobe Commerce Storefront and Edge Delivery Services:
Example Frontend API Call (Conceptual):
Your frontend application will make an AJAX or Fetch request to the App Builder endpoint exposed by this extension. The specific URL will be available in your Adobe Developer Console for the deployed action.
JavaScript:
// Example: Fetching Bazaarvoice configuration from the App Builder API
const fetchBazaarvoiceConfig = async () => {
try {
// Replace with your actual deployed App Builder action URL
const appBuilderApiUrl =
"https://adobeio-static.net/api/v1/web/your_org_id/your_project_id/your_workspace_id/bazaarvoice-config"; // Adjust endpoint name if needed
const response = await fetch(appBuilderApiUrl);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const config = await response.json();
console.log("Bazaarvoice Configuration:", config);
// Use config.bvApiKey, config.bvSharedSecret, config.bvClientName, etc., as provided by the API
} catch (error) {
console.error("Error fetching Bazaarvoice configuration:", error);
}
};
fetchBazaarvoiceConfig();
Important Security Note:
The App Builder action serves as a secure intermediary. While it retrieves sensitive data like API keys from your Adobe Commerce backend, it’s critical that your frontend consumption strategy does not expose these raw credentials directly on the client-side if they’re intended for server-to-server operations. Instead, the App Builder action should ideally use these credentials internally to make direct server-side API calls to Bazaarvoice, or only pass securely derived, non-sensitive data to the frontend.
Development
For detailed instructions on setting up your development environment, testing, and contributing to this App Builder extension, please refer to our dedicated development guide.
Support
For any issues, questions, or feature requests, please refer to the following:
- Issue Tracker: Github Issues Tracker
- Contact: Blue Acorn Apps Team
Contributing
We welcome contributions! If you’d like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and ensure they adhere to our coding standards.
- Write clear and concise commit messages.
- Submit a pull request.