ERP konektor

B2B nopCommerce 4.90 nopCommerce 4.80

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

  1. Společně určíme, který systém je zdrojem jednotlivých dat, a připravíme jejich vzájemné mapování.
  2. V administraci zapnete jen ty oblasti synchronizace, které potřebujete.
  3. 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.
  4. 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í

VerzenopCommerceVydánoZměny
4.90.1194.9029. 10. 2026StoreExtender 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.1184.9029. 10. 2026Př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.1174.9026. 10. 2026Př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.1164.9026. 10. 2026Př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.1154.9023. 10. 2026Endpoint 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.1144.9022. 10. 2026Synchronizace 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.1134.9022. 10. 2026Logová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.1124.9022. 10. 2026Export 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.1114.9022. 10. 2026Do 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.1104.9021. 10. 2026Successful, 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.1094.9021. 10. 2026Added 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.1084.9014. 10. 2026Checkout 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.1074.9013. 10. 2026Order 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.1064.909. 10. 2026Customer-specific price sorting now caches ascending and descending product order together, allowing both directions to reuse one price calculation and candidate pass.
4.90.1044.908. 10. 2026Added 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.1034.907. 10. 2026CustomerOZ 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.1024.905. 10. 2026CustomerOZ 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.1014.902. 10. 2026CustomerOZ 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.1004.902. 10. 2026Free-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.994.902. 10. 2026Added 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.984.902. 10. 2026Extended 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.974.902. 10. 2026Customer 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.964.901. 10. 2026Store 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.954.9030. 9. 2026Order 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.944.9024. 9. 2026Category synchronization now replaces store mappings only for ERP-managed categories, preserving all store assignments of categories created individually in EshopManager/WPF.
4.90.934.9023. 9. 2026StoreDetailViewComponentExtension: ?? [] collection expression replaced with new List<>() for Azure Roslyn compatibility
4.90.924.9023. 9. 2026Store extender form corrected.
4.90.914.9022. 9. 2026StoreExtender 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.904.9021. 9. 2026Exposed 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.894.9018. 9. 2026PictureFileMapping 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.884.9016. 9. 2026Customer 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.874.9014. 9. 2026StoreExtender.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.864.909. 9. 2026Added 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.854.908. 9. 2026Shipping 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.844.908. 9. 2026Historical 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.814.903. 9. 2026OrderDTO.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.804.9031. 8. 2026Customer-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.794.9031. 8. 2026Replaced 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.784.9021. 8. 2026Endpoints for Historical data and its communication through HUB to other plugins.
4.90.774.9021. 8. 2026CustomerExternalId is now propagated through the customer-company mapping sync pipeline to the OrderApproval plugin.
4.90.764.9020. 8. 2026ProductUnitHelper: unit display order now assigned on each sync pass — IsDefault first, then ascending by AmountPerBasicUnit.
4.90.754.9017. 8. 2026Optimized 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.734.9014. 8. 2026Product 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.724.9013. 8. 2026Normalized 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.714.907. 8. 2026Moved 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.704.905. 8. 2026ProductDTO 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.694.903. 8. 2026CountryHelper 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.684.9031. 7. 2026Added 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.674.9029. 7. 2026Product-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.664.9027. 7. 2026Corrected 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.654.9024. 7. 2026Renamed 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.644.9023. 7. 2026OrderDTO 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.634.9023. 7. 2026Added 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.624.9023. 7. 2026Version bump
4.90.614.9021. 7. 2026SynchronizationCustomerCredentialsEnabled setting added: when enabled, DS payload UserName and Password are applied to Customer.Username and CustomerPassword on both insert and update
4.90.604.9016. 7. 2026Per-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.594.9014. 7. 2026StockUpdateDTO extended with nullable BackorderModeId; StockUpdateProcessor sets BackorderModeId on Product during stock sync (COALESCE preserves existing value when ERP sends null)
4.90.584.9010. 7. 2026AddressExtender 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.574.9010. 7. 2026Customer 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.564.9010. 7. 2026Cache 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.554.9010. 7. 2026EnvelopeFileDTO 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.544.908. 7. 2026OrderItemDTO 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.534.907. 7. 2026OP insert and post processing solving
4.90.524.906. 7. 2026Related products, Old/New price
4.90.514.902. 7. 2026ShipEnabled added to synchro; StoreMethod corrected; Shipping to GetOrderProcessor
4.90.504.902. 7. 2026Added 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.494.901. 7. 2026Customer 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.484.901. 7. 2026InfraProductDefaultsHubClient added — after product insert, newly created product IDs are sent to InfraCore via InfraCoreApplyProductDefaults hub key to set IC-specific product defaults
4.90.474.9030. 6. 2026Order 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.464.9030. 6. 2026Order processor read StoreExtender properly
4.90.454.9030. 6. 2026Synchronization of In Stock amount to range of availability
4.90.444.9029. 6. 2026DataSynchronization 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.434.9029. 6. 2026Product 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.424.9029. 6. 2026Price list administration now uses a server-side paged grid with name and code search instead of rendering all price lists at once
4.90.414.9029. 6. 2026Price 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.404.9029. 6. 2026Phase 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.394.9028. 6. 2026Short description added to sync
4.90.384.9026. 6. 2026ProductDTO 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.374.9025. 6. 2026EnvelopeProductDTO extended with LecturerProductMappings list; LecturerHubClient dispatches lecturer-product mapping sync to Lecturer plugin via hub; ProductProcessor calls mapping sync after lecturer sync
4.90.364.9024. 6. 2026ProductToProductRelationshipDto extended with nullable Order field; AlternativeRelationshipSyncer sets and updates DisplayOrder on RelatedProduct rows
4.90.354.9024. 6. 2026Customer synchronization mirrors CustomerExtender ICO into the shared IČO customer attribute when the attribute exists
4.90.344.9024. 6. 2026CustomerCompany nahradni plneni percentage DTO changed to decimal for shared hub synchronization
4.90.334.9024. 6. 2026StoreContainerHelper 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.324.9024. 6. 2026Added shared hub query for CustomerExtender lookup by parent external IDs
4.90.314.9024. 6. 2026UrlRecordHelper: URL slug uniqueness enforced via ValidateSeNameAsync — duplicate product names now get unique slugs (-2, -3, ...) instead of colliding
4.90.304.9023. 6. 2026Improved migrations.
4.90.294.9020. 6. 2026Přidání zpracování stavu skladů na ProductEndpointu
4.90.284.9020. 6. 2026Rebuild
4.90.274.9020. 6. 2026Customer 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.264.9019. 6. 2026Order sync exports the SplitOrderByVat order attribute in CustomValues
4.90.254.9018. 6. 2026Order 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.244.9017. 6. 2026AddressExtender.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.234.9017. 6. 2026Shared hub models implementation
4.90.224.9017. 6. 2026AddressDTO 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.214.9016. 6. 2026New AddressAttribute IsDisabled | Address disabling instead of deleting | Checkout factory disabled addreses filtering | CustomerCompanyAddressMapping hub
4.90.204.9016. 6. 2026Default priceList load fix.
4.90.194.9015. 6. 2026Category sync: StoreCategoryDTO added; EnvelopeCategoryDTO extended with StoreCategories list; store-category mapping now driven by dedicated StoreCategories dataset instead of StoreExternalID on CategoryDTO
4.90.184.9015. 6. 2026SegmentContainerHelper 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.174.907. 6. 2026Customer 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.164.904. 6. 2026Child products now carry unique ExternalERPID — parent-to-child attribute/tag propagation removed; VariantHubClient/InfraCore tracking replaced by standard ProductExtender; inheritance tables dropped
4.90.154.904. 6. 2026Parent tags and spec attrs are propagated to child products on sync; child-specific attrs are preserved via inheritance tracking tables
4.90.144.903. 6. 2026ProductContainerHelper 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.134.903. 6. 2026ERP 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.124.903. 6. 2026Logo fix
4.90.114.9027. 5. 2026Product relationship synced
4.90.104.9025. 5. 2026SpecificationAttributeDto IDs (ProductId, SpecificationAttributeId, SpecificationAttributeOptionId) changed from Guid to nullable string
4.90.94.9022. 5. 2026Categry synchro controller loggin
4.90.84.9022. 5. 2026CustomerCompanyCustomerMappingDTO added to envelope; processor resolves external IDs and dispatches mappings to NahradniPlneni hub
4.90.74.9020. 5. 2026New IPCommHub registry
4.90.64.9018. 5. 2026Some names removed
4.90.54.9018. 5. 2026ProductManufacturerPartNumber is not unique
4.90.44.9015. 5. 2026Added ProductTagExtender entity and migration plus DTOs and whole synchro process
4.90.34.9014. 5. 2026Synchronization of Products Specific attributes added.
4.90.24.9013. 5. 2026Synchronization of CustomerCompanies added.
4.80.214.8016. 4. 2026Proudct update works now
4.80.204.8030. 3. 2026Customer SalesRepresentatives working
4.80.194.8026. 3. 2026Processor for SalesRepresentative introduced
4.80.184.8025. 3. 2026Address delete iteration to one by one (foreign keys)
4.80.174.8025. 3. 2026Synchro of SR called
4.80.164.8025. 3. 2026Migration corrected and build error solved
4.80.144.8025. 3. 2026Customer Username&email not inserted/updated
4.80.134.8024. 3. 2026Store extender extended with Name properties
4.80.124.8012. 3. 2026Price list IsDefault removed (working with Store.DefaultPriceList
4.80.114.805. 3. 2026StoreExtender-synchro testing
4.80.104.805. 3. 2026StoreExtender index removed
4.80.94.805. 3. 2026New StoreExtender added
4.80.84.8025. 2. 2026Attachment plugin decoupled
4.80.74.8030. 1. 2026New settings
4.80.64.8028. 1. 2026Extended settings for each section
4.80.34.8028. 11. 2025Plugin structure refactor.
4.80.24.805. 11. 2025Oprava tlacitka
4.80.14.805. 11. 2025Iniciální verze pro Nop Commerce 4.80

Nenašli jste, co potřebujete?

Rozšíření rádi upravíme nebo vyvineme nové přesně pro váš e-shop.

Domluvit konzultaci