SW 6.7
- fixed hidden input fields being rendered after
SW 6.7
- new plugin options for promotion task
- added access to promotion and historical order buttons in admin panel
SW 6.7
- keep DB alive during newsletter sync to prevent "MySQL server has gone away" errors
- product catalog sync via the Klaviyo Catalogs API, as an alternative/addition to the existing XML product export
-> new plugin config card "Produktkatalog Sync": enable/disable, sync scope (main products only / main products + variants), automatic sync interval (dropdown, 15 min – daily), option to remove deactivated/deleted products from the Klaviyo catalog
-> new button in the plugin config for an immediate manual sync (global or per selected sales channel)
-> new scheduled task "shopsy.klaviyo_catalog_sync_task" reconciles the catalog automatically in the background at the configured interval
-> local sync-state tracking (per sales channel) avoids unnecessary Klaviyo API calls for unchanged products and reliably detects create/update/delete
SW 6.7
- resolved all Shopware static code analysis findings
- new "Klaviyo List Mapping" admin module (Marketing menu): manually assign newsletter subscribers to specific Klaviyo lists per sales channel and/or language, instead of using the automatically generated "Shopware_Newsletter_" lists
SW 6.7
- the task "shopsy.klaviyo_update_promotions" now streams individual codes from the database in batches (RepositoryIterator) instead of eager-loading all codes at once, keeping memory usage constant regardless of promotion size
SW 6.7
- new config options to enable/disable individual events: "viewed product", "added to cart", "started checkout", "checkout completed", "recently viewed items"
- added "RecentlyViewedItems" profile property (max. 10, FIFO) — synced via session in serverside mode and via localStorage in javascript mode; works for guests and logged-in customers
- API key verification now works per sales channel: tests the key for the currently selected scope (global or sales channel) and falls back to the inherited global key if empty
- API key verification is now read-only (uses Klaviyo "Accounts" endpoint) — no test event or test profile is created in your Klaviyo account anymore
- new "Klaviyo Custom Field Mapping" admin module (Marketing menu): map any Shopware custom field (Customer, Order, Product) to a Klaviyo profile or event property without code
- per mapping: source entity, custom field (dropdown of available fields with manual-entry override), target Klaviyo property, sales-channel scope (global or specific), active flag, position
- customer mappings are merged into the Klaviyo profile properties of every event
- order mappings into the order events ("placed order", "checkout completed", "fulfilled order", "cancelled order", "refunded order", "purchased items", "ordered product");
- product mappings into product events ("viewed product", "ordered product", "placed review")
SW 6.7
- removed files from vendor directory, that are already provided by Shopware
The plugin bundles the Klaviyo SDK, eliminating the need for a manual Composer installation. Consequently, the Shopware notification regarding two autoloaders is expected and has no impact on operations.
SW 6.7
- "birthday" bugfix
SW 6.7
- back-in-stock confirmation link is now valid across devices (token stored in DB instead of session)
- added new table 'shopsy_klaviyo_back_in_stock_token' and scheduled task to clean up expired tokens
SW 6.7
- bugfix: manufacturer "null" error
- NewsletterSyncTask: added fallback to sales channel's name if no translation found
- KlaviyoHistoricalOrdersSyncTaskHandler: fixed bug that the first transaction state was checked only
- KlaviyoEventService: set time of fulfilled order to the time of the first delivery state
SW 6.6
- NewsletterSyncTask: added fallback to sales channel's name if no translation found
- KlaviyoHistoricalOrdersSyncTaskHandler: fixed bug that the first transaction state was checked only
- KlaviyoEventService: set time of fulfilled order to the time of the first delivery state
SW 6.7
- bugfix: ProductURL in several events
SW 6.7
- bugfix: salesChannelBaseUrl
- new property at customer: customerLanguage
SW 6.7
- bugfixes in NewsletterSyncTask
SW 6.6
- bugfixes in NewsletterSyncTask
SW 6.7
- NewsletterSyncTask: pagination and subscription status sync
- hidden input optimization
SW 6.6
- NewsletterSyncTask: pagination and subscription status sync
SW 6.7
- replaced rand() with Uuid::randomHex() for unique_id generation
- added javascript deduplication for "viewed product" and "checkout completed" events
- added configurable timeout settings for Klaviyo API
- optimized newsletter sync by removing unnecessary duplicate check
SW 6.7
- bugfix: persistent cart
- bugfix: wrong language in "placed review" event
- added language property to "fulfilled order", "cancelled order", "refunded order"
SW 6.6
- bugfix: persistent cart
- bugfix: wrong language in "placed review" event
- added language property to "fulfilled order", "cancelled order", "refunded order"
SW 6.7
- bugfix: wrong association for cover media
SW 6.6
- bugfix: wrong association for cover media
SW 6.6
- bugfix: fetch all coupon codes from a coupon from Klaviyo
SW 6.6
- bugfix: fetch all coupon codes from a coupon from Klaviyo
SW 6.7
- added more exclude types to config
- bugfix: trimmed DOM properties
- bugfix: don't load klaviyo.js multiple times
SW 6.6
- added more exclude types to config
- bugfix: trimmed DOM properties
- bugfix: additional check for product in getMedia function
- bugfix: don't load klaviyo.js multiple times
SW 6.7
- bugfix: umlaut in category names
- code improvements and refactoring
- updated Klaviyo PHP wrapper
SW 6.6
- bugfix: umlaut in category names
SW 6.6
- HOTFIX: missed an import
SW 6.7
- added brand to "added to cart" and "placed order" event
- changed "createEvent" to "createEventAsync" for "placed order" and "ordered product"
SW 6.6
- added brand to "added to cart" and "placed order" event
- changed "createEvent" to "createEventAsync" for "placed order" and "ordered product"
SW 6.7
- added additional price selector
- bugfix missing requestStack
- set timeout for reaching Klaviyo API
- removed sleep, using waitTime instead
SW 6.6
- added additional price selector
- bugfix missing requestStack
- set timeout for reaching Klaviyo API
SW 6.7
- updated klaviyo.js url
- changed format of birthdate
- set category to null if not available
- fixed "started checkout" event
- added price gross to "added to cart" event
- fixed missing properties in event "added to cart"
SW 6.6
- updated klaviyo.js url
- changed format of birthdate
- set category to null if not available
- fixed "started checkout" event
- added price gross to "added to cart" event
- fixed missing properties in event "added to cart"
SW 6.7
- changed buttons in orderlisting to dropdown
- fixed cookie check
SW 6.6
- changed buttons in orderlisting to dropdown
- fixed cookie check
- updated to newer Klaviyo API
SW 6.7
- added new plugin option to set prefix for image url
- bugfix "added to cart" javascript
SW 6.6
- added new plugin option to set prefix for image url
- bugfix shopurl
- bugfix "added to cart" javascript
SW 6.7
- added additional check for lineItems
- cookies bugfix
- added property "ProductId" to event "placed order"
SW 6.6
- added additional check for lineItems
- cookies bugfix
- added property "ProductId" to event "placed order"
SW 6.7
- added task for historical data transfer (via order-listing button or via console (recommended)): php console scheduled-task:run-single shopsy.klaviyo.historical_orders_sync)
- added new plugin option to set states when "fulfilled order" and "purchased items" events are sent for historical orders
SW 6.6
- added task for historical data transfer (via order-listing button or via console (recommended)): php console scheduled-task:run-single shopsy.klaviyo.historical_orders_sync)
- added new plugin option to set states when "fulfilled order" and "purchased items" events are sent for historical orders
SW 6.7
- shippingCost bugfix
- added "unique_id" to several events
SW 6.6
- shippingCost bugfix
- added "unique_id" to several events
- added "productId" to "started checkout"
- "back-in-stock" email bugfix
- newsletterlist sync optimized
SW 6.7
- SW 6.7 compatible
- update to latest Klaviyo API
- added productID to "started checkout" event
- fixed back-in-stock email template
SW 6.6
- removed "required" from api key fields
- changed "added to cart" javascript to be able to also have input field for quantity
SW 6.6
- added new event "placed review" when customer submit a product review (compatible with Product Reviews for Guest Customers bei pluszwei)
SW 6.5
- added new event "placed review" when customer submit a product review (compatible with Product Reviews for Guest Customers bei pluszwei)
SW 6.5
- add additional coupons to a coupon that is already existent in Klaviyo
SW 6.5
- add additional coupons to a coupon that is already existent in Klaviyo
SW 6.6
- checkoutUrl now also can handle custom product (Shopware plugin) positions
SW 6.5
- checkoutUrl now also can handle custom product (Shopware plugin) positions
SW 6.6
- fixed property "productUrl" when ServerSide method is used
SW 6.6
- javascript bugfix
--> javascript events were triggered even when ServerSide method is used
SW 6.5
- javascript bugfix
SW 6.5
- added additional button to promotion detail, to be able to only transfer that promotion to Klaviyo
SW 6.5
- added additional button to promotion detail, to be able to only transfer that promotion to Klaviyo
SW 6.6
- Shopware quality guideline changes
- new plugin option to add CAPTCHA to back-in-stock form
- double opt-in option for back-in-stock form
- added some third-party consent-manager (MndCookie, EightworksCookieConsentPlus6, ComanConsentManager, AcrisCookieConsentCS, wnmgmTrustedShop) to handle Klaviyo consent
SW 6.5
- Shopware quality guideline changes
- new plugin option to add CAPTCHA to back-in-stock form
- double opt-in option for back-in-stock form
- added some third-party consent-manager (MndCookie, EightworksCookieConsentPlus6, ComanConsentManager, AcrisCookieConsentCS, wnmgmTrustedShop) to handle Klaviyo consent
SW 6.5
- more than 1000 coupon-codes are supported
- newsletter bugfixes
SW 6.5
- more than 1000 coupon-codes are supported
- newsletter bugfixes
SW 6.6
- coupons bugfix
- added button to plugin config to open manual in new browser tab
SW 6.5
- coupons bugfix
- added button to plugin config to open manual in new browser tab
SW 6.6
- set checkoutUrl without extra plugin
-> additionally added console command to clean up old persistent carts: shopsy-klaviyo-persistent-cart:cleanup -help
- added scheduled task to update coupons state in Klaviyo:
shopsy.klaviyo_update_promotions
- new plugin setting to choose if order number or product ID should be used to match products in the Klaviyo catalog for "back in stock"
SW 6.5
- set checkoutUrl without extra plugin
-> additionally added console command to clean up old persistent carts: shopsy-klaviyo-persistent-cart:cleanup -help
- added scheduled task to update coupons state in Klaviyo:
shopsy.klaviyo_update_promotions
- new plugin setting to choose if order number or product ID should be used to match products in the Klaviyo catalog for "back in stock"
SW 6.6
- added property "salutation" to "placed order" event
- fixed wrong position of value property in "fulfilled order" event
SW 6.5
- added property "salutation" to "placed order" event
SW 6.6
- status of promotions can be updated through administration in promotions listing
SW 6.5
- status of promotions can be updated through administration in promotions listing
SW 6.6
- new property "customerNumber" in customer profile
- bugfixes
SW 6.5
- new property "customerNumber" in customer profile
- bugfixes
SW 6.6
bugfix: subscribeBackInStock route
SW 6.5
bugfix: subscribeBackInStock route
- Shopware 6.6 ready
- added feature to send promotion codes directly to Klaviyo
- updated deprecated back-in-stock function
- updated Klaviyo PHP-Wrapper
- skip setting property taxRate if no tax rate object is present (placed order event)
- bugfix: accidentally removed "cookieRequired" from template in last update
- updated Klaviyo PHP-Wrapper
- bugfix: SalesChannel has base-url property set
- bugfix: added extra block for hidden input fields
- bugfix: added check for manufacturer
- fix when using FroshShareBasket Plugin
- fix for javascript "add to cart" event when shop is in a subdirectory
- added new property to customer: customerTags
- compatible with SwkwebProductSetConfigurator
- updated Klaviyo SDK to 5.0.0
- added property "ItemNames"
- added scheduled task for syncing newsletter subscriber from Klaviyo to Shopware Database
- added scheduled task for syncing newsletter subscriber from Klaviyo to Shopware Database
- removed quotation marks from categories in "placed order" and "fulfilled order" events
- optimized getting Klaviyo lists (which is limited to ten items per request :( )
- load klaviyo.js when cookie is required and got accepted
- If a customer comes via an e-mail link of a Klaviyo campaign, it will now also being tracked when using the Javascript method
- when using the Javascript method: If Klaviyo forms are displayed in the shop and filled out by the customer with their e-mail address, then from this point on the customers are also tracked with all possible events (as if the customer is already registered in the shop)
- events "placed order" and "fullfilled order" now have own property categories on top level
- Shopware 6.5 compatible
- select all assigned categories of a product
- fixed typo
- added property "SalesChannel" and "Language" to event "purchased items"
- bugfix for property productUrl for statechanged events
- changed property name "$birthday" to "Birthday"
- bugfix for wrong productUrl value. Thanks Marc ;)
- fixed bug when changing order state
- compatible with Abo Commerce (PayPal und Stripe) from web fabric gmbh
- fixed issue that "back in stock" form was not shown when a layout was used for the product page
- fixed issue when editing an order that two events were triggered again even if the order is not new
- don't load klaviyo stuff on all page pages if cookie is required
- built back using of deprecated interface EntityRepositoryInterface because too many other extensions are still using it which causes errors