Magento 2 Modul Preislisten / B2B-Preislisten

Magento 2 Preislisten-Modul für Vertragspreise, Kunden- und Gruppenzuordnung, Staffelpreise, Gültigkeiten, Prioritäten sowie optionale CSV-, API-, GraphQL- und Hyvä-Unterstützung.

SoftwareSilo Preislisten macht ausgehandelte Magento 2 Preise zu übersichtlichen Geschäftsdaten. Jede benannte Liste bündelt Produkte, Kundenkreis, Gültigkeit, Priorität und Website-Zuordnung. Vertrieb und E-Commerce pflegen eine Vereinbarung, ohne einzelne Produktdatensätze durchsuchen zu müssen.

Für wiederkehrende B2B-Vereinbarungen: Nutzen Sie eine Preisliste für Händlerprogramme, Jahresverträge, Partnerstufen, Rahmenvereinbarungen, Einkaufsgemeinschaften oder zeitlich begrenzte Verkaufsphasen. Der Listenname gibt der kaufmännischen Vereinbarung eine klare Identität in Magento.

Zuordnung zu einzelnen Kunden oder Kundengruppen: Die direkte Kundenzuordnung eignet sich für individuell verhandelte Konten. Gruppenzuordnungen passen zu Händlern, Großkunden oder Partnern. Ein Kunde kann mehrere Listen erfüllen, deshalb besitzt das Preissystem klare Regeln für Überschneidungen.

Automatische Zuordnung anhand von Kundendaten: Eine Liste kann auf ein Kundenattribut, ein Adressattribut oder beide Kriterien reagieren. So lassen sich beispielsweise Kontotyp, Vertriebsregion, Land oder eigene Klassifizierungen verwenden. Strenger oder lockerer Wertevergleich ist konfigurierbar.

Vertragszeiträume auf zwei Ebenen: Die gesamte Preisliste hat ein Start- und Enddatum. Einzelne Produktpositionen können zusätzlich eigene Gültigkeiten erhalten. Damit kann ein Jahresvertrag laufen, während sich ausgewählte Artikel zu einem anderen Termin ändern.

Festpreise, Zuschläge oder Rabatte: Produktpositionen unterstützen feste Beträge, nominale oder prozentuale Zuschläge sowie nominale oder prozentuale Rabatte. Das enthaltene Price-System-Grundpaket stellt die Berechnung und die konfigurierbare Auswahlstrategie bereit.

Mengenstaffeln innerhalb derselben Vereinbarung: Für ein Produkt können mehrere Mengenschwellen hinterlegt werden. Der Käufer erhält den zur Bestellmenge passenden Preis, während alle Stufen in einer verständlich benannten Liste zusammenbleiben.

Prioritäten lösen überlappende Listen: Treffen mehrere aktive Preislisten zu, bestimmt die Priorität den berücksichtigten Staffelbestand. Listen mit derselben höchsten Priorität können Mengenstaffeln beisteuern. Optional lassen sich auch Stufen niedriger priorisierter Listen ergänzen.

Eine Basispreisliste dient als Rückfall: Pro Website kann eine Basispreisliste Fälle abdecken, in denen keine kundenspezifische Liste greift. Eine Validierung kann diese Regel erzwingen und damit unbeabsichtigte Lücken oder konkurrierende Basislisten verhindern.

Konsistente Preise im Storefront: Die gemeinsame Price-System-Schicht berechnet Listenpreise für Produktseiten, Kategorielisten, Warenkorb, Checkout, Bestellpositionen und die Preisübersicht im Kundenkonto. Konfigurierbare Produkte und AJAX-Preisaktualisierung werden durch die zentrale Preislogik berücksichtigt.

Kunden können ihre Preise selbst prüfen: Angemeldete Käufer sehen unter Meine Preise die für sie verfügbaren Preise. Wenn aktiviert, können zugewiesene Preislisten als CSV mit konfiguriertem Trennzeichen und Textbegrenzer heruntergeladen werden.

Praktische tägliche Verwaltung: Administratoren können vollständige Preislisten kopieren, Kunden und Gruppen über durchsuchbare Raster zuordnen, Katalogprodukte hinzufügen, zugewiesene Produktpositionen bearbeiten und das automatische Laden großer Produktraster abschalten.

Massenpflege und Schnittstellen sind getrennte Optionen: CSV Import/Export ermöglicht wiederholbaren Dateiaustausch und Kommandozeilenimporte. SOAP/REST bietet Einzel- und Massenoperationen für Listen, Produkte, Kunden und Gruppen. GraphQL liefert filterbare Preislistendaten für Headless-Projekte. Hyvä-Kompatibilität wird separat angeboten.

Das benötigte Price-System-Grundpaket ist enthalten: Es bildet den gemeinsamen Berechnungsrahmen und ist keine zweite Preislistenlizenz. Andere Price-System-Module wie kundenspezifische Preise, Kategoriepreise oder Produkt-Kunden-Matrix sind eigenständige Produkte für andere Preismodelle.

Preislisten sind keine privaten Kataloge: Dieses Modul ändert gültige Preise, versteckt aber keine Produkte oder Kategorien. Wenn Unternehmen unterschiedliche Sortimente sehen sollen, benötigen Sie zusätzlich eine Katalogsichtbarkeitslösung und müssen beide Entscheidungen gemeinsam testen.

Klären Sie die Datenhoheit vor dem großen Import: Legen Sie fest, ob Magento oder das ERP jede Liste führt, wie Kundenzuordnungen identifiziert werden, wie abgelaufene Verträge ersetzt werden und welche Regel bei mehreren Treffern gewinnt. Testen Sie zuerst eine kleine reale Auswahl mit Kunden, Mengen, Daten, Websites, Währungen, Steuern und konfigurierbaren Produkten.

Benannte Preislisten als Preiscontainer

Bündeln Sie Preise, Laufzeiten und Prioritäten in klaren Preislisten statt in verteilten Einzelregeln.

Kundenbedingungen mit Attribut-Logik

Definieren Sie Preislisten über Kundenattribute und optionale Adressattribute mit kombinierbarer Bedingungslogik.

Direkte Kundenzuordnung

Weisen Sie Preislisten gezielt einzelnen Kunden zu, um individuelle Vereinbarungen sauber umzusetzen.

Kundengruppenzuordnung

Ordnen Sie Preislisten ganzen Kundengruppen zu und skalieren Sie segmentbasierte Preisstrategien.

Produktpreise mit Mengenstaffeln und Preisanwendung

Hinterlegen Sie mehrere Preisstufen pro Produkt, steuern Sie Konditionen nach Abnahmemenge und legen Sie die Preisanwendung je Stufe fest.

Datumssteuerung auf Listen- und Produktebene

Planen Sie Preisgültigkeiten je Preisliste und je Produktpreis für Aktionen und Vertragszeiträume.

Priorität und Merge-Logik bei Überschneidungen

Lösen Sie Mehrfachtreffer per Priorität auf und kombinieren Sie optional Mengenstaffeln aus gleich priorisierten Listen; bei gleicher Menge wird eine Preisvariante je Menge ausgewählt.

Basis-Preisliste als Fallback

Definieren Sie pro Website eine Basis-Preisliste, damit bei fehlender Spezialzuordnung keine Preislücken entstehen.

Websitebezogene Preislistensteuerung

Trennen Sie Preisstrategien je Website und führen Sie zentrale Preislistenstrukturen über mehrere Märkte hinweg.

Preislisten per Massenaktion kopieren

Vervielfältigen Sie bestehende Preislisten inkl. Struktur schneller für neue Märkte, Kampagnen oder Kundensegmente.

Inline-Bearbeitung zugewiesener Preislistenprodukte

Bearbeiten Sie Preis, Menge, Preisanwendung und Datumsfelder direkt in der Produktzuordnung ohne Umweg.

Anzeige und CSV-Download im Kundenkonto

Zugewiesene Kunden sehen ihre Preislisten in Meine Preise und laden diese bei aktivierter Funktion als CSV herunter.

Bedingung für Warenkorbpreisregeln

Nutzen Sie die Bedingung Kunde hat Preisliste, um Aktionen gezielt auf passende Kundensegmente auszusteuern.

  • Aktuelle Version2.2.9
  • Kompatibel mit Magento 2.4.6 - 2.4.9
  • Kompatibel mit PHP 8.1 - 8.5

Wenn Ihre Umgebung von den angegebenen Anforderungen abweicht, prüfen wir die Kompatibilität vorab auf Wunsch. Kontaktieren Sie uns dazu gerne über das Kontaktformular.

pricesystem-pricelist

Version 2.2.9 - 2026-06-22

Added
  • Added assigned customer and customer group counts with assignment filters to the admin pricelist grid
  • Added configuration to control whether the Catalog Products grid auto-loads on pricelist edit pages
Fixed
  • Fixed API pricelist relation saves to resolve configured product, customer, and customer group identifiers before persistence, including embedded relation payloads on full pricelist saves
  • Fixed assigned pricelist product grid price and quantity fields so they can be edited inline with numeric values
  • Fixed base pricelist validation config lookup to use website scope instead of treating website IDs as store IDs

Version 2.2.8 - 2026-06-16

Added
  • Added configuration to control whether base pricelist prices are merged under the Pricelist type in My Prices or exposed separately
  • Added SSO compatibility by lazy-loading the customer session in pricelist model construction
Changed
  • Changed admin ACL hierarchy and explicit permissions for pricelist export, mass copy, and mass delete actions
  • Changed frontend pricelist download links so assigned pricelists without products are not offered
Fixed
  • Fixed resolve table names through Magento's table-name resolver
  • Fixed admin price displays to use Magento currency formatting
  • Fixed admin pricelist edit performance by preventing the full catalog product assignment grid from auto-rendering on page load
  • Fixed direct frontend pricelist CSV downloads so the download enablement flag is enforced
  • Fixed frontend pricelist download access and links so inactive, expired, future, and foreign-website pricelists are not exposed
  • Fixed frontend pricelist CSV generation to use unique safe server filenames and stable download filenames
  • Fixed pricelist CSV product joins so they are restricted to the requested pricelist
  • Fixed sales rule pricelist condition checks for customers assigned to multiple pricelists
  • Fixed admin pricelist export product SKU resolution by exporting the assigned catalog product ID

Version 2.2.7 - 2026-04-23

Fixed
  • Fixed admin pricelist listing fulltext search

Version 2.2.6 - 2026-03-19

Added
  • Added compatibility to pricesystem 2.3.5

Version 2.2.5 - 2026-02-27

Added
  • Added consistent validation errors for unresolved or non-existing API product identifiers to avoid database-level error responses
Changed
  • Enforced strict API product identifier resolution based on the configured API product attribute
  • Prevented implicit fallback to product entity ID when custom API fields are enabled with non-entity product attributes
Fixed
  • Fixed automatic customer-to-pricelist assignment on registration for website-specific pricelists (website filter now includes current website and global website)
  • Fixed auto-assign config lookup to use the active admin configuration path for customer assignment

Version 2.2.4 - 2026-02-19

Added
  • Added inline row edit for assigned pricelist products in admin
Fixed
  • Customer group NOT LOGGED IN is now treated as a valid group on the customer group edit form for pricelist assignments
  • Customer attribute option loading now supports boolean attributes and keeps the "No" option in the attribute value selector
  • Auto-assign evaluation now supports address-only conditions (without mandatory customer attribute pre-filtering)

Version 2.2.3 - 2026-02-01

Fixed
  • Support table name prefixes

Version 2.2.2 - 2026-01-26

Changed
  • Now the download path redirects to login if not logged in for a smoother flow (before it was referer URL)

Version 2.2.1 - 2026-01-23

Fixed
  • Fixed config flag lookup for my prices download enablement (use ScopeConfigInterface instead of old helper get() method)

Version 2.2.0 - 2026-01-16

Added
  • Added PHP 8.4 compatibility
  • Added compatibility to pricesystem 2.3.0
Changed
  • Switched table name from pricesystem_pricelist_user to pricesystem_pricelist_customer (automatic migration will be executed)
  • Changed to nullable fields for date fields in the database
  • Updated admin UI elements to the newer Magento UI components (forms)
  • Clarified "Merge pricelist qtys" configuration description and translations to better explain behavior when multiple pricelists share the same priority
  • Removed Helper\Data as it is not used anymore
  • Renamed pricesystempricelist/index/downloadcsv to pricesystempricelist/index/downloadPrices
  • Removed config setting pricesystem/pricelist/show_pricelist_product_id_column - now onwards, product ID is always displayed in the pricelist products grid

Version 2.1.3 - 2025-10-23

Fixed
  • Admin Pricelist: "Submit to pricelist" now correctly detects products selected via keyboard (Tab/Space/Enter). Prevents false "Please select at-least 1 catalog product!" alert when items are selected without mouse

Version 2.1.2 - 2025-05-08

Fixed
  • Fixed an issue on saving NOT_LOGGED_IN customer group for a pricelist as single entry in admin

Version 2.1.1 - 2024-08-14

Fixed
  • Fixed adminhtml.xml for new config added recently

Version 2.1.0 - 2024-08-14

Added
  • Display ID for assign/deassign pricelist window in admin customer edit section
  • Display is_basepricelist inside the customer edit section grids (customer-related pricelists, customer-group related pricelists)
  • Added a configuration "match_exact_type" to use exact comparison (===) when auto-assign pricelists during customer registration
  • Added note inside the pricelist popup when no pricelists are available in the system

Version 2.0.23 - 2024-03-19

Fixed
  • Fixed issue with isValidUserId() function

Version 2.0.22 - 2024-03-06

Changed
  • php Docs

Version 2.0.21 - 2024-01-31

Changed
  • Changed function of isValidUserId() to include the website check of the customer with pricelist website
Fixed
  • Fixed an issue with pricelist export on admin area (column ID was ambigious)

Version 2.0.20 - 2023-11-08

Changed
  • Changed the copy behavior of a pricelist - now on a copied base pricelist will be unset as a base pricelist to avoid issues during the save process of the new created pricelist

Version 2.0.19 - 2023-10-26

Fixed
  • Fixed an issue which ocurred on customer group edit form

Version 2.0.18 - 2023-09-19

Fixed
  • Fixed an issue which could result in wrong group-related pricelist assignments on customer edit (pricesystem tab)

Version 2.0.17 - 2023-07-18

Added
  • Added grid under admin section of customer edit (pricesystem tab) to display customer group related pricelists

Version 2.0.16 - 2023-06-07

Fixed
  • Fixed Pricelist save when product id column is enabled

Version 2.0.15 - 2023-05-31

Fixed
  • Added Fallback for Filter Input (Magento 2.4.0)

Version 2.0.14 - 2023-05-28

Fixed
  • Fixed UI component listing

Version 2.0.13 - 2023-05-24

Changed
  • Changed automatic customer assignment behavior, it will not apply anymore when either customer attribute or customer attribute value is null

Version 2.0.12 - 2023-05-12

Fixed
  • Dynamic properties declarations are fixed

Version 2.0.11 - 2023-05-08

Added
  • Added new config field: "Show pricelist product id column in pricelist products grid"

Version 2.0.10 - 2023-04-16

Added
  • Added cart condition rule for pricelist
  • 2.4.6 compatibility fixes

Version 2.0.9 - 2023-01-25

Added
  • New configuration to show "My Prices" my account link only when custom prices are set to the customer

Version 2.0.8 - 2023-01-12

Changed
  • Used new core trait to compare prices by priority

Version 2.0.7 - 2022-12-28

Changed
  • Refactored pricelist before/after save (relational data for customers/groups/products) to avoid direct MySQL queries

Version 2.0.6 - 2022-12-12

Fixed
  • Fixed dependency issue occuring during setup upgrade (Unable to apply data patch MageB2B\PricesystemPricelist\Setup\Patch\Data\AddPricelistAttributes)
  • Fixed the issue that the productsContainer was not showing all products when the website of the pricelist was selected to "All Websites"

Version 2.0.5 - 2022-11-28

Added
  • Added PriceProvider for My prices block

Version 2.0.4 - 2022-11-24

Fixed
  • Fixed issues around localized date input format when saved into DB

Version 2.0.3 - 2022-11-23

Fixed
  • Fixed behavior of pricelist grid under customer pricesystem tab as well as on assign/deassign grid to flush inconsist behavior for the recent 'all Websites' feature
Changed
  • DB column pricelist.website_id should not be null

Version 2.0.2 - 2022-11-12

Added
  • Added feature to select "All Websites" for pricelists (internal flag for website_id should be 0 in this case)

Version 2.0.1 - 2022-11-08

Fixed
  • Fixed issue to take the lowest/highest price for pricelist price with the same qty
pricesystem

Version 2.3.13 - 2026-05-13

Fixed
  • Fixed configurable product detail price updates after option selection when Pricesystem initializes the product price box asynchronously

Version 2.3.12 - 2026-05-12

Changed
  • Improved configurable product list price performance by preloading child products in batches instead of resolving children per parent product
  • Improved configurable product list price performance by reusing child category assignments during price calculation
  • Improved `Bss_HidePrice` compatibility by skipping redundant hide-price processing for internal configurable child price collections while keeping storefront hide-price behavior intact

Version 2.3.11 - 2026-05-12

Fixed
  • Fixed configurable product from-price resolution so parent prices use the lowest child final price instead of the lowest regular child price

Version 2.3.9 - 2026-05-01

Changed
  • Relaxed the Magento framework requirement to `^103.0.4`
  • Made the `pricesystem:cache:warmup` and `pricesystem:get-customer-price` CLI commands lazy during bootstrap
  • Changed frontend discount text and cart discount styling rendering by using Magento SecureHtmlRenderer for dynamic style tags
Fixed
  • Replaced CSP nonce-dependent inline frontend scripts with Magento init components for broader Magento compatibility
  • Fixed frontend discount percent display so non-zero final prices no longer render as `100%`
  • Applied the configured discount percent rounding mode consistently on product and listing page discount text rendering

Version 2.3.8 - 2026-04-15

Fixed
  • Fixed the `My Prices` customer account navigation link sortable menu position

Version 2.3.7 - 2026-04-06

Added
  • Price rendering now supports chunked/parallel price requests (defined by config ajax_chunk_size)
  • Added option enable_configurable_update_on_list to explicit enable configurable update on list (swatches)
Changed
  • Dedicated configurable services (ConfigurableFromPriceService, ConfigurableListPriceDataProvider)
  • Request-scope configurable evaluation context
Fixed
  • Fixed possible Configurable from-price recursion issue
  • Fixed list-page pre-AJAX price hiding CSS selector rendering by using HTML escaping compatible with inline `<style>` output

Version 2.3.6 - 2026-03-30

Added
  • Added `pricesystem:cache:warmup` CLI command for cache warmup runs

Version 2.3.5 - 2026-03-19

Added
  • Added function for Adobe Commerce product check

Version 2.3.4 - 2026-03-17

Changed
  • Consolidated frontend price reload into one flow and removed category/search price pipeline parts
  • Reduced duplicate AJAX price reloads and simplified the price AJAX response payload
Fixed
  • Fixed My Prices provider selection handling so the page when opened without a selected price type

Version 2.3.3 - 2026-02-20

Fixed
  • Fixed sort order from system configuration

Version 2.3.2 - 2026-02-19

Changed
  • Removed obsolete zero date checks
Fixed
  • Fixed error in Sales OrderItem API plugin when extension attributes are null
  • Fixed price adjustment matrix preview/apply condition evaluation
  • Fixed pricing context leakage between consecutive `PriceFacade` calls by resetting customer/group/date context after calculation
  • Fixed cache payload serialization for table prices by storing scalar JSON payload instead of native PHP serialization
  • Fixed an issue with displaying custom price column in admin

Version 2.3.1 - 2026-01-26

Fixed
  • Redirect unauthenticated visitors to login on the My Prices page to align with account-only access

Version 2.3.0 - 2026-01-16

Added
  • Added price adjustment feature: mass select prices and update them using a queue job
Changed
  • Magento 2.4.7+ required
  • Improved "My Prices" page: configurable dropdown price types (provider-based) and optional "All prices" view (default: select first)
  • Removed ZERO_DATE_VALUE (0000-00-00) usage, use null instead
  • Changed config path of pricesystem/api_settings/* to pricesystem/api/* (automatic migration)
  • Removed PricesystemCore\Helper\ProductAttribute (in favor of PricesystemCore\Service\ProductService)
  • Removed PricesystemCore\Helper\Data (in favor of PricesystemCore\Service\ Classes)
  • Changed fixed sort_order config fields to config array field (price_sort_order) with automatic migration
  • Updated admin UI elements to the newer Magento UI components (forms)
Fixed
  • Fixed cache invalidation for customer groups after admin save (clear GroupRegistry, invalidate `full_page`, `block_html` and `pricesystem_cache`).
  • Fixed FPC degradation on category/search pages by using HttpContext for `customer_group` detection instead of CustomerSession (no session start, FPC stays group‑varying).
  • Fixed PHP 8.4 deprecation warning by explicitly marking the `$resource` and `$resourceCollection` constructor parameters in `Model\PriceAdjustment` as nullable

Version 2.2.6 - 2025-06-24

Fixed
  • Fixed display of basePrice when tax display (net/gross amount) on detail page is enabled

Version 2.2.5 - 2025-04-23

Changed
  • Changed template path definition of pricesystemcore/index.phtml from Block Class to xml

Version 2.2.4 - 2025-02-28

Fixed
  • Fixed Reflection Error when class of original price type could not be found or loaded
Changed
  • Improved Date Range Validation checks

Version 2.2.3 - 2024-12-12

Fixed
  • Fixed issue when using decimal values for qtys

Version 2.2.2 - 2024-10-27

Added
  • Added another API route to get context-based API prices (automatically from customer session or, when not logged in, from not logged in customer group, see webapi.xml for reference)
Fixed
  • Fixed issue with duplicate AJAX requests when using special trigger contentUpdated

Version 2.2.1 - 2024-09-21

Changed
  • Changed Version class for displaying extension information
Fixed
  • Fixed some issues for Magento_CSP Compatibility

Version 2.2.0 - 2024-08-31

Added
  • Added new API routes /V1/pricesystem/me/get-final-price & /V1/pricesystem/me/get-multi-price to fetch prices for the logged in customer (session) inside Magento 2

Version 2.1.13 - 2024-08-18

Fixed
  • Fixed tier price display for sort order prices with customer discount
  • Show "Skip customer and group discounts application on next available price" config only when Sort Order is set as Price Select Rule

Version 2.1.12 - 2024-08-08

Changed
  • Show last update date from this file inside the system configuration of the extension

Version 2.1.11 - 2024-07-22

Changed
  • Updated README.md

Version 2.1.10 - 2024-07-19

Fixed
  • Fixed CHANGELOG.md

Version 2.1.7 - 2024-03-05

Changed
  • Changed cache key of getProductPrices to include customerId and groupId
Fixed
  • Fixed an issue on display pricesystem discount for configurable products at the My Orders page in frontend
  • Fixed an issue with displaying up- and cross sell prices on special conditions

Version 2.1.6 - 2023-12-28

Changed
  • Changed hard coded groupId 0 to GroupManagement::NOT_LOGGED_IN_ID

Version 2.1.5 - 2023-11-29

Fixed
  • Fixed issue with shipment tab on frontend my orders section if display of custom view template was enabled

Version 2.1.4 - 2023-11-08

Fixed
  • Fixed discount text for configurables with tier prices

Version 2.1.3 - 2023-11-06

Fixed
  • Fixed tier price display for configurable products

Version 2.1.2 - 2023-09-16

Fixed
  • Fixed double currency conversion in cart

Version 2.1.1 - 2023-08-14

Fixed
  • Fixed double currency conversion in cart

Version 2.1.0 - 2023-06-04

Added
  • Virtual products support

Version 2.0.26 - 2023-06-03

Added
  • New configuration to add routes, for which ajax price request should not be done

Version 2.0.25 - 2023-05-16

Fixed
  • Added rounding for price discount calculations

Version 2.0.23 - 2023-05-14

Added
  • "product" object is passed to Customized Price

Version 2.0.22 - 2023-05-13

Added
  • Added new config to check for customer discount / customer group discount for price codes

Version 2.0.24 - 2023-05-12

Fixed
  • Pricesystem discount amount reload after cart qty update

Version 2.0.21 - 2023-05-12

Fixed
  • Dynamic properties declarations are fixed

Version 2.0.20 - 2023-05-06

Fixed
  • Incorrect tier price on PDP for configurable product on qty change

Version 2.0.19 - 2023-04-16

Added
  • Added new system configuration "Show From Price for Configurables" to show the lowest price from all simple tiers as the configurable price

Version 2.0.18 - 2023-03-22

Fixed
  • Fallback solution for DefaultConfigProvider on Original price, if e.g. configured_original_price is set

Version 2.0.17 - 2023-03-21

Added
  • Added cart condition rules for customer discount and customer group discount
Fixed
  • Added an additional check to prevent JS error for the discount text when oldPrice is not available from the template
  • Fallback solution for "configured_original_price" price type, previously resulted in an offset issue on admin order display

Version 2.0.16 - 2023-03-01

Fixed
  • Fixed an issue that disabled products were shown under my prices section in frontend

Version 2.0.15 - 2023-02-21

Fixed
  • Fixed a JS issue undefined priceSystem when module is not enabled on a specific website

Version 2.0.14 - 2023-02-15

Fixed
  • Fixed an issue when a custom price record was inserted with a qty of 0, it was falsely considered as tierprice within getTierPriceList function

Version 2.0.13 - 2023-02-14

Fixed
  • Fixed an issue which could lead to wrong prices when the config "Store View Code in URL" is active

Version 2.0.12 - 2023-02-09

Fixed
  • Fixed phpDoc for swagger for recent get-multi-price API feature

Version 2.0.11 - 2023-02-07

Added
  • New /V1/pricesystem/get-multi-price API call to retrieve final and tier prices for multiple skus

Version 2.0.10 - 2023-01-28

Fixed
  • Fixed /V1/pricesystem/get-final-price API call
Changed
  • Removed redundant ACL node MageB2B_PricesystemCore::pricesystem (use MageB2B_PricesystemCore::main instead)

Version 2.0.9 - 2023-01-25

Added
  • New configuration to show "My Prices" my account link only when custom prices are set to the customer

Version 2.0.8 - 2023-01-12

Added
  • Optional websiteId parameter is added to the PriceRequest to return website specific prices
  • Added trait PriceSelectByPriorityTrait
Changed
  • Changed categoryprice pricetype: It's now merged into one pricetype

Version 2.0.7 - 2022-11-28

Changed
  • Changed the CLI command to be pricesystem:get-final-price (previously mageb2b:product:get-customer-price), added a more descriptive text around the options of this CLI
  • Changed My Prices page to display all available tier qtys of a price type

Version 2.0.6 - 2022-11-25

Added
  • Added new method convertInputDate which will be used for all localizated date conversions into DB date for non post data processors
Fixed
  • Fixed issue occuring when access swagger page of Magento 2

Version 2.0.5 - 2022-11-24

Fixed
  • Fixed issue when fallback to regular price was taking into account: TypeError: MageB2B\PricesystemCore\Model\Catalog\Pricing\FinalPriceProvider::saveUsedPriceData(): Argument #1 ($usedPriceInfo) must be of type MageB2B\PricesystemCore\Model\Catalog\Pricing\Price\CustomizedPriceDecorator

Version 2.0.4 - 2022-11-24

Fixed
  • Fixed issue on pricelist product grid when neither customer nor a group was selected, the custom price renderer throwed an exception
  • Fixed issue with the pricesystem discount amount on admin order view grid, previously it was not displaying the amount in the ordered currency

Version 2.0.3 - 2022-11-17

Fixed
  • Fallback to the regular price is done, when custom price cannot be calculated

Version 2.0.2 - 2022-11-12

Changed
  • Changed function getWebsitesForForm to add default parameter $addAllWebsites, value false

Version 2.0.1 - 2022-11-11

Fixed
  • Fixed issue with infinite scroll price update

Version 2.0.0 - 2022-11-01

Added
  • Added new config "Hide price filter from layered navigation for customers"
  • Added new config "Reload prices with ajax for guests"
  • Added new config "Price Cache Lifetime"
  • Added new config "Skip greater tier prices"
  • Added new config "Show custom price column in backend grids (customer price grid, pricelist products grid)"
  • Added CLI to fetch final price based on pricesystem calculation (see: bin/magento mageb2b:product:get-customer-price)
  • Added API method to fetch final price based on pricesystem calculation
Changed
  • Magento 2 Compatibility only 2.4.x
  • Refactored the methods of calculating the prices using M2-core approach, it will improve the speed and compatibility of customizations
  • Refactored the logging to be more accurate and increase readability
  • Remove usage of own pricesystem index table
  • Changed the way pricesystem cache works: You can now define an own cache lifetime, considering that datasets can have dates in future its not recommend to increase it to more than 24 hours
  • Changed the price rendering to be ajax-based on detail page as well to prevent FPC-issues
  • Changed the way the custom price column in admin is rendered, its now done via AJAX to always get the correct amount
  • Removed some obsolete configuration settings
Fixed
  • Fixed issue with strike price now being applied correctly from the original price set from pricesystem
  • Fixed issue with display of the correct pricesystem discount and pricesystem price type

Version 1.1.11 - 2022-08-08

Fixed
  • Fixed issue with new customer group on admin save of pricesystem attributes

Version 1.1.9 - 2022-07-28

Fixed
  • Fixed Pricesystem API URL Checkout for getActual... methods

Version 1.1.8 - 2022-07-27

Changed
  • Change price box from display: none to visilbity:hidden to prevent custom theme issues/jumping of product blocks

Version 1.1.7 - 2022-07-25

Fixed
  • Whitelist additional routes

Version 1.1.6 - 2022-07-24

Fixed
  • Fixed issue on getTierPrice function
  • Fixed logger message issue when message is null
  • Ensure quote plugin is applied on checkout API calls (e.g. order placement)

Version 1.1.5 - 2022-07-21

Fixed
  • Fixed ID issue on price warming

Version 1.1.4 - 2022-07-21

Changed
  • Add prices reload for SM_SHOBY extension ajax pagination
  • Add price warming on category price ajax reqeust to ensure price index table

Version 1.1.3 - 2022-07-21

Changed
  • Added Sm_ShopBy for event ajax trigger on footer

Version 1.1.2 - 2022-07-20

Changed
  • Added new bind return for getCustomerprice()

Version 1.1.1 - 2022-07-20

Changed
  • Fixed tierprice issue on custom sort order

Version 1.1.10 - 2020-08-05

Fixed
  • Fixed isset issues of pricesystem attributes during save in admin
pricesystem-pricelist-importexport

Version 1.1.2 - 2026-03-08

Added
  • Added compatibility to pricesystem/pricelist 2.2.5
Fixed
  • Fixed pricelist import date range handling

Version 1.1.1 - 2026-01-16

Added
  • Added compatibility to pricesystem 2.3.0

Version 1.1.0 - 2025-11-03

Added
  • Import now respects system configuration `can_product_have_multi_qty_price` and rejects multiple quantity tiers per product when disabled
  • Added helpful error message guiding users to enable the config when multi-qty import is attempted but disabled
Changed
  • Removed ConfigHelper wrapper class dependency from Import and Export classes, using ScopeConfigInterface instead
  • Import validation now uses lowercase pricelist names consistently for duplicate detection across pricelists
Fixed
  • Fixed website_id validation to allow value 0 (indicating "all websites")
  • Fixed DateService static method calls by injecting DateService via dependency injection
  • Fixed same SKU import validation to properly allow same product across multiple pricelists in single CSV
  • Fixed duplicate product detection to use consistent lowercase pricelist names

Version 1.0.9 - 2025-10-28

Fixed
  • Return a proper download response for the sample file so the browser saves the file instead of rendering it inline
  • Import: assign injected `Product\CollectionFactory` to `$this->productCollectionFactory` (prevents fatal in `_initProductSkus`).

Version 1.0.6.1 - 2025-10-24

Fixed
  • Fixed constructor argument for Pricelist import class
  • Fixed download sample csv file is now downloaded instead of just opened

Version 1.0.8 - 2025-08-08

Fixed
  • Fixed issue on calling Data::checkDateFormat instead of DateService::checkDateFormat

Version 1.0.7 - 2025-07-05

Added
  • Added README.md and CHANGELOG.md
Changed
  • Removed dependency of MageB2B\PricesystemCore\Helper\Data

Version 1.0.6 - 2025-04-23

Fixed
  • Fixed deprecated usage of collections directly, instead use Factories

Version 1.0.5 - 2022-12-04

Changed
  • Refactored pricelist before/after save to avoid direct mysql queries

Version 1.0.4 - 2022-11-30

Fixed
  • Fixed composer.json version constraint

Version 1.0.3 - 2022-07-18

Fixed
  • Fixed constant in registration.php

Version 1.0.2 - 2022-05-28

Fixed
  • Fixed composer json

Version 1.0.1 - 2022-05-14

Added
  • Added checkDateFormat feature on import
  • Added config enable_date_range_validation
  • Added date validation
Changed
  • Changed priority of arguments of save() function to avoid deprecated issue on PHP8
  • Pricelist import speed improvements and some fixes
  • Speed optimization of import
  • MageBTB_PricesystemPricelistImportExport -> MageB2B_PricesystemPricelistImportExport
Fixed
  • Removed function checkDateFormat and use it from Helper Core
  • Added validColumnNames to avoid Problems in Magento 2.3.1
  • Fixed is_base_pricelist import wasn't working
  • Fixed function "validateUniqueDateRangeInCsv" which was broken once we did this multi row feature on import/export pricelists
  • Validate pricelist product duplication during import
  • Fixed issue with price attribute id
pricesystem-pricelist-api

Version 1.0.2 - 2025-07-06

Added
  • Added CHANGELOG.md

Version 1.0.1 - 2024-07-25

Added
  • added new API method to delete all pricelists
Changed
  • Update composer.json

Version 1.0.0 - 2022-05-11

Added
  • Initial version
pricesystem-pricelist-graph-ql

Version 2.0.0 - 2026-02-02

Added
  • Initial module version
pricesystem-hyva

Version 1.0.1 - 2026-06-16

Changed
  • Aligned Hyvä frontend price AJAX handling with pricesystem 2.4.0, including chunked list price requests, configurable list price updates, discount text rounding, and safer product detail fallback behavior
  • Added missing Hyvä compatibility handles for customer account navigation, cart discount text, configurable cart item editing, and the price AJAX render context
Fixed
  • Scoped all Hyvä compatibility layout handles with the `hyva_` prefix so the module no longer overrides Luma price system storefront pages when installed in mixed-theme shops
  • Added the missing `Hyva_CompatModuleFallback` module sequence used by the scoped compatibility handles
  • Added Hyva Tailwind 4 module CSS source registration while keeping Tailwind 3 source compatibility
  • Fixed module CSS so it no longer declares global Tailwind directives or applies the circular `hidden` utility
  • Fixed the Hyvä customer price overview so the special `All prices` option renders without calling regular price type metadata

Version 1.0.0 - 2025-07-27

Added
  • Initial version
Modulspezifische Fragen
Was ist ein Magento 2 B2B-Preislisten-Modul?

Es bündelt Produktpreise in benannten Vereinbarungen und wendet sie auf ausgewählte Kunden oder Kundengruppen an. SoftwareSilo ergänzt Gültigkeiten, Mengenstaffeln, Prioritäten, Basispreisliste, Attributzuordnung und eine Preisübersicht für Kunden.

Für wen eignet sich SoftwareSilo Preislisten?

Das Modul passt zu Großhändlern, Herstellern, Distributoren, Händlern, Beschaffungsportalen und gemischten B2B/B2C-Shops, die wiederkehrend vereinbarte Preise für Konten oder Segmente pflegen.

Was ist in der Grundlizenz enthalten?

Enthalten sind Preislisten und das benötigte Price-System-Grundpaket: benannte Listen, Produkte, Kunden- und Gruppenzuordnung, Attributbedingungen, Daten, Staffeln, Prioritäten, Basisliste, Kopieren, Meine Preise und optionaler Kunden-CSV-Download.

Warum wird das Price-System-Grundpaket benötigt?

Price System ist der gemeinsame Berechnungsrahmen. Er verbindet das Ergebnis mit Magento-Katalog, Warenkorb, Checkout, Bestellung, Kundenpreisanzeige, Auswahlstrategie und Cache-Verhalten.

Muss Price System zusätzlich gekauft werden?

Nein. Das benötigte Grundpaket gehört zum Preislistenprodukt. Andere Module auf demselben Rahmen bleiben eigenständige Produkte.

Kann ich eine Preisliste einem einzelnen Kunden zuordnen?

Ja. Die direkte Zuordnung eignet sich für einen individuell verhandelten Vertrag. Administratoren fügen Kunden über durchsuchbare Raster hinzu oder entfernen sie.

Kann ich eine Preisliste einer Kundengruppe zuordnen?

Ja. Damit gilt eine Liste für alle Mitglieder einer Magento-Kundengruppe, etwa für Großhandel, Händler oder Partnerstufen.

Können Kunden automatisch Preislisten erhalten?

Ja. Die automatische Zuordnung kann Kundenattribute, Adressattribute oder beide prüfen. Der Händler entscheidet, ob beide Bedingungen erfüllt sein müssen und ob Werte streng verglichen werden.

Kann ein Kunde mehrere Preislisten haben?

Ja. Ein Kunde kann durch direkte, Gruppen- oder Attributzuordnung passen. Priorität und Zusammenführung bestimmen, wie überlappende Listen Preise liefern.

Wie funktioniert die Priorität einer Preisliste?

Anwendbare Listen werden nach Priorität geordnet. Üblicherweise führt der Staffelbestand der höchsten Priorität. Listen mit derselben höchsten Priorität können Mengenstaffeln beitragen.

Lassen sich Mengenstaffeln verschiedener Listen kombinieren?

Ja. Gleich priorisierte Listen können Staffeln beitragen. Optional werden auch niedrigere Prioritäten ergänzt. Identische Mengen müssen getestet werden, weil die Preisstrategie den Konflikt weiterhin auflöst.

Was ist eine Basispreisliste?

Sie dient pro Website als Rückfallpreisquelle, wenn keine regulär zugewiesene Liste passt. Eine Validierung kann pro Website höchstens eine Basisliste zulassen.

Kann eine Preisliste Start- und Enddatum haben?

Ja. Die gesamte Liste ist planbar, und einzelne Produktpositionen können zusätzlich eigene Start- und Enddaten für kontrollierte Änderungen besitzen.

Werden mengenabhängige Vertragspreise unterstützt?

Ja. Ein Produkt kann mehrere Mengenschwellen innerhalb einer Liste erhalten. Damit bleiben verhandelte Volumenpreise in einer Vereinbarung.

Welche Preisberechnungsarten gibt es?

Eine Produktposition kann als Festpreis, nominaler Zuschlag, prozentualer Zuschlag, nominaler Rabatt oder prozentualer Rabatt angelegt werden.

Welcher Preis gewinnt, wenn mehrere Magento-Preise greifen?

Das hängt von der konfigurierten Price-System-Strategie und Reihenfolge der Preisarten ab. Möglich sind niedrigster, höchster oder nach Sortierung ausgewählter Preis. Diese Regel muss vor dem Start feststehen.

Können Administratoren Preislisten kopieren?

Ja. Die Massenkopie erzeugt eine neue Liste aus einer vorhandenen. Das ist praktisch für einen neuen Vertragszeitraum oder eine Variante für ein anderes Segment.

Lassen sich zugewiesene Produkte gesammelt pflegen?

Die Adminraster unterstützen Produktauswahl und Bearbeitung zugewiesener Positionen. Für wiederkehrende große Datenmengen eignen sich die getrennten CSV- oder API-Optionen.

Können Kunden ihre zugewiesenen Preise sehen?

Ja. Angemeldete Kunden öffnen Meine Preise und prüfen die gültigen Preise. Abhängig von der Konfiguration kann die Darstellung auch die Basisliste einbeziehen.

Können Kunden ihre Preisliste herunterladen?

Ja, wenn der Download aktiviert ist. Herunterladbar sind nur Listen, die dem angemeldeten Kunden über unterstützte Wege zugeordnet sind. CSV-Trennzeichen und Textbegrenzer sind konfigurierbar.

Versteckt das Modul Produkte oder Kategorien?

Nein. Es verändert Preise, nicht die Katalogsichtbarkeit. Für unterschiedliche Sortimente benötigen Sie zusätzlich eine Lösung für private oder kundenspezifische Kataloge.

Unterstützt das Modul mehrere Magento-Websites?

Ja. Preislisten haben Website-Umfang und die Basislistenregel gilt pro Website. Prüfen Sie Website, Währung, Steuer und Kundenzuordnung gemeinsam.

Funktioniert es mit konfigurierbaren Produkten?

Das gemeinsame Price System enthält die Preisbehandlung für konfigurierbare Produkte. Testen Sie den konkreten Eltern-Kind-Aufbau in Kategorie, Produktseite, Warenkorb und Checkout.

Was bietet das CSV-Import/Export-Add-on?

Es ergänzt Magento-Import und -Export sowie Konsolenbefehle für Preislistendateien. Das Format kann Listen, Produkte, Mengen, Preisarten, Gültigkeiten, Kunden und Gruppen enthalten.

Was bietet das SOAP/REST-API-Add-on?

Es ergänzt geschützte Einzel- und Massenendpunkte für Preislisten sowie deren Produkt-, Kunden- und Gruppenbeziehungen zur Anbindung von ERP, CRM, PIM oder Middleware.

Was bietet das GraphQL-Add-on?

Es liefert filterbare Abfragen für Listen, Produktpositionen sowie Kunden- und Gruppenbeziehungen. Es dient Integration und Headless-Verwaltungsdaten, ersetzt aber keine Prüfung der Storefront-Berechnung.

Unterstützt Preislisten Hyvä?

Hyvä-Kompatibilität ist eine getrennte Option. Testen Sie Produktlisten, konfigurierbare Produkte, Warenkorb, Meine Preise, Checkout und alle installierten Preismodule gemeinsam.

Ist es eine Alternative zu Adobe Commerce Shared Catalogs?

Für reine Preislisten in Magento Open Source kann es eine Alternative sein. Adobe Shared Catalogs steuern zusätzlich Produkt- und Kategoriesichtbarkeit und sind an Adobe-Commerce-Firmenkonten gebunden. Der Funktionsumfang ist daher nicht identisch.

Wie sollte eine ERP-Anbindung aufgebaut sein?

Bestimmen Sie einen Eigentümer für Listen und Preise, nutzen Sie stabile Kennungen für Listen, Produkte, Kunden, Gruppen und Websites, definieren Sie Voll- oder Deltaimporte und protokollieren Sie Validierungsfehler vor der Preisumschaltung.

Was sollte vor dem Start getestet werden?

Testen Sie direkte, Gruppen-, Attribut- und Basiszuordnung, Prioritäten, gleiche Mengen, Daten und Zeitzonen, feste und relative Preise, konfigurierbare Produkte, Websites, Währungen, Steuern, Warenkorb, Checkout, Bestellungen, Meine Preise, Cache, Importe und alle Add-ons.

Allgemeine Fragen
Für wie viele Magento-Installationen gilt die Lizenz?

Die Lizenz gilt für eine Magento-Installation inklusive Multi-Website-Betrieb. Zusätzlich darf das Modul auf beliebig vielen Entwicklungs- oder Staging-Servern installiert werden. Weitere Details finden Sie in unseren Lizenzbestimmungen.

Ist die Installation im Preis enthalten?

Installation und Konfiguration sind nicht im Preis enthalten. Wir unterstützen Sie auf Wunsch bei einer reibungslosen Integration in Ihr System.

Wie installiere ich ein Modul?

Composer ist der Paketmanager für PHP, den auch Magento 2 für Module und deren Abhängigkeiten nutzt. Nach dem Kauf finden Sie die passenden Befehle in Ihrem Kundenkonto unter Lizenzen. Zuerst hinterlegen Sie das private SoftwareSilo-Repository und Ihren Lizenz-Token. Danach installieren Sie das angegebene Paket mit composer require und führen php bin/magento setup:upgrade sowie php bin/magento cache:clean aus.

Welche Zahlungsmethoden stehen zur Verfügung?

Sie können per Kreditkarte (Stripe) oder per Überweisung (Vorkasse) bezahlen. Bei Kreditkartenzahlung wird die Bestellung sofort verarbeitet und die Zugangsdaten werden direkt in einer weiteren E-Mail bereitgestellt.

Wie läuft der Bestellprozess ab?

Nach Kreditkartenzahlung erhalten Sie unmittelbar Zugangsdaten für den Bezug des Moduls per Composer. Bei Überweisung erhalten Sie den Zugang, sobald die Rechnung bezahlt ist.

Ich benötige eine individuelle Anpassung des Moduls. Ist das möglich?

Individuelle Wünsche sind kein Problem. Wir passen unsere Magento‑2‑Module an Ihr Projekt an und pflegen eine eigene interne Version, sodass wir bei Supportanfragen genau wissen, was in Ihrem System läuft.

Kann ich eine Demo-Version lokal installieren?

Sie können auf der Detailseite des jeweiligen Moduls eine eigene Demo-Instanz anfordern, in der Sie das Modul intensiv 7 Tage testen können. Eine lokale Demo-Version stellen wir jedoch nicht bereit.

Ist der Quellcode verschlüsselt?

Nein, der Quellcode unserer Module ist nicht verschlüsselt. Wenn Sie eine Anpassung wünschen, senden Sie uns gerne eine Anfrage. Wir melden uns zeitnah mit einem unverbindlichen Angebot.

Wie sehen Updates und Support aus?

Sie können Ihrer Bestellung ein Support-Paket hinzufügen. Es umfasst Unterstützung sowie Updates und Upgrades rund um das Modul. Ein dauerhaftes Abo ist nicht erforderlich.

Ich habe bereits eine Lizenz. Wie kann ich ein Update durchführen?

Das Lizenzupdate können Sie bequem hier abschließen. Wenn Sie ein aktives Support-Paket haben, erhalten Sie Updates automatisch via Composer. Falls Ihr Support-Paket abgelaufen ist, können Sie Ihre Lizenz hier oder in Ihrem Kundenkonto verlängern.

Ich habe eine weitere Frage – wie erreiche ich Sie?

Sie erreichen uns jederzeit über E-Mail.

Preislisten / B2B-Preislisten

×

Ideal für diese Branchen & Anwendungsfälle

Großhandels-Staffelpreise

Erstellen Sie separate Preislisten für Großhandelsstufen (Bronze, Silber, Gold) mit automatischer Zuweisung basierend auf Einkaufsvolumen oder Firmenattributen. Jede Stufe erhält gestaffelte Mengenrabatte, die für ihr Segment geeignet sind.

Regionale Preisverwaltung

Erstellen Sie Preislisten für verschiedene Regionen (USA, EU, APAC) mit automatischer Zuweisung basierend auf Kundenland oder Postleitzahl. Jede Region erhält Preise in entsprechender Währung mit regionsspezifischen Mengenstufen und Werbekampagnen.

Saisonale Kampagnenpreise

Erstellen Sie zeitlich begrenzte Preislisten für saisonale Kampagnen (Black Friday, Sommerschlussverkauf, Feiertagsangebote) mit Datumsbereichen, die sich automatisch aktivieren und deaktivieren. Verwenden Sie hohe Prioritätswerte, um Standardpreise während Kampagnenzeiträumen zu überschreiben.

VIP-Kundenprogramme

Erstellen Sie exklusive VIP-Preislisten mit Premium-Preisen und frühem Zugang zu neuen Produkten. Weisen Sie Kunden VIP-Listen basierend auf Lifetime-Kaufwert, Firmenattributen oder manueller Auswahl zu. Verwenden Sie höchste Priorität, um sicherzustellen, dass VIP-Preise immer gelten.

Vertragsbasierte Preisgestaltung

Verwalten Sie jährliche oder mehrjährige Kundenverträge als benannte Preislisten mit präzisen Datumsbereichen, die den Vertragsbedingungen entsprechen. Erstellen Sie separate Preislisten für jede Vertragsperiode, was einfache Vertragsverlängerung ermöglicht, indem neue Preislisten aktiviert werden, wenn alte ablaufen.

Multi-Marken-Preisgestaltung

Erstellen Sie separate Preislisten für verschiedene Marken oder Produktlinien innerhalb Ihres Katalogs. Weisen Sie Kunden markenspezifische Preislisten basierend auf ihrem autorisierten Händlerstatus oder Kaufhistorie zu, um eine ordnungsgemäße Preistrennung über mehrere Marken hinweg sicherzustellen.

Vor dem Kauf testen

Fordern Sie eine persönliche Demo an und testen Sie das Modul mit realistischen Beispieldaten im Magento-Admin und im Shop. So können Sie in Ruhe prüfen, ob es zu Ihren Anforderungen und Abläufen passt.

Technische Dokumentation

Praxisnahe Magento-2-Anleitungen, Entwicklerdokumentation und API-Referenzen für Installation, Konfiguration und Troubleshooting.

Zur Knowledge Base

Sie benötigen eine individuelle Lösung?

Ihre Anforderungen gehen über den Funktionsumfang unserer Magento 2 Module hinaus? Wir entwickeln passende Magento 2 Module und Integrationen für Ihre Geschäftsprozesse.

Jetzt anfragen