rapidez / amasty-promo-banners
Rapidez Amasty Promo Banners
Installs: 3 755
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 4
Open Issues: 2
Requires
- php: ^8.0
- rapidez/core: ~0.91|^1.0|^2.0|^3.0|^4.0
README
Requirements
You need to have the Amasty Promo Banners module installed and configured within your Magento 2 installation.
Installation
composer require rapidez/amasty-promo-banners
If you haven't published the Rapidez views yet, you can publish them with:
php artisan vendor:publish --provider="Rapidez\Core\RapidezServiceProvider" --tag=views
Usage
Categories
Add @banners('category_page', $category->entity_id)
where you'd like to display your banners, add the specified location to make sure the banner shows up on the location you've specified in magento backend. The possible locations are listed at locations. For categories, you can just pass the category id in the blade directive to make sure it only displays for the selected categories in the Magento backend.
Products
With product rules
If you want the banners to be rendered conditional (based on magento rules), you can pass the product as object to the banners directive:
@banners('prod_page', $product)
.
This will display the banners for all products that passes the conditions.
Without product rules
If you just want to show the banner on some product pages, you can pass the SKU in the banners directive:
@banners('prod_page', $product->sku)
This will only display the banner for the specified SKUs in the Magento backend.
Among category products
Note
To make these work properly you will currently need to modify your listing component and possibly your toolbar accordingly. Make sure to read on.
Just add the view at the bottom of listing/partials/item.blade.php
:
@includeWhen(config('frontend.category'), 'AmastyPromoBanners::promobanners.amongproducts')
Note that, to currently make this work, you will need to modify the hitsPerPage in your listing. If you haven't already, extend the Listing.vue
component with the following:
computed: { hitsPerPage() { return [{ label: '', value: this.$root.getListingSize(12), default: true, }] }, }
You can replace the 12
with how many items you actually want to show per page, and you can add multiple items if you want more options shown in the hits-per-page. If you only want just the one like above, you will also probably want to overwrite the vendor/rapidez/listing/partials/toolbar/pages.blade.php
view to remove the selection box:
<ais-hits-per-page :items="listingSlotProps.hitsPerPage"/>
Views
If you need to change the views you can publish them with:
php artisan vendor:publish --provider="Rapidez\AmastyPromoBanners\AmastyPromoBannersServiceProvider" --tag=views
Locations
These are the locations that are configurable in the magento backend for each banner.
Backend label | code key |
---|---|
Above Cart | above_cart |
Cart Page (Below Total) | checkout_below_total |
Sidebar Additional | sidebar_right |
Sidebar Main | sidebar_left |
Product Page (Top) | prod_page |
Product Page (Bottom) | prod_page_bottom |
Product Page (Below Cart Button) | prod_page_below_cart |
Category Page (Top) | category_page |
Category Page (Bottom) | category_page_bottom |
Category Page (Below Add to Cart Button) | category_page_below_add_to_cart |
Catelog Search (Top) | catalog_search_top |
On Top of Page | top_page |
Home Page under Menu | top_index |
Among Category Products | among_products |
Note
Not all features are implemented yet! For example: cart rules, show on search, etc.