Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
504 changes: 306 additions & 198 deletions README.md

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions src/main/java/com/mailerlite/sdk/MailerLite.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.mailerlite.sdk.campaigns.Campaigns;
import com.mailerlite.sdk.fields.Fields;
import com.mailerlite.sdk.forms.Forms;
import com.mailerlite.sdk.ecommerce.Ecommerce;
import com.mailerlite.sdk.groups.Groups;
import com.mailerlite.sdk.segments.Segments;
import com.mailerlite.sdk.susbcribers.Subscribers;
Expand Down Expand Up @@ -49,6 +50,8 @@ public class MailerLite
/** The forms. */
protected Forms forms;

protected Ecommerce ecommerce;

/**
* Campaigns.
*
Expand Down Expand Up @@ -173,6 +176,16 @@ public Forms forms()
}


public Ecommerce ecommerce()
{
if (ecommerce == null) {
ecommerce = new Ecommerce(this);
}

return ecommerce;
}


/**
* Sets the MailerLite API token.
*
Expand Down
13 changes: 13 additions & 0 deletions src/main/java/com/mailerlite/sdk/automations/Automations.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
package com.mailerlite.sdk.automations;

import com.mailerlite.sdk.MailerLite;
import com.mailerlite.sdk.ecommerce.EcommerceReportRetriever;
import com.mailerlite.sdk.automations.activity.AutomationSubscriberActivityRetriever;

/**
Expand Down Expand Up @@ -47,4 +48,16 @@ public AutomationSubscriberActivityRetriever subscriberActivityRetriever()
{
return new AutomationSubscriberActivityRetriever(apiObjectReference);
}

public EcommerceReportRetriever ecommerceReport(String automationId)
{
String endpoint = "/automations/".concat(automationId);
return new EcommerceReportRetriever(apiObjectReference, endpoint.concat("/monthly-totals/ecommerce"), endpoint.concat("/order-activity"), "ecommerce_shop_id");
}

public EcommerceReportRetriever ecommerceEmailReport(String automationId, String emailId)
{
String endpoint = "/automations/".concat(automationId).concat("/emails/").concat(emailId).concat("/ecommerce-overview-stats");
return new EcommerceReportRetriever(apiObjectReference, endpoint, null, null);
}
Comment thread
segunmailerlite marked this conversation as resolved.
Resolved
}
6 changes: 6 additions & 0 deletions src/main/java/com/mailerlite/sdk/campaigns/Campaigns.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.mailerlite.sdk.MailerLite;
import com.mailerlite.sdk.MailerLiteApi;
import com.mailerlite.sdk.MailerLiteResponse;
import com.mailerlite.sdk.ecommerce.EcommerceReportRetriever;
import com.mailerlite.sdk.exceptions.MailerLiteException;

/**
Expand Down Expand Up @@ -88,4 +89,9 @@ public MailerLiteResponse delete(String campaignId) throws MailerLiteException
return response;
}

public EcommerceReportRetriever ecommerceReport(String campaignId)
{
String endpoint = "/campaigns/".concat(campaignId);
return new EcommerceReportRetriever(apiObjectReference, endpoint.concat("/reports/ecommerce"), endpoint.concat("/reports/ecommerce/orders"), "shop_id");
}
}
63 changes: 63 additions & 0 deletions src/main/java/com/mailerlite/sdk/ecommerce/CartBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*************************************************
* MailerLite Java SDK
* https://github.com/mailerlite/mailerlite-java
*
* @author MailerLite <support@mailerlite.com>
* https://mailerlite.com
**************************************************/
package com.mailerlite.sdk.ecommerce;

import com.mailerlite.sdk.MailerLite;
import com.mailerlite.sdk.exceptions.MailerLiteException;

/**
* The Class CartBuilder.
*/
public class CartBuilder {

private MailerLite apiObjectReference;

private String shopId;

private CartBuilderBody builderBody = new CartBuilderBody();

public CartBuilder(MailerLite apiRef, String shopId)
{
apiObjectReference = apiRef;
this.shopId = shopId;
}

public CartBuilderBody body()
{
return builderBody;
}

public CartBuilder checkoutUrl(String checkoutUrl)
{
builderBody.checkoutUrl = checkoutUrl;
return this;
}

public CartBuilder cartTotal(Double cartTotal)
{
builderBody.cartTotal = cartTotal;
return this;
}

public CartBuilder customerId(String customerId)
{
builderBody.customerId = customerId;
return this;
}

public CartBuilder resourceId(String resourceId)
{
builderBody.resourceId = resourceId;
return this;
}

public SingleCart update(String cartId) throws MailerLiteException
{
return EcommerceApi.create(apiObjectReference).putRequest(EcommerceApi.shopPath(shopId, "/carts/").concat(cartId), EcommerceApi.json(builderBody), SingleCart.class);
}
}
32 changes: 32 additions & 0 deletions src/main/java/com/mailerlite/sdk/ecommerce/CartBuilderBody.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*************************************************
* MailerLite Java SDK
* https://github.com/mailerlite/mailerlite-java
*
* @author MailerLite <support@mailerlite.com>
* https://mailerlite.com
**************************************************/
package com.mailerlite.sdk.ecommerce;

import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;

/**
* The Class CartBuilderBody.
*/
public class CartBuilderBody {

@SerializedName("checkout_url")
public String checkoutUrl;

@SerializedName("cart_total")
public Double cartTotal;

@SerializedName("ecommerce_customer_id")
public String customerId;

@SerializedName("resource_id")
public String resourceId;

@SerializedName("items")
public ArrayList<CartItemBuilderBody> items;
}
89 changes: 89 additions & 0 deletions src/main/java/com/mailerlite/sdk/ecommerce/CartItemBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
/*************************************************
* MailerLite Java SDK
* https://github.com/mailerlite/mailerlite-java
*
* @author MailerLite <support@mailerlite.com>
* https://mailerlite.com
**************************************************/
package com.mailerlite.sdk.ecommerce;

import com.mailerlite.sdk.MailerLite;
import com.mailerlite.sdk.exceptions.MailerLiteException;

/**
* The Class CartItemBuilder.
*/
public class CartItemBuilder {

private MailerLite apiObjectReference;

private String shopId;

private String cartId;

private CartItemBuilderBody builderBody = new CartItemBuilderBody();

public CartItemBuilder(MailerLite apiRef, String shopId, String cartId)
{
apiObjectReference = apiRef;
this.shopId = shopId;
this.cartId = cartId;
}

public CartItemBuilderBody body()
{
return builderBody;
}

public CartItemBuilder productId(String productId)
{
builderBody.productId = productId;
return this;
}

public CartItemBuilder productResourceId(String productResourceId)
{
builderBody.productResourceId = productResourceId;
return this;
}

public CartItemBuilder productVariantId(String productVariantId)
{
builderBody.productVariantId = productVariantId;
return this;
}

public CartItemBuilder variant(String variant)
{
builderBody.variant = variant;
return this;
}

public CartItemBuilder quantity(Integer quantity)
{
builderBody.quantity = quantity;
return this;
}

public CartItemBuilder price(Double price)
{
builderBody.price = price;
return this;
}

public CartItemBuilder resourceId(String resourceId)
{
builderBody.resourceId = resourceId;
return this;
}

public SingleCartItem create() throws MailerLiteException
{
return EcommerceApi.create(apiObjectReference).postRequest(EcommerceApi.shopPath(shopId, "/carts/").concat(cartId).concat("/items"), EcommerceApi.json(builderBody), SingleCartItem.class);
}

public SingleCartItem update(String itemId) throws MailerLiteException
{
return EcommerceApi.create(apiObjectReference).putRequest(EcommerceApi.shopPath(shopId, "/carts/").concat(cartId).concat("/items").concat("/").concat(itemId), EcommerceApi.json(builderBody), SingleCartItem.class);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*************************************************
* MailerLite Java SDK
* https://github.com/mailerlite/mailerlite-java
*
* @author MailerLite <support@mailerlite.com>
* https://mailerlite.com
**************************************************/
package com.mailerlite.sdk.ecommerce;

import com.google.gson.annotations.SerializedName;

/**
* The Class CartItemBuilderBody.
*/
public class CartItemBuilderBody {

@SerializedName("ecommerce_product_id")
public String productId;

@SerializedName("product_resource_id")
public String productResourceId;

@SerializedName("ecommerce_product_variant_id")
public String productVariantId;

@SerializedName("variant")
public String variant;

@SerializedName("quantity")
public Integer quantity;

@SerializedName("price")
public Double price;

@SerializedName("resource_id")
public String resourceId;
}
45 changes: 45 additions & 0 deletions src/main/java/com/mailerlite/sdk/ecommerce/CartItemRetriever.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*************************************************
* MailerLite Java SDK
* https://github.com/mailerlite/mailerlite-java
*
* @author MailerLite <support@mailerlite.com>
* https://mailerlite.com
**************************************************/
package com.mailerlite.sdk.ecommerce;

import com.mailerlite.sdk.MailerLite;
import com.mailerlite.sdk.exceptions.MailerLiteException;

/**
* The Class CartItemRetriever.
*/
public class CartItemRetriever extends EcommerceRequest<CartItemRetriever> {

private MailerLite apiObjectReference;

private String shopId;
private String cartId;

public CartItemRetriever(MailerLite apiRef, String shopId, String cartId)
{
apiObjectReference = apiRef;
this.shopId = shopId;
this.cartId = cartId;
}


public CartItemsList get() throws MailerLiteException
{
return EcommerceApi.create(apiObjectReference).getRequest(EcommerceApi.shopPath(shopId, "/carts/").concat(cartId).concat("/items").concat(this.getQueryParameters()), CartItemsList.class);
}

public SingleCartItem getSingle(String itemId) throws MailerLiteException
{
return EcommerceApi.create(apiObjectReference).getRequest(EcommerceApi.shopPath(shopId, "/carts/").concat(cartId).concat("/items").concat("/").concat(itemId), SingleCartItem.class);
}

@Override
protected CartItemRetriever getInstance() {
return this;
}
}
47 changes: 47 additions & 0 deletions src/main/java/com/mailerlite/sdk/ecommerce/CartItems.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*************************************************
* MailerLite Java SDK
* https://github.com/mailerlite/mailerlite-java
*
* @author MailerLite <support@mailerlite.com>
* https://mailerlite.com
**************************************************/
package com.mailerlite.sdk.ecommerce;

import com.mailerlite.sdk.MailerLite;
import com.mailerlite.sdk.MailerLiteResponse;
import com.mailerlite.sdk.exceptions.MailerLiteException;

/**
* The Class CartItems.
*/
public class CartItems {

private MailerLite apiObjectReference;

private String shopId;

private String cartId;

public CartItems(MailerLite apiRef, String shopId, String cartId)
{
apiObjectReference = apiRef;
this.shopId = shopId;
this.cartId = cartId;
}

public CartItemRetriever retriever()
{
return new CartItemRetriever(apiObjectReference, shopId, cartId);
}

public CartItemBuilder builder()
{
return new CartItemBuilder(apiObjectReference, shopId, cartId);
}

public MailerLiteResponse delete(String itemId) throws MailerLiteException
{
String endpoint = EcommerceApi.shopPath(shopId, "/carts/").concat(cartId).concat("/items/").concat(itemId);
return EcommerceApi.create(apiObjectReference).deleteRequest(endpoint, MailerLiteResponse.class);
}
}
Loading