commercetools / commercetools-sync-java

Java library for importing and syncing (taking care of changes) data into one or more commercetools projects from external data files or from another commercetools project.
https://commercetools.github.io/commercetools-sync-java
Apache License 2.0
32 stars 37 forks source link
commercetools commercetools-importer commercetools-sdk commercetools-sync ecommerce hacktoberfest import-and-export java sdk sync

commercetools-java-sync-logos 002

commercetools sync java

CI codecov Javadoc Known Vulnerabilities

Note: The current version of this library uses JVM-SDK-V2. This doc already contains updated information. Please migrate to this version, using our Migration Guide. The support for JVM SDK v1 has been discontinued with commercetools-sync-java v9.2.3 If migration isn't an option for you, you can still use deprecated versions of this library available at Maven central.

More at https://commercetools.github.io/commercetools-sync-java

Java library which allows to import/synchronise (import changes) the data from any arbitrary source to commercetools project.

Supported resources: Categories, Products, InventoryEntries, ProductTypes, Types, CartDiscounts, States, TaxCategories, CustomObjects, Customers, ShoppingLists

Usage

Create your own event or cronjob based application and use the library to transform any external data (JSON, CSV, XML, REST API, DB, ...) into JVM-SDK-V2 resource draft objects (e.g. CategoryDraft) and import those into the commercetools project.

Notes:

⚡ See the Quick Start Guide for more information on building a product importer!

commercetools-java-sync-final 001

Prerequisites

Installation

There are multiple ways to add the commercetools sync dependency to your project, based on your dependency manager. Here are the most popular ones:

Maven

<dependency>
  <groupId>com.commercetools</groupId>
  <artifactId>commercetools-sync-java</artifactId>
  <version>10.0.5</version>
</dependency>

Gradle

implementation 'com.commercetools:commercetools-sync-java:10.0.5'

SBT

libraryDependencies += "com.commercetools" % "commercetools-sync-java" % "10.0.5"

Ivy

<dependency org="com.commercetools" name="commercetools-sync-java" rev="10.0.5"/>

Note: To avoid commercetools JVM SDK libraries version mismatch between projects. It is better not to add commercetools JVM SDK dependencies explicitly into your project and use them from commercetools-Sync-Java dependencies instead. Please remove them if you have already added the below dependencies in your project.

For Gradle users, remove:

implementation "com.commercetools.sdk:commercetools-http-client:${version}"
implementation "com.commercetools.sdk:commercetools-sdk-java-api:${version}"

For Maven users, remove:

<dependency>
  <groupId>com.commercetools.sdk</groupId>
  <artifactId>commercetools-http-client</artifactId>
  <version>version</version>
</dependency>
<dependency>
  <groupId>com.commercetools.sdk</groupId>
  <artifactId>commercetools-sdk-java-v2</artifactId>
  <version>version</version>
</dependency>

If you want to use a different commercetools JVM SDK version than the version used in this project. , below you will find examples on how to exclude commercetools JVM SDK from commercetools-sync-java library. Beware that library might not work with the older commercetools JVM SDK versions.

For Gradle:

implementation('com.commercetools:commercetools-sync-java') {
    exclude group: 'com.commercetools.sdk', module: 'commercetools-http-client'
    exclude group: 'com.commercetools.sdk', module: 'commercetools-sdk-java-api'
}

For Maven:

<dependency>
  <groupId>com.commercetools</groupId>
  <artifactId>commercetools-sync-java</artifactId>
  <version>version</version>
  <exclusions>
    <exclusion>
        <groupId>com.commercetools.sdk</groupId>
        <artifactId>commercetools-http-client</artifactId>
    </exclusion>
    <exclusion>
        <groupId>com.commercetools.sdk</groupId>
        <artifactId>commercetools-sdk-java-v2</artifactId>
    </exclusion>
  </exclusions>
</dependency>