ERP konektor
Propojte e-shop se svým ERP – Money S5, Money S4, Money S3, ABRA, Helios, MRP, Pohoda a další. Produkty, ceníky, zákazníci i objednávky se synchronizují automaticky a bez ručního přepisování.
E-shop a ERP konečně se stejnými daty
Ruční přenášení produktů, cen a objednávek mezi e-shopem a účetním či skladovým systémem je pomalé a plné chyb. ERP konektor propojí nopCommerce s vaším ERP a pomocí samostatných modulů synchronizuje katalog, zákazníky, ceníky a cenové úrovně, soubory, objednávky i historická data. Každou oblast zapínáte zvlášť a všechny operace máte přehledně v administraci.
E-shop umíme napojit na většinu ERP systémů používaných v Česku a na Slovensku: Money S5, Money S4, Money S3, ABRA, Helios, MRP, Pohoda a další. Pokud váš systém v seznamu nevidíte, ozvěte se, napojení připravíme na míru.
Jak to funguje
- Společně určíme, který systém je zdrojem jednotlivých dat, a připravíme jejich vzájemné mapování.
- V administraci zapnete jen ty oblasti synchronizace, které potřebujete.
- ERP předává data e-shopu a konektor je zapracuje do katalogu, zákazníků, ceníků i objednávek. Objednávky z e-shopu naopak putují zpět do ERP.
- Výsledky a podrobnosti každé operace zkontrolujete na řídicím panelu.
Pro koho je určen
Pro e-shopy, které vedou sklad, ceny nebo účetnictví v ERP a chtějí mít e-shop vždy aktuální bez ruční práce. Hodí se pro B2C i B2B obchody s individuálními ceníky a velkým sortimentem.
Přínosy
- Napojení na Money S5, S4, S3, ABRA, Helios, MRP, Pohodu a další
- Automatická synchronizace katalogu, zákazníků i objednávek
- Ceníky a cenové úrovně přímo z ERP
- Každou oblast synchronizace zapnete samostatně
- Přehled všech operací na řídicím panelu
- Konec ručního přepisování dat mezi systémy
Historie verzí
| Verze | nopCommerce | Vydáno | Změny |
|---|---|---|---|
| 4.90.119 | 4.90 | 29. 10. 2026 | StoreExtender lze nově v administraci navázat na jednu volitelnou výchozí zákaznickou roli obchodu. | Přidáno volitelné hromadné doplňování výchozích rolí obchodů při vložení i aktualizaci synchronizovaných zákazníků, kategorií a produktů. | Přiřazování vychází z vlastního customer-store mappingu a nativních store mappingů kategorií a produktů; doplňuje pouze chybějící role a stávající role neodebírá. |
| 4.90.118 | 4.90 | 29. 10. 2026 | Přidán Hub dotaz pro nalezení první platné delivery adresy zákazníka podle AddressExtenderu. | Výběr respektuje stejné podmínky jako nabídka delivery adres v checkoutu: vazbu adresy na zákazníka, typ Delivery, platnost adresy a vyplněné externí ERP ID. |
| 4.90.117 | 4.90 | 26. 10. 2026 | Přidána volitelná synchronizace vazeb zákazníků na obchody z datasetu StoreCustomers do nové tabulky HEDR_CustomerStoreMapping. | Synchronizace zpracovává celý payload zákazníka najednou, bezpečně zachovává existující vazby při prázdných nebo nerozpoznaných datech a změny zapisuje dávkově. | Přidáno volitelné omezení přihlášení synchronizovaných zákazníků pouze do obchodů, na které jsou mapováni. |
| 4.90.116 | 4.90 | 26. 10. 2026 | Přidán bezpečný Hub dotaz pro načtení DefaultWarehouseID ze StoreExtenderu aktuálního storu bez přímé závislosti ostatních pluginů na DataSynchro. |
| 4.90.115 | 4.90 | 23. 10. 2026 | Endpoint GetManualRegistrations nyní do dat ručně registrovaného zákazníka pro S5 zahrnuje také hodnotu customer atributu Poznámka. |
Starší verze (127)
| 4.90.114 | 4.90 | 22. 10. 2026 | Synchronizace vazeb kategorií na obchody nyní načítá všechny kategorie bez omezení podle ACL, publikování a aktuálního background nebo guest zákazníka. | Kategorie omezené zákaznickými rolemi proto již nejsou při obnově store mappingů chybně přeskočeny. |
| 4.90.113 | 4.90 | 22. 10. 2026 | Logování synchronizace kategorií a jejich vazeb na obchody bylo sjednoceno do souboru DS_Categories a rozšířeno o podrobné výsledky hledání, vložení, aktualizace, odstranění a vytvoření store mappingů. | Do Elasticsearch se nově zapisují korelované souhrny mapování kategorií na obchody a samostatné chyby pro nerozpoznaná externí ID, chybějící extendery a neplatné vazby. | Původní způsob úplného nahrazení vazeb kategorií na obchody zůstává zachovaný; nové diagnostické záznamy přesně uvádějí, které vazby byly hledány, odstraněny, vytvořeny nebo přeskočeny. | Chyba automatického přiřazení rolí při insertu již nezanechá novou kategorii nebo produkt bez ACL vazeb a chyba u jednoho zákazníka nezastaví přiřazení rolí ostatním zákazníkům. |
| 4.90.112 | 4.90 | 22. 10. 2026 | Export objednávky do ERP použije finální dodací adresu pouze tehdy, pokud ji explicitně označil checkout pluginu OrderInProgress a adresa má platný AddressExtender s externím ERP ID. | U běžných objednávek zůstává beze změny původní bezpečné vyhodnocení adresy z generic atributu a následné porovnání adres. |
| 4.90.111 | 4.90 | 22. 10. 2026 | Do administrace byly přidány samostatné vícenásobné výběry rolí, které se automaticky přiřadí nově vloženým zákazníkům, kategoriím a produktům ze synchronizace. | Nastavené role se ověřují proti existujícím rolím nopCommerce a použijí se pouze při vložení nového záznamu; aktualizace synchronizovaných záznamů tato přiřazení nepřidávají, neodebírají ani nesjednocují. | Přiřazení ACL rolí produktům pokrývá vytváření standardních a seskupených produktů i variant; prázdný výběr rolí ponechá novou entitu bez dodatečného omezení. |
| 4.90.110 | 4.90 | 21. 10. 2026 | Successful, failed and skipped synchronization summaries now include structured Elasticsearch run statistics with start and completion timestamps, processed and changed item counts, and correlated detail-error totals. | Elasticsearch run summaries now include a queryable received-data breakdown for products, customers, categories, stores, files, historical data, price lists and orders. | Synchronization details in administration now display the structured Elasticsearch statistics while existing TXT logging remains unchanged. |
| 4.90.109 | 4.90 | 21. 10. 2026 | Added optional Elasticsearch logging with encrypted Basic Auth credentials while preserving the existing TXT logs. | Synchronization history now uses a correlation ID and writes structured completion events to a dedicated Elasticsearch index. | The synchronization detail page can query correlated Elasticsearch events and link to the configured Kibana UI. | Detailed correlated Elasticsearch error events now cover products, variants, product metadata, categories, customers, stores, files and images, orders, price lists and price levels, and historical datasets. | Price-list persistence callbacks now use awaited Task delegates so their exceptions are observable and can be logged reliably. |
| 4.90.108 | 4.90 | 14. 10. 2026 | Checkout delivery addresses are now deduplicated by their valid AddressExtender ExternalID, preventing multiple nopCommerce Address rows for the same ERP address from being displayed more than once. | Delivery-address synchronization now reuses one canonical valid Address per ExternalID and only inserts missing customer-address mappings, preventing new duplicate Address and AddressExtender records. |
| 4.90.107 | 4.90 | 13. 10. 2026 | Order export now omits the synthetic shipping order item when the final shipping amount stored on the nopCommerce order is zero, while preserving ShippingMethodID for ERP. | Order export logging now records whether the shipping item was added and the stored shipping amounts including and excluding tax. |
| 4.90.106 | 4.90 | 9. 10. 2026 | Customer-specific price sorting now caches ascending and descending product order together, allowing both directions to reuse one price calculation and candidate pass. |
| 4.90.104 | 4.90 | 8. 10. 2026 | Added a five-minute cache for complete customer-specific final-price maps used by catalog price sorting and filtering. | Repeated ascending/descending price sorting and paging now reuse the same calculated prices while preserving the complete price pipeline and synchronization cache invalidation. |
| 4.90.103 | 4.90 | 7. 10. 2026 | CustomerOZ company-customer relations are now dispatched through the shared customer-company mapping hub flow used by the other dependent plugins. | OZ-to-company synchronization now processes every resolvable relation and logs invalid or unresolved representative identifiers instead of rejecting the complete dataset. |
| 4.90.102 | 4.90 | 5. 10. 2026 | CustomerOZ synchronization now processes ERP customer, company, OZ-to-company and company-to-customer datasets independently and marks only the dataset present in the current payload as authoritative. | Sales representatives are now obtained from the Customers dataset through IsOZ, matching the ERP mapping instead of requiring a separate OZs dataset. | Invalid, unresolved or absent CustomerOZ datasets are skipped without deleting previously synchronized data, and a versioned Hub key prevents partial-dataset payloads from reaching the former full-snapshot consumer. |
| 4.90.101 | 4.90 | 2. 10. 2026 | CustomerOZ synchronization now requires at least one valid OZ-to-company mapping, preventing unrelated dataset partitions from deleting existing representatives, companies and mappings while still allowing existing representatives to be resolved through CustomerExtender when the OZ customer dataset is absent. |
| 4.90.100 | 4.90 | 2. 10. 2026 | Free-shipping customer synchronization now skips null, empty and effectively empty datasets instead of treating them as an authoritative empty snapshot. | Existing DopravaZdarma role assignments are preserved when another partitioned customer dataset is synchronized without free-shipping customer IDs. |
| 4.90.99 | 4.90 | 2. 10. 2026 | Added authenticated GetManualRegistrations and ProcessManualRegistrationResults endpoints for exporting manually registered customers to ERP and accepting ERP import results. | Successful ERP results idempotently create or update CustomerExtender and billing/delivery AddressExtender records. | Manual registrations now receive placeholder extenders immediately, allowing their billing and delivery addresses to be used in checkout before ERP returns external IDs; pending exports also repair missing placeholders from earlier registrations. | Customers waiting for ERP import are protected from orphan cleanup. | Extended registration ICO lookup through the Hub to cover addresses managed by AddressExtender in addition to CustomerExtender records. |
| 4.90.98 | 4.90 | 2. 10. 2026 | Extended the existing customer synchronization envelope with a complete FreeShippingCustomers list containing CustomerExternalId values from ERP. | Added optional free-shipping synchronization that resolves external IDs through CustomerExtender and dispatches the resulting nopCommerce customer IDs through the shared inter-plugin Hub. | An empty FreeShippingCustomers list is treated as an authoritative snapshot and unmatched external IDs are reported in the customer synchronization log. |
| 4.90.97 | 4.90 | 2. 10. 2026 | Customer synchronization now publishes a complete CustomerOZ snapshot containing sales representatives, customer companies, representative-company assignments and company-customer assignments. | CustomerOZ synchronization also dispatches empty snapshots so relations removed from ERP are removed from the CustomerOZ plugin. | OZMappingDTO now accepts the direct ERP relation CustomerOZID to CustomerCompanyExternalId instead of the former CustomerOZID to AssignedCustomerID relation. | CustomerOZ representative-company assignments are no longer inferred through an assigned customer; company-customer assignments are populated only from the explicit CustomerCompanyCustomerMappings payload. |
| 4.90.96 | 4.90 | 1. 10. 2026 | Store synchronization no longer overwrites StoreExtender default payment and shipment IDs or names. | Default payment and shipment IDs and names can now be edited and saved manually for the selected StoreExtender from store administration. |
| 4.90.95 | 4.90 | 30. 9. 2026 | Order export: item Price now taken from OrderItem.UnitPriceExclTax (price without VAT actually charged at checkout) instead of catalog Product.Price. | Order export: VatRateValue now derived from order item prices (incl/excl tax) snapped to Order.TaxRates instead of ITaxService with the API request's guest customer, which always returned 0. | Order export: 'Doprava' item now sent without VAT (OrderShippingExclTax) and with its VatRateValue filled. | Order export: expanded (attendee) items now keep VatRateValue. |
| 4.90.94 | 4.90 | 24. 9. 2026 | Category synchronization now replaces store mappings only for ERP-managed categories, preserving all store assignments of categories created individually in EshopManager/WPF. |
| 4.90.93 | 4.90 | 23. 9. 2026 | StoreDetailViewComponentExtension: ?? [] collection expression replaced with new List<>() for Azure Roslyn compatibility |
| 4.90.92 | 4.90 | 23. 9. 2026 | Store extender form corrected. |
| 4.90.91 | 4.90 | 22. 9. 2026 | StoreExtender store assignment fixed — store ID now read from URL query string instead of HTTP store context, so editing any store correctly reads and saves its own extender assignment | StoreExtender.OrderPrefix added — per-store prefix prepended to OrderNumber on ERP export; migration included | StoreExtender dropdown now shows ExternalName in parentheses alongside the ExternalID |
| 4.90.90 | 4.90 | 21. 9. 2026 | Exposed checkout address filtering through a shared selector so custom order completion pages use the same AddressExtender billing and delivery rules as the standard checkout. | Centralized the managed checkout attribute names used by order synchronization and custom checkout forms. |
| 4.90.89 | 4.90 | 18. 9. 2026 | PictureFileMapping table (HEDR_DS_PictureFileMapping) added — ERP FileId is now tracked in NOP so repeated syncs skip binary loads for unchanged images | FileDTO extended with FileId (ERP identity) and DisplayOrder (ERP-controlled image ordering) | Image sync algorithm rewritten: FileId lookup → SHA256 hash compare → skip/UPDATE/INSERT; binary data loaded only on actual content change | ProductPicture.DisplayOrder updated on every sync pass to match ERP-supplied order, not only on INSERT | Alt and title attributes preserved when updating picture content or metadata | Dead upload-files endpoint and FileTypeEnum removed; FileContainerHelper.ProcessFiles simplified to void fire-and-forget |
| 4.90.88 | 4.90 | 16. 9. 2026 | Customer synchronization sends newly inserted regular customer and sales representative IDs to WIPCC for availability role assignment. An administration setting can include existing customers processed by updates. |
| 4.90.87 | 4.90 | 14. 9. 2026 | StoreExtender.DefaultStoreID and DefaultStoreName renamed to DefaultWarehouseID and DefaultWarehouseName (DB migration included) | SynchroStoreService.FillProperties saveFunction changed from Action to Func<Task> — Insert/Update is now properly awaited | Duplicate property assignments in FillProperties removed | ResolveEntityType extracted to shared ProductEnvelopeHelper to remove duplicate implementation in ProductProcessor and SynchroProductJobService |
| 4.90.86 | 4.90 | 9. 9. 2026 | Added provider-neutral indexes for customer-to-company mapping derivation through CustomerExtender, AddressExtender and CustomerAddresses relations. | CustomerExtender.ExternalParentID is now stored as a bounded string so it can be indexed on both SQL Server and PostgreSQL. | Address-derived customer-company mappings now deduplicate address-to-company relations and validate company ambiguity in the database before materializing results. |
| 4.90.85 | 4.90 | 8. 9. 2026 | Shipping addresses with a CustomerID that has no matching CustomerExtender row are now redirected to unmapped (company-based) processing instead of being silently dropped; a warning is written to the address log per affected CustomerID. |
| 4.90.84 | 4.90 | 8. 9. 2026 | Historical data envelope now dispatches HistoricalOrderItems as a separate flat list via dedicated SyncHistoricalOrderItems hub key. | ExternalERPOrderNumber and ExternalERPInvoiceNumber unified across hub DTOs; DS plugin hub clients updated accordingly. | CustomerAddressMapping rows are now deleted when an address is invalidated for a customer during shipping address synchronization. |
| 4.90.81 | 4.90 | 3. 9. 2026 | OrderDTO.Note now contains only the custom order-note checkout attribute; requested delivery date and customer order number remain in their dedicated fields. | Exported order notes are normalized to plain text by decoding HTML entities and line-break separators while preserving Czech diacritics. |
| 4.90.80 | 4.90 | 31. 8. 2026 | Customer-company mappings for delivery-address contacts are now derived from synchronized CustomerExtender, AddressExtender and CustomerAddresses database relations before the complete mapping snapshot is dispatched. | Only unambiguous derived company relations are accepted; cyclic address ownership is ignored and explicit mappings remain preserved. | Customer-company address synchronization now uses a filtered flat LINQ lookup with deterministic address selection and compact unresolved-address logging. |
| 4.90.79 | 4.90 | 31. 8. 2026 | Replaced SQL Server-specific raw SQL and ADO.NET operations in category, customer, address, order and product synchronization with provider-neutral LinqToDB queries. | Tax-category loading and targeted updates now use mapped nopCommerce entities while preserving conditional field-update behavior and database-side execution on SQL Server and PostgreSQL. |
| 4.90.78 | 4.90 | 21. 8. 2026 | Endpoints for Historical data and its communication through HUB to other plugins. |
| 4.90.77 | 4.90 | 21. 8. 2026 | CustomerExternalId is now propagated through the customer-company mapping sync pipeline to the OrderApproval plugin. |
| 4.90.76 | 4.90 | 20. 8. 2026 | ProductUnitHelper: unit display order now assigned on each sync pass — IsDefault first, then ascending by AmountPerBasicUnit. |
| 4.90.75 | 4.90 | 17. 8. 2026 | Optimized final-price sorting and filtering for large catalog categories by batch-preloading native tier-price, product-discount, category and manufacturer inputs before the unchanged complete price orchestrator is executed. | Added an optional price-pipeline batch-preloader contract so price providers and modifiers can eliminate per-product database queries without changing their pricing rules or precedence. | Native discount lookups are skipped only for catalog products that a conservative batch analysis proved have no product, category or manufacturer discount mapping; all providers and modifiers still receive the original complete price-calculation context. |
| 4.90.73 | 4.90 | 14. 8. 2026 | Product URL slugs are now consistently transliterated to ASCII without diacritics on insert and update, independently of the global Unicode URL setting. | Product URL updates now use the synchronized DTO name and repair existing active slugs containing diacritics while preserving nopCommerce uniqueness and redirect history. | ProductDTO now accepts nullable BackorderModeId (0 = no backorders, 1 = allow quantity below zero, 2 = allow below zero and notify customer) for source-SQL-controlled behavior. | Product insert and update flows, including ERP offer variants, now synchronize StockQuantity including negative values and apply a valid BackorderModeId when supplied. |
| 4.90.72 | 4.90 | 13. 8. 2026 | Normalized synchronized product and category image metadata so ERP file extensions are converted to MIME types and duplicate filename extensions are not stored in Picture.SeoFilename. | Existing synchronized pictures with unchanged binary data now have incorrect MIME type and SEO filename metadata repaired during synchronization. |
| 4.90.71 | 4.90 | 7. 8. 2026 | Moved only the visual checkout address Company-label replacement to Hedr.Plugin.Misc.SimpleB2BCheckout | Kept the DataSynchronization checkout model factory override and its per-store setting for filtering billing and delivery addresses by AddressExtender |
| 4.90.70 | 4.90 | 5. 8. 2026 | ProductDTO now accepts an optional ERP-controlled Published state | Product insert and update flows, including ERP offer variants, apply Published when supplied while preserving the existing state for legacy payloads that omit it | Course-term publication can now be controlled by ERP cancellation, completion, capacity and date rules through the Products payload |
| 4.90.69 | 4.90 | 3. 8. 2026 | CountryHelper no longer logs one line per address for null or unresolved state/province — occurrences are counted and a single summary line is written per batch flush |
| 4.90.68 | 4.90 | 31. 7. 2026 | Added ERP manufacturer dictionary synchronization through EnvelopeProductDTO.Manufacturers and ManufacturerDTO | Added HEDR_ManufacturerExtender with unique ExternalERPID and NOPCManufacturerID mappings, including installation and update migrations | ProductDTO.ManufacturerId now synchronizes the standard nopCommerce Product_Manufacturer_Mapping relation for products and variants | Manufacturer synchronization creates, updates, repairs and removes ERP-managed manufacturers; stale product and discount mappings are removed before a manufacturer is soft-deleted | Empty manufacturer payloads and unresolved manufacturer references are handled non-destructively; manufacturer creation uses template ID 0 when no template is available |
| 4.90.67 | 4.90 | 29. 7. 2026 | Product-category synchronization now preserves multiple category assignments per product instead of overwriting the first mapping | Product-category mappings are resolved and inserted in batches; existing mappings are preserved and duplicate assignments are skipped | Category assignments can include product variants created earlier in the same synchronization request |
| 4.90.66 | 4.90 | 27. 7. 2026 | Corrected price-level matching to use PriceLevelId instead of the mapping record ID | Price calculation now evaluates customer price lists by ascending order and uses the store default price list only as the final fallback | Customer price levels are applied to each evaluated price list, including the store default price list when the customer has no assigned price list |
| 4.90.65 | 4.90 | 24. 7. 2026 | Renamed the administration navigation group from Data synchronization to Synchronization | Dashboard now shows a Latest runs tab with the most recent result for every synchronization source | Existing paged synchronization history and filters moved to a separate Run history tab |
| 4.90.64 | 4.90 | 23. 7. 2026 | OrderDTO extended with ShippingType and ShippingPickupId | Order export reads the shipping plugin system name directly from Order and requests pickup-point ID from the matching DPD, Packeta or PPL plugin through the inter-plugin hub |
| 4.90.63 | 4.90 | 23. 7. 2026 | Added structured SynchronizationLog history with source, result, timestamps, duration, processed item count and concise messages | Added an administration dashboard with 24-hour statistics, filters, color-coded results and run detail | Each synchronization process saves its structured result directly when it finishes; existing error handlers record failures | Renamed the administration navigation item from Synchro Order to Data synchronization and replaced the shopping-cart icon with a synchronization icon |
| 4.90.62 | 4.90 | 23. 7. 2026 | Version bump |
| 4.90.61 | 4.90 | 21. 7. 2026 | SynchronizationCustomerCredentialsEnabled setting added: when enabled, DS payload UserName and Password are applied to Customer.Username and CustomerPassword on both insert and update |
| 4.90.60 | 4.90 | 16. 7. 2026 | Per-payload-type log files: each hub client and processor now writes to its own log file distinguished by payload type and HH_mm_ss timestamp (e.g. SynchroCustomerJobLog_Warehouses_14_32_07); job service summary logs also timestamped to prevent concurrent-request collision |
| 4.90.59 | 4.90 | 14. 7. 2026 | StockUpdateDTO extended with nullable BackorderModeId; StockUpdateProcessor sets BackorderModeId on Product during stock sync (COALESCE preserves existing value when ERP sends null) |
| 4.90.58 | 4.90 | 10. 7. 2026 | AddressExtender insert safety check now loads existing AddressId values and inserts new extenders in batches to avoid SQL timeouts during large shipping address synchronizations |
| 4.90.57 | 4.90 | 10. 7. 2026 | Customer synchronization no longer creates or updates legacy Address Type and IsDisabled address attributes because address type and validity are now stored on AddressExtender | Removed the obsolete DataSynchronization address attribute helper registration used only by the legacy Address Type and IsDisabled synchronization flow |
| 4.90.56 | 4.90 | 10. 7. 2026 | Cache cleared after sync for product, file, price list, price level, and store endpoints — IStaticCacheManager.ClearAsync() now called at the end of ProductProcessor, FileService, PriceListService, PriceLevelService, and SynchroStoreService (category and customer already cleared cache) |
| 4.90.55 | 4.90 | 10. 7. 2026 | EnvelopeFileDTO extended with [JsonExtensionData] DataSets — any top-level JSON key not matching Files or CustomData is now captured as a raw dataset and routed through InterPluginHubRegistry by dataset name | FileService: DataSets branch added alongside CustomData; ProductExtender lookup shared between both branches; lookup dictionary now uses OrdinalIgnoreCase comparer | SynchroFileJobController: validation updated to accept payloads containing only DataSets |
| 4.90.54 | 4.90 | 8. 7. 2026 | OrderItemDTO extended with CustomValues dictionary | OrderGetProcessor: course order items (SKU VZD/POD) expanded into one OrderItemDTO per attendee via generic hub query (OrderItemHubKeys.GetItemExpansions) — DS is fully decoupled from course logic | OrderItemHubKeys and CourseAttendeeItemDTOKeys added to Hedr.Nop.Utils.Hub |
| 4.90.53 | 4.90 | 7. 7. 2026 | OP insert and post processing solving |
| 4.90.52 | 4.90 | 6. 7. 2026 | Related products, Old/New price |
| 4.90.51 | 4.90 | 2. 7. 2026 | ShipEnabled added to synchro; StoreMethod corrected; Shipping to GetOrderProcessor |
| 4.90.50 | 4.90 | 2. 7. 2026 | Added store-specific OverrideCheckoutAddressPreparationEnabled setting to switch checkout address preparation between DataSynchronization AddressExtender filtering and native nopCommerce behavior | DataSynchronization configuration now keeps synchronization enable switches global while the checkout address preparation override can be configured per store |
| 4.90.49 | 4.90 | 1. 7. 2026 | Customer address synchronization now supports AddressDTO.ICO and upserts it into the shared IČO address attribute when the attribute exists | AddressHelper synchronization was refined to keep AddressExtender creation guarded against missing ExternalID and duplicate AddressId while preserving billing and delivery address handling |
| 4.90.48 | 4.90 | 1. 7. 2026 | InfraProductDefaultsHubClient added — after product insert, newly created product IDs are sent to InfraCore via InfraCoreApplyProductDefaults hub key to set IC-specific product defaults |
| 4.90.47 | 4.90 | 30. 6. 2026 | Order export now fills DeliveryCustomerID from the selected shipping address AddressExtender ExternalID, with fallback to the previous customer parent ID when the address extender value is missing |
| 4.90.46 | 4.90 | 30. 6. 2026 | Order processor read StoreExtender properly |
| 4.90.45 | 4.90 | 30. 6. 2026 | Synchronization of In Stock amount to range of availability |
| 4.90.44 | 4.90 | 29. 6. 2026 | DataSynchronization configuration can now enable or disable managed checkout attributes for requested delivery date, customer order number and order note | Order export DTO now includes nullable RequestedDeliveryDate, CustomerOrderNumber and CustomerOrderNote values when managed checkout attributes are enabled | Managed requested delivery date checkout attribute now renders as a native date input instead of nopCommerce day/month/year dropdowns |
| 4.90.43 | 4.90 | 29. 6. 2026 | Product unit synchronization can now be enabled or disabled from DataSynchronization configuration | When product units are enabled, selected product unit AmountPerBasicUnit is applied while adding to cart so ERP order export uses the stored cart quantity without multiplying it again | Disabling product units hides unit mappings without deleting stored HEDR unit base amount data |
| 4.90.42 | 4.90 | 29. 6. 2026 | Price list administration now uses a server-side paged grid with name and code search instead of rendering all price lists at once |
| 4.90.41 | 4.90 | 29. 6. 2026 | Price list price calculation cleanup: DataSynchronization now exposes price list pricing only through the OrchestratorV2 price provider without inheriting nopCommerce PriceCalculationService | Price list price provider now skips override calculation when product, customer, or store context is missing, preventing admin price calculation null-reference errors | Customer synchronization billing address lookup now tolerates duplicate legacy addresses with the same street, city, and ZIP instead of aborting customer insert |
| 4.90.40 | 4.90 | 29. 6. 2026 | Phase 4 stale-mapping guard removed — all product mappings not in the expected set are now deleted, fixing stale synthetic-keyed SAOs accumulating when ERP changes a value (date, seat count, location) | Phase 2.5 localization syncer: SAO lookup variable named explicitly, null-forgiving operator removed | Phase 1/2 now logs a WARNING when a synthetic __name__ key is used due to missing ERP ID |
| 4.90.39 | 4.90 | 28. 6. 2026 | Short description added to sync |
| 4.90.38 | 4.90 | 26. 6. 2026 | ProductDTO extended with Description1 and Description2 (HTML supplementary descriptions from ERP) | After product sync, descriptions are sent via InfraCoreUpsertProductDescriptions hub key to InfraCore for upsert/delete of ProductAttributeMapping rows |
| 4.90.37 | 4.90 | 25. 6. 2026 | EnvelopeProductDTO extended with LecturerProductMappings list; LecturerHubClient dispatches lecturer-product mapping sync to Lecturer plugin via hub; ProductProcessor calls mapping sync after lecturer sync |
| 4.90.36 | 4.90 | 24. 6. 2026 | ProductToProductRelationshipDto extended with nullable Order field; AlternativeRelationshipSyncer sets and updates DisplayOrder on RelatedProduct rows |
| 4.90.35 | 4.90 | 24. 6. 2026 | Customer synchronization mirrors CustomerExtender ICO into the shared IČO customer attribute when the attribute exists |
| 4.90.34 | 4.90 | 24. 6. 2026 | CustomerCompany nahradni plneni percentage DTO changed to decimal for shared hub synchronization |
| 4.90.33 | 4.90 | 24. 6. 2026 | StoreContainerHelper refactored: IServiceProvider replaced by IServiceScopeFactory (safe for background tasks), duplicate log removed, fixed ObjectDisposedException risk in catch block (Logger → ILogger), registration changed to AddSingleton |
| 4.90.32 | 4.90 | 24. 6. 2026 | Added shared hub query for CustomerExtender lookup by parent external IDs |
| 4.90.31 | 4.90 | 24. 6. 2026 | UrlRecordHelper: URL slug uniqueness enforced via ValidateSeNameAsync — duplicate product names now get unique slugs (-2, -3, ...) instead of colliding |
| 4.90.30 | 4.90 | 23. 6. 2026 | Improved migrations. |
| 4.90.29 | 4.90 | 20. 6. 2026 | Přidání zpracování stavu skladů na ProductEndpointu |
| 4.90.28 | 4.90 | 20. 6. 2026 | Rebuild |
| 4.90.27 | 4.90 | 20. 6. 2026 | Customer background synchronization now creates its DI scope through IServiceScopeFactory | Customer synchronization repairs missing CustomerExtender and AddressExtender tables | Customer company address mapping uses the current AddressExtender delivery-address state |
| 4.90.26 | 4.90 | 19. 6. 2026 | Order sync exports the SplitOrderByVat order attribute in CustomValues |
| 4.90.25 | 4.90 | 18. 6. 2026 | Order sync: orders with missing CustomerExtender.ExternalID can now be sent to ERP if a hub handler permits it (CanSendOrderWithoutCustomerErpId) | Order update: CustomerExtender is automatically created on ERP response when order was sent without customer ERP ID and ERP returns CustomerID |
| 4.90.24 | 4.90 | 17. 6. 2026 | AddressExtender.DeliveryType added (enum: Unknown/Delivery/Billing); replaces Address Type custom attribute | IsDisabled custom attribute replaced by AddressExtender.IsValid | Address Type and IsDisabled attributes no longer created on install/update; cleaned up on uninstall | Sync backfills extenders for legacy addresses without one (no duplicate inserts on first sync after migration) | Checkout filters delivery by DeliveryType=Delivery+IsValid, billing by DeliveryType=Billing |
| 4.90.23 | 4.90 | 17. 6. 2026 | Shared hub models implementation |
| 4.90.22 | 4.90 | 17. 6. 2026 | AddressDTO extended with CompanyID | AddressExtender entity added (AddressId, ExternalID, IsValid) with Installation and Update migrations | AttachShippingAddressesAsync: upserts AddressExtender on sync, invalidates (IsValid=false) stale addresses not in payload | Checkout shipping address list filtered by AddressExtender.IsValid |
| 4.90.21 | 4.90 | 16. 6. 2026 | New AddressAttribute IsDisabled | Address disabling instead of deleting | Checkout factory disabled addreses filtering | CustomerCompanyAddressMapping hub |
| 4.90.20 | 4.90 | 16. 6. 2026 | Default priceList load fix. |
| 4.90.19 | 4.90 | 15. 6. 2026 | Category sync: StoreCategoryDTO added; EnvelopeCategoryDTO extended with StoreCategories list; store-category mapping now driven by dedicated StoreCategories dataset instead of StoreExternalID on CategoryDTO |
| 4.90.18 | 4.90 | 15. 6. 2026 | SegmentContainerHelper introduced — category sync now runs in its own DI scope, fixes ObjectDisposedException and missing SynchroSegmentJobLog file | Product store mapping bulk-delete guarded — BulkDeleteStoreMappingsByEntityName(Product) only runs when envelope.Stores is non-empty; prevents wiping mappings on requests without store data | Category store mapping bulk-delete guarded — BulkDeleteStoreMappingsByEntityName(Category) only runs when categories with StoreExternalID are present | Fixed unused storeExtendersDictionary in ProductProcessor — per-iteration DB query replaced by dictionary lookup | Dead variable dictionaryProductToStoreAssingmentsByProduct removed from ProductProcessor | Envelope contents logged at start of each sync (product counts per sub-list, category counts) |
| 4.90.17 | 4.90 | 7. 6. 2026 | Customer synchro: customers created without shipping address; shipping addresses processed in a dedicated pass after customer insert/update/delete; delete skipped when customer list is empty |
| 4.90.16 | 4.90 | 4. 6. 2026 | Child products now carry unique ExternalERPID — parent-to-child attribute/tag propagation removed; VariantHubClient/InfraCore tracking replaced by standard ProductExtender; inheritance tables dropped |
| 4.90.15 | 4.90 | 4. 6. 2026 | Parent tags and spec attrs are propagated to child products on sync; child-specific attrs are preserved via inheritance tracking tables |
| 4.90.14 | 4.90 | 3. 6. 2026 | ProductContainerHelper added — product sync now runs in its own DI scope (matches CustomerContainerHelper pattern) | VariantHubClient switched from IServiceProvider to IServiceScopeFactory — fixes ObjectDisposedException when Hub is called from fire-and-forget background task | Spec-attr Phase 4 scoped to only delete mappings for SAOs present in current payload — prevents delete/recreate cycle when ERP sends ID-based and name-based attrs in separate sync calls | VariantExtenderQueryAll Hub query added — spec-attr/tag processors load existing variant mappings from InfraCore even when no variants are in the current payload | GUID case-insensitive lookup (OrdinalIgnoreCase) for all product extender dicts — ERP sends same GUID in different case across ProductDTO and SpecificationAttributeDto | Guid.Empty guard added to EffectiveSaKey, EffectiveSaoKey, EffectiveTagKey — ERP sends Guid.Empty instead of null for absent IDs | parentExternalIds Guid.Empty guard added in ProductProcessor |
| 4.90.13 | 4.90 | 3. 6. 2026 | ERP offer variant support: ProductDTO extended with ParentExternalERPId and OfferItemId; VariantProductProcessor handles Pass 2 upsert and Pass 3 orphan deletion via InfraCore Hub | Helper subfolder reorganisation: Tags/, SpecificationAttributes/, Relationships/, Variants/ | Name-based fallback for SpecificationAttributes and ProductTags without ERP IDs (EffectiveSaKey, EffectiveSaoKey, EffectiveTagKey) | AlternativeRelationshipSyncer implemented — writes to RelatedProduct table; GiftRelationshipSyncer scoped to gift product IDs only to avoid conflict | ProductFactory introduced as single source of truth for Product creation from DTO |
| 4.90.12 | 4.90 | 3. 6. 2026 | Logo fix |
| 4.90.11 | 4.90 | 27. 5. 2026 | Product relationship synced |
| 4.90.10 | 4.90 | 25. 5. 2026 | SpecificationAttributeDto IDs (ProductId, SpecificationAttributeId, SpecificationAttributeOptionId) changed from Guid to nullable string |
| 4.90.9 | 4.90 | 22. 5. 2026 | Categry synchro controller loggin |
| 4.90.8 | 4.90 | 22. 5. 2026 | CustomerCompanyCustomerMappingDTO added to envelope; processor resolves external IDs and dispatches mappings to NahradniPlneni hub |
| 4.90.7 | 4.90 | 20. 5. 2026 | New IPCommHub registry |
| 4.90.6 | 4.90 | 18. 5. 2026 | Some names removed |
| 4.90.5 | 4.90 | 18. 5. 2026 | ProductManufacturerPartNumber is not unique |
| 4.90.4 | 4.90 | 15. 5. 2026 | Added ProductTagExtender entity and migration plus DTOs and whole synchro process |
| 4.90.3 | 4.90 | 14. 5. 2026 | Synchronization of Products Specific attributes added. |
| 4.90.2 | 4.90 | 13. 5. 2026 | Synchronization of CustomerCompanies added. |
| 4.80.21 | 4.80 | 16. 4. 2026 | Proudct update works now |
| 4.80.20 | 4.80 | 30. 3. 2026 | Customer SalesRepresentatives working |
| 4.80.19 | 4.80 | 26. 3. 2026 | Processor for SalesRepresentative introduced |
| 4.80.18 | 4.80 | 25. 3. 2026 | Address delete iteration to one by one (foreign keys) |
| 4.80.17 | 4.80 | 25. 3. 2026 | Synchro of SR called |
| 4.80.16 | 4.80 | 25. 3. 2026 | Migration corrected and build error solved |
| 4.80.14 | 4.80 | 25. 3. 2026 | Customer Username&email not inserted/updated |
| 4.80.13 | 4.80 | 24. 3. 2026 | Store extender extended with Name properties |
| 4.80.12 | 4.80 | 12. 3. 2026 | Price list IsDefault removed (working with Store.DefaultPriceList |
| 4.80.11 | 4.80 | 5. 3. 2026 | StoreExtender-synchro testing |
| 4.80.10 | 4.80 | 5. 3. 2026 | StoreExtender index removed |
| 4.80.9 | 4.80 | 5. 3. 2026 | New StoreExtender added |
| 4.80.8 | 4.80 | 25. 2. 2026 | Attachment plugin decoupled |
| 4.80.7 | 4.80 | 30. 1. 2026 | New settings |
| 4.80.6 | 4.80 | 28. 1. 2026 | Extended settings for each section |
| 4.80.3 | 4.80 | 28. 11. 2025 | Plugin structure refactor. |
| 4.80.2 | 4.80 | 5. 11. 2025 | Oprava tlacitka |
| 4.80.1 | 4.80 | 5. 11. 2025 | Iniciální verze pro Nop Commerce 4.80 |
Další rozšíření v kategorii B2B
Nenašli jste, co potřebujete?
Rozšíření rádi upravíme nebo vyvineme nové přesně pro váš e-shop.