You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2007/07/27 10:00:59 UTC
svn commit: r560136 - in /ofbiz/trunk/applications: order/config/
order/src/org/ofbiz/order/order/ order/webapp/ordermgr/order/
product/config/ product/servicedef/ product/src/org/ofbiz/product/product/
product/webapp/catalog/find/
Author: jacopoc
Date: Fri Jul 27 01:00:56 2007
New Revision: 560136
URL: http://svn.apache.org/viewvc?view=rev&rev=560136
Log:
Applied patch by Marco Risaliti with some enhancements for the eBay integration, especially the OFBiz->eBay feed.
Modified:
ofbiz/trunk/applications/order/config/OrderUiLabels.properties
ofbiz/trunk/applications/order/config/OrderUiLabels_it.properties
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/ImportOrdersFromEbay.java
ofbiz/trunk/applications/order/webapp/ordermgr/order/OrderForms.xml
ofbiz/trunk/applications/product/config/ProductUiLabels.properties
ofbiz/trunk/applications/product/config/ProductUiLabels_it.properties
ofbiz/trunk/applications/product/servicedef/services.xml
ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductsExportToEbay.java
ofbiz/trunk/applications/product/webapp/catalog/find/ExportForms.xml
Modified: ofbiz/trunk/applications/order/config/OrderUiLabels.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderUiLabels.properties?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/order/config/OrderUiLabels.properties (original)
+++ ofbiz/trunk/applications/order/config/OrderUiLabels.properties Fri Jul 27 01:00:56 2007
@@ -378,6 +378,7 @@
FormFieldTitle_sendTo=Send To
FormFieldTitle_shipAfterDate=Ship After Date
FormFieldTitle_shipByDate=Ship By Date
+FormFieldTitle_shippingService=Shipping Service
FormFieldTitle_shippingServiceCost=Shipping Service Cost
FormFieldTitle_shippedTime=Date/Time Shipment
FormFieldTitle_shippingTotalAdditionalCost=Shipping Additional Costs
Modified: ofbiz/trunk/applications/order/config/OrderUiLabels_it.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderUiLabels_it.properties?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/order/config/OrderUiLabels_it.properties (original)
+++ ofbiz/trunk/applications/order/config/OrderUiLabels_it.properties Fri Jul 27 01:00:56 2007
@@ -984,6 +984,7 @@
FormFieldTitle_shippedTime=Date/Ora Spedizione
FormFieldTitle_errorMessage=Messaggio di Errore
FormFieldTitle_paymentMethodUsed=Metodo Pagamento Scelto
+FormFieldTitle_shippingService=Metodo Spedizione Scelto
FormFieldTitle_listingStatus=Stato dell'Asta
FormFieldTitle_eBayPaymentStatus=Stato Pagamento su eBay
FormFieldTitle_checkoutStatus=Stato Completamento Asta
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/ImportOrdersFromEbay.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/ImportOrdersFromEbay.java?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/ImportOrdersFromEbay.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/ImportOrdersFromEbay.java Fri Jul 27 01:00:56 2007
@@ -49,7 +49,6 @@
import org.ofbiz.entity.util.EntityUtil;
import org.ofbiz.order.shoppingcart.CheckOutHelper;
import org.ofbiz.order.shoppingcart.ShoppingCart;
-import org.ofbiz.party.contact.ContactMechWorker;
import org.ofbiz.service.DispatchContext;
import org.ofbiz.service.GenericServiceException;
import org.ofbiz.service.LocalDispatcher;
@@ -129,6 +128,7 @@
order.put("productId", (String) context.get("productId"));
order.put("quantityPurchased", (String) context.get("quantityPurchased"));
order.put("transactionPrice", (String) context.get("transactionPrice"));
+ order.put("shippingService", (String) context.get("shippingService"));
order.put("shippingServiceCost", (String) context.get("shippingServiceCost"));
order.put("shippingTotalAdditionalCost", (String) context.get("shippingTotalAdditionalCost"));
order.put("amountPaid", (String) context.get("amountPaid"));
@@ -241,8 +241,11 @@
private static Map postItem(String postItemsUrl, StringBuffer dataItems, String devID, String appID, String certID,
String callName, String compatibilityLevel, String siteID) throws IOException {
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("Request of " + callName + " To eBay:\n" + dataItems.toString(), module);
+ }
+
HttpURLConnection connection = (HttpURLConnection)(new URL(postItemsUrl)).openConnection();
-
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
@@ -261,15 +264,22 @@
int responseCode = connection.getResponseCode();
InputStream inputStream = null;
Map result = FastMap.newInstance();
+ String response = null;
+
if (responseCode == HttpURLConnection.HTTP_CREATED ||
responseCode == HttpURLConnection.HTTP_OK) {
inputStream = connection.getInputStream();
- String response = toString(inputStream);
+ response = toString(inputStream);
result = ServiceUtil.returnSuccess(response);
} else {
inputStream = connection.getErrorStream();
result = ServiceUtil.returnFailure(toString(inputStream));
}
+
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("Response of " + callName + " From eBay:\n" + response, module);
+ }
+
return result;
}
@@ -831,12 +841,11 @@
cart.setShipToCustomerPartyId(partyId);
cart.setEndUserCustomerPartyId(partyId);
- cart.setCarrierPartyId("_NA_");
cart.setShippingContactMechId(contactMechId);
-
- //TODO handle shipment method type
- cart.setShipmentMethodTypeId("NO_SHIPPING");
cart.setMaySplit(Boolean.FALSE);
+
+ setShipmentMethodType(cart, (String) parameters.get("shippingService"));
+
cart.makeAllShipGroupInfos();
// create the order
@@ -1141,4 +1150,49 @@
}
return dateOut;
}
+
+ private static void setShipmentMethodType(ShoppingCart cart, String shippingService) {
+ String partyId = "_NA_";
+ String shipmentMethodTypeId = "NO_SHIPPING";
+
+ if (shippingService != null) {
+ if ("USPSPriority".equals(shippingService)) {
+ partyId = "USPS";
+ shipmentMethodTypeId = "PRIORITY";
+ } else if ("UPSGround".equals(shippingService)) {
+ partyId = "UPS";
+ shipmentMethodTypeId = "GROUND";
+ } else if ("UPS3rdDay".equals(shippingService)) {
+ partyId = "UPS";
+ shipmentMethodTypeId = "3DAY";
+ } else if ("UPS2ndDay".equals(shippingService)) {
+ partyId = "UPS";
+ shipmentMethodTypeId = "2DAY";
+ } else if ("UPS2ndDay".equals(shippingService)) {
+ partyId = "UPS";
+ shipmentMethodTypeId = "2DAY";
+ } else if ("USPSExpressMailInternational".equals(shippingService)) {
+ partyId = "USPS";
+ shipmentMethodTypeId = "INT_EXPRESS";
+ } else if ("UPSNextDay".equals(shippingService)) {
+ partyId = "UPS";
+ shipmentMethodTypeId = "1DAY_SAVER";
+ } else if ("UPSNextDayAir".equals(shippingService)) {
+ partyId = "UPS";
+ shipmentMethodTypeId = "1DAY";
+ } else if ("ShippingMethodStandard".equals(shippingService)) {
+ partyId = "UPS";
+ shipmentMethodTypeId = "GROUND";
+ } else if ("StandardInternational".equals(shippingService)) {
+ partyId = "USPS";
+ shipmentMethodTypeId = "INT_EXPRESS";
+ } else if ("LocalDelivery".equals(shippingService)) {
+ partyId = "_NA_";
+ shipmentMethodTypeId = "PICK_UP";
+ }
+ }
+
+ cart.setCarrierPartyId(partyId);
+ cart.setShipmentMethodTypeId(shipmentMethodTypeId);
+ }
}
Modified: ofbiz/trunk/applications/order/webapp/ordermgr/order/OrderForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/OrderForms.xml?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/order/OrderForms.xml (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/order/OrderForms.xml Fri Jul 27 01:00:56 2007
@@ -150,6 +150,7 @@
<field name="paidTime"><display/></field>
<field name="shippedTime"><display/></field>
<field name="paymentMethodUsed"><display/></field>
+ <field name="shippingService"><display/></field>
<field name="listingStatus"><display/></field>
<field name="eBayPaymentStatus"><display/></field>
<field name="checkoutStatus"><display/></field>
Modified: ofbiz/trunk/applications/product/config/ProductUiLabels.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/config/ProductUiLabels.properties?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/product/config/ProductUiLabels.properties (original)
+++ ofbiz/trunk/applications/product/config/ProductUiLabels.properties Fri Jul 27 01:00:56 2007
@@ -1880,3 +1880,21 @@
FormFieldTitle_webSiteUrl=Web Site Url
FormFieldTitle_trackingCodeId=Tracking Code Id
FormFieldTitle_actionType=Action Type
+FormFieldTitle_geoCode=Country
+FormFieldTitle_location=Location
+FormFieldTitle_ebayCategory=eBay Category
+FormFieldTitle_paymentMethodsAccepted=Payment Methods Accepted
+FormFieldTitle_paymentPayPal=PayPal
+FormFieldTitle_paymentVisaMC=Visa/Mastercard
+FormFieldTitle_paymentAmEx=American Express
+FormFieldTitle_paymentDiscover=Discover card
+FormFieldTitle_paymentCCAccepted=Credit card
+FormFieldTitle_paymentCashInPerson=Cash-in-person
+FormFieldTitle_paymentCashOnPickup=Payment on delivery
+FormFieldTitle_paymentCOD=Cash on delivery
+FormFieldTitle_paymentCODPrePayDelivery=Cash On Delivery After Paid
+FormFieldTitle_paymentMOCC=Money order/cashiers check
+FormFieldTitle_paymentMoneyXferAccepted=Direct transfer of money
+FormFieldTitle_paymentPersonalCheck=Personal check
+FormFieldTitle_listingDuration=Listing Duration
+FormFieldTitle_startPrice=Start Price
\ No newline at end of file
Modified: ofbiz/trunk/applications/product/config/ProductUiLabels_it.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/config/ProductUiLabels_it.properties?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/product/config/ProductUiLabels_it.properties (original)
+++ ofbiz/trunk/applications/product/config/ProductUiLabels_it.properties Fri Jul 27 01:00:56 2007
@@ -1863,3 +1863,21 @@
FormFieldTitle_webSiteUrl=Url Sito Web
FormFieldTitle_trackingCodeId=Codice Tracciatura
FormFieldTitle_actionType=Tipo Azione
+FormFieldTitle_geoCode=Paese
+FormFieldTitle_location=Localit\u00e0
+FormFieldTitle_ebayCategory=Categoria eBay
+FormFieldTitle_paymentMethodsAccepted=Metodi di Pagamento Accettati
+FormFieldTitle_paymentPayPal=PayPal
+FormFieldTitle_paymentVisaMC=Visa/Mastercard
+FormFieldTitle_paymentAmEx=American Express
+FormFieldTitle_paymentDiscover=Discover
+FormFieldTitle_paymentCCAccepted=Carta di Credito
+FormFieldTitle_paymentCashInPerson=Contanti di Persona
+FormFieldTitle_paymentCashOnPickup=Pagamento alla Consegna
+FormFieldTitle_paymentCOD=Contanti alla consegna
+FormFieldTitle_paymentCODPrePayDelivery=Contanti alla Consegna Dopo Aver Pagato
+FormFieldTitle_paymentMOCC=Ordini di Soldi/Assegni al cassiere
+FormFieldTitle_paymentMoneyXferAccepted=Trasferimento Diretto di Soldi
+FormFieldTitle_paymentPersonalCheck=Assegno Personale
+FormFieldTitle_listingDuration=Durata Asta
+FormFieldTitle_startPrice=Prezzo di Partenza
\ No newline at end of file
Modified: ofbiz/trunk/applications/product/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services.xml?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services.xml Fri Jul 27 01:00:56 2007
@@ -1130,8 +1130,24 @@
location="org.ofbiz.product.product.ProductsExportToEbay" invoke="exportToEbay" auth="true">
<description>Export products to eBay</description>
<attribute type="List" mode="IN" name="selectResult" optional="false"/>
- <attribute type="String" mode="IN" name="webSiteUrl" optional="false"/>
- <attribute type="String" mode="IN" name="imageUrl" optional="false"/>
- <attribute type="String" mode="IN" name="trackingCodeId" optional="true"/>
+ <attribute type="String" mode="IN" name="country" optional="false"/>
+ <attribute type="String" mode="IN" name="location" optional="false"/>
+ <attribute type="String" mode="IN" name="ebayCategory" optional="false"/>
+ <attribute type="String" mode="IN" name="paymentPayPal" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentVisaMC" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentAmEx" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentDiscover" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentCCAccepted" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentCashInPerson" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentCashOnPickup" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentCOD" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentCODPrePayDelivery" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentMOCC" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentMoneyXferAccepted" optional="true"/>
+ <attribute type="String" mode="IN" name="paymentPersonalCheck" optional="true"/>
+ <attribute type="String" mode="IN" name="payPalEmail" optional="true"/>
+ <attribute type="String" mode="IN" name="listingDuration" optional="false"/>
+ <attribute type="String" mode="IN" name="startPrice" optional="false"/>
+ <attribute type="String" mode="IN" name="quantity" optional="false"/>
</service>
</services>
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductsExportToEbay.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductsExportToEbay.java?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductsExportToEbay.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductsExportToEbay.java Fri Jul 27 01:00:56 2007
@@ -19,27 +19,20 @@
package org.ofbiz.product.product;
import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
-import java.sql.Timestamp;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-
import javolution.util.FastMap;
-
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
import org.ofbiz.base.util.Debug;
-import org.ofbiz.base.util.UtilDateTime;
import org.ofbiz.base.util.UtilProperties;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.base.util.UtilXml;
@@ -48,7 +41,6 @@
import org.ofbiz.entity.condition.EntityExpr;
import org.ofbiz.entity.condition.EntityOperator;
import org.ofbiz.service.DispatchContext;
-import org.ofbiz.service.LocalDispatcher;
import org.ofbiz.service.ServiceUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -57,8 +49,7 @@
private static final String resource = "ProductUiLabels";
private static final String module = ProductsExportToEbay.class.getName();
- private static final String xmlHeader = "<?xml version=\'1.0\' encoding='UTF-8'?>\n";
-
+
public static Map exportToEbay(DispatchContext dctx, Map context) {
Locale locale = (Locale) context.get("locale");
try {
@@ -76,30 +67,27 @@
// get the Token
String token = UtilProperties.getPropertyValue(configString, "productsExport.eBay.token");
- // get the Rest Token
- String restToken = UtilProperties.getPropertyValue(configString, "productsExport.eBay.restToken");
+ // get the Compatibility Level
+ String compatibilityLevel = UtilProperties.getPropertyValue(configString, "productsExport.eBay.compatibilityLevel");
+
+ // get the Site ID
+ String siteID = UtilProperties.getPropertyValue(configString, "productsExport.eBay.siteID");
// get the xmlGatewayUri
String xmlGatewayUri = UtilProperties.getPropertyValue(configString, "productsExport.eBay.xmlGatewayUri");
-
+
StringBuffer dataItemsXml = new StringBuffer();
- if (!ServiceUtil.isFailure(buildSellerTransactionsXml(context, dataItemsXml, token))) {
- Map result = postItem(xmlGatewayUri, dataItemsXml, devID, appID, certID, "GetSellerTransactions");
+ /*
+ String itemId = "";
+ if (!ServiceUtil.isFailure(buildAddTransactionConfirmationItemRequest(context, dataItemsXml, token, itemId))) {
+ Map result = postItem(xmlGatewayUri, dataItemsXml, devID, appID, certID, "AddTransactionConfirmationItem");
Debug.logInfo(result.toString(), module);
- /*
- if (ServiceUtil.isFailure(result)) {
- return ServiceUtil.returnFailure(ServiceUtil.getErrorMessage(result));
- } else {
- Debug.logError("Error during authentication to eBay Account", module);
- return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsExportToeBay.errorDuringAuthenticationToeBay", locale));
- }
- */
}
+ */
- dataItemsXml.replace(0, dataItemsXml.length(), "");
if (!ServiceUtil.isFailure(buildDataItemsXml(dctx, context, dataItemsXml, token))) {
- Map result = postItem(xmlGatewayUri, dataItemsXml, devID, appID, certID, "AddItem");
+ Map result = postItem(xmlGatewayUri, dataItemsXml, devID, appID, certID, "AddItem", compatibilityLevel, siteID);
if (ServiceUtil.isFailure(result)) {
return ServiceUtil.returnFailure(ServiceUtil.getErrorMessage(result));
} else {
@@ -114,6 +102,11 @@
return ServiceUtil.returnSuccess(UtilProperties.getMessage(resource, "productsExportToEbay.productItemsSentCorrecltyToEbay", locale));
}
+ private static void appendRequesterCredentials(Element elem, Document doc, String token) {
+ Element requesterCredentialsElem = UtilXml.addChildElement(elem, "RequesterCredentials", doc);
+ UtilXml.addChildElementValue(requesterCredentialsElem, "eBayAuthToken", token, doc);
+ }
+
private static String toString(InputStream inputStream) throws IOException {
String string;
StringBuilder outputBuilder = new StringBuilder();
@@ -126,18 +119,22 @@
return outputBuilder.toString();
}
- private static Map postItem(String postItemsUrl, StringBuffer dataItems, String devID, String appID, String certID, String callName) throws IOException {
+ private static Map postItem(String postItemsUrl, StringBuffer dataItems, String devID, String appID, String certID,
+ String callName, String compatibilityLevel, String siteID) throws IOException {
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("Request of " + callName + " To eBay:\n" + dataItems.toString(), module);
+ }
+
HttpURLConnection connection = (HttpURLConnection)(new URL(postItemsUrl)).openConnection();
-
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
- connection.setRequestProperty("X-EBAY-API-COMPATIBILITY-LEVEL", "517");
+ connection.setRequestProperty("X-EBAY-API-COMPATIBILITY-LEVEL", compatibilityLevel);
connection.setRequestProperty("X-EBAY-API-DEV-NAME", devID);
connection.setRequestProperty("X-EBAY-API-APP-NAME", appID);
connection.setRequestProperty("X-EBAY-API-CERT-NAME", certID);
connection.setRequestProperty("X-EBAY-API-CALL-NAME", callName);
- connection.setRequestProperty("X-EBAY-API-SITEID", "0");
+ connection.setRequestProperty("X-EBAY-API-SITEID", siteID);
connection.setRequestProperty("Content-Type", "text/xml");
OutputStream outputStream = connection.getOutputStream();
@@ -147,166 +144,190 @@
int responseCode = connection.getResponseCode();
InputStream inputStream;
Map result = FastMap.newInstance();
- if (responseCode == HttpURLConnection.HTTP_CREATED) {
- inputStream = connection.getInputStream();
- result = ServiceUtil.returnSuccess(toString(inputStream));
- Debug.logInfo(toString(inputStream), module);
- } else if (responseCode == HttpURLConnection.HTTP_OK) {
+ String response = null;
+
+ if (responseCode == HttpURLConnection.HTTP_CREATED ||
+ responseCode == HttpURLConnection.HTTP_OK) {
inputStream = connection.getInputStream();
- result = ServiceUtil.returnFailure(toString(inputStream));
+ response = toString(inputStream);
+ result = ServiceUtil.returnSuccess(response);
} else {
inputStream = connection.getErrorStream();
- result = ServiceUtil.returnFailure(toString(inputStream));
+ response = toString(inputStream);
+ result = ServiceUtil.returnFailure(response);
+ }
+
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("Response of " + callName + " From eBay:\n" + response, module);
}
+
return result;
}
private static Map buildDataItemsXml(DispatchContext dctx, Map context, StringBuffer dataItemsXml, String token) {
Locale locale = (Locale)context.get("locale");
try {
- GenericDelegator delegator = dctx.getDelegator();
- LocalDispatcher dispatcher = dctx.getDispatcher();
- List selectResult = (List)context.get("selectResult");
- String webSiteUrl = (String)context.get("webSiteUrl");
- String imageUrl = (String)context.get("imageUrl");
- String trackingCodeId = (String)context.get("trackingCodeId");
-
- // Get the list of products to be exported to eBay
- List productsList = delegator.findByCondition("Product", new EntityExpr("productId", EntityOperator.IN, selectResult), null, null);
+ GenericDelegator delegator = dctx.getDelegator();
+ List selectResult = (List)context.get("selectResult");
- // Get the tracking code
- if (UtilValidate.isEmpty(trackingCodeId) || "_NA_".equals(trackingCodeId)) {
- trackingCodeId = "";
- } else {
- trackingCodeId = "?atc=" + trackingCodeId;
- }
+ // Get the list of products to be exported to eBay
+ List productsList = delegator.findByCondition("Product", new EntityExpr("productId", EntityOperator.IN, selectResult), null, null);
- try {
- Document itemDocument = UtilXml.makeEmptyXmlDocument("AddItemRequest");
- Element itemRequestElem = itemDocument.getDocumentElement();
- itemRequestElem.setAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
+ try {
+ Document itemDocument = UtilXml.makeEmptyXmlDocument("AddItemRequest");
+ Element itemRequestElem = itemDocument.getDocumentElement();
+ itemRequestElem.setAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
- dataItemsXml.append(xmlHeader);
+ appendRequesterCredentials(itemRequestElem, itemDocument, token);
- // Iterate the product list getting all the relevant data
- Iterator productsListItr = productsList.iterator();
- while(productsListItr.hasNext()) {
- GenericValue prod = (GenericValue)productsListItr.next();
- String link = webSiteUrl + "/control/product/~product_id=" + prod.getString("productId") + trackingCodeId;
- String title = parseText(prod.getString("productName"));
- String description = parseText(prod.getString("description"));
- String image_link = "";
- if (UtilValidate.isNotEmpty(prod.getString("largeImageUrl"))) {
- image_link = imageUrl + prod.getString("largeImageUrl");
- }
+ // Iterate the product list getting all the relevant data
+ Iterator productsListItr = productsList.iterator();
+ while(productsListItr.hasNext()) {
+ GenericValue prod = (GenericValue)productsListItr.next();
+ String title = parseText(prod.getString("productName"));
+ String description = parseText(prod.getString("description"));
- Element requesterCredentialsElem = UtilXml.addChildElement(itemRequestElem, "RequesterCredentials", itemDocument);
- UtilXml.addChildElementValue(requesterCredentialsElem, "eBayAuthToken", token, itemDocument);
+ Element itemElem = UtilXml.addChildElement(itemRequestElem, "Item", itemDocument);
+ UtilXml.addChildElementValue(itemElem, "Country", (String)context.get("country"), itemDocument);
+ UtilXml.addChildElementValue(itemElem, "Location", (String)context.get("location"), itemDocument);
+ UtilXml.addChildElementValue(itemElem, "Currency", "USD", itemDocument);
+ UtilXml.addChildElementValue(itemElem, "SKU", prod.getString("productId"), itemDocument);
+ UtilXml.addChildElementValue(itemElem, "Title", title, itemDocument);
+ UtilXml.addChildElementValue(itemElem, "Description", description, itemDocument);
+ UtilXml.addChildElementValue(itemElem, "ListingDuration", (String)context.get("listingDuration"), itemDocument);
+ UtilXml.addChildElementValue(itemElem, "Quantity", (String)context.get("quantity"), itemDocument);
- Element itemElem = UtilXml.addChildElement(itemRequestElem, "Item", itemDocument);
- UtilXml.addChildElementValue(itemElem, "Country", "US", itemDocument);
- UtilXml.addChildElementValue(itemElem, "Location", "New York", itemDocument);
- UtilXml.addChildElementValue(itemElem, "Currency", "USD", itemDocument);
- UtilXml.addChildElementValue(itemElem, "SKU", prod.getString("productId"), itemDocument);
- UtilXml.addChildElementValue(itemElem, "Title", title, itemDocument);
- UtilXml.addChildElementValue(itemElem, "Description", title, itemDocument);
- UtilXml.addChildElementValue(itemElem, "ListingDuration", "Days_1", itemDocument);
- UtilXml.addChildElementValue(itemElem, "Quantity", "3", itemDocument);
- UtilXml.addChildElementValue(itemElem, "PaymentMethods", "AmEx", itemDocument);
+ setPaymentMethodAccepted(itemDocument, itemElem, context);
- Element primaryCatElem = UtilXml.addChildElement(itemElem, "PrimaryCategory", itemDocument);
- UtilXml.addChildElementValue(primaryCatElem, "CategoryID", "20118", itemDocument);
+ Element primaryCatElem = UtilXml.addChildElement(itemElem, "PrimaryCategory", itemDocument);
+ UtilXml.addChildElementValue(primaryCatElem, "CategoryID", (String)context.get("ebayCategory"), itemDocument);
- Element startPriceElem = UtilXml.addChildElementValue(itemElem, "StartPrice", "1.00", itemDocument);
- startPriceElem.setAttribute("currencyID", "USD");
- }
- OutputStream os = new ByteArrayOutputStream();
- OutputFormat format = new OutputFormat();
- format.setOmitDocumentType(true);
- format.setOmitXMLDeclaration(true);
- format.setIndenting(false);
- XMLSerializer serializer = new XMLSerializer(os, format);
- serializer.asDOMSerializer();
- serializer.serialize(itemDocument.getDocumentElement());
+ Element startPriceElem = UtilXml.addChildElementValue(itemElem, "StartPrice", (String)context.get("startPrice"), itemDocument);
+ startPriceElem.setAttribute("currencyID", "USD");
+ }
- dataItemsXml.append(os.toString());
- } catch (Exception e) {
- Debug.logError("Exception during building data items to eBay", module);
- return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsExportToEbay.exceptionDuringBuildingDataItemsToEbay", locale));
- }
- } catch (Exception e) {
+ dataItemsXml.append(UtilXml.writeXmlDocument(itemDocument));
+ } catch (Exception e) {
+ Debug.logError("Exception during building data items to eBay", module);
+ return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsExportToEbay.exceptionDuringBuildingDataItemsToEbay", locale));
+ }
+ } catch (Exception e) {
Debug.logError("Exception during building data items to eBay", module);
return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsExportToEbay.exceptionDuringBuildingDataItemsToEbay", locale));
- }
- return ServiceUtil.returnSuccess();
+ }
+ return ServiceUtil.returnSuccess();
}
private static Map buildCategoriesXml(Map context, StringBuffer dataItemsXml, String token) {
Locale locale = (Locale)context.get("locale");
try {
- Document itemRequest = UtilXml.makeEmptyXmlDocument("GetCategoriesRequest");
- Element itemRequestElem = itemRequest.getDocumentElement();
- itemRequestElem.setAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
-
- dataItemsXml.append(xmlHeader);
- Element requesterCredentialsElem = UtilXml.addChildElement(itemRequestElem, "RequesterCredentials", itemRequest);
- UtilXml.addChildElementValue(requesterCredentialsElem, "eBayAuthToken", token, itemRequest);
-
- UtilXml.addChildElementValue(itemRequestElem, "DetailLevel", "ReturnAll", itemRequest);
- UtilXml.addChildElementValue(itemRequestElem, "CategorySiteID", "0", itemRequest);
- UtilXml.addChildElementValue(itemRequestElem, "LevelLimit", "2", itemRequest);
- UtilXml.addChildElementValue(itemRequestElem, "ViewAllNodes", "false", itemRequest);
-
- OutputStream os = new ByteArrayOutputStream();
- OutputFormat format = new OutputFormat();
- format.setOmitDocumentType(true);
- format.setOmitXMLDeclaration(true);
- format.setIndenting(false);
- XMLSerializer serializer = new XMLSerializer(os, format);
- serializer.asDOMSerializer();
- serializer.serialize(itemRequest.getDocumentElement());
+ Document itemRequest = UtilXml.makeEmptyXmlDocument("GetCategoriesRequest");
+ Element itemRequestElem = itemRequest.getDocumentElement();
+ itemRequestElem.setAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
+
+ appendRequesterCredentials(itemRequestElem, itemRequest, token);
+
+ UtilXml.addChildElementValue(itemRequestElem, "DetailLevel", "ReturnAll", itemRequest);
+ UtilXml.addChildElementValue(itemRequestElem, "CategorySiteID", "0", itemRequest);
+ UtilXml.addChildElementValue(itemRequestElem, "LevelLimit", "2", itemRequest);
+ UtilXml.addChildElementValue(itemRequestElem, "ViewAllNodes", "false", itemRequest);
- dataItemsXml.append(os.toString());
- } catch (Exception e) {
- Debug.logError("Exception during building data items to eBay", module);
- return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsExportToEbay.exceptionDuringBuildingDataItemsToEbay", locale));
- }
- return ServiceUtil.returnSuccess();
+ dataItemsXml.append(UtilXml.writeXmlDocument(itemRequest));
+ } catch (Exception e) {
+ Debug.logError("Exception during building data items to eBay", module);
+ return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsExportToEbay.exceptionDuringBuildingDataItemsToEbay", locale));
+ }
+ return ServiceUtil.returnSuccess();
}
- private static Map buildSellerTransactionsXml(Map context, StringBuffer dataItemsXml, String token) {
+ private static Map buildAddTransactionConfirmationItemRequest(Map context, StringBuffer dataItemsXml, String token, String itemId) {
Locale locale = (Locale)context.get("locale");
try {
- Document transDoc = UtilXml.makeEmptyXmlDocument("GetSellerTransactionsRequest");
- Element transElem = transDoc.getDocumentElement();
- transElem.setAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
-
- dataItemsXml.append(xmlHeader);
-
- Element requesterCredentialsElem = UtilXml.addChildElement(transElem, "RequesterCredentials", transDoc);
- UtilXml.addChildElementValue(requesterCredentialsElem, "eBayAuthToken", token, transDoc);
- Timestamp end = new Timestamp(System.currentTimeMillis());
- Timestamp start = UtilDateTime.getDayEnd(end, -1);
-
- UtilXml.addChildElementValue(transElem, "DetailLevel", "ReturnAll", transDoc);
- UtilXml.addChildElementValue(transElem, "ModTimeFrom", start.toString(), transDoc);
- UtilXml.addChildElementValue(transElem, "ModTimeTo", end.toString(), transDoc);
-
- OutputStream os = new ByteArrayOutputStream();
- OutputFormat format = new OutputFormat();
- format.setOmitDocumentType(true);
- format.setOmitXMLDeclaration(true);
- format.setIndenting(false);
- XMLSerializer serializer = new XMLSerializer(os, format);
- serializer.asDOMSerializer();
- serializer.serialize(transDoc.getDocumentElement());
-
- dataItemsXml.append(os.toString());
- } catch (Exception e) {
- Debug.logError("Exception during building data items to eBay", module);
- return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsExportToEbay.exceptionDuringBuildingDataItemsToEbay", locale));
- }
- return ServiceUtil.returnSuccess();
+ Document transDoc = UtilXml.makeEmptyXmlDocument("AddTransactionConfirmationItemRequest");
+ Element transElem = transDoc.getDocumentElement();
+ transElem.setAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
+
+ appendRequesterCredentials(transElem, transDoc, token);
+
+ UtilXml.addChildElementValue(transElem, "ItemID", itemId, transDoc);
+ UtilXml.addChildElementValue(transElem, "ListingDuration", "Days_1", transDoc);
+ Element negotiatePriceElem = UtilXml.addChildElementValue(transElem, "NegotiatedPrice", "50.00", transDoc);
+ negotiatePriceElem.setAttribute("currencyID", "USD");
+ UtilXml.addChildElementValue(transElem, "RecipientRelationType", "1", transDoc);
+ UtilXml.addChildElementValue(transElem, "RecipientUserID", "buyer_anytime", transDoc);
+
+ dataItemsXml.append(UtilXml.writeXmlDocument(transDoc));
+ Debug.logInfo(dataItemsXml.toString(), module);
+ } catch (Exception e) {
+ Debug.logError("Exception during building AddTransactionConfirmationItemRequest eBay", module);
+ return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "productsExportToEbay.exceptionDuringBuildingAddTransactionConfirmationItemRequestToEbay", locale));
+ }
+ return ServiceUtil.returnSuccess();
+ }
+
+ private static void setPaymentMethodAccepted(Document itemDocument, Element itemElem, Map context) {
+ String payPal = (String)context.get("paymentPayPal");
+ String visaMC = (String)context.get("paymentVisaMC");
+ String amEx = (String)context.get("paymentAmEx");
+ String discover = (String)context.get("paymentDiscover");
+ String ccAccepted = (String)context.get("paymentCCAccepted");
+ String cashInPerson = (String)context.get("paymentCashInPerson");
+ String cashOnPickup = (String)context.get("paymentCashOnPickup");
+ String cod = (String)context.get("paymentCOD");
+ String codPrePayDelivery = (String)context.get("paymentCODPrePayDelivery");
+ String mocc = (String)context.get("paymentMOCC");
+ String moneyXferAccepted = (String)context.get("paymentMoneyXferAccepted");
+ String personalCheck = (String)context.get("paymentPersonalCheck");
+
+ // PayPal
+ if (UtilValidate.isNotEmpty(payPal) && "Y".equals(payPal)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "PayPal", itemDocument);
+ UtilXml.addChildElementValue(itemElem, "PayPalEmailAddress", (String)context.get("payPalEmail"), itemDocument);
+ }
+ // Visa/Master Card
+ if (UtilValidate.isNotEmpty(visaMC) && "Y".equals(visaMC)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "VisaMC", itemDocument);
+ }
+ // American Express
+ if (UtilValidate.isNotEmpty(amEx) && "Y".equals(amEx)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "AmEx", itemDocument);
+ }
+ // Discover
+ if (UtilValidate.isNotEmpty(discover) && "Y".equals(discover)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "Discover", itemDocument);
+ }
+ // Credit Card Accepted
+ if (UtilValidate.isNotEmpty(ccAccepted) && "Y".equals(ccAccepted)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "CCAccepted", itemDocument);
+ }
+ // Cash In Person
+ if (UtilValidate.isNotEmpty(cashInPerson) && "Y".equals(cashInPerson)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "CashInPerson", itemDocument);
+ }
+ // Cash on Pickup
+ if (UtilValidate.isNotEmpty(cashOnPickup) && "Y".equals(cashOnPickup)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "CashOnPickup", itemDocument);
+ }
+ // Cash on Delivery
+ if (UtilValidate.isNotEmpty(cod) && "Y".equals(cod)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "COD", itemDocument);
+ }
+ // Cash On Delivery After Paid
+ if (UtilValidate.isNotEmpty(codPrePayDelivery) && "Y".equals(codPrePayDelivery)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "CODPrePayDelivery", itemDocument);
+ }
+ // Money order/cashiers check
+ if (UtilValidate.isNotEmpty(mocc) && "Y".equals(mocc)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "MOCC", itemDocument);
+ }
+ // Direct transfer of money
+ if (UtilValidate.isNotEmpty(moneyXferAccepted) && "Y".equals(moneyXferAccepted)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "MoneyXferAccepted", itemDocument);
+ }
+ // Personal Check
+ if (UtilValidate.isNotEmpty(personalCheck) && "Y".equals(personalCheck)) {
+ UtilXml.addChildElementValue(itemElem, "PaymentMethods", "PersonalCheck", itemDocument);
+ }
}
private static String parseText(String text) {
Modified: ofbiz/trunk/applications/product/webapp/catalog/find/ExportForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/find/ExportForms.xml?view=diff&rev=560136&r1=560135&r2=560136
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/find/ExportForms.xml (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/find/ExportForms.xml Fri Jul 27 01:00:56 2007
@@ -54,16 +54,42 @@
</form>
<form name="ProductsExportToEbay" type="single" target="PostProductsToEbay">
<field name="selectResult"><hidden/></field>
- <field name="webSiteUrl"><text size="50" maxlength="250"/></field>
- <field name="imageUrl"><text size="50" maxlength="250"/></field>
- <field name="trackingCodeId" widget-style="selectBox">
- <drop-down no-current-selected-key="_NA_">
- <option key="_NA_" description="${uiLabelMap.ProductExportNoTrackingRequested}"/>
- <entity-options entity-name="TrackingCode" description="${description}">
- <entity-order-by field-name="description"/>
+ <field name="country" widget-style="selectBox">
+ <drop-down no-current-selected-key="US">
+ <entity-options key-field-name="geoCode" entity-name="Geo" description="${geoName}">
+ <entity-order-by field-name="geoName"/>
</entity-options>
</drop-down>
</field>
+ <field name="location"><text size="50" maxlength="50"/></field>
+ <field name="ebayCategory" widget-style="selectBox">
+ <drop-down>
+ <option key="20118" description="Test category (not yet implemented)"/>
+ </drop-down>
+ </field>
+ <field name="listingDuration" widget-style="selectBox">
+ <drop-down>
+ <option key="Days_1" description="1 ${uiLabelMap.CommonDay}"/>
+ <option key="Days_3" description="3 ${uiLabelMap.CommonDays}"/>
+ <option key="Days_7" description="7 ${uiLabelMap.CommonDays}"/>
+ </drop-down>
+ </field>
+ <field name="startPrice"><text size="12" maxlength="12" default-value="1.00"/></field>
+ <field name="quantity"><text size="12" maxlength="12" default-value="1"/></field>
+ <field name="paymentMethodAccepted"><display also-hidden="true"/></field>
+ <field name="paymentPayPal" position="1"><check all-checked="true"/></field>
+ <field name="paymentVisaMC" position="2"><check all-checked="true"/></field>
+ <field name="paymentAmEx" position="3"><check all-checked="true"/></field>
+ <field name="paymentDiscover" position="4"><check all-checked="true"/></field>
+ <field name="paymentMOCC" position="1"><check all-checked="true"/></field>
+ <field name="paymentPersonalCheck" position="2"><check all-checked="true"/></field>
+ <field name="paymentCCAccepted" position="3"><check all-checked="false"/></field>
+ <field name="paymentCashInPerson" position="4"><check all-checked="false"/></field>
+ <field name="paymentCashOnPickup" position="1"><check all-checked="false"/></field>
+ <field name="paymentCOD" position="2"><check all-checked="false"/></field>
+ <field name="paymentCODPrePayDelivery" position="3"><check all-checked="false"/></field>
+ <field name="paymentMoneyXferAccepted" position="4"><check all-checked="false"/></field>
+ <field name="payPalEmail"><text size="50" maxlength="50"/></field>
<field name="submitButton" title="${uiLabelMap.ProductExportToeBay}"><submit button-type="button"/></field>
</form>
</forms>