All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.nedap.retail.services.examples.ArticleExample Maven / Gradle / Ivy

package com.nedap.retail.services.examples;

import static com.nedap.retail.services.examples.PrintHelper.BLACK;
import static com.nedap.retail.services.examples.PrintHelper.COLON;
import static com.nedap.retail.services.examples.PrintHelper.COMMA;
import static com.nedap.retail.services.examples.PrintHelper.DOT;
import static com.nedap.retail.services.examples.PrintHelper.DOUBLE_TAB;
import static com.nedap.retail.services.examples.PrintHelper.EAN13;
import static com.nedap.retail.services.examples.PrintHelper.GTIN_1;
import static com.nedap.retail.services.examples.PrintHelper.GTIN_2;
import static com.nedap.retail.services.examples.PrintHelper.NEW_LINE;
import static com.nedap.retail.services.examples.PrintHelper.TAB;
import static com.nedap.retail.services.examples.PrintHelper.WHITESPACE;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.collections4.CollectionUtils;

import com.nedap.retail.messages.Client;
import com.nedap.retail.messages.ClientException;
import com.nedap.retail.messages.article.Article;
import com.nedap.retail.messages.article.ArticleFindResponse;
import com.nedap.retail.messages.article.Barcode;
import com.nedap.retail.messages.article.Price;
import com.nedap.retail.messages.article.Size;

public class ArticleExample {

    private ArticleExample() {
    }

    public static void runExample(final Client client) {
        System.out.println(NEW_LINE + "*** Article API example ***");

        try {
            // Create or replace articles
            System.out.println(NEW_LINE + "Uploading articles...");
            final List
exampleArticles = Arrays.asList(createExampleArticle()); client.captureArticles(exampleArticles); System.out.println(printCapturedArticles(exampleArticles)); // Article quantity System.out.println(NEW_LINE + "Retrieving article quantity..."); final Long quantity = client.articleQuantity(); System.out.println("Article quantity = " + quantity); // Article details by gtins System.out.println(NEW_LINE + "Retrieving article details by gtins..."); final List gtins = Arrays.asList(GTIN_1, GTIN_2); final List
articlesWithGtins = client.articleDetailsByGtins(gtins, null); System.out.println(printRetrievedArticlesByGtins(articlesWithGtins, gtins)); // Find articles with search query System.out.println(NEW_LINE + "Finding article with search query: 'summer'..."); final ArticleFindResponse articleFindResponse = client.findArticles("summer", 0, 100, null); System.out.println(printArticleFindResponse(articleFindResponse)); // Article datails by barcodes with name field System.out.println(NEW_LINE + "Retrieving article names by barcodes..."); final List barcodes = Arrays.asList("2011200000019", "2011200000057"); final List fields = new ArrayList<>(); fields.add("name"); final List
articlesWithBarcodes = client.articleDetailsByBarcodes(barcodes, fields); System.out.println(printRetrievedArticlesByBarcodes(articlesWithBarcodes, barcodes)); // Retrieve articles with gtin and name fields System.out.println(NEW_LINE + "Retrieving up to 50 articles with gtins and names..."); fields.add("gtin"); final List
articles = client.retrieveArticles(null, 0, 50, fields); System.out.println(printRetrievedArticles(articles)); System.out.println(NEW_LINE + "--- Article API example finished ---"); } catch (final ClientException ex) { System.err.println("Server responded with an error: " + ex.getMessage()); } } private static Article createExampleArticle() { final Article article = new Article(); // required fields article.gtin = GTIN_1; article.name = "T-shirt with V-neck and short sleeves"; article.color = BLACK; article.sizes = setArticleSizes(); final List barcodes = new ArrayList<>(); barcodes.add(new Barcode(EAN13, "2011200000019")); article.barcodes = barcodes; // optional fields article.code = GTIN_1; article.brand = "Nedap Retail"; article.season = "Summer 2015"; article.option = "T-shirt with V-neck and short sleeves, Black"; article.style = "T-shirt with V-neck and short sleeves"; article.supplier = "Nedap Retail"; article.category = "T-shirt"; article.prices = setArticlePrices(); return article; } private static List setArticleSizes() { final List sizes = new ArrayList<>(); sizes.add(new Size("32/35", "NL")); sizes.add(new Size("32/33", "DE")); sizes.add(new Size("31/35", "GB")); return sizes; } private static List setArticlePrices() { final List prices = new ArrayList<>(); prices.add(new Price("EUR", "NL", 29.99)); prices.add(new Price("EUR", "DE", 33.99)); prices.add(new Price("GBP", "GB", 24.99)); return prices; } private static String printCapturedArticles(final List
articles) { final StringBuilder sb = new StringBuilder("Uploaded articles: "); sb.append(printArticles(articles)); return sb.toString(); } private static String printRetrievedArticlesByGtins(final List
articles, final List gtins) { final StringBuilder sb = new StringBuilder("For gtins: "); for (final String gtin : gtins) { sb.append(gtin).append(COMMA); } sb.append("Found articles: "); sb.append(printArticles(articles)); return sb.toString(); } private static String printArticleFindResponse(final ArticleFindResponse articleFindResponse) { final StringBuilder sb = new StringBuilder(); sb.append("Total records before filtering: ").append(articleFindResponse.recordsTotal).append(NEW_LINE); sb.append("Total records after filtering: ").append(articleFindResponse.recordsFiltered).append(NEW_LINE); sb.append("Found articles: "); sb.append(printArticles(articleFindResponse.articles)); return sb.toString(); } private static String printArticles(final List
articles) { final StringBuilder sb = new StringBuilder(); for (int i = 0; i < articles.size(); i++) { sb.append(NEW_LINE).append(NEW_LINE); sb.append(TAB).append("Article ").append(i + 1).append(COLON).append(NEW_LINE); sb.append(TAB).append("Gtin: ").append(articles.get(i).gtin).append(NEW_LINE); sb.append(TAB).append("Barcodes: ").append(printBarcodes(articles.get(i).barcodes)).append(NEW_LINE); sb.append(TAB).append("Code: ").append(articles.get(i).code).append(NEW_LINE); sb.append(TAB).append("Brand: ").append(articles.get(i).brand).append(NEW_LINE); sb.append(TAB).append("Season: ").append(articles.get(i).season).append(NEW_LINE); sb.append(TAB).append("Name: ").append(articles.get(i).name).append(NEW_LINE); sb.append(TAB).append("Option: ").append(articles.get(i).option).append(NEW_LINE); sb.append(TAB).append("Style: ").append(articles.get(i).style).append(NEW_LINE); sb.append(TAB).append("Color: ").append(articles.get(i).color).append(NEW_LINE); sb.append(TAB).append("Sizes: ").append(printSizes(articles.get(i).sizes)).append(NEW_LINE); sb.append(TAB).append("Supplier: ").append(articles.get(i).supplier).append(NEW_LINE); sb.append(TAB).append("Category: ").append(articles.get(i).category).append(NEW_LINE); sb.append(TAB).append("Prices: ").append(printPrices(articles.get(i).prices)).append(NEW_LINE); } return sb.toString(); } private static String printBarcodes(final List barcodes) { final StringBuilder sb = new StringBuilder(); for (int i = 0; i < barcodes.size(); i++) { sb.append(NEW_LINE); sb.append(DOUBLE_TAB).append("Barcode ").append(i + 1).append(COLON); sb.append(barcodes.get(i).type).append(WHITESPACE); sb.append(barcodes.get(i).value); } return sb.toString(); } private static String printSizes(final List sizes) { final StringBuilder sb = new StringBuilder(); for (int i = 0; i < sizes.size(); i++) { sb.append(NEW_LINE); sb.append(DOUBLE_TAB).append("Size ").append(i + 1).append(COLON); sb.append(sizes.get(i).description).append(WHITESPACE); sb.append(sizes.get(i).region); } return sb.toString(); } private static String printPrices(final List prices) { if (CollectionUtils.isEmpty(prices)) { return null; } final StringBuilder sb = new StringBuilder(); for (int i = 0; i < prices.size(); i++) { sb.append(NEW_LINE); sb.append(DOUBLE_TAB).append("Price ").append(i + 1).append(COLON); sb.append(prices.get(i).currency).append(WHITESPACE); sb.append(prices.get(i).region).append(WHITESPACE); sb.append(prices.get(i).amount); } return sb.toString(); } private static String printRetrievedArticlesByBarcodes(final List
articles, final List barcodes) { final StringBuilder sb = new StringBuilder("For barcodes: "); for (final String barcode : barcodes) { sb.append(barcode).append(COMMA); } sb.append(" found articles with names: "); for (int i = 0; i < articles.size(); i++) { sb.append(NEW_LINE).append(TAB).append(i + 1).append(DOT).append(articles.get(i).name); } return sb.toString(); } private static String printRetrievedArticles(final List
articles) { final StringBuilder sb = new StringBuilder("Retrieved articles with gtins and names: "); for (int i = 0; i < articles.size(); i++) { sb.append(NEW_LINE).append(TAB).append(i + 1).append(DOT); sb.append(articles.get(i).gtin).append(WHITESPACE); sb.append(articles.get(i).name); } return sb.toString(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy