@oronts/vendure-data-hub-plugin 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -1
- package/README.md +30 -8
- package/dashboard/components/pipelines/PipelineEditor.tsx +159 -5
- package/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +3 -3
- package/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +42 -4
- package/dashboard/components/pipelines/shared/StepListItem.tsx +2 -2
- package/dashboard/components/shared/CodeEditor.tsx +289 -0
- package/dashboard/components/shared/schema-form/fields/TextareaField.tsx +19 -4
- package/dashboard/components/shared/step-config/AdapterSelector.tsx +2 -2
- package/dashboard/components/shared/step-config/OperatorFieldInput.tsx +19 -0
- package/dashboard/components/shared/step-config/RouteConfigComponent.tsx +218 -29
- package/dashboard/components/shared/step-config/StepConfigPanel.tsx +37 -17
- package/dashboard/components/shared/step-config/ValidateConfigComponent.tsx +2 -2
- package/dashboard/constants/ui-dimensions.ts +2 -1
- package/dashboard/constants/ui-states.ts +1 -0
- package/dashboard/gql/graphql.ts +13 -1
- package/dashboard/hooks/use-adapter-catalog.ts +4 -32
- package/dashboard/routes/connections/ConnectionDetail.tsx +7 -1
- package/dashboard/routes/pipelines/RunDetailsPanel.tsx +1 -1
- package/dashboard/routes/pipelines/components/PipelineActionButtons.tsx +3 -3
- package/dashboard/routes/pipelines/utils/pipeline-conversion.ts +3 -5
- package/dashboard/utils/formatters.ts +6 -4
- package/dist/dashboard/components/pipelines/PipelineEditor.tsx +159 -5
- package/dist/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +3 -3
- package/dist/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +42 -4
- package/dist/dashboard/components/pipelines/shared/StepListItem.tsx +2 -2
- package/dist/dashboard/components/shared/CodeEditor.tsx +289 -0
- package/dist/dashboard/components/shared/schema-form/fields/TextareaField.tsx +19 -4
- package/dist/dashboard/components/shared/step-config/AdapterSelector.tsx +2 -2
- package/dist/dashboard/components/shared/step-config/OperatorFieldInput.tsx +19 -0
- package/dist/dashboard/components/shared/step-config/RouteConfigComponent.tsx +218 -29
- package/dist/dashboard/components/shared/step-config/StepConfigPanel.tsx +37 -17
- package/dist/dashboard/components/shared/step-config/ValidateConfigComponent.tsx +2 -2
- package/dist/dashboard/constants/ui-dimensions.ts +2 -1
- package/dist/dashboard/constants/ui-states.ts +1 -0
- package/dist/dashboard/gql/graphql.ts +13 -1
- package/dist/dashboard/hooks/use-adapter-catalog.ts +4 -32
- package/dist/dashboard/routes/connections/ConnectionDetail.tsx +7 -1
- package/dist/dashboard/routes/pipelines/RunDetailsPanel.tsx +1 -1
- package/dist/dashboard/routes/pipelines/components/PipelineActionButtons.tsx +3 -3
- package/dist/dashboard/routes/pipelines/utils/pipeline-conversion.ts +3 -5
- package/dist/dashboard/utils/formatters.ts +6 -4
- package/dist/shared/types/adapter-config.types.d.ts +148 -4
- package/dist/shared/types/adapter-config.types.d.ts.map +1 -1
- package/dist/shared/types/index.d.ts +1 -1
- package/dist/shared/types/index.d.ts.map +1 -1
- package/dist/shared/types/index.js.map +1 -1
- package/dist/shared/types/loader.types.d.ts +4 -0
- package/dist/shared/types/loader.types.d.ts.map +1 -1
- package/dist/shared/types/step.types.d.ts +6 -0
- package/dist/shared/types/step.types.d.ts.map +1 -1
- package/dist/shared/types/trigger.types.d.ts +0 -4
- package/dist/shared/types/trigger.types.d.ts.map +1 -1
- package/dist/src/adapters/registry.d.ts.map +1 -1
- package/dist/src/adapters/registry.js +2 -1
- package/dist/src/adapters/registry.js.map +1 -1
- package/dist/src/api/controllers/webhook.controller.d.ts +10 -0
- package/dist/src/api/controllers/webhook.controller.d.ts.map +1 -1
- package/dist/src/api/controllers/webhook.controller.js +50 -10
- package/dist/src/api/controllers/webhook.controller.js.map +1 -1
- package/dist/src/api/resolvers/queue.resolver.d.ts +3 -1
- package/dist/src/api/resolvers/queue.resolver.d.ts.map +1 -1
- package/dist/src/api/resolvers/queue.resolver.js +6 -5
- package/dist/src/api/resolvers/queue.resolver.js.map +1 -1
- package/dist/src/api/schema/pipeline.schema.d.ts +1 -1
- package/dist/src/api/schema/pipeline.schema.d.ts.map +1 -1
- package/dist/src/api/schema/pipeline.schema.js +4 -0
- package/dist/src/api/schema/pipeline.schema.js.map +1 -1
- package/dist/src/api/schema/test.schema.d.ts +1 -1
- package/dist/src/api/schema/test.schema.d.ts.map +1 -1
- package/dist/src/api/schema/test.schema.js +5 -1
- package/dist/src/api/schema/test.schema.js.map +1 -1
- package/dist/src/bootstrap/seed-data.js +1 -1
- package/dist/src/bootstrap/seed-data.js.map +1 -1
- package/dist/src/constants/adapter-schema-options.d.ts +65 -0
- package/dist/src/constants/adapter-schema-options.d.ts.map +1 -1
- package/dist/src/constants/adapter-schema-options.js +91 -7
- package/dist/src/constants/adapter-schema-options.js.map +1 -1
- package/dist/src/constants/builtin-adapters.d.ts +1 -1
- package/dist/src/constants/builtin-adapters.d.ts.map +1 -1
- package/dist/src/constants/builtin-adapters.js +19 -1
- package/dist/src/constants/builtin-adapters.js.map +1 -1
- package/dist/src/constants/core.d.ts +10 -0
- package/dist/src/constants/core.d.ts.map +1 -1
- package/dist/src/constants/core.js +10 -0
- package/dist/src/constants/core.js.map +1 -1
- package/dist/src/constants/defaults/webhook-defaults.d.ts +2 -0
- package/dist/src/constants/defaults/webhook-defaults.d.ts.map +1 -1
- package/dist/src/constants/defaults/webhook-defaults.js +2 -0
- package/dist/src/constants/defaults/webhook-defaults.js.map +1 -1
- package/dist/src/constants/enum-metadata.d.ts.map +1 -1
- package/dist/src/constants/enum-metadata.js +3 -0
- package/dist/src/constants/enum-metadata.js.map +1 -1
- package/dist/src/constants/hook-stage-metadata.d.ts.map +1 -1
- package/dist/src/constants/hook-stage-metadata.js +42 -0
- package/dist/src/constants/hook-stage-metadata.js.map +1 -1
- package/dist/src/constants/services.d.ts.map +1 -1
- package/dist/src/constants/services.js +7 -0
- package/dist/src/constants/services.js.map +1 -1
- package/dist/src/constants/time.d.ts +2 -0
- package/dist/src/constants/time.d.ts.map +1 -1
- package/dist/src/constants/time.js +2 -0
- package/dist/src/constants/time.js.map +1 -1
- package/dist/src/data-hub.plugin.d.ts.map +1 -1
- package/dist/src/data-hub.plugin.js +2 -2
- package/dist/src/data-hub.plugin.js.map +1 -1
- package/dist/src/entities/pipeline/pipeline-run.entity.d.ts +4 -0
- package/dist/src/entities/pipeline/pipeline-run.entity.d.ts.map +1 -1
- package/dist/src/entities/pipeline/pipeline-run.entity.js +8 -0
- package/dist/src/entities/pipeline/pipeline-run.entity.js.map +1 -1
- package/dist/src/extractors/cdc/cdc.extractor.d.ts.map +1 -1
- package/dist/src/extractors/cdc/cdc.extractor.js +7 -2
- package/dist/src/extractors/cdc/cdc.extractor.js.map +1 -1
- package/dist/src/extractors/cdc/types.d.ts +1 -1
- package/dist/src/extractors/cdc/types.d.ts.map +1 -1
- package/dist/src/extractors/extractor-handler-registry.d.ts.map +1 -1
- package/dist/src/extractors/extractor-handler-registry.js +3 -0
- package/dist/src/extractors/extractor-handler-registry.js.map +1 -1
- package/dist/src/extractors/vendure-query/helpers.d.ts +9 -4
- package/dist/src/extractors/vendure-query/helpers.d.ts.map +1 -1
- package/dist/src/extractors/vendure-query/helpers.js +98 -32
- package/dist/src/extractors/vendure-query/helpers.js.map +1 -1
- package/dist/src/extractors/vendure-query/schema.d.ts.map +1 -1
- package/dist/src/extractors/vendure-query/schema.js +13 -0
- package/dist/src/extractors/vendure-query/schema.js.map +1 -1
- package/dist/src/feeds/generators/csv-feed.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/csv-feed.generator.js +5 -4
- package/dist/src/feeds/generators/csv-feed.generator.js.map +1 -1
- package/dist/src/feeds/generators/facebook-catalog.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/facebook-catalog.generator.js +83 -114
- package/dist/src/feeds/generators/facebook-catalog.generator.js.map +1 -1
- package/dist/src/feeds/generators/feed-constants.d.ts +1 -0
- package/dist/src/feeds/generators/feed-constants.d.ts.map +1 -1
- package/dist/src/feeds/generators/feed-constants.js +1 -0
- package/dist/src/feeds/generators/feed-constants.js.map +1 -1
- package/dist/src/feeds/generators/feed-helpers.d.ts +10 -8
- package/dist/src/feeds/generators/feed-helpers.d.ts.map +1 -1
- package/dist/src/feeds/generators/feed-helpers.js +24 -4
- package/dist/src/feeds/generators/feed-helpers.js.map +1 -1
- package/dist/src/feeds/generators/feed-item-builder.d.ts +59 -0
- package/dist/src/feeds/generators/feed-item-builder.d.ts.map +1 -0
- package/dist/src/feeds/generators/feed-item-builder.js +93 -0
- package/dist/src/feeds/generators/feed-item-builder.js.map +1 -0
- package/dist/src/feeds/generators/google-shopping.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/google-shopping.generator.js +52 -64
- package/dist/src/feeds/generators/google-shopping.generator.js.map +1 -1
- package/dist/src/feeds/generators/json-feed.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/json-feed.generator.js +4 -3
- package/dist/src/feeds/generators/json-feed.generator.js.map +1 -1
- package/dist/src/feeds/generators/xml-feed.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/xml-feed.generator.js +6 -5
- package/dist/src/feeds/generators/xml-feed.generator.js.map +1 -1
- package/dist/src/gql/generated.d.ts +13 -1
- package/dist/src/gql/generated.d.ts.map +1 -1
- package/dist/src/gql/generated.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/loaders/asset/asset.loader.d.ts.map +1 -1
- package/dist/src/loaders/asset/asset.loader.js +5 -1
- package/dist/src/loaders/asset/asset.loader.js.map +1 -1
- package/dist/src/loaders/base/validation-builder.d.ts +128 -3
- package/dist/src/loaders/base/validation-builder.d.ts.map +1 -1
- package/dist/src/loaders/base/validation-builder.js +177 -6
- package/dist/src/loaders/base/validation-builder.js.map +1 -1
- package/dist/src/loaders/collection/collection.loader.d.ts.map +1 -1
- package/dist/src/loaders/collection/collection.loader.js +22 -1
- package/dist/src/loaders/collection/collection.loader.js.map +1 -1
- package/dist/src/loaders/collection/helpers.d.ts +16 -1
- package/dist/src/loaders/collection/helpers.d.ts.map +1 -1
- package/dist/src/loaders/collection/helpers.js +37 -0
- package/dist/src/loaders/collection/helpers.js.map +1 -1
- package/dist/src/loaders/customer/customer.loader.d.ts.map +1 -1
- package/dist/src/loaders/customer/customer.loader.js +13 -1
- package/dist/src/loaders/customer/customer.loader.js.map +1 -1
- package/dist/src/loaders/customer/helpers.d.ts +15 -3
- package/dist/src/loaders/customer/helpers.d.ts.map +1 -1
- package/dist/src/loaders/customer/helpers.js +188 -7
- package/dist/src/loaders/customer/helpers.js.map +1 -1
- package/dist/src/loaders/facet-value/facet-value.loader.d.ts.map +1 -1
- package/dist/src/loaders/facet-value/facet-value.loader.js +18 -0
- package/dist/src/loaders/facet-value/facet-value.loader.js.map +1 -1
- package/dist/src/loaders/facet-value/types.d.ts +1 -1
- package/dist/src/loaders/facet-value/types.js +1 -1
- package/dist/src/loaders/facet-value/types.js.map +1 -1
- package/dist/src/loaders/order/helpers.d.ts +16 -2
- package/dist/src/loaders/order/helpers.d.ts.map +1 -1
- package/dist/src/loaders/order/helpers.js +108 -0
- package/dist/src/loaders/order/helpers.js.map +1 -1
- package/dist/src/loaders/order/order.loader.d.ts +38 -0
- package/dist/src/loaders/order/order.loader.d.ts.map +1 -1
- package/dist/src/loaders/order/order.loader.js +238 -24
- package/dist/src/loaders/order/order.loader.js.map +1 -1
- package/dist/src/loaders/order/types.d.ts +10 -3
- package/dist/src/loaders/order/types.d.ts.map +1 -1
- package/dist/src/loaders/order/types.js +13 -2
- package/dist/src/loaders/order/types.js.map +1 -1
- package/dist/src/loaders/product/product.loader.d.ts.map +1 -1
- package/dist/src/loaders/product/product.loader.js +18 -2
- package/dist/src/loaders/product/product.loader.js.map +1 -1
- package/dist/src/loaders/product-variant/helpers.d.ts +20 -0
- package/dist/src/loaders/product-variant/helpers.d.ts.map +1 -0
- package/dist/src/loaders/product-variant/helpers.js +103 -0
- package/dist/src/loaders/product-variant/helpers.js.map +1 -0
- package/dist/src/loaders/product-variant/product-variant.loader.d.ts.map +1 -1
- package/dist/src/loaders/product-variant/product-variant.loader.js +76 -10
- package/dist/src/loaders/product-variant/product-variant.loader.js.map +1 -1
- package/dist/src/loaders/product-variant/types.d.ts +7 -0
- package/dist/src/loaders/product-variant/types.d.ts.map +1 -1
- package/dist/src/loaders/product-variant/types.js.map +1 -1
- package/dist/src/loaders/promotion/helpers.d.ts +29 -0
- package/dist/src/loaders/promotion/helpers.d.ts.map +1 -1
- package/dist/src/loaders/promotion/helpers.js +68 -0
- package/dist/src/loaders/promotion/helpers.js.map +1 -1
- package/dist/src/loaders/promotion/promotion.loader.d.ts.map +1 -1
- package/dist/src/loaders/promotion/promotion.loader.js +12 -2
- package/dist/src/loaders/promotion/promotion.loader.js.map +1 -1
- package/dist/src/loaders/shared-helpers.d.ts +42 -2
- package/dist/src/loaders/shared-helpers.d.ts.map +1 -1
- package/dist/src/loaders/shared-helpers.js +384 -5
- package/dist/src/loaders/shared-helpers.js.map +1 -1
- package/dist/src/operators/data/copy.operator.js +2 -2
- package/dist/src/operators/data/copy.operator.js.map +1 -1
- package/dist/src/operators/data/rename.operator.js +1 -1
- package/dist/src/operators/data/rename.operator.js.map +1 -1
- package/dist/src/operators/helpers.d.ts.map +1 -1
- package/dist/src/operators/helpers.js +11 -1
- package/dist/src/operators/helpers.js.map +1 -1
- package/dist/src/operators/operator-runtime-registry.d.ts +2 -2
- package/dist/src/operators/operator-runtime-registry.d.ts.map +1 -1
- package/dist/src/operators/operator-runtime-registry.js +1 -1
- package/dist/src/operators/operator-runtime-registry.js.map +1 -1
- package/dist/src/operators/script/script.operators.d.ts.map +1 -1
- package/dist/src/operators/script/script.operators.js +9 -3
- package/dist/src/operators/script/script.operators.js.map +1 -1
- package/dist/src/runtime/config-types.d.ts +6 -0
- package/dist/src/runtime/config-types.d.ts.map +1 -1
- package/dist/src/runtime/executor-helpers.d.ts +77 -0
- package/dist/src/runtime/executor-helpers.d.ts.map +1 -0
- package/dist/src/runtime/executor-helpers.js +143 -0
- package/dist/src/runtime/executor-helpers.js.map +1 -0
- package/dist/src/runtime/executors/export.executor.d.ts +3 -1
- package/dist/src/runtime/executors/export.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/export.executor.js +15 -3
- package/dist/src/runtime/executors/export.executor.js.map +1 -1
- package/dist/src/runtime/executors/exporters/export-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/exporters/export-handler-registry.js +5 -0
- package/dist/src/runtime/executors/exporters/export-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/exporters/export-handler.types.d.ts +3 -0
- package/dist/src/runtime/executors/exporters/export-handler.types.d.ts.map +1 -1
- package/dist/src/runtime/executors/exporters/export-handler.types.js.map +1 -1
- package/dist/src/runtime/executors/exporters/export-helpers.d.ts +1 -0
- package/dist/src/runtime/executors/exporters/export-helpers.d.ts.map +1 -1
- package/dist/src/runtime/executors/exporters/export-helpers.js +32 -3
- package/dist/src/runtime/executors/exporters/export-helpers.js.map +1 -1
- package/dist/src/runtime/executors/exporters/http-export.handler.js +4 -4
- package/dist/src/runtime/executors/exporters/http-export.handler.js.map +1 -1
- package/dist/src/runtime/executors/extractors/file-extract.handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/extractors/file-extract.handler.js +33 -13
- package/dist/src/runtime/executors/extractors/file-extract.handler.js.map +1 -1
- package/dist/src/runtime/executors/extractors/memory-extract.handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/extractors/memory-extract.handler.js +17 -9
- package/dist/src/runtime/executors/extractors/memory-extract.handler.js.map +1 -1
- package/dist/src/runtime/executors/feed.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/feed.executor.js +11 -2
- package/dist/src/runtime/executors/feed.executor.js.map +1 -1
- package/dist/src/runtime/executors/feeds/feed-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/feeds/feed-handler-registry.js +4 -0
- package/dist/src/runtime/executors/feeds/feed-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/gate.executor.d.ts +3 -1
- package/dist/src/runtime/executors/gate.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/gate.executor.js +47 -26
- package/dist/src/runtime/executors/gate.executor.js.map +1 -1
- package/dist/src/runtime/executors/loaders/channel-handler.d.ts +3 -1
- package/dist/src/runtime/executors/loaders/channel-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/channel-handler.js +14 -4
- package/dist/src/runtime/executors/loaders/channel-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/collection-handler.d.ts +14 -2
- package/dist/src/runtime/executors/loaders/collection-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/collection-handler.js +93 -22
- package/dist/src/runtime/executors/loaders/collection-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-group-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-group-handler.js +2 -27
- package/dist/src/runtime/executors/loaders/customer-group-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-handler.d.ts +6 -1
- package/dist/src/runtime/executors/loaders/customer-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-handler.js +95 -13
- package/dist/src/runtime/executors/loaders/customer-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/deletion-handler.d.ts +39 -0
- package/dist/src/runtime/executors/loaders/deletion-handler.d.ts.map +1 -0
- package/dist/src/runtime/executors/loaders/deletion-handler.js +414 -0
- package/dist/src/runtime/executors/loaders/deletion-handler.js.map +1 -0
- package/dist/src/runtime/executors/loaders/facet-handler.d.ts +18 -3
- package/dist/src/runtime/executors/loaders/facet-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/facet-handler.js +127 -26
- package/dist/src/runtime/executors/loaders/facet-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/index.d.ts +2 -0
- package/dist/src/runtime/executors/loaders/index.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/index.js +5 -1
- package/dist/src/runtime/executors/loaders/index.js.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-adjust-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-adjust-handler.js +2 -28
- package/dist/src/runtime/executors/loaders/inventory-adjust-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-handler.d.ts +2 -1
- package/dist/src/runtime/executors/loaders/inventory-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-handler.js +8 -6
- package/dist/src/runtime/executors/loaders/inventory-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/loader-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/loader-handler-registry.js +117 -3
- package/dist/src/runtime/executors/loaders/loader-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/loaders/order-handler.d.ts +31 -3
- package/dist/src/runtime/executors/loaders/order-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/order-handler.js +194 -14
- package/dist/src/runtime/executors/loaders/order-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/order-upsert-handler.d.ts +15 -0
- package/dist/src/runtime/executors/loaders/order-upsert-handler.d.ts.map +1 -0
- package/dist/src/runtime/executors/loaders/order-upsert-handler.js +89 -0
- package/dist/src/runtime/executors/loaders/order-upsert-handler.js.map +1 -0
- package/dist/src/runtime/executors/loaders/payment-method-handler.d.ts +11 -2
- package/dist/src/runtime/executors/loaders/payment-method-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/payment-method-handler.js +78 -33
- package/dist/src/runtime/executors/loaders/payment-method-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/product-handler.d.ts +14 -0
- package/dist/src/runtime/executors/loaders/product-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/product-handler.js +91 -19
- package/dist/src/runtime/executors/loaders/product-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/promotion-handler.d.ts +9 -2
- package/dist/src/runtime/executors/loaders/promotion-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/promotion-handler.js +115 -68
- package/dist/src/runtime/executors/loaders/promotion-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/shared-lookups.d.ts +35 -1
- package/dist/src/runtime/executors/loaders/shared-lookups.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/shared-lookups.js +102 -0
- package/dist/src/runtime/executors/loaders/shared-lookups.js.map +1 -1
- package/dist/src/runtime/executors/loaders/shipping-method-handler.d.ts +11 -6
- package/dist/src/runtime/executors/loaders/shipping-method-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/shipping-method-handler.js +168 -61
- package/dist/src/runtime/executors/loaders/shipping-method-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/stock-location-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/stock-location-handler.js +2 -27
- package/dist/src/runtime/executors/loaders/stock-location-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/variant-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/variant-handler.js +85 -12
- package/dist/src/runtime/executors/loaders/variant-handler.js.map +1 -1
- package/dist/src/runtime/executors/sink-handler-registry.d.ts +7 -11
- package/dist/src/runtime/executors/sink-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/sink-handler-registry.js +374 -8
- package/dist/src/runtime/executors/sink-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/sink.executor.d.ts +1 -0
- package/dist/src/runtime/executors/sink.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/sink.executor.js +82 -12
- package/dist/src/runtime/executors/sink.executor.js.map +1 -1
- package/dist/src/runtime/executors/transform.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/transform.executor.js +31 -2
- package/dist/src/runtime/executors/transform.executor.js.map +1 -1
- package/dist/src/runtime/orchestration/graph-executor.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/graph-executor.js +3 -2
- package/dist/src/runtime/orchestration/graph-executor.js.map +1 -1
- package/dist/src/runtime/orchestration/helpers.d.ts +4 -1
- package/dist/src/runtime/orchestration/helpers.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/helpers.js +7 -2
- package/dist/src/runtime/orchestration/helpers.js.map +1 -1
- package/dist/src/runtime/orchestration/linear-executor.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/linear-executor.js +3 -2
- package/dist/src/runtime/orchestration/linear-executor.js.map +1 -1
- package/dist/src/runtime/orchestration/replay-executor.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/replay-executor.js +3 -2
- package/dist/src/runtime/orchestration/replay-executor.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.js +12 -12
- package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.js +12 -12
- package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/load-step.strategy.js +2 -2
- package/dist/src/runtime/orchestration/step-strategies/load-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.js +12 -12
- package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.js +4 -3
- package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/transform-step.strategy.js +4 -4
- package/dist/src/runtime/orchestration/step-strategies/transform-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/types.d.ts +1 -0
- package/dist/src/runtime/orchestration/types.d.ts.map +1 -1
- package/dist/src/runtime/utils.d.ts.map +1 -1
- package/dist/src/runtime/utils.js +8 -1
- package/dist/src/runtime/utils.js.map +1 -1
- package/dist/src/sdk/adapters/queue/index.d.ts +1 -0
- package/dist/src/sdk/adapters/queue/index.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/index.js +1 -0
- package/dist/src/sdk/adapters/queue/index.js.map +1 -1
- package/dist/src/sdk/adapters/queue/internal.adapter.d.ts +32 -0
- package/dist/src/sdk/adapters/queue/internal.adapter.d.ts.map +1 -0
- package/dist/src/sdk/adapters/queue/internal.adapter.js +68 -0
- package/dist/src/sdk/adapters/queue/internal.adapter.js.map +1 -0
- package/dist/src/sdk/adapters/queue/queue-adapter.registry.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/queue-adapter.registry.js +3 -0
- package/dist/src/sdk/adapters/queue/queue-adapter.registry.js.map +1 -1
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js +2 -1
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js.map +1 -1
- package/dist/src/sdk/constants.d.ts +2 -2
- package/dist/src/sdk/constants.d.ts.map +1 -1
- package/dist/src/sdk/dsl/pipeline-builder.d.ts +8 -2
- package/dist/src/sdk/dsl/pipeline-builder.d.ts.map +1 -1
- package/dist/src/sdk/dsl/pipeline-builder.js +115 -19
- package/dist/src/sdk/dsl/pipeline-builder.js.map +1 -1
- package/dist/src/sdk/dsl/step-configs.d.ts +73 -7
- package/dist/src/sdk/dsl/step-configs.d.ts.map +1 -1
- package/dist/src/services/events/consumer-discovery.d.ts.map +1 -1
- package/dist/src/services/events/consumer-discovery.js +13 -11
- package/dist/src/services/events/consumer-discovery.js.map +1 -1
- package/dist/src/services/events/consumer-lifecycle.d.ts.map +1 -1
- package/dist/src/services/events/consumer-lifecycle.js +19 -15
- package/dist/src/services/events/consumer-lifecycle.js.map +1 -1
- package/dist/src/services/events/event-trigger.service.d.ts.map +1 -1
- package/dist/src/services/events/event-trigger.service.js +8 -3
- package/dist/src/services/events/event-trigger.service.js.map +1 -1
- package/dist/src/services/events/hook.service.d.ts.map +1 -1
- package/dist/src/services/events/hook.service.js +7 -3
- package/dist/src/services/events/hook.service.js.map +1 -1
- package/dist/src/services/events/message-processing.d.ts.map +1 -1
- package/dist/src/services/events/message-processing.js +13 -8
- package/dist/src/services/events/message-processing.js.map +1 -1
- package/dist/src/services/logger/datahub-logger.d.ts +7 -0
- package/dist/src/services/logger/datahub-logger.d.ts.map +1 -1
- package/dist/src/services/logger/datahub-logger.js +9 -0
- package/dist/src/services/logger/datahub-logger.js.map +1 -1
- package/dist/src/services/pipeline/pipeline-runner.service.d.ts +3 -1
- package/dist/src/services/pipeline/pipeline-runner.service.d.ts.map +1 -1
- package/dist/src/services/pipeline/pipeline-runner.service.js +14 -4
- package/dist/src/services/pipeline/pipeline-runner.service.js.map +1 -1
- package/dist/src/services/pipeline/pipeline.service.d.ts.map +1 -1
- package/dist/src/services/pipeline/pipeline.service.js +8 -2
- package/dist/src/services/pipeline/pipeline.service.js.map +1 -1
- package/dist/src/services/storage/retention.service.d.ts.map +1 -1
- package/dist/src/services/storage/retention.service.js +22 -0
- package/dist/src/services/storage/retention.service.js.map +1 -1
- package/dist/src/services/testing/step-test.service.d.ts.map +1 -1
- package/dist/src/services/testing/step-test.service.js +17 -1
- package/dist/src/services/testing/step-test.service.js.map +1 -1
- package/dist/src/services/validation/definition-validation.service.d.ts.map +1 -1
- package/dist/src/services/validation/definition-validation.service.js +4 -1
- package/dist/src/services/validation/definition-validation.service.js.map +1 -1
- package/dist/src/services/validation/trigger-validation.d.ts.map +1 -1
- package/dist/src/services/validation/trigger-validation.js +79 -12
- package/dist/src/services/validation/trigger-validation.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/loader-configs.d.ts +1071 -0
- package/dist/src/types/loader-configs.d.ts.map +1 -0
- package/dist/src/types/loader-configs.js +54 -0
- package/dist/src/types/loader-configs.js.map +1 -0
- package/dist/src/types/step-configs.d.ts +14 -5
- package/dist/src/types/step-configs.d.ts.map +1 -1
- package/dist/src/types/step-configs.js +3 -0
- package/dist/src/types/step-configs.js.map +1 -1
- package/dist/src/utils/code-security.utils.d.ts +18 -0
- package/dist/src/utils/code-security.utils.d.ts.map +1 -1
- package/dist/src/utils/code-security.utils.js +125 -9
- package/dist/src/utils/code-security.utils.js.map +1 -1
- package/dist/src/validation/pipeline-definition.validator.js +2 -1
- package/dist/src/validation/pipeline-definition.validator.js.map +1 -1
- package/docs/developer-guide/README.md +2 -0
- package/docs/developer-guide/dsl/pipeline-builder.md +12 -0
- package/docs/developer-guide/extending/README.md +230 -10
- package/docs/developer-guide/extending/custom-sinks.md +87 -0
- package/docs/developer-guide/extending/events.md +4 -1
- package/docs/examples/validation-error-messages.md +246 -0
- package/docs/guides/multi-channel.md +1190 -0
- package/docs/guides/multi-currency.md +881 -0
- package/docs/guides/multi-entity.md +597 -0
- package/docs/guides/multi-language.md +957 -0
- package/docs/reference/README.md +11 -4
- package/docs/reference/extractors.md +30 -0
- package/docs/reference/loaders.md +359 -21
- package/docs/reference/operators-complete.md +1251 -0
- package/docs/reference/operators.md +36 -2
- package/docs/reference/sinks.md +7 -6
- package/docs/reference/step-types.md +12 -5
- package/docs/user-guide/pipelines.md +82 -13
- package/package.json +1 -1
- package/shared/types/adapter-config.types.ts +162 -2
- package/shared/types/index.ts +12 -0
- package/shared/types/loader.types.ts +4 -0
- package/shared/types/step.types.ts +6 -0
- package/shared/types/trigger.types.ts +0 -4
package/docs/reference/README.md
CHANGED
|
@@ -13,9 +13,10 @@ Complete reference documentation for all Data Hub adapters.
|
|
|
13
13
|
1. [Step Types](./step-types.md) - All pipeline step types
|
|
14
14
|
2. [Extractors](./extractors.md) - All data extractors
|
|
15
15
|
3. [Loaders](./loaders.md) - All entity loaders
|
|
16
|
-
4. [Operators](./operators.md) - All transform operators
|
|
17
|
-
5. [
|
|
18
|
-
6. [
|
|
16
|
+
4. [Operators](./operators.md) - All transform operators (curated guide)
|
|
17
|
+
5. [**Operators Complete**](./operators-complete.md) - **Auto-generated complete operator reference (all 61 operators)**
|
|
18
|
+
6. [Feed Generators](./feeds.md) - Product feed generators
|
|
19
|
+
7. [Search Sinks](./sinks.md) - Search engine integrations
|
|
19
20
|
|
|
20
21
|
## Quick Reference
|
|
21
22
|
|
|
@@ -33,7 +34,7 @@ Complete reference documentation for all Data Hub adapters.
|
|
|
33
34
|
| `cdc` | Change Data Capture - poll database tables for changes |
|
|
34
35
|
| `webhook` | Incoming webhook payloads |
|
|
35
36
|
|
|
36
|
-
### Loaders (
|
|
37
|
+
### Loaders (24 - 16 Entity + 4 Order Operations + 1 Deletion + 1 Inventory + 2 External API)
|
|
37
38
|
|
|
38
39
|
| Code | Description |
|
|
39
40
|
|------|-------------|
|
|
@@ -45,6 +46,7 @@ Complete reference documentation for all Data Hub adapters.
|
|
|
45
46
|
| `facetUpsert` | Create/update facets for categorization |
|
|
46
47
|
| `facetValueUpsert` | Create/update facet values within facets |
|
|
47
48
|
| `promotionUpsert` | Create/update promotions with conditions and actions |
|
|
49
|
+
| `orderUpsert` | Order create/update for migrations with state transitions and line management |
|
|
48
50
|
| `orderNote` | Add notes to existing orders |
|
|
49
51
|
| `orderTransition` | Transition order states |
|
|
50
52
|
| `applyCoupon` | Apply coupon codes to orders |
|
|
@@ -57,6 +59,7 @@ Complete reference documentation for all Data Hub adapters.
|
|
|
57
59
|
| `taxRateUpsert` | Create/update tax rates with category and zone |
|
|
58
60
|
| `paymentMethodUpsert` | Create/update payment methods with handlers |
|
|
59
61
|
| `channelUpsert` | Create/update channels with currencies and languages |
|
|
62
|
+
| `entityDeletion` | Delete any of 13 entity types by slug, SKU, ID, code, email, or name |
|
|
60
63
|
| `restPost` | POST data to custom REST endpoints |
|
|
61
64
|
| `graphqlMutation` | Send records as GraphQL mutations to external APIs |
|
|
62
65
|
|
|
@@ -96,3 +99,7 @@ Complete reference documentation for all Data Hub adapters.
|
|
|
96
99
|
| `typesense` | Typesense |
|
|
97
100
|
| `queueProducer` | RabbitMQ Queue |
|
|
98
101
|
| `webhook` | HTTP Webhook (POST/PUT/PATCH) |
|
|
102
|
+
|
|
103
|
+
### API Notes
|
|
104
|
+
|
|
105
|
+
- **`startDataHubPipelineRun`:** This mutation does not accept seed records. To provide seed data to a pipeline, use the webhook trigger (records passed in the request body) or the `dataHubTestWithSeedData` mutation for dry-run testing.
|
|
@@ -13,6 +13,7 @@ Complete reference for all data extractors.
|
|
|
13
13
|
- [Database Extractor](#database-extractor) - Query SQL databases with pagination
|
|
14
14
|
- [Webhook Extractor](#webhook-extractor) - Receive data from webhook payloads
|
|
15
15
|
- [CDC (Change Data Capture) Extractor](#cdc-change-data-capture-extractor) - Poll database tables for changes
|
|
16
|
+
- [In-Memory Extractor](#in-memory-extractor) - Inline data for testing and seed data
|
|
16
17
|
- [Quick Reference](#quick-reference) - Summary table of all extractors
|
|
17
18
|
|
|
18
19
|
---
|
|
@@ -545,6 +546,34 @@ Poll a database table for changes using a timestamp or version column. Tracks IN
|
|
|
545
546
|
|
|
546
547
|
---
|
|
547
548
|
|
|
549
|
+
## In-Memory Extractor
|
|
550
|
+
|
|
551
|
+
Code: `inMemory`
|
|
552
|
+
|
|
553
|
+
Reads records directly from inline data provided in the step configuration. Useful for testing, seed data, and webhook-triggered pipelines where data is passed at runtime.
|
|
554
|
+
|
|
555
|
+
**Note:** The inMemory extractor reads records from the `data` field (not `records`). The `data` field accepts an array of objects or a single object (which will be wrapped in an array).
|
|
556
|
+
|
|
557
|
+
### Configuration
|
|
558
|
+
|
|
559
|
+
| Field | Type | Required | Description |
|
|
560
|
+
|-------|------|----------|-------------|
|
|
561
|
+
| `data` | array/object | Yes | Inline records to extract. An array of objects, or a single object. |
|
|
562
|
+
|
|
563
|
+
### Example
|
|
564
|
+
|
|
565
|
+
```typescript
|
|
566
|
+
.extract('inline-data', {
|
|
567
|
+
adapterCode: 'inMemory',
|
|
568
|
+
data: [
|
|
569
|
+
{ sku: 'ABC-001', name: 'Widget A', price: 1999 },
|
|
570
|
+
{ sku: 'ABC-002', name: 'Widget B', price: 2999 },
|
|
571
|
+
],
|
|
572
|
+
})
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
|
|
548
577
|
## Quick Reference
|
|
549
578
|
|
|
550
579
|
| Code | Source Type | Use Case |
|
|
@@ -558,6 +587,7 @@ Poll a database table for changes using a timestamp or version column. Tracks IN
|
|
|
558
587
|
| `database` | SQL Database | Query PostgreSQL, MySQL, SQLite, MSSQL, Oracle databases |
|
|
559
588
|
| `cdc` | CDC | Poll database tables for changes using timestamp or version tracking |
|
|
560
589
|
| `webhook` | Webhook | Receive data from webhook payloads |
|
|
590
|
+
| `inMemory` | In-Memory | Inline data for testing, seed data, and webhook payloads |
|
|
561
591
|
|
|
562
592
|
### Authentication Options
|
|
563
593
|
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Loaders Reference
|
|
2
2
|
|
|
3
|
-
Complete reference for all built-in loaders: 16 entity loaders
|
|
3
|
+
Complete reference for all 24 built-in loaders: 16 entity loaders, 4 order operation loaders, 1 entity deletion loader, 1 inventory adjust loader, and 2 external system loaders. Supports multi-language translations, multi-channel assignment, multi-currency pricing, custom fields, and entity deletion for 13 entity types.
|
|
4
|
+
|
|
5
|
+
> **New**: [Enhanced validation error messages](../examples/validation-error-messages.md) with record identifiers and line numbers for better debugging.
|
|
4
6
|
|
|
5
7
|
## Table of Contents
|
|
6
8
|
|
|
7
9
|
### [Common Configuration](#common-configuration)
|
|
8
|
-
- [Loader Adapter Codes](#loader-adapter-codes) - Complete list of all
|
|
10
|
+
- [Loader Adapter Codes](#loader-adapter-codes) - Complete list of all 24 loaders
|
|
9
11
|
- [Load Strategies](#load-strategies) - CREATE, UPDATE, UPSERT, MERGE, SOFT_DELETE, HARD_DELETE
|
|
10
12
|
- [Conflict Strategies](#conflict-strategies) - SOURCE_WINS, VENDURE_WINS, MERGE, MANUAL_QUEUE
|
|
11
13
|
|
|
@@ -15,6 +17,7 @@ Complete reference for all built-in loaders: 16 entity loaders and 6 operation l
|
|
|
15
17
|
- [Customer Loader](#customer-loader) - Create/update customers with addresses and groups
|
|
16
18
|
- [Collection Loader](#collection-loader) - Create/update collections with parent relationships
|
|
17
19
|
- [Inventory Loader](#inventory-loader) - Update stock levels by SKU
|
|
20
|
+
- [Entity Deletion Loader](#entity-deletion-loader) - Delete products, variants, collections, promotions, shipping methods, customers, payment methods, facets, facet values, customer groups, tax rates, assets, stock locations
|
|
18
21
|
- [Additional Loaders](#additional-loaders) - Order, Customer Group, Facet, Facet Value, Asset, Promotion, Shipping Method, Stock Location, Tax Rate, Payment Method, Channel
|
|
19
22
|
|
|
20
23
|
### External System Loaders
|
|
@@ -22,7 +25,7 @@ Complete reference for all built-in loaders: 16 entity loaders and 6 operation l
|
|
|
22
25
|
- [Using Sinks for External Systems](#using-sinks-for-external-systems) - Alternative for search engines and message queues
|
|
23
26
|
|
|
24
27
|
### [Quick Reference](#quick-reference-1)
|
|
25
|
-
- Summary table of all
|
|
28
|
+
- Summary table of all 24 loaders with descriptions
|
|
26
29
|
- Required permissions for each loader
|
|
27
30
|
|
|
28
31
|
---
|
|
@@ -54,16 +57,18 @@ All loaders are configured using the `.load()` step in the pipeline DSL:
|
|
|
54
57
|
| `assetAttach` | Asset | Attach existing assets to entities |
|
|
55
58
|
| `promotionUpsert` | Promotion | Promotions with conditions and actions |
|
|
56
59
|
| `stockAdjust` | Inventory | Adjust stock levels by SKU and location |
|
|
60
|
+
| `orderUpsert` | Order | Create/update orders with lines and addresses (migration use only) |
|
|
57
61
|
| `orderNote` | Order | Add notes to orders |
|
|
58
62
|
| `orderTransition` | Order | Transition order states |
|
|
59
63
|
| `applyCoupon` | Order | Apply coupon codes to orders |
|
|
60
64
|
| `taxRateUpsert` | Tax Rate | Tax rates with zone and category mappings |
|
|
61
65
|
| `paymentMethodUpsert` | Payment Method | Payment methods with handler configuration |
|
|
62
66
|
| `channelUpsert` | Channel | Channels with currency and language settings |
|
|
63
|
-
| `shippingMethodUpsert` | Shipping Method | Create/update shipping methods with calculators |
|
|
67
|
+
| `shippingMethodUpsert` | Shipping Method | Create/update shipping methods with calculators, translations, channels |
|
|
64
68
|
| `customerGroupUpsert` | Customer Group | Create/update customer groups with member assignments |
|
|
65
69
|
| `stockLocationUpsert` | Stock Location | Create/update stock locations for inventory |
|
|
66
70
|
| `inventoryAdjust` | Inventory | Adjust inventory levels by SKU and location |
|
|
71
|
+
| `entityDeletion` | Multiple | Delete products, variants, collections, promotions, shipping methods, customers, payment methods, facets, facet values, customer groups, tax rates, assets, or stock locations |
|
|
67
72
|
| `restPost` | Custom | POST data to REST endpoints |
|
|
68
73
|
| `graphqlMutation` | GraphQL | Send records as GraphQL mutations to external APIs |
|
|
69
74
|
|
|
@@ -108,14 +113,69 @@ Create or update products with slug-based lookup, facets, and assets.
|
|
|
108
113
|
| `featuredAssetUrl` | string | No | URL of the featured/main image |
|
|
109
114
|
| `customFields` | object | No | Custom field values |
|
|
110
115
|
|
|
116
|
+
### Config Fields
|
|
117
|
+
|
|
118
|
+
| Config Field | Type | Required | Description |
|
|
119
|
+
|-------------|------|----------|-------------|
|
|
120
|
+
| `channel` | string | No | Target channel code |
|
|
121
|
+
| `strategy` | string | No | Load strategy: `UPSERT` (default), `CREATE`, or `UPDATE` |
|
|
122
|
+
| `conflictStrategy` | string | No | Conflict strategy: `SOURCE_WINS` (default), `VENDURE_WINS`, or `MERGE` |
|
|
123
|
+
| `nameField` | string | No | Record field for product name (default: `"name"`) |
|
|
124
|
+
| `slugField` | string | No | Record field for slug (default: `"slug"`) |
|
|
125
|
+
| `descriptionField` | string | No | Record field for description (default: `"description"`) |
|
|
126
|
+
| `enabledField` | string | No | Record field for enabled/published flag (default: `"enabled"`) |
|
|
127
|
+
| `channelsField` | string | No | Record field containing channel codes (array or comma-separated) for dynamic per-record channel assignment |
|
|
128
|
+
| `translationsField` | string | No | Record field containing multi-language translations. Overrides name/slug/description fields. Supports array format `[{ languageCode, name, slug?, description? }]` or object map `{ en: { name, slug?, description? } }` |
|
|
129
|
+
| `skuField` | string | No | Record field for default variant SKU |
|
|
130
|
+
| `priceField` | string | No | Record field for default variant price |
|
|
131
|
+
| `customFieldsField` | string | No | Record field containing custom fields object (default: `"customFields"`) |
|
|
132
|
+
| `createVariants` | boolean | No | Create/update a default variant alongside the product (default: `true`). Set to `false` when variants are handled by a separate `variantUpsert` step |
|
|
133
|
+
| `facetValuesMode` | string | No | How to handle facet value assignments: `REPLACE_ALL` (default - replace all facets), `MERGE` (add new, keep existing), `REMOVE` (remove specified facets), `SKIP` (don't touch facets) |
|
|
134
|
+
|
|
135
|
+
### Nested Entity Modes
|
|
136
|
+
|
|
137
|
+
**facetValuesMode** - Controls how facet values are assigned to products:
|
|
138
|
+
|
|
139
|
+
| Mode | Behavior | Use Case |
|
|
140
|
+
|------|----------|----------|
|
|
141
|
+
| `REPLACE_ALL` | Replace all existing facet values with new list (default) | Source system is single source of truth for facet assignments |
|
|
142
|
+
| `MERGE` | Add new facet values, keep existing ones | Multiple data sources contribute facets (e.g., PIM + manual admin) |
|
|
143
|
+
| `REMOVE` | Remove specified facet values from product | Cleaning up discontinued or incorrect facet assignments |
|
|
144
|
+
| `SKIP` | Don't modify facet values at all | Partial updates - only updating product name/description/price |
|
|
145
|
+
|
|
146
|
+
**Example - Merge facets from multiple sources:**
|
|
147
|
+
```typescript
|
|
148
|
+
.load('enrich-products-from-pim', {
|
|
149
|
+
adapterCode: 'productUpsert',
|
|
150
|
+
strategy: 'UPDATE',
|
|
151
|
+
facetValuesMode: 'MERGE', // Add new facets, keep existing
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
// Run 1 assigns: [color-red, size-large]
|
|
155
|
+
// Run 2 adds: [material-cotton]
|
|
156
|
+
// Result: [color-red, size-large, material-cotton] ✅
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Example - Skip facets for partial updates:**
|
|
160
|
+
```typescript
|
|
161
|
+
.load('update-product-descriptions', {
|
|
162
|
+
adapterCode: 'productUpsert',
|
|
163
|
+
strategy: 'UPDATE',
|
|
164
|
+
descriptionField: 'newDescription',
|
|
165
|
+
facetValuesMode: 'SKIP', // Don't touch facets
|
|
166
|
+
})
|
|
167
|
+
```
|
|
168
|
+
|
|
111
169
|
### Example
|
|
112
170
|
|
|
113
171
|
```typescript
|
|
114
172
|
.load('import-products', {
|
|
115
173
|
adapterCode: 'productUpsert',
|
|
116
174
|
strategy: 'UPSERT',
|
|
117
|
-
matchField: 'slug',
|
|
118
175
|
conflictStrategy: 'SOURCE_WINS',
|
|
176
|
+
channelsField: 'channels',
|
|
177
|
+
translationsField: 'translations',
|
|
178
|
+
createVariants: false,
|
|
119
179
|
})
|
|
120
180
|
```
|
|
121
181
|
|
|
@@ -149,14 +209,43 @@ Update product variants by SKU with multi-currency prices and auto-create option
|
|
|
149
209
|
| Config Field | Type | Required | Description |
|
|
150
210
|
|-------------|------|----------|-------------|
|
|
151
211
|
| `skuField` | string | Yes | Record field containing the SKU |
|
|
152
|
-
| `priceField` | string | No | Record field for price in minor units |
|
|
153
|
-
| `priceByCurrencyField` | string | No | Record field for multi-currency prices object |
|
|
154
212
|
| `nameField` | string | No | Record field for variant name |
|
|
213
|
+
| `priceField` | string | No | Record field for price (major units, auto-converted to minor) |
|
|
214
|
+
| `priceByCurrencyField` | string | No | Record field for multi-currency prices object (e.g. `{ USD: 19.99, EUR: 17.50 }`) |
|
|
215
|
+
| `enabledField` | string | No | Record field for variant enabled/published flag (default: `"enabled"`) |
|
|
216
|
+
| `channelsField` | string | No | Record field containing channel codes (array or comma-separated) for dynamic per-record channel assignment |
|
|
217
|
+
| `translationsField` | string | No | Record field containing multi-language translations. Overrides name field. Supports array `[{ languageCode, name }]` or object map `{ en: { name }, de: { name } }` |
|
|
155
218
|
| `customFieldsField` | string | No | Record field containing custom fields object |
|
|
156
219
|
| `optionGroupsField` | string | No | Record field containing option group key-value pairs (auto-creates groups) |
|
|
157
220
|
| `optionIdsField` | string | No | Record field containing pre-existing Vendure option IDs array |
|
|
158
221
|
| `optionCodesField` | string | No | Record field containing option codes array for lookup |
|
|
222
|
+
| `taxCategoryName` | string | No | Tax category name to assign |
|
|
223
|
+
| `stockField` | string | No | Record field for stock on hand |
|
|
224
|
+
| `stockByLocationField` | string | No | Record field for stock by location map |
|
|
159
225
|
| `strategy` | string | No | Load strategy: `UPSERT` (default), `CREATE`, or `UPDATE` |
|
|
226
|
+
| `facetValuesMode` | string | No | How to handle facet value assignments: `REPLACE_ALL` (default - replace all facets), `MERGE` (add new, keep existing), `REMOVE` (remove specified facets), `SKIP` (don't touch facets) |
|
|
227
|
+
|
|
228
|
+
### Nested Entity Modes
|
|
229
|
+
|
|
230
|
+
**facetValuesMode** - Controls how facet values are assigned to variants (same modes as Product):
|
|
231
|
+
|
|
232
|
+
| Mode | Behavior | Use Case |
|
|
233
|
+
|------|----------|----------|
|
|
234
|
+
| `REPLACE_ALL` | Replace all existing facet values with new list (default) | Source system controls all facet assignments |
|
|
235
|
+
| `MERGE` | Add new facet values, keep existing ones | Incremental facet additions from multiple sources |
|
|
236
|
+
| `REMOVE` | Remove specified facet values from variant | Removing discontinued attributes |
|
|
237
|
+
| `SKIP` | Don't modify facet values at all | Partial updates - only updating price/stock |
|
|
238
|
+
|
|
239
|
+
**Example - Update prices without touching facets:**
|
|
240
|
+
```typescript
|
|
241
|
+
.load('update-variant-prices', {
|
|
242
|
+
adapterCode: 'variantUpsert',
|
|
243
|
+
strategy: 'UPDATE',
|
|
244
|
+
skuField: 'sku',
|
|
245
|
+
priceField: 'newPrice',
|
|
246
|
+
facetValuesMode: 'SKIP', // Don't modify facets
|
|
247
|
+
})
|
|
248
|
+
```
|
|
160
249
|
|
|
161
250
|
### Option Group Assignment
|
|
162
251
|
|
|
@@ -213,13 +302,64 @@ Create or update customers with addresses and group memberships.
|
|
|
213
302
|
| `addresses` | array | No | Array of address objects |
|
|
214
303
|
| `groupCodes` | string[] | No | Array of customer group codes |
|
|
215
304
|
|
|
216
|
-
###
|
|
305
|
+
### Config Fields
|
|
306
|
+
|
|
307
|
+
| Config Field | Type | Required | Description |
|
|
308
|
+
|-------------|------|----------|-------------|
|
|
309
|
+
| `strategy` | string | No | Load strategy: `UPSERT` (default), `CREATE`, or `UPDATE` |
|
|
310
|
+
| `matchField` | string | No | Field to match existing customers (default: `emailAddress`) |
|
|
311
|
+
| `addressesMode` | string | No | How to handle addresses: `UPSERT_BY_MATCH` (default), `REPLACE_ALL`, `APPEND_ONLY`, `UPDATE_BY_ID`, `SKIP` |
|
|
312
|
+
| `addressMatchFields` | string | No | Comma-separated fields for address matching (default: `streetLine1,city,countryCode`) |
|
|
313
|
+
| `groupsMode` | string | No | How to handle customer groups: `REPLACE_ALL` (default), `MERGE`, `REMOVE`, `SKIP` |
|
|
314
|
+
|
|
315
|
+
### Nested Entity Modes
|
|
316
|
+
|
|
317
|
+
**addressesMode** - Controls how customer addresses are managed:
|
|
318
|
+
|
|
319
|
+
| Mode | Behavior | Use Case |
|
|
320
|
+
|------|----------|----------|
|
|
321
|
+
| `UPSERT_BY_MATCH` | Match by fields, update if exists, create if not (default, **recommended**) | **Prevents duplicate addresses** - most common use case |
|
|
322
|
+
| `REPLACE_ALL` | Delete all existing addresses, create new from source | Source system is single source of truth for addresses |
|
|
323
|
+
| `APPEND_ONLY` | Always create new addresses (allows duplicates) | Address history tracking (rare - usually want UPSERT) |
|
|
324
|
+
| `UPDATE_BY_ID` | Update by Vendure address ID if provided, create if not | Source system tracks Vendure address IDs |
|
|
325
|
+
| `SKIP` | Don't modify addresses at all | Partial updates - only updating customer name/email |
|
|
326
|
+
|
|
327
|
+
**Address Matching** (`UPSERT_BY_MATCH` mode):
|
|
328
|
+
- Default match fields: `streetLine1`, `city`, `countryCode`
|
|
329
|
+
- Customizable via `addressMatchFields` config
|
|
330
|
+
- Case-insensitive matching
|
|
331
|
+
- Prevents duplicate addresses across repeated pipeline runs
|
|
332
|
+
|
|
333
|
+
**groupsMode** - Controls customer group assignments:
|
|
334
|
+
|
|
335
|
+
| Mode | Behavior |
|
|
336
|
+
|------|----------|
|
|
337
|
+
| `REPLACE_ALL` | Remove all groups, assign new list (default) |
|
|
338
|
+
| `MERGE` | Add new groups, keep existing |
|
|
339
|
+
| `REMOVE` | Remove specified groups |
|
|
340
|
+
| `SKIP` | Don't modify groups |
|
|
341
|
+
|
|
342
|
+
### Example - Prevent Duplicate Addresses
|
|
217
343
|
|
|
218
344
|
```typescript
|
|
219
345
|
.load('import-customers', {
|
|
220
346
|
adapterCode: 'customerUpsert',
|
|
221
347
|
strategy: 'UPSERT',
|
|
222
348
|
matchField: 'emailAddress',
|
|
349
|
+
addressesMode: 'UPSERT_BY_MATCH', // ← Prevents duplicates
|
|
350
|
+
addressMatchFields: 'streetLine1,city,postalCode,countryCode'
|
|
351
|
+
})
|
|
352
|
+
|
|
353
|
+
// Run 1: Customer has 2 addresses
|
|
354
|
+
// Run 2: Customer still has 2 addresses (no duplicates!) ✅
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Example - Custom Address Matching
|
|
358
|
+
|
|
359
|
+
```typescript
|
|
360
|
+
.load('import-customers', {
|
|
361
|
+
addressesMode: 'UPSERT_BY_MATCH',
|
|
362
|
+
addressMatchFields: 'streetLine1,city,countryCode' // Match by street+city+country only
|
|
223
363
|
})
|
|
224
364
|
```
|
|
225
365
|
|
|
@@ -233,7 +373,7 @@ Customers can be matched by: `emailAddress`
|
|
|
233
373
|
|
|
234
374
|
Adapter Code: `collectionUpsert`
|
|
235
375
|
|
|
236
|
-
Create or update collections with parent relationships.
|
|
376
|
+
Create or update collections with parent relationships. Supports multi-language translations, multi-channel assignment, and isPrivate flag.
|
|
237
377
|
|
|
238
378
|
### Input Fields
|
|
239
379
|
|
|
@@ -245,13 +385,30 @@ Create or update collections with parent relationships.
|
|
|
245
385
|
| `parentSlug` | string | No | Parent collection slug |
|
|
246
386
|
| `enabled` | boolean | No | Whether collection is visible |
|
|
247
387
|
|
|
388
|
+
### Config Fields
|
|
389
|
+
|
|
390
|
+
| Config Field | Type | Required | Description |
|
|
391
|
+
|-------------|------|----------|-------------|
|
|
392
|
+
| `channel` | string | No | Target channel code |
|
|
393
|
+
| `strategy` | string | No | Load strategy: `UPSERT` (default), `CREATE`, or `UPDATE` |
|
|
394
|
+
| `slugField` | string | No | Record field for slug (default: `"slug"`) |
|
|
395
|
+
| `nameField` | string | No | Record field for name (default: `"name"`) |
|
|
396
|
+
| `descriptionField` | string | No | Record field for description (default: `"description"`) |
|
|
397
|
+
| `parentSlugField` | string | No | Record field for parent collection slug |
|
|
398
|
+
| `customFieldsField` | string | No | Record field containing custom fields object |
|
|
399
|
+
| `translationsField` | string | No | Record field containing multi-language translations. Overrides name/slug/description fields. Supports array `[{ languageCode, name, slug?, description? }]` or object map `{ en: { name, slug?, description? } }` |
|
|
400
|
+
| `channelsField` | string | No | Record field containing channel codes (array or comma-separated) for per-record channel assignment |
|
|
401
|
+
| `isPrivateField` | string | No | Record field containing isPrivate boolean flag |
|
|
402
|
+
| `applyFilters` | boolean | No | Trigger filter application job after upsert |
|
|
403
|
+
|
|
248
404
|
### Example
|
|
249
405
|
|
|
250
406
|
```typescript
|
|
251
407
|
.load('import-collections', {
|
|
252
408
|
adapterCode: 'collectionUpsert',
|
|
253
409
|
strategy: 'UPSERT',
|
|
254
|
-
|
|
410
|
+
translationsField: 'translations',
|
|
411
|
+
channelsField: 'channels',
|
|
255
412
|
})
|
|
256
413
|
```
|
|
257
414
|
|
|
@@ -285,30 +442,210 @@ Update stock levels for product variants by SKU.
|
|
|
285
442
|
|
|
286
443
|
---
|
|
287
444
|
|
|
445
|
+
## Entity Deletion Loader
|
|
446
|
+
|
|
447
|
+
Adapter Code: `entityDeletion`
|
|
448
|
+
|
|
449
|
+
Delete entities by slug, SKU, code, email, name, or ID. Supports 13 entity types: Products, Variants, Collections, Promotions, Shipping Methods, Customers, Payment Methods, Facets, Facet Values, Customer Groups, Tax Rates, Assets, and Stock Locations.
|
|
450
|
+
|
|
451
|
+
### Config Fields
|
|
452
|
+
|
|
453
|
+
| Config Field | Type | Required | Description |
|
|
454
|
+
|-------------|------|----------|-------------|
|
|
455
|
+
| `entityType` | string | No | Entity type: `'product'`, `'variant'`, `'collection'`, `'promotion'`, `'shipping-method'`, `'customer'`, `'payment-method'`, `'facet'`, `'facet-value'`, `'customer-group'`, `'tax-rate'`, `'asset'`, or `'stock-location'` (default: `'product'`) |
|
|
456
|
+
| `identifierField` | string | No | Record field containing the identifier (default depends on entity type) |
|
|
457
|
+
| `matchBy` | string | No | How to find the entity: `'slug'`, `'sku'`, `'id'`, `'code'`, `'email'`, or `'name'` (default depends on entity type) |
|
|
458
|
+
| `cascadeVariants` | boolean | No | Delete all variants before deleting a product (default: `true`) |
|
|
459
|
+
| `channel` | string | No | Channel code for context |
|
|
460
|
+
|
|
461
|
+
### Default matchBy per Entity Type
|
|
462
|
+
|
|
463
|
+
| Entity Type | Default matchBy | Default identifierField |
|
|
464
|
+
|-------------|----------------|------------------------|
|
|
465
|
+
| `product` | `slug` | `slug` |
|
|
466
|
+
| `variant` | `sku` | `sku` |
|
|
467
|
+
| `collection` | `slug` | `slug` |
|
|
468
|
+
| `promotion` | `code` | `code` |
|
|
469
|
+
| `shipping-method` | `code` | `code` |
|
|
470
|
+
| `customer` | `email` | `email` |
|
|
471
|
+
| `payment-method` | `code` | `code` |
|
|
472
|
+
| `facet` | `code` | `code` |
|
|
473
|
+
| `facet-value` | `code` | `code` |
|
|
474
|
+
| `customer-group` | `name` | `name` |
|
|
475
|
+
| `tax-rate` | `name` | `name` |
|
|
476
|
+
| `asset` | `name` | `name` |
|
|
477
|
+
| `stock-location` | `name` | `name` |
|
|
478
|
+
|
|
479
|
+
### Example - Delete Products by Slug
|
|
480
|
+
|
|
481
|
+
```typescript
|
|
482
|
+
.load('delete-products', {
|
|
483
|
+
adapterCode: 'entityDeletion',
|
|
484
|
+
entityType: 'product',
|
|
485
|
+
matchBy: 'slug',
|
|
486
|
+
cascadeVariants: true,
|
|
487
|
+
})
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### Example - Delete Promotions by Code
|
|
491
|
+
|
|
492
|
+
```typescript
|
|
493
|
+
.load('delete-promotions', {
|
|
494
|
+
adapterCode: 'entityDeletion',
|
|
495
|
+
entityType: 'promotion',
|
|
496
|
+
identifierField: 'couponCode',
|
|
497
|
+
})
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### Example - Delete Customers by Email
|
|
501
|
+
|
|
502
|
+
```typescript
|
|
503
|
+
.load('delete-customers', {
|
|
504
|
+
adapterCode: 'entityDeletion',
|
|
505
|
+
entityType: 'customer',
|
|
506
|
+
identifierField: 'email',
|
|
507
|
+
})
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### Example - Delete Collections by Slug
|
|
511
|
+
|
|
512
|
+
```typescript
|
|
513
|
+
.load('delete-collections', {
|
|
514
|
+
adapterCode: 'entityDeletion',
|
|
515
|
+
entityType: 'collection',
|
|
516
|
+
identifierField: 'slug',
|
|
517
|
+
})
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
### Example - Delete Facet Values by Code
|
|
521
|
+
|
|
522
|
+
```typescript
|
|
523
|
+
.load('delete-facet-values', {
|
|
524
|
+
adapterCode: 'entityDeletion',
|
|
525
|
+
entityType: 'facet-value',
|
|
526
|
+
identifierField: 'facetValueCode',
|
|
527
|
+
})
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
### Behavior
|
|
531
|
+
|
|
532
|
+
- **Product deletion with cascade**: All variants are soft-deleted first, then the product
|
|
533
|
+
- **Product deletion without cascade**: Only the product is soft-deleted (variants remain)
|
|
534
|
+
- **Collection deletion**: Deletes the collection found by slug or ID
|
|
535
|
+
- **Promotion deletion**: Soft-deletes the promotion found by coupon code or ID
|
|
536
|
+
- **Shipping method deletion**: Soft-deletes the shipping method found by code or ID
|
|
537
|
+
- **Customer deletion**: Soft-deletes the customer found by email or ID
|
|
538
|
+
- **Payment method deletion**: Hard-deletes the payment method found by code or ID
|
|
539
|
+
- **Facet deletion**: Hard-deletes the facet found by code or ID (includes all facet values)
|
|
540
|
+
- **Facet value deletion**: Hard-deletes the facet value found by code or ID
|
|
541
|
+
- **Customer group deletion**: Deletes the customer group found by name or ID
|
|
542
|
+
- **Tax rate deletion**: Deletes the tax rate found by name or ID
|
|
543
|
+
- **Asset deletion**: Deletes the asset found by name or ID
|
|
544
|
+
- **Stock location deletion**: Deletes the stock location found by name or ID
|
|
545
|
+
- **Not found**: Logs a warning and skips (does not fail the record)
|
|
546
|
+
- **Errors**: Reported via `onRecordError` callback per standard loader error handling
|
|
547
|
+
|
|
548
|
+
---
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
552
|
+
## Order Loader
|
|
553
|
+
|
|
554
|
+
Adapter Code: `orderUpsert`
|
|
555
|
+
|
|
556
|
+
Create or update orders with line items and addresses. **Intended for system migrations** - normal orders should go through the standard checkout flow.
|
|
557
|
+
|
|
558
|
+
### Input Fields
|
|
559
|
+
|
|
560
|
+
| Field | Type | Required | Description |
|
|
561
|
+
|-------|------|----------|-------------|
|
|
562
|
+
| `code` | string | Yes | Order code / reference number |
|
|
563
|
+
| `customerEmail` | string | Yes | Customer email address (must exist) |
|
|
564
|
+
| `lines` | array | Yes | Order line items with SKU and quantity |
|
|
565
|
+
| `shippingAddress` | object | No | Shipping address details |
|
|
566
|
+
| `billingAddress` | object | No | Billing address details |
|
|
567
|
+
| `shippingMethodCode` | string | No | Shipping method code |
|
|
568
|
+
| `state` | string | No | Target order state (e.g., 'PaymentSettled', 'Shipped') |
|
|
569
|
+
| `orderPlacedAt` | string | No | Order placement date (ISO 8601 format) for backdating |
|
|
570
|
+
|
|
571
|
+
### Config Fields
|
|
572
|
+
|
|
573
|
+
| Config Field | Type | Required | Description |
|
|
574
|
+
|-------------|------|----------|-------------|
|
|
575
|
+
| `strategy` | string | No | Load strategy: `CREATE` (default), `UPDATE`, or `UPSERT` |
|
|
576
|
+
| `codeField` | string | No | Record field for order code (default: `"code"`) |
|
|
577
|
+
| `customerEmailField` | string | No | Record field for customer email (default: `"customerEmail"`) |
|
|
578
|
+
| `linesField` | string | No | Record field for order lines array (default: `"lines"`) |
|
|
579
|
+
| `shippingAddressField` | string | No | Record field for shipping address (default: `"shippingAddress"`) |
|
|
580
|
+
| `billingAddressField` | string | No | Record field for billing address (default: `"billingAddress"`) |
|
|
581
|
+
| `stateField` | string | No | Record field for target state (default: `"state"`) |
|
|
582
|
+
| `orderPlacedAtField` | string | No | Record field for order placement date (default: `"orderPlacedAt"`) |
|
|
583
|
+
| `linesMode` | string | No | How to handle order lines: `REPLACE_ALL` (default), `MERGE_BY_SKU`, `APPEND_ONLY`, `SKIP` |
|
|
584
|
+
|
|
585
|
+
### Nested Entity Modes
|
|
586
|
+
|
|
587
|
+
**linesMode** - Controls how order line items are managed:
|
|
588
|
+
|
|
589
|
+
| Mode | Behavior | Use Case |
|
|
590
|
+
|------|----------|----------|
|
|
591
|
+
| `REPLACE_ALL` | Remove all existing lines, add new ones (default) | Full order replacement during migration |
|
|
592
|
+
| `MERGE_BY_SKU` | Update quantities for existing SKUs, add new SKUs | Incremental order updates - adding more items or adjusting quantities |
|
|
593
|
+
| `APPEND_ONLY` | Always add new lines (allows duplicate SKUs) | Order modification history tracking (rare) |
|
|
594
|
+
| `SKIP` | Don't modify order lines | Update order state or addresses only, leave lines unchanged |
|
|
595
|
+
|
|
596
|
+
**Example - Merge order lines by SKU:**
|
|
597
|
+
```typescript
|
|
598
|
+
.load('update-orders', {
|
|
599
|
+
adapterCode: 'orderUpsert',
|
|
600
|
+
strategy: 'UPDATE',
|
|
601
|
+
codeField: 'orderCode',
|
|
602
|
+
linesField: 'additionalItems',
|
|
603
|
+
linesMode: 'MERGE_BY_SKU', // Smart merging
|
|
604
|
+
})
|
|
605
|
+
|
|
606
|
+
// Existing order: PROD-A qty:2
|
|
607
|
+
// Update adds: PROD-A qty:5, PROD-B qty:1
|
|
608
|
+
// Result: PROD-A qty:5 (updated), PROD-B qty:1 (added) ✅
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
**Example - Replace all lines:**
|
|
612
|
+
```typescript
|
|
613
|
+
.load('migrate-orders', {
|
|
614
|
+
adapterCode: 'orderUpsert',
|
|
615
|
+
strategy: 'CREATE',
|
|
616
|
+
linesMode: 'REPLACE_ALL', // Complete replacement
|
|
617
|
+
stateField: 'finalState',
|
|
618
|
+
orderPlacedAtField: 'originalOrderDate',
|
|
619
|
+
})
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
### Match Fields
|
|
623
|
+
|
|
624
|
+
Orders can be matched by: `code`
|
|
625
|
+
|
|
626
|
+
---
|
|
627
|
+
|
|
288
628
|
## Additional Loaders
|
|
289
629
|
|
|
290
630
|
The following loaders are available but have similar patterns:
|
|
291
631
|
|
|
292
|
-
### Order Loader (`ORDER`)
|
|
293
|
-
Create/update orders with line items and addresses.
|
|
294
|
-
|
|
295
632
|
### Customer Group Loader (`CUSTOMER_GROUP`)
|
|
296
633
|
Create/update customer groups with member assignments.
|
|
297
634
|
|
|
298
635
|
### Facet Loader (`FACET`)
|
|
299
|
-
Create/update facets for product categorization.
|
|
636
|
+
Create/update facets for product categorization. Supports `translationsField` for multi-language names and `channelsField` for per-record channel assignment.
|
|
300
637
|
|
|
301
638
|
### Facet Value Loader (`FACET_VALUE`)
|
|
302
|
-
Create/update facet values within facets.
|
|
639
|
+
Create/update facet values within facets. Supports `translationsField` for multi-language names and `channelsField` for per-record channel assignment.
|
|
303
640
|
|
|
304
641
|
### Asset Loader (`ASSET`)
|
|
305
642
|
Create/update assets and attach to entities.
|
|
306
643
|
|
|
307
644
|
### Promotion Loader (`PROMOTION`)
|
|
308
|
-
Create/update promotions with conditions and actions.
|
|
645
|
+
Create/update promotions with conditions and actions. Supports `translationsField` for multi-language name/description, `channelsField` for per-record channel assignment, `descriptionField` for single-language description, and `perCustomerUsageLimitField` for per-customer usage limits. When the `enabled` field is not provided in the record, promotions default to `enabled: true`.
|
|
309
646
|
|
|
310
647
|
### Shipping Method Loader (`SHIPPING_METHOD`)
|
|
311
|
-
Create/update shipping methods with calculators.
|
|
648
|
+
Create/update shipping methods with calculators and fulfillment handlers. Supports `translationsField` for multi-language name/description, `channelsField` for per-record channel assignment, and `customFieldsField` for custom field values.
|
|
312
649
|
|
|
313
650
|
### Stock Location Loader (`STOCK_LOCATION`)
|
|
314
651
|
Create/update stock locations for inventory.
|
|
@@ -317,10 +654,10 @@ Create/update stock locations for inventory.
|
|
|
317
654
|
Create/update tax rates with category and zone.
|
|
318
655
|
|
|
319
656
|
### Payment Method Loader (`PAYMENT_METHOD`)
|
|
320
|
-
Create/update payment methods with handlers.
|
|
657
|
+
Create/update payment methods with handlers. Supports `translationsField` for multi-language name/description, `channelsField` for per-record channel assignment, and `customFieldsField` for custom field values.
|
|
321
658
|
|
|
322
659
|
### Channel Loader (`CHANNEL`)
|
|
323
|
-
Create/update channels with currencies and languages.
|
|
660
|
+
Create/update channels with currencies and languages. Supports `customFieldsField` for custom field values.
|
|
324
661
|
|
|
325
662
|
---
|
|
326
663
|
|
|
@@ -434,10 +771,11 @@ For sending data to external systems (REST APIs, search engines, message queues)
|
|
|
434
771
|
| `taxRateUpsert` | Tax Rate | Create/update tax rates with category and zone |
|
|
435
772
|
| `paymentMethodUpsert` | Payment Method | Create/update payment methods with handlers |
|
|
436
773
|
| `channelUpsert` | Channel | Create/update channels with currencies and languages |
|
|
437
|
-
| `shippingMethodUpsert` | Shipping Method | Create/update shipping methods with calculators |
|
|
774
|
+
| `shippingMethodUpsert` | Shipping Method | Create/update shipping methods with calculators, translations, channels |
|
|
438
775
|
| `customerGroupUpsert` | Customer Group | Create/update customer groups with member assignments |
|
|
439
776
|
| `stockLocationUpsert` | Stock Location | Create/update stock locations for inventory |
|
|
440
777
|
| `inventoryAdjust` | Inventory | Adjust inventory levels by SKU and location |
|
|
778
|
+
| `entityDeletion` | Multiple | Delete products, variants, collections, promotions, shipping methods, customers, payment methods, facets, facet values, customer groups, tax rates, assets, or stock locations |
|
|
441
779
|
| `restPost` | Custom | POST data to REST endpoints |
|
|
442
780
|
| `graphqlMutation` | GraphQL | Send records as GraphQL mutations to external APIs |
|
|
443
781
|
|
|
@@ -447,7 +785,7 @@ Each loader requires specific Vendure permissions:
|
|
|
447
785
|
|
|
448
786
|
| Adapter Code | Required Permission |
|
|
449
787
|
|--------------|---------------------|
|
|
450
|
-
| `productUpsert`, `variantUpsert`, `collectionUpsert`, `facetUpsert`, `facetValueUpsert`, `assetImport`, `assetAttach`, `stockAdjust` | `UpdateCatalog` |
|
|
788
|
+
| `productUpsert`, `variantUpsert`, `collectionUpsert`, `facetUpsert`, `facetValueUpsert`, `assetImport`, `assetAttach`, `stockAdjust`, `entityDeletion` | `UpdateCatalog` |
|
|
451
789
|
| `customerUpsert` | `UpdateCustomer` |
|
|
452
790
|
| `orderNote`, `orderTransition`, `applyCoupon` | `UpdateOrder` |
|
|
453
791
|
| `promotionUpsert` | `UpdatePromotion` |
|