individuelle Versandkosten Berechnung mit TWIG Vorlagen
Technische Informationen
Highlights
-
Frei definierbare Versandkostenberechnung per TWIG
-
Debug-Ausgaben per acris_dump()
-
Zusatzfelder in eine Bestellung über TWIG Code einfügen
-
Erweiterter Zugriff auf Variablen
Funktionen
-
Indiviudelle Berechnung für einzelne Versandarten per TWIG
-
Debug-Ausgaben per acris_dump() zur Analyse von Variablen und Zwischenschritten
-
Erweiterter Zugriff auf Variablen
-
Regelbasiert angewandt
-
Zusatzfelder in eine Bestellung über die Versandkosten Berechnung im TWIG Code einfügen mit acris_set_order_custom_field('custom_field_one', 'My value 1')
Die Versandkostenberechnung ist im Shopware sehr eingeschränkt. Das gestaltet die Preisbrechnung für viele Produkte schwierig.
Wir haben daher ein Plugin entwickelt, welches folgende Funktionen bietet:
Frei definierbare Versandkostenberechnung per TWIG
Mit diesem Plugin können beliebige Logiken für die Versandkostenberechnug erstellt werden, was den Freiraum in der Versandkostengestaltung um ein Vielfaches erweitert. Vorschläge für möglichen TWIG-Code wird in der Konfigurationsanleitung berietgestellt.
Debug-Ausgaben per acris_dump()
Mit der neuen Funktion acris_dump() können während der Versandkostenberechnung beliebige Variablen oder Zwischenschritte direkt im TWIG-Code ausgegeben werden. Die Debug-Werte erscheinen in der JavaScript-Konsole der Storefront und erleichtern so das Analysieren und Testen komplexer Versandlogiken.
Zugriff auf mehr Variablen
Durch die Anwendung von TWIG ist es möglich auf mehr Variablen und deren Eigenschaften zu zugreifen. Dazu gehören die Währung, der Kontext, der Nutzer, Warenkorb, lineItem und vieles mehr. Die verfügbaren Variablen werden in der Konfigurationsanleitung näher beschrieben.
Zusatzfelder in eine Bestellung über TWIG Code einfügen (ab 4.2.0 für Shopware 6.6 und 5.2.0 für Shopware 6.7)
Über den folgenden Code ist es möglich, dass wenn die Bestellung erstellt wird ein individuelles Zusatzfeld in die Bestellung eingefügt wird. Voraussetzung ist hier natürlich, dass die Versandart und Berechnung der Versandart mit dem individuellen TWIG Code bei der Bestellung zur Anwendung kommt.
acris_set_order_custom_field('custom_field_one', 'My value 1')
Der erste Parameter (custom_field_one) entspricht hier dem technischen Namen des Zusatzfeldes. Dieser kann mit dem technischen Namen von dem im Admin angelegten Zusatzfeld (Einstellungen > Zusatzfelder) übereinstimmen für eine spätere Anzeige in der Administration bei der Bestellung. Es muss aber auch keine Einstimmung gegeben sein. Dann würde der Wert innerhalb der Datenbank gespeichert werden, es würde jedoch keine Anzeige in der Administration bei der Bestellung erfolgen.
Der zweite Parameter entspricht dem Wert des Zusatzfeldes. Hier sind folgende Typen erlaubt:
* Text (String)
* Zahl (int, float)
* Array
Codebeispiel:
{% set number_of_parcels = 0 %}
{% set shipping = 10 %}
{% for lineItem in lineItems %}
{% if lineItem.good %}
{% set number_of_parcels = number_of_parcels + 1 %}
{% endif %}
{% endfor %}
{{ acris_set_order_custom_field('custom_number_of_parcels', number_of_parcels) }}
{{ shipping }}
Dynamische Änderung Versandart Bezeichnung (ab Pluginversion 5.3.0)
Der Name der Versandart kann jetzt direkt in der Twig-Vorlage für die Versandkostenberechnung dynamisch angepasst werden.
Beispiel 1: Versandarten-Name ersetzen
{{ acris_set_shipping_name('ACRIS Test Name') }}Beispiel 2: Versandarten-Name erweitern
{{ acris_set_shipping_name(shippingMethod.translated.name ~ ' (my suffix)') }}Wichtiger Hinweis: Die Anpassung des Versandarten-Namens greift nur für die aktuell berechnete bzw. ausgewählte Versandart. In der Auswahl im Warenkorb oder auf der Bestellabschlussseite können für nicht ausgewählte Versandarten keine abweichenden Namen angezeigt werden.
Der Grund dafür ist, dass der eingefügte Twig-Code nur dann ausgeführt wird, wenn die Versandkostenberechnung tatsächlich stattfindet.
Installation
- Plugin Manager über Einstellungen > System > Plugins aufrufen
- Das Plugin hochladen, installieren und aktivieren
Versandkosten berechnen:
6.7: Einstellungen > Commerce > Versand > Versandmethode bearbeiten oder erstellen > Preismatrix > Preismatrix hinzufügen > Versand manuell berechnen
Konfigurationsmöglichkeiten:Regel wählen/erstellen
Wie bei der herkömmlichen Versandberechnung muss eine Regel bestimmt werden, damit die Berechnung wirken kann
Twig-Eingabefeld
Hier wird der TWIG-Code eingegeben. Zusätzlich können mit der Funktion acris_dump() Debug-Ausgaben erzeugt werden, die in der JavaScript-Konsole der Storefront sichtbar sind.
TWIG - Vorlagen
-
Versandkosten fix auf 10 ohne weiterer Regeln
{% set shipping = 10 %} {{ shipping }} -
Versandkosten erhöhen sich um einen Wert, abhängig davon ob ein Artikel mit dem CustomField im Warenkorb liegt
{% set shipping = 10 %} {% for lineItem in lineItems %} {% if lineItem.payload.customFields.custom_sw4_attributes_attr7 == "1" %} {% set shipping = shipping + 1 %} {% endif %} {% endfor %} {{ shipping }}
Wichtig: Bei der Konfiguration der Zusatzfelder im Admin unter Einstellungen > System > Zusatzfelder muss „Verfügbar in Warenkörben“ bei den jeweiligen Zusatzfeldern aktiviert sein. -
Versandkosten je nachdem in welchen Kategorien sich die Produkte Warenkorb befinden
{% set numberProductsInsideCategory1 = 0 %} {% set numberProductsInsideCategory2 = 0 %} {% for lineItem in lineItems %} {% if lineItem.payload.categoryIds %} {% for categoryId in lineItem.payload.categoryIds %} {# Is product inside category 1 - we check it by the UUID #} {% if categoryId == '21b199946c884aa294b409f135963880' %} {% set numberProductsInsideCategory1 = numberProductsInsideCategory1 + 1 %} {% endif %} {# Is product inside category 2 - we check it by the UUID? #} {% if categoryId == '0b5e8204e7034c2ca17a3899274874a4' %} {% set numberProductsInsideCategory2 = numberProductsInsideCategory2 + 1 %} {% endif %} {% endfor %} {% endif %} {% endfor %} {# Now we can do something with the variables numberProductsInsideCategory1 and numberProductsInsideCategory2 #} {% if numberProductsInsideCategory1 > 0 and numberProductsInsideCategory2 > 0 %} 19.90 {% elseif numberProductsInsideCategory1 > 0 %} 14.90 {% elseif numberProductsInsideCategory2 > 0 %} 12.90 {% else %} 9.90 {% endif %}
Hinweis: Es sind im Warenkorb nur die UUIDs der Kategorien (einmalige ID in der Datenbank) verfügbar. Die UUID kannst du sehr einfach über das Plugin https://store.shopware.com/acris28622190382f/acris-kategorie-id-anzeigen.html auslesen und kopieren. -
Mengen Ermittlung
{% set quantity = 0 %} {% for lineItem in lineItems %} {% if lineItem.quantity %} {% set quantity = quantity + lineItem.quantity %} {% endif %} {% endfor %} {{ quantity }} -
Kunden Freitextfeld Freihausgrenze
{% set customerShippingFreeLimit = false %} {% if customer.customFields is not empty and customer.customFields.custom_customer_shipping_free_limit > 0 %} {% set customerShippingFreeLimit = customer.customFields.custom_customer_shipping_free_limit %} {% endif %} {% set shippingCosts = 9.95 %} {% if customerShippingFreeLimit > 0 and cart.price.totalPrice >= customerShippingFreeLimit %} {% set shippingCosts = 0 %} {% endif %} {{ shippingCosts }} -
Hinzufügen der Mehrwertsteuer je nach Lieferland und Warenkorbinhalt zum Nettopreis der Versandkosten
{% set shippingNet = 100 %} {% if context.taxState == 'gross' and matchingTaxRules and matchingTaxRules.highestRate() %} {% set shippingNet = shippingNet / 100 * matchingTaxRules.highestRate().getPercentage() %} {% set shipping = shippingNet * (1 + (matchingTaxRules.highestRate().getTaxRate() / 100)) %} {% else %} {% set shipping = shippingNet %} {% endif %} {{ shipping }} -
Berechnung der Versandkosten abhängig von Brutto / Netto im Warenkorb
{% if context.taxState == 'gross' %} {# do smth if tax state is gross #} {% else %} {# do smth if tax state is net #} {% endif %}
Wenn mindestens ein Produkt nicht lagernd ist, dann Versandkosten 10 €, ansonsten 5 €
{% set oneProductOutOfStock = false %} {% for lineItem in lineItems %} {% if lineItem.deliveryInformation and lineItem.deliveryInformation.stock <= 0 %} {% set oneProductOutOfStock = true %} {% endif %} {% endfor %} {% if oneProductOutOfStock %} 10 {% else %} 5 {% endif %}
Verfügbare Variablen
Währung- currency.isoCode
- currency.factor
- currency.symbol
- currency.shortName
- currency.name
- currency.position
- currency.translations
- currency.orders
- currency.salesChannels
- currency.salesChannelDefaultAssignments
- currency.salesChannelDomains
- currency.shippingMethodPrices
- currency.promotionDiscountPrices
- currency.isSystemDefault
- currency.productExports
- currency.countryRoundings
- currency.itemRounding
- currency.totalRounding
- currency.taxFreeFrom
- currency.translated.customFields
- context.languageIdChain
- context.versionId
- context.currencyId
- context.currencyFactor
- context.scope
- context.ruleIds
- context.source
- context.considerInheritance
- context.taxState
- context.rounding
Ein Array mit den aktiven IDs der Regeln.
Nutzer
- customer.groupId
- customer.defaultPaymentMethodId
- customer.salesChannelId
- customer.languageId
- customer.lastPaymentMethodId
- customer.defaultBillingAddressId
- customer.defaultShippingAddressId
- customer.customerNumber
- customer.salutationId
- customer.firstName
- customer.lastName
- customer.company
- customer.password
- customer.email
- customer.title
- customer.vatIds
- customer.affiliateCode
- customer.campaignCode
- customer.active
- customer.doubleOptInRegistration
- customer.doubleOptInEmailSentDate
- customer.doubleOptInConfirmDate
- customer.hash
- customer.guest
- customer.firstLogin
- customer.lastLogin
- customer.newsletter
- customer.birthday
- customer.lastOrderDate
- customer.orderCount
- customer.orderTotalAmount
- customer.createdAt
- customer.updatedAt
- customer.legacyEncoder
- customer.legacyPassword
- customer.group
- customer.defaultPaymentMethod
- customer.salesChannel
- customer.language
- customer.lastPaymentMethod
- customer.salutation
- customer.defaultBillingAddress
- customer.defaultShippingAddress
- customer.activeBillingAddress
- customer.activeShippingAddress
- customer.addresses
- customer.orderCustomers
- customer.autoIncrement
- customer.tags
- customer.tagIds
- customer.promotions
- customer.recoveryCustomer
- customer.productReviews
- customer.remoteAddress
- customer.requestedGroupId
- customer.requestedGroup
- customer.boundSalesChannelId
- customer.boundSalesChannel
- customer.wishlists
- customer.customFields
- cart.name
- cart.token
- cart.price.netPrice
- cart.price.totalPrice
- cart.price.calculatedTaxes
- cart.price.taxRules
- cart.price.positionPrice
- cart.price.taxStatus
- cart.price.rawTotal
- cart.lineItems
- cart.errors
- cart.deliveries
- cart.transactions
- cart.modified
- cart.customerComment
- cart.affiliateCode
- cart.campaignCode
- cart.data
- cart.ruleIds
Ein Array mit den Line-Items.
lineItem
Ein lineItem beinhaltet Informationen zu den aufgelisteten Produkten
- lineItem.id
- lineItem.referencedId
- lineItem.label
- lineItem.quantity
- lineItem.type
- lineItem.priceDefinition
- lineItem.price
- lineItem.good
- lineItem.description
- lineItem.cover
- lineItem.deliveryInformation
- lineItem.deliveryInformation.stock
- lineItem.deliveryInformation.weight
- lineItem.deliveryInformation.freeDelivery
- lineItem.deliveryInformation.restockTime
- lineItem.deliveryInformation.deliveryTime
- lineItem.deliveryInformation.height
- lineItem.deliveryInformation.width
- lineItem.deliveryInformation.length
- lineItem.children
- lineItem.requirement
- lineItem.removable
- lineItem.stackable
- lineItem.quantityInformation
- lineItem.modified
- lineItem.dataTimestamp
- lineItem.dataContextHash
- lineItem.payload
- lineItem.payload.isCloseout
- lineItem.payload.customFields
- lineItem.payload.createdAt
- lineItem.payload.releaseDate
- lineItem.payload.isNew
- lineItem.payload.markAsTopseller
- lineItem.payload.purchasePrices
- lineItem.payload.productNumber
- lineItem.payload.manufacturerId
- lineItem.payload.taxId
- lineItem.payload.tagIds
- lineItem.payload.categoryIds
- lineItem.payload.propertyIds
- lineItem.payload.optionIds
- lineItem.payload.options
- lineItem.payload.length
- lineItem.payload.height
- lineItem.payload.width
- lineItem.payload.deliveryTime
- lineItem.payload.features
- salesChannel.typeId
- salesChannel.languageId
- salesChannel.currencyId
- salesChannel.paymentMethodId
- salesChannel.shippingMethodId
- salesChannel.countryId
- salesChannel.navigationCategoryId
- salesChannel.navigationCategoryDepth
- salesChannel.homeSlotConfig
- salesChannel.homeCmsPageId
- salesChannel.homeCmsPage
- salesChannel.homeEnabled
- salesChannel.homeName
- salesChannel.homeMetaTitle
- salesChannel.homeMetaDescription
- salesChannel.homeKeywords
- salesChannel.footerCategoryId
- salesChannel.serviceCategoryId
- salesChannel.name
- salesChannel.shortName
- salesChannel.accessKey
- salesChannel.currencies
- salesChannel.languages
- salesChannel.configuration
- salesChannel.active
- salesChannel.maintenance
- salesChannel.maintenanceIpWhitelist
- salesChannel.taxCalculationType
- salesChannel.type
- salesChannel.currency
- salesChannel.language
- salesChannel.paymentMethod
- salesChannel.shippingMethod
- salesChannel.country
- salesChannel.orders
- salesChannel.customers
- salesChannel.countries
- salesChannel.paymentMethods
- salesChannel.shippingMethods
- salesChannel.translations
- salesChannel.domains
- salesChannel.systemConfigs
- salesChannel.navigationCategory
- salesChannel.footerCategory
- salesChannel.serviceCategory
- salesChannel.productVisibilities
- salesChannel.mailHeaderFooterId
- salesChannel.numberRangeSalesChannels
- salesChannel.mailHeaderFooter
- salesChannel.customerGroupId
- salesChannel.customerGroup
- salesChannel.newsletterRecipients
- salesChannel.promotionSalesChannels
- salesChannel.documentBaseConfigSalesChannels
- salesChannel.productReviews
- salesChannel.seoUrls
- salesChannel.seoUrlTemplates
- salesChannel.mainCategories
- salesChannel.paymentMethodIds
- salesChannel.productExports
- salesChannel.hreflangActive
- salesChannel.hreflangDefaultDomainId
- salesChannel.hreflangDefaultDomain
- salesChannel.analyticsId
- salesChannel.analytics
- salesChannel.customerGroupsRegistrations
- salesChannel.eventActions
- salesChannel.boundCustomers
- salesChannel.wishlists
- salesChannel.landingPages
- salesChannel.translated.customFields
- shippingMethod.translated.name
- shippingMethod.active
- shippingMethod.description
- shippingMethod.trackingUrl
- shippingMethod.deliveryTimeId
- shippingMethod.deliveryTime
- shippingMethod.translations
- shippingMethod.orderDeliveries
- shippingMethod.salesChannelDefaultAssignments
- shippingMethod.salesChannels
- shippingMethod.availabilityRule
- shippingMethod.availabilityRuleId
- shippingMethod.prices
- shippingMethod.mediaId
- shippingMethod.taxId
- shippingMethod.media
- shippingMethod.tags
- shippingMethod.taxType
- shippingMethod.tax
- shippingMethod.translated.customFields
- paymentMethod.pluginId
- paymentMethod.handlerIdentifier
- paymentMethod.translated.name
- paymentMethod.distinguishableName
- paymentMethod.description
- paymentMethod.position
- paymentMethod.active
- paymentMethod.afterOrderEnabled
- paymentMethod.plugin
- paymentMethod.translations
- paymentMethod.orderTransactions
- paymentMethod.customers
- paymentMethod.salesChannelDefaultAssignments
- paymentMethod.salesChannels
- paymentMethod.availabilityRule
- paymentMethod.availabilityRuleId
- paymentMethod.mediaId
- paymentMethod.media
- paymentMethod.formattedHandlerIdentifier
- paymentMethod.shortName
- paymentMethod.appPaymentMethod
- paymentMethod.translated.customFields
- customerGroup.name
- customerGroup.translated.name
- customerGroup.displayGross
- customerGroup.translations
- customerGroup.customers
- customerGroup.salesChannels
- customerGroup.registrationActive
- customerGroup.registrationTitle
- customerGroup.registrationIntroduction
- customerGroup.registrationOnlyCompanyRegistration
- customerGroup.registrationSeoMetaDescription
- customerGroup.registrationSalesChannels
- customerGroup.translated.customFields
Auflistung der im Shop verfügbaren Steuern - PHP-Klasse TaxCollection
- taxRules.ids
- taxRules.elements
Der für die Versandart relevante Steuersatz wird in Shopware über den "Steuer-Typ" (Auto, Höchster Satz oder Fester Satz) ermittelt. Das Ergebnis daraus speichern wir ab sofort in der Variablen "matchingTaxRules", diese entspricht der PHP-Klasse https://github.com/shopware/platform/blob/trunk/src/Core/Checkout/Cart/Tax/Struct/TaxRuleCollection.php. Sie können somit den aktuell höchsten Steuersatz im Warenkorb über die folgende Twig-Variable auslesen: {{ matchingTaxRules.highestRate().getTaxRate() }} Mit diesem Steuersatz können Sie nun rechnen. Steuern, die für die Versandart relevant sind, ermittelt über Steuer-Typ - PHP-Klasse TaxRuleCollection
Dynamische Änderung Versandart Name (ab Pluginversion 5.3.0)
Der Name der Versandart kann jetzt direkt in der Twig-Vorlage für die Versandkostenberechnung dynamisch angepasst werden.
Beispiel 1: Versandarten-Name ersetzen
{{ acris_set_shipping_name('ACRIS Test Name') }}Beispiel 2: Versandarten-Name erweitern
{{ acris_set_shipping_name(shippingMethod.translated.name ~ ' (my suffix)') }}Wichtiger Hinweis: Die Anpassung des Versandarten-Namens greift nur für die aktuell berechnete bzw. ausgewählte Versandart. In der Auswahl im Warenkorb oder auf der Bestellabschlussseite können für nicht ausgewählte Versandarten keine abweichenden Namen angezeigt werden.
Der Grund dafür ist, dass der eingefügte Twig-Code nur dann ausgeführt wird, wenn die Versandkostenberechnung tatsächlich stattfindet.
Frequently Asked Questions
Ja. Dies kann über folgenden Code erfolgen:
acris_set_order_custom_field('custom_field_one', 'My value 1')
Ausführliche Informationen sind in der Beschreibung der Erweiterung dokumentiert.
| Version | Datum | Shopware Kompatibilität | Changelog |
|---|---|---|---|
| 5.3.0 | 15. April 2026 | >=6.7.0.0 <6.8.0.0 |
|
| 5.2.2 | 16. Februar 2026 | >=6.7.0.0 <6.8.0.0 |
|
| 5.2.1 | 30. Dezember 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 5.2.0 | 14. November 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 5.1.0 | 29. Oktober 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 5.0.5 | 8. Oktober 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 5.0.4 | 7. Oktober 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 5.0.3 | 11. Juli 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 5.0.2 | 1. Juli 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 5.0.1 | 25. Juni 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 5.0.0 | 19. Mai 2025 | >=6.7.0.0 <6.8.0.0 |
|
| 4.3.0 | 15. April 2026 | >=6.6.0.0 <6.7.0.0 |
|
| 4.2.2 | 16. Februar 2026 | >=6.6.0.0 <6.7.0.0 |
|
| 4.2.1 | 30. Dezember 2025 | >=6.6.0.0 <6.7.0.0 |
|
| 4.2.0 | 14. November 2025 | >=6.6.0.0 <6.7.0.0 |
|
| 4.1.0 | 29. Oktober 2025 | >=6.6.0.0 <6.7.0.0 |
|
| 4.0.4 | 20. Mai 2025 | >=6.6.0.0 <6.7.0.0 |
|
| 4.0.3 | 16. August 2024 | >=6.6.0.0 <6.7.0.0 |
|
| 4.0.2 | 24. Juni 2024 | >=6.6.0.0 <6.7.0.0 |
|
| 4.0.1 | 25. März 2024 | >=6.6.0.0 |
|
| 4.0.0 | 20. März 2024 | >=6.6.0.0 |
|
| 3.2.1 | 16. Februar 2026 | >=6.5.0.0 <6.6.0.0 |
|
| 3.2.0 | 12. Februar 2026 | >=6.5.0.0 <6.6.0.0 |
|
| 3.1.3 | 14. Oktober 2025 | >=6.5.0.0 <6.6.0.0 |
|
| 3.1.2 | 26. Mai 2025 | >=6.5.0.0 <6.6.0.0 |
|
| 3.1.1 | 15. Januar 2024 | >=6.5.0.0 |
|
| 3.1.0 | 3. November 2023 | >=6.5.0.0 |
|
| 3.0.2 | 28. August 2023 | >=6.5.0.0 |
|
| 3.0.1 | 5. Juli 2023 | >=6.5.0.0 |
|
| 3.0.0 | 7. März 2023 | >=6.4.0.0 |
|
| 2.3.4 | 15. Februar 2023 | >=6.4.0.0 |
|
| 2.3.3 | 26. November 2022 | >=6.4.0.0 |
|
| 2.3.2 | 26. November 2022 | >=6.4.0.0 |
|
| 2.3.1 | 26. November 2022 | >=6.4.0.0 |
|
| 2.3.0 | 26. November 2022 | >=6.4.0.0 |
|
| 2.2.2 | 26. November 2022 | >=6.4.0.0 |
|
| 2.2.1 | 26. November 2022 | >=6.4.0.0 |
|
| 2.2.0 | 26. November 2022 | >=6.4.0.0 |
|
| 2.1.0 | 26. November 2022 | >=6.4.0.0 |
|
| 2.0.2 | 26. November 2022 | >=6.4.0.0 |
|
| 2.0.1 | 26. November 2022 | >=6.4.0.0 |
|
| 2.0.0 | 26. November 2022 | >=6.4.0.0 |
|
| 1.0.4 | 26. November 2022 | >=6.3.0.0 |
|
| 1.0.3 | 26. November 2022 | >=6.3.0.0 |
|
Anmelden
Perfekt für komplexere Anforderungen geeignet
Das Plugin ist wirklich super, wenn man etwas mehr Freiraum bei der Berechnung der Versandkosten benötigt. Besonders wenn man auf Zusatzfelder oder andere Plugins eingehen möchte, lässt sich hier wirklich viel umsetzen! Der Support ist bei Fragen auch wirklich 1A, definitive Empfehlung.
Extrem flexibel
Das Plugin ermöglicht sehr flexible Versandkostenberechnungen. Hier gibt es kaum Grenzen. Auch auf die Variablen anderer Plugins kann zugegriffen werden. Auf meine Anregung wurde sogar eine Debug Möglichkeit eingebaut.
Der Support war dafür Top und sehr hilfreich und schnell, hier ein wirklich großes Dankeschön!
Alles in allem sehr zu empfehlen bei komplexen Versandkostenstrukturen.
Ein muss für jeden Shop mit komplexeren Versandlogiken. Top!
Wir nutzen das Plugin zur komplexeren Versandkalkulation (Volumengewicht, Bandmaße, verschiedene Logiken) und es tut genau das, was man eigentlich von Bord vermisst. Der Support hat mir innerhalb kürzester Zeit geholfen, sehr lobenswert!
Exemplary support
Due to Shopware being quite basic in terms of shipping, we looked for a plugin to meet our needs and this one was the only one that accepted complex rules. Of course we had no idea how to create the code for the rules, but we asked for help from the plugin developers to create the script for us based on our request. Julian was a massive help and replied all day long to our requests, thank you for this!
Mächtiges, gut funktionierendes Werkzeug
Die Erweiterung stellt ein mächtiges Werkzeug zur Darstellung auch komplexerer Versandkostenanforderungen zur Verfügung.
Der Acris-Support, wenn man ihn mal benötigt, ist schnell und kompetent und hilft ersichtlich gerne.
Leider ist die Erweiterung überhaupt erst nötig, weil Shopware in SW6 keine Auf- und Abschlagsversandarten mehr bietet und eigene Regeln und Bedingungen ebenfalls nicht mehr möglich sind.
In SW5 konnte man unsere Anforderungen noch mit Hausmittel darstellen!