| 7473 |
vikram.rag |
1 |
package com.amazonservices.mws.orders.samples;
|
|
|
2 |
|
|
|
3 |
import java.util.ArrayList;
|
|
|
4 |
import java.util.Calendar;
|
|
|
5 |
import java.util.List;
|
|
|
6 |
|
| 12245 |
manish.sha |
7 |
/*import com.amazonservices.mws.orders.model.PaymentMethodEnum;*/
|
|
|
8 |
|
| 7473 |
vikram.rag |
9 |
import in.shop2020.model.v1.catalog.Item;
|
|
|
10 |
import in.shop2020.model.v1.order.LineItem;
|
|
|
11 |
import in.shop2020.model.v1.order.Order;
|
|
|
12 |
import in.shop2020.model.v1.order.OrderSource;
|
|
|
13 |
import in.shop2020.model.v1.order.OrderStatus;
|
|
|
14 |
import in.shop2020.model.v1.order.Transaction;
|
|
|
15 |
import in.shop2020.model.v1.order.TransactionStatus;
|
|
|
16 |
import in.shop2020.model.v1.user.User;
|
|
|
17 |
import in.shop2020.thrift.clients.CatalogClient;
|
|
|
18 |
import in.shop2020.thrift.clients.TransactionClient;
|
|
|
19 |
import in.shop2020.thrift.clients.UserClient;
|
|
|
20 |
|
|
|
21 |
public class AmazonOrder {
|
|
|
22 |
|
|
|
23 |
/**
|
|
|
24 |
*
|
|
|
25 |
*/
|
|
|
26 |
private static final long serialVersionUID = 1L;
|
|
|
27 |
private List<Order> orders = new ArrayList<Order>();
|
|
|
28 |
|
| 8021 |
rajveer |
29 |
public long persistTransaction(long userId, long cartId, String userEmail, com.amazonservices.mws.orders.model.Order amazonitem, List<com.amazonservices.mws.orders.model.OrderItem> amazonItems) {
|
| 7473 |
vikram.rag |
30 |
|
|
|
31 |
/**
|
|
|
32 |
* 0.Create user
|
|
|
33 |
* 1.Make a transaction object comprised of Order which in turn contains lineitem.
|
|
|
34 |
* 2.Call create_transaction
|
|
|
35 |
* 3.retrieve that order
|
|
|
36 |
*/
|
|
|
37 |
|
|
|
38 |
Transaction txnObj = new Transaction();
|
|
|
39 |
|
| 8020 |
rajveer |
40 |
|
| 8021 |
rajveer |
41 |
txnObj.setShoppingCartid(cartId);
|
| 8020 |
rajveer |
42 |
txnObj.setCustomer_id(userId);
|
| 7473 |
vikram.rag |
43 |
txnObj.setCreatedOn(Calendar.getInstance().getTimeInMillis());
|
|
|
44 |
txnObj.setTransactionStatus(TransactionStatus.INIT);
|
|
|
45 |
txnObj.setStatusDescription("New Amazon Order");
|
|
|
46 |
txnObj.setCoupon_code("");
|
|
|
47 |
txnObj.setEmiSchemeId(0);
|
|
|
48 |
|
|
|
49 |
for(com.amazonservices.mws.orders.model.OrderItem amazonItemlist: amazonItems){
|
|
|
50 |
int netQuantity = amazonItemlist.getQuantityOrdered() - amazonItemlist.getQuantityShipped();
|
|
|
51 |
for (int i=0;i<netQuantity;i++){
|
| 8020 |
rajveer |
52 |
orders.add(createOrder(userEmail, userId, amazonItemlist, amazonitem));
|
| 7473 |
vikram.rag |
53 |
}
|
|
|
54 |
}
|
|
|
55 |
|
|
|
56 |
txnObj.setOrders(orders);
|
|
|
57 |
TransactionClient tcl;
|
|
|
58 |
long txnId = 0;
|
|
|
59 |
try {
|
|
|
60 |
tcl = new TransactionClient();
|
|
|
61 |
txnId = tcl.getClient().createTransaction(txnObj);
|
|
|
62 |
System.out.println("Transaction ID is : " + txnId);
|
|
|
63 |
return txnId;
|
|
|
64 |
} catch (Exception e) {
|
|
|
65 |
//////////////log.error("Unable to create transaction", e);
|
|
|
66 |
//setErrorMsg("Unable to create order. Please try again.");
|
|
|
67 |
System.out.println("Could not Create Transaction ......");
|
|
|
68 |
return -1;
|
|
|
69 |
}
|
|
|
70 |
}
|
|
|
71 |
|
| 8020 |
rajveer |
72 |
public Order createOrder(String userEmail,long userId,com.amazonservices.mws.orders.model.OrderItem aitem1,com.amazonservices.mws.orders.model.Order aitem) {
|
| 7473 |
vikram.rag |
73 |
LineItem lineObj = createLineItem(aitem1);
|
|
|
74 |
if (lineObj == null) {
|
|
|
75 |
return null;
|
|
|
76 |
}
|
|
|
77 |
Order order = new Order();
|
|
|
78 |
|
|
|
79 |
order.setCustomer_id(userId);
|
| 8020 |
rajveer |
80 |
order.setCustomer_email(userEmail);
|
| 8924 |
vikram.rag |
81 |
order.setCustomer_name(aitem.getShippingAddress().getName());
|
| 7473 |
vikram.rag |
82 |
order.setCustomer_address1(aitem.getShippingAddress().getAddressLine1());
|
| 7552 |
vikram.rag |
83 |
if(aitem.getShippingAddress().getAddressLine3()!=null){
|
|
|
84 |
order.setCustomer_address2(aitem.getShippingAddress().getAddressLine2() +" " +aitem.getShippingAddress().getAddressLine3());
|
|
|
85 |
}
|
|
|
86 |
else{
|
|
|
87 |
order.setCustomer_address2(aitem.getShippingAddress().getAddressLine2());
|
|
|
88 |
}
|
| 7473 |
vikram.rag |
89 |
order.setCustomer_city(aitem.getShippingAddress().getCity());
|
|
|
90 |
order.setCustomer_state(aitem.getShippingAddress().getStateOrRegion());
|
|
|
91 |
order.setCustomer_pincode(aitem.getShippingAddress().getPostalCode());
|
| 7552 |
vikram.rag |
92 |
String phoneNo = aitem.getShippingAddress().getPhone();
|
| 8191 |
kshitij.so |
93 |
//order.setCustomer_mobilenumber(phoneNo.substring(phoneNo.length() - 10));
|
|
|
94 |
order.setCustomer_mobilenumber(phoneNo);
|
| 7473 |
vikram.rag |
95 |
order.setTotal_amount(Double.parseDouble(aitem1.getItemPrice().getAmount())/aitem1.getQuantityOrdered());
|
|
|
96 |
order.setStatus(OrderStatus.PAYMENT_PENDING);
|
|
|
97 |
order.setStatusDescription("Initiated");
|
|
|
98 |
order.setCreated_timestamp(Calendar.getInstance().getTimeInMillis());
|
| 12245 |
manish.sha |
99 |
long shipTimeStamp = 0l;
|
|
|
100 |
long deliveryTimeStamp = 0l;
|
|
|
101 |
if(aitem.isSetEarliestShipDate()){
|
|
|
102 |
shipTimeStamp = aitem.getEarliestShipDate().toGregorianCalendar().getTimeInMillis() + (6*60*60*1000);
|
|
|
103 |
} else {
|
|
|
104 |
shipTimeStamp = System.currentTimeMillis() + (24*60*60*1000);
|
|
|
105 |
}
|
|
|
106 |
if(aitem.isSetEarliestDeliveryDate()){
|
|
|
107 |
deliveryTimeStamp = aitem.getEarliestDeliveryDate().toGregorianCalendar().getTimeInMillis() + (6*60*60*1000);
|
|
|
108 |
} else {
|
|
|
109 |
deliveryTimeStamp = shipTimeStamp + (24*60*60*1000*4);
|
|
|
110 |
}
|
|
|
111 |
|
|
|
112 |
order.setExpected_shipping_time(shipTimeStamp);
|
|
|
113 |
order.setPromised_shipping_time(shipTimeStamp);
|
|
|
114 |
order.setExpected_delivery_time(deliveryTimeStamp);
|
|
|
115 |
order.setPromised_delivery_time(deliveryTimeStamp);
|
|
|
116 |
order.setCourier_delivery_time(deliveryTimeStamp);
|
|
|
117 |
|
| 7473 |
vikram.rag |
118 |
order.setTotal_weight(lineObj.getTotal_weight());
|
| 12245 |
manish.sha |
119 |
/*if(PaymentMethodEnum.COD==aitem.getPaymentMethod()){
|
|
|
120 |
order.setCod(true);
|
|
|
121 |
} else {
|
|
|
122 |
order.setCod(false);
|
|
|
123 |
}*/
|
| 7473 |
vikram.rag |
124 |
|
| 12245 |
manish.sha |
125 |
|
| 8020 |
rajveer |
126 |
order.setSource(OrderSource.AMAZON.getValue());
|
| 7473 |
vikram.rag |
127 |
order.setAdvanceAmount(0.0);
|
|
|
128 |
|
|
|
129 |
List<LineItem> lines = new ArrayList<LineItem>();
|
|
|
130 |
lines.add(lineObj);
|
|
|
131 |
order.setLineitems(lines);
|
|
|
132 |
return order;
|
|
|
133 |
}
|
|
|
134 |
|
|
|
135 |
public in.shop2020.model.v1.order.LineItem createLineItem(com.amazonservices.mws.orders.model.OrderItem amazonOrderItem) {
|
|
|
136 |
LineItem lineitem = new LineItem();
|
|
|
137 |
|
|
|
138 |
Item item = null;
|
|
|
139 |
try {
|
|
|
140 |
CatalogClient ccl = new CatalogClient();
|
|
|
141 |
item = ccl.getClient().getItem(Long.valueOf(amazonOrderItem.getSellerSKU()));
|
|
|
142 |
} catch (Exception e) {
|
|
|
143 |
//////////////log.error("Unable to get the item from catalog service, ItemId : " + product_id, e);
|
|
|
144 |
//setErrorMsg("Unable to create order. Please try again.");
|
|
|
145 |
return null;
|
|
|
146 |
}
|
|
|
147 |
lineitem.setProductGroup(item.getProductGroup());
|
|
|
148 |
lineitem.setBrand(item.getBrand());
|
|
|
149 |
lineitem.setModel_number(item.getModelNumber());
|
|
|
150 |
lineitem.setModel_name(item.getModelName());
|
|
|
151 |
if(item.getColor() == null || item.getColor().isEmpty()) {
|
|
|
152 |
lineitem.setColor("");
|
|
|
153 |
} else {
|
|
|
154 |
lineitem.setColor(item.getColor());
|
|
|
155 |
}
|
|
|
156 |
lineitem.setExtra_info(item.getFeatureDescription());
|
|
|
157 |
lineitem.setItem_id(item.getId());
|
|
|
158 |
lineitem.setQuantity(1.0);
|
| 8031 |
rajveer |
159 |
lineitem.setUnit_price(Double.parseDouble(amazonOrderItem.getItemPrice().getAmount())/amazonOrderItem.getQuantityOrdered());
|
|
|
160 |
lineitem.setTotal_price(Double.parseDouble(amazonOrderItem.getItemPrice().getAmount())/amazonOrderItem.getQuantityOrdered());
|
| 7473 |
vikram.rag |
161 |
lineitem.setUnit_weight(item.getWeight());
|
|
|
162 |
lineitem.setTotal_weight(item.getWeight());
|
|
|
163 |
lineitem.setDealText("");
|
|
|
164 |
|
|
|
165 |
if(item.getWarrantyPeriod() > 0) {
|
|
|
166 |
//Computing Manufacturer Warranty expiry date
|
|
|
167 |
Calendar cal = Calendar.getInstance();
|
|
|
168 |
cal.add(Calendar.MONTH, item.getWarrantyPeriod());
|
|
|
169 |
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
|
|
|
170 |
lineitem.setWarrantry_expiry_timestamp(cal.getTimeInMillis());
|
|
|
171 |
}
|
|
|
172 |
|
|
|
173 |
return lineitem;
|
|
|
174 |
}
|
|
|
175 |
|
|
|
176 |
}
|