How to add a stick to vendor logo
First tried v18.2a
I wanted to indicate the level of trust in a vendor. This allows customers to use vendors that have been reviewed by us and provides the opportunity to charge vendors for certificaiton at a 'trust level'. The solution is a little messy and would be worse with more than a few vendors. There is likely a way to turn this into a add-on but at the moment this code relies on you identifying the file reference for the vendor logo for each vendor you wish to add a 'sticker' for.
If there is an easier way, please share your code :)
Follow this step-by-step guide to add a "Vendor Level" sticker (e.g., "Trusted Vendor") across the top of a vendor's logo.
Step 1: Locate the Relevant Template File
You need to modify the template file responsible for rendering the vendor's logo.
- Navigate to the following directory within your platform's theme folder:
design/themes/YOUR_THEME/templates/addons/YOUR_ADDON/overrides/common/
company_data.tpl
, located at:design/themes/abt__unitheme2/templates/addons/abt__unitheme2_mv/overrides/common/company_data.tpl
Step 2: Modify the HTML Template
Add a new <div>
for the sticker inside the existing logo container:
- Find the part of the code where the vendor logo is displayed:
{if $show_links}{/if} {include file="common/image.tpl" images=$company.logos.theme.image image_width="240" class="ty-company-image"}
{if $show_links}{/if}{include file="common/image.tpl" images=$company.logos.theme.image image_width="240" class="ty-company-image"}Trusted Vendor
Step 3: Add Custom CSS
The next step is to position the sticker over the vendor's logo using CSS. You will need to add this CSS to your theme's styles:
/* Ensure the logo container is positioned relative */ .ty-company-detail__logo { position: relative; display: inline-block; } /* Vendor logo specific IDs */ img#det_img_9, img#det_img_141 { display: block; position: relative; } /* Sticker position and style */ .logo-sticker { position: absolute; top: 10px; right: 10px; background-color: green; color: white; padding: 4px 8px; font-weight: bold; border-radius: 5px; text-align: center; white-space: nowrap; z-index: 1000; display: flex; align-items: center; justify-content: center; } /* Hide sticker if no image exists */ .logo-sticker { display: none; } /* Show sticker when logo is present */ img#det_img_9 ~ .logo-sticker, img#det_img_141 ~ .logo-sticker { display: flex; }
Step 4: Adjust for Specific Vendors (Optional)
If you want the sticker to appear only for certain vendors, you can add conditional logic:
{if $company.company_id == 9}Trusted Vendor{/if}
Step 5: Clear Cache and Test
After making the changes, clear the cache to apply updates:
php admin.php --dispatch=tools.clear_cache
Visit the storefront and check the vendor logos to confirm the "Trusted Vendor" sticker is displayed correctly.
Conclusion
Following these steps, you can add a custom "Vendor Level" sticker across the top of a vendor's logo on both the vendor detail and vendor list pages. The sticker is styled using CSS, and the HTML template is modified to include a wrapper around the vendor's logo, allowing the sticker to be positioned accordingly.