You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2010/06/24 08:13:20 UTC

svn commit: r957428 - in /ofbiz/trunk/specialpurpose/ebaystore: servicedef/services.xml src/org/ofbiz/ebaystore/EbayStore.java webapp/ebaystore/WEB-INF/controller.xml widget/EbaySellingManagerForms.xml widget/EbaySellingManagerScreens.xml

Author: hansbak
Date: Thu Jun 24 06:13:20 2010
New Revision: 957428

URL: http://svn.apache.org/viewvc?rev=957428&view=rev
Log:
Handle ebaystore product Item Specifics

Modified:
    ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml
    ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java
    ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml
    ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml
    ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml

Modified: ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml?rev=957428&r1=957427&r2=957428&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml Thu Jun 24 06:13:20 2010
@@ -441,4 +441,45 @@ under the License.
         <attribute name="functionName" mode="IN" type="String" optional="false"/>
         <attribute name="logMessage" mode="IN" type="String" optional="false"/>
     </service>
+    <service name="getMyeBaySelling" engine="java" transaction-timeout="36000"
+        location="org.ofbiz.ebaystore.EbayStore" invoke="getMyeBaySelling" auth="true">
+        <attribute name="productStoreId" mode="IN" type="String" optional="false"/>
+        <attribute name="entriesPerPage" mode="IN" type="String" optional="true"/>
+        <attribute name="pageNumber" mode="IN" type="String" optional="true"/>
+        <attribute name="listingType" mode="IN" type="String" optional="true"/>
+        <attribute name="activeItems" mode="OUT" type="List" optional="true"/>
+        <attribute name="soldItems" mode="OUT" type="List" optional="true"/>
+        <attribute name="unsoldItems" mode="OUT" type="List" optional="true"/>
+        <attribute name="scheduledItems" mode="OUT" type="List" optional="true"/>
+        <attribute name="activeSize" mode="OUT" type="Integer" optional="true"/>
+        <attribute name="soldSize" mode="OUT" type="Integer" optional="true"/>
+        <attribute name="unsoldeSize" mode="OUT" type="Integer" optional="true"/>
+        <attribute name="scheduledSize" mode="OUT" type="Integer" optional="true"/>
+    </service>
+    <service name="getEbayStoreProductItem" engine="java" transaction-timeout="3600"
+        location="org.ofbiz.ebaystore.EbayStore" invoke="getEbayStoreProductItem" auth="true">
+        <description>Get item data (title, description, price information, and so on) for the specified item ID</description>
+        <attribute name="productStoreId" mode="IN" type="String" optional="false"/>
+        <attribute name="itemId" mode="IN" type="String" optional="false"/>
+        <attribute name="listingType" mode="OUT" type="String" optional="true"/>
+        <attribute name="title" mode="OUT" type="String" optional="true"/>
+        <attribute name="description" mode="OUT" type="String" optional="true"/>
+        <attribute name="price" mode="OUT" type="String" optional="true"/>
+        <attribute name="currencyId" mode="OUT" type="String" optional="true"/>
+        <attribute name="pictureURL" mode="OUT" type="String" optional="true"/>
+    </service>
+    <service name="reviseEbayStoreProductItem" engine="java" transaction-timeout="3600"
+        location="org.ofbiz.ebaystore.EbayStore" invoke="reviseEbayStoreProductItem" auth="true">
+        <description>Change the properties of a currently active listing</description>
+        <attribute name="productStoreId" mode="IN" type="String" optional="false"/>
+        <attribute name="itemId" mode="IN" type="String" optional="false"/>
+        <attribute name="listingType" mode="IN" type="String" optional="true"/>
+        <attribute name="title" mode="IN" type="String" optional="true"/>
+        <attribute name="description" mode="IN" type="String" allow-html="safe"/>
+        <attribute name="price" mode="IN" type="String" optional="true"/>
+        <attribute name="currencyId" mode="IN" type="String" optional="true"/>
+        <attribute mode="IN" name="imageData" optional="true" type="java.nio.ByteBuffer"/>
+        <attribute mode="IN" name="_imageData_contentType" optional="true" type="String"/>
+        <attribute mode="IN" name="_imageData_fileName" optional="true" type="String"/>
+    </service>
 </services>
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java?rev=957428&r1=957427&r2=957428&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java Thu Jun 24 06:13:20 2010
@@ -19,6 +19,8 @@
 package org.ofbiz.ebaystore;
 
 import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -26,6 +28,8 @@ import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Iterator;
@@ -37,6 +41,7 @@ import javolution.util.FastList;
 import javolution.util.FastMap;
 
 import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.FileUtil;
 import org.ofbiz.base.util.StringUtil;
 import org.ofbiz.base.util.UtilDateTime;
 import org.ofbiz.base.util.UtilMisc;
@@ -44,6 +49,7 @@ import org.ofbiz.base.util.UtilPropertie
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.base.util.UtilXml;
 import org.ofbiz.common.DataModelConstants;
+
 import org.ofbiz.entity.Delegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
@@ -66,12 +72,19 @@ import com.ebay.sdk.SdkSoapException;
 import com.ebay.sdk.call.*;
 import com.ebay.sdk.util.eBayUtil;
 import com.ebay.soap.eBLBaseComponents.AmountType;
+import com.ebay.soap.eBLBaseComponents.BestOfferActionCodeType;
+import com.ebay.soap.eBLBaseComponents.BestOfferDetailsType;
+import com.ebay.soap.eBLBaseComponents.BestOfferStatusCodeType;
+import com.ebay.soap.eBLBaseComponents.BestOfferType;
+import com.ebay.soap.eBLBaseComponents.CategoryFeatureType;
 import com.ebay.soap.eBLBaseComponents.CheckoutStatusCodeType;
 import com.ebay.soap.eBLBaseComponents.CurrencyCodeType;
 import com.ebay.soap.eBLBaseComponents.DeleteSellingManagerTemplateRequestType;
 import com.ebay.soap.eBLBaseComponents.DeleteSellingManagerTemplateResponseType;
 import com.ebay.soap.eBLBaseComponents.DisputeExplanationCodeType;
 import com.ebay.soap.eBLBaseComponents.DisputeReasonCodeType;
+import com.ebay.soap.eBLBaseComponents.FeesType;
+import com.ebay.soap.eBLBaseComponents.GalleryTypeCodeType;
 import com.ebay.soap.eBLBaseComponents.GetAllBiddersModeCodeType;
 import com.ebay.soap.eBLBaseComponents.GetSellingManagerInventoryRequestType;
 import com.ebay.soap.eBLBaseComponents.GetSellingManagerInventoryResponseType;
@@ -80,13 +93,19 @@ import com.ebay.soap.eBLBaseComponents.G
 import com.ebay.soap.eBLBaseComponents.GetStoreRequestType;
 import com.ebay.soap.eBLBaseComponents.GetStoreResponseType;
 import com.ebay.soap.eBLBaseComponents.ItemSortTypeCodeType;
+import com.ebay.soap.eBLBaseComponents.ListingDetailsType;
 import com.ebay.soap.eBLBaseComponents.ListingTypeCodeType;
 import com.ebay.soap.eBLBaseComponents.MerchDisplayCodeType;
+import com.ebay.soap.eBLBaseComponents.NameRecommendationType;
 import com.ebay.soap.eBLBaseComponents.OfferType;
 import com.ebay.soap.eBLBaseComponents.OrderTransactionArrayType;
 import com.ebay.soap.eBLBaseComponents.OrderTransactionType;
 import com.ebay.soap.eBLBaseComponents.OrderType;
 import com.ebay.soap.eBLBaseComponents.PaginationType;
+import com.ebay.soap.eBLBaseComponents.PhotoDisplayCodeType;
+import com.ebay.soap.eBLBaseComponents.PictureDetailsType;
+import com.ebay.soap.eBLBaseComponents.PictureSourceCodeType;
+import com.ebay.soap.eBLBaseComponents.RecommendationsType;
 import com.ebay.soap.eBLBaseComponents.SecondChanceOfferDurationCodeType;
 import com.ebay.soap.eBLBaseComponents.SellingManagerProductDetailsType;
 import com.ebay.soap.eBLBaseComponents.SellingManagerProductInventoryStatusType;
@@ -125,6 +144,7 @@ import com.ebay.soap.eBLBaseComponents.T
 import com.ebay.soap.eBLBaseComponents.TransactionArrayType;
 import com.ebay.soap.eBLBaseComponents.TransactionType;
 import com.ebay.soap.eBLBaseComponents.UserType;
+import com.ebay.soap.eBLBaseComponents.ValueRecommendationType;
 import com.ebay.soap.eBLBaseComponents.VerifyAddSecondChanceItemResponseType;
 
 import java.sql.Timestamp;
@@ -1442,6 +1462,8 @@ public class EbayStore {
         String buyerId = (String) context.get("buyerId");
         String listingType = (String) context.get("listingType");
         List soldItems = FastList.newInstance();
+        double reservPrice = 0;
+        int hitCount = 0;
         try {
             Map<String, Object> inMap = FastMap.newInstance();
             inMap.put("productStoreId", productStoreId);
@@ -1505,6 +1527,12 @@ public class EbayStore {
                             api.setDetailLevel(detailLevels);
                             ItemType itemType = api.getItem();
                             String itemUrl = null;
+                            
+                            entry.put("SKU", itemType.getSKU());
+                            if (UtilValidate.isNotEmpty(itemType.getReservePrice())) reservPrice = itemType.getReservePrice().getValue();
+                            entry.put("reservePrice", reservPrice);
+                            entry.put("hitCount", itemType.getHitCount() != null ? itemType.getHitCount() : 0);
+                            
                             if (itemType.getListingDetails() != null) {
                                 itemUrl  = itemType.getListingDetails().getViewItemURL();
                             }
@@ -1892,6 +1920,7 @@ public class EbayStore {
             GetMyeBaySellingCall api = new GetMyeBaySellingCall(apiContext);
             ItemListCustomizationType itemListType = new ItemListCustomizationType();
             itemListType.setInclude(Boolean.TRUE);
+            itemListType.setSort(ItemSortTypeCodeType.ITEM_ID_DESCENDING);
 
             String entriesPerPage = (String) context.get("entriesPerPage");
             String pageNumber = (String) context.get("pageNumber");
@@ -1907,6 +1936,8 @@ public class EbayStore {
             itemListType.setPagination(page);
             if (UtilValidate.isNotEmpty(listingType)) {
                 itemListType.setListingType(ListingTypeCodeType.valueOf(listingType));
+            } else {
+                itemListType.setListingType(ListingTypeCodeType.FIXED_PRICE_ITEM);
             }
             DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] {
                     DetailLevelCodeType.RETURN_ALL,
@@ -2031,6 +2062,8 @@ public class EbayStore {
     static Map<String, Object> schItemToColumns(ItemType item) {
         Map<String, Object> cols = FastMap.newInstance();
         int i = 0;
+        double reservPrice = 0;
+        int hitCount = 0;
         cols.put("itemId", item.getItemID() != null ? item.getItemID() : "");
         cols.put("title", item.getTitle() != null ? item.getTitle() : "");
 
@@ -2046,12 +2079,18 @@ public class EbayStore {
         }
         cols.put("quantity", quantityStr);
         cols.put("listingType", item.getListingType().value());
+        cols.put("SKU", item.getSKU());
+        if (UtilValidate.isNotEmpty(item.getReservePrice())) reservPrice = item.getReservePrice().getValue();
+        cols.put("reservePrice", reservPrice);
+        cols.put("hitCount", item.getHitCount() != null ? item.getHitCount() : 0);
         return cols;
     }
 
     static Map<String, Object> unsoldItemToColumns(ItemType item) {
         Map<String, Object> cols = FastMap.newInstance();
         int i = 0;
+        double reservPrice = 0;
+        int hitCount = 0;
         cols.put("itemId", item.getItemID() != null ? item.getItemID() : "");
         cols.put("title", item.getTitle() != null ? item.getTitle() : "");
 
@@ -2071,6 +2110,10 @@ public class EbayStore {
         }
         cols.put("quantity", quantityStr);
         cols.put("listingType", item.getListingType().value());
+        cols.put("SKU", item.getSKU());
+        if (UtilValidate.isNotEmpty(item.getReservePrice())) reservPrice = item.getReservePrice().getValue();
+        cols.put("reservePrice", reservPrice);
+        cols.put("hitCount", item.getHitCount() != null ? item.getHitCount() : 0);
         return cols;
     }
 
@@ -2191,4 +2234,136 @@ public class EbayStore {
         cols.put("sellerPaidStatus", sellerPaidStatus);
         return cols; 
     }
+    
+    public Map<String, Object> getEbayStoreProductItem(DispatchContext dctx, Map<String, ? extends Object> context) {
+        Map<String, Object>result = FastMap.newInstance();
+        LocalDispatcher dispatcher = dctx.getDispatcher();
+        GenericValue userLogin = (GenericValue) context.get("userLogin");
+        Delegator delegator = dctx.getDelegator();
+        Locale locale = (Locale) context.get("locale");
+        String productStoreId = (String) context.get("productStoreId");
+        String itemID = (String) context.get("itemId");
+        
+        try {
+            Map<String, Object> inMap = FastMap.newInstance();
+            inMap.put("productStoreId", productStoreId);
+            inMap.put("userLogin", userLogin);
+            Map<String, Object> resultUser = dispatcher.runSync("getEbayStoreUser", inMap);
+            String userID = (String) resultUser.get("userLoginId");
+            ApiContext apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
+            GetItemCall api = new GetItemCall(apiContext);
+            
+            DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] {
+                    DetailLevelCodeType.RETURN_ALL,
+                    DetailLevelCodeType.ITEM_RETURN_ATTRIBUTES,
+                    DetailLevelCodeType.ITEM_RETURN_DESCRIPTION
+            };
+            api.setDetailLevel(detailLevels);
+            api.getItem(itemID);
+            
+            // Set item type.
+            ItemType item = api.getReturnedItem();
+            String title = item.getTitle();
+            String description = item.getDescription();
+            String listingType = item.getListingType().value();
+            
+            if (item.getPictureDetails() != null) {
+                String url[] = item.getPictureDetails().getPictureURL();
+                if (url.length != 0) {
+                    result.put("pictureURL", url[0]);
+                } else {
+                    result.put("pictureURL", null);
+                }
+            } else {
+                result.put("pictureURL", null);
+            }
+            
+            result.put("title", title);
+            result.put("description", description);
+            AmountType amt = item.getStartPrice();
+            result.put("price", amt != null ? (new Double(amt.getValue()).toString()) : "");
+            result.put("currencyId", amt.getCurrencyID().toString());
+            result.put("listingType", listingType);
+        } catch (Exception e) {
+            return ServiceUtil.returnError(e.getMessage());
+        }
+        return result;
+    }
+    
+    public Map<String, Object> reviseEbayStoreProductItem(DispatchContext dctx, Map<String, ? extends Object> context) {
+        Map<String, Object>result = FastMap.newInstance();
+        LocalDispatcher dispatcher = dctx.getDispatcher();
+        GenericValue userLogin = (GenericValue) context.get("userLogin");
+        Delegator delegator = dctx.getDelegator();
+        Locale locale = (Locale) context.get("locale");
+        String productStoreId = (String) context.get("productStoreId");
+        String itemID = (String) context.get("itemId");
+        String listingType = (String) context.get("listingType");
+        String title = (String) context.get("title");
+        String description = (String) context.get("description");
+        String price = (String) context.get("price");
+        String imageFileName = (String) context.get("_imageData_fileName");
+        String currencyId = (String) context.get("currencyId");
+        
+        try {
+            Map<String, Object> inMap = FastMap.newInstance();
+            inMap.put("productStoreId", productStoreId);
+            inMap.put("userLogin", userLogin);
+            Map<String, Object> resultUser = dispatcher.runSync("getEbayStoreUser", inMap);
+            String userID = (String) resultUser.get("userLoginId");
+            ApiContext apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
+            String sandboxEPSURL = "https://api.sandbox.ebay.com/ws/api.dll";
+            apiContext.setEpsServerUrl(sandboxEPSURL);
+            ReviseItemCall api = new ReviseItemCall(apiContext);
+            
+            // Set item type.
+            ItemType itemToBeRevised = new ItemType();
+            itemToBeRevised.setItemID(itemID);
+            
+            if (UtilValidate.isNotEmpty(title)) {
+                itemToBeRevised.setTitle(title);
+            }
+            
+            if (UtilValidate.isNotEmpty(description)) {
+                itemToBeRevised.setDescription(description);
+            }
+            
+            // Set startPrice value.
+            AmountType startPrice = new AmountType();
+            if (UtilValidate.isNotEmpty(price)) {
+                startPrice.setValue(Double.parseDouble(price));
+                startPrice.setCurrencyID(CurrencyCodeType.valueOf(currencyId));
+                itemToBeRevised.setStartPrice(startPrice);
+            }
+            
+            // Check upload image file.
+            if (UtilValidate.isNotEmpty(imageFileName)) { 
+                
+                // Upload image to ofbiz path /runtime/tmp .
+                ByteBuffer byteWrap = (ByteBuffer) context.get("imageData");
+                File file = new File(System.getProperty("ofbiz.home"), "runtime" + File.separator + "tmp" + File.separator + imageFileName);
+                FileChannel wChannel = new FileOutputStream(file, false).getChannel();
+                wChannel.write(byteWrap);
+                wChannel.close();
+                
+                // Set path file picture to api and set picture details.
+                String [] pictureFiles = {System.getProperty("ofbiz.home") + File.separator + "runtime" + File.separator + "tmp" + File.separator + imageFileName};
+                PictureDetailsType pictureDetails = new PictureDetailsType();
+                pictureDetails.setGalleryType(GalleryTypeCodeType.GALLERY);
+                pictureDetails.setPhotoDisplay(PhotoDisplayCodeType.NONE);
+                pictureDetails.setPictureSource(PictureSourceCodeType.EPS);
+                itemToBeRevised.setPictureDetails(pictureDetails);
+                
+                api.setItemToBeRevised(itemToBeRevised);
+                api.uploadPictures(pictureFiles, pictureDetails);
+                FeesType fees = api.reviseItem();
+            } else {
+                api.setItemToBeRevised(itemToBeRevised);
+                FeesType fees = api.reviseItem();
+            }
+        } catch (Exception e) {
+            return ServiceUtil.returnError(e.getMessage());
+        }
+        return ServiceUtil.returnSuccess("Update Item  Successfully.");
+    }
 }
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml?rev=957428&r1=957427&r2=957428&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml Thu Jun 24 06:13:20 2010
@@ -314,13 +314,22 @@
         <response name="success" type="request" value="clearExpListing"/>
         <response name="error" type="view" value="exportProductListing"/>
     </request-map>
-
     <!-- Selling Manager -->
     <request-map uri="sellingManager">
         <security https="true" auth="true"/>
         <response name="success" type="view" value="ebayStoreInventory"/>
         <response name="error" type="view" value="ebayStoreInventory"/>
     </request-map>
+    <request-map uri="getItemProduct">
+        <security auth="true" https="true"/>
+        <response name="success" type="view" value="GetItemProduct"/>
+    </request-map>
+    <request-map uri="editItemProduct">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="reviseEbayStoreProductItem"/>
+        <response name="success" type="view" value="GetItemProduct"/>
+        <response name="error" type="view" value="GetItemProduct"/>
+    </request-map>
     <!-- Active -->
     <request-map uri="activeListing">
         <security auth="true" https="true"/>
@@ -416,6 +425,7 @@
     <view-map name="AutomationPreferences" type="screen" page="component://ebaystore/widget/EbaySellingManagerScreens.xml#EbayAutomationPreferences"/>
     <!-- Selling Manager -->
     <view-map name="editEmailTemplate" type="screen" page="component://ebaystore/widget/EbaySellingManagerScreens.xml#EditEmailTemplate"/>
+    <view-map name="GetItemProduct" type="screen" page="component://ebaystore/widget/EbaySellingManagerScreens.xml#GetItemProduct"/>
     <!-- store Inventory -->
     <view-map name="ebayStoreInventory" type="screen" page="component://ebaystore/widget/EbaySellingManagerScreens.xml#ebayStoreInventory"/>
     <view-map name="ebayLoadStoreInventory" type="screen" page="component://ebaystore/widget/EbaySellingManagerScreens.xml#ebayLoadStoreInventory"/>
@@ -441,5 +451,6 @@
     <view-map name="WaitingToShipping" type="screen" page="component://ebaystore/widget/EbaySellingManagerScreens.xml#WaitingToShipping"/>
     <view-map name="ordersImported" type="screen" page="component://ebaystore/widget/EbaySellingManagerScreens.xml#ordersImported"/>
     <view-map name="errorMessageList" type="screen" page="component://ebaystore/widget/EbayStoreScreens.xml#errorMessageList"/>
+    
     <!-- end of view mappings -->
 </site-conf>

Modified: ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml?rev=957428&r1=957427&r2=957428&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml Thu Jun 24 06:13:20 2010
@@ -77,9 +77,12 @@ value="${bsh:billingAccount != null ? or
         </row-actions>
         <field name="productStoreId"><hidden value="${parameters.productStoreId}"/></field>
         <field name="itemId"><display description="${itemId}"/></field>
+        <field name="SKU" title="Product ID"><display/></field>
         <field name="title"><display description="${title}"/></field>
         <field name="buyer"><display description="${buyer}"/></field>
         <field name="listingType"><display description="${listingType}"/></field>
+        <field name="hitCount"><display/></field>
+        <field name="reservePrice"><display/></field>
         <field name="quantity"><display description="${quantity}"/></field>
         <field name="transactionId"><display description="${transactionId}"/></field>
         <field name="totalAmount"><display description="${totalAmount}"/></field>
@@ -469,7 +472,7 @@ value="${bsh:billingAccount != null ? or
     <form name="ActiveItemList" type="list"  target="doAction" list-name="activeItemList"
         odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar" use-row-submit="true" separate-columns="true">
         <field name="itemId"><display/></field>
-        <field name="SKU"><display/></field>
+        <field name="SKU" title="Product ID"><display/></field>
         <field name="title">
             <hyperlink target="${viewItemURL}" description="${title}" target-type="plain" target-window="_BLANK"/>
         </field>
@@ -480,15 +483,20 @@ value="${bsh:billingAccount != null ? or
         <field name="startTime"><display/></field>
         <field name="quantity"><display/></field>
         <field name="listingType"><display/></field>
+        <field name="EditItem">
+            <hyperlink target="getItemProduct?productStoreId=${parameters.productStoreId}&amp;itemId=${itemId}" description="Edit" target-type="plain" target-window="_BLANK"/>
+        </field>
     </form>
     <!-- Unsold Listing -->
     <form name="UnsoldItemList" type="list"  target="doAction" list-name="unsoldItemList"
         odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar" use-row-submit="true" separate-columns="true">
         <field name="productStoreId"><hidden value="${parameters.productStoreId}"/></field>
         <field name="itemId"><display/></field>
+        <field name="SKU" title="Product ID"><display/></field>
         <field name="title"><display/></field>
-        <field name="quantity"><display/></field>
         <field name="price"><display/></field>
+        <field name="hitCount"><display/></field>
+        <field name="reservePrice"><display/></field>
         <field name="startTime"><display/></field>
         <field name="endTime"><display/></field>
         <field name="quantity"><display/></field>
@@ -553,4 +561,17 @@ value="${bsh:billingAccount != null ? or
         </field>
         <field name="submitButton" title="${uiLabelMap.CommonFind}"><submit/></field>
     </form>
+    <form name="EditItemProduct"  target="editItemProduct" type="upload" >
+        <field name="productStoreId"><hidden value="${parameters.productStoreId}"/></field>
+        <field name="itemId"><hidden value="${parameters.itemId}"/></field>
+        <field name="listingType"><hidden/></field>
+        <field name="pictureURL" title="Picture" use-when="pictureURL==null"><image width="100" value="/images/defaultImage.jpg"></image></field>
+        <field name="pictureURL" title="Picture" use-when="pictureURL!=null"><image width="150"></image></field>
+        <field name="imageData" title="${uiLabelMap.CommonUpload}"><file/></field>
+        <field name="title"><text size="50"/></field>
+        <field name="description" encode-output="true"><textarea/></field>
+        <field name="price"><text/></field>
+        <field name="currencyId" title="Currency Code"><display/></field>
+        <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
+    </form>
 </forms>
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml?rev=957428&r1=957427&r2=957428&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml Thu Jun 24 06:13:20 2010
@@ -460,7 +460,7 @@
             <widgets>
                 <decorator-screen name="EbayActiveListing">
                     <decorator-section name="body">
-                        <screenlet title="${uiLabelMap.EbayOpenListings}">
+                        <screenlet title="Active to Open Listings">
                             <include-form location="component://ebaystore/widget/EbaySellingManagerForms.xml" name="ItemOption"/>
                             <include-form location="component://ebaystore/widget/EbaySellingManagerForms.xml" name="ActiveItemList"/>
                         </screenlet>
@@ -555,4 +555,31 @@
             </widgets>
         </section>
     </screen>
-</screens>
\ No newline at end of file
+    <screen name="GetItemProduct">
+        <section>
+            <actions>
+                <set field="headerItem" value="ebayStore"/>
+                <service service-name="getEbayStoreProductItem" result-map="result">
+                    <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
+                    <field-map field-name="itemId" from-field="parameters.itemId"/>
+                </service>
+                <set field="title" from-field="result.title"/>
+                <set field="description" from-field="result.description"/>
+                <set field="price" from-field="result.price"/>
+                <set field="pictureURL" from-field="result.pictureURL"/>
+                <set field="listingType" from-field="result.listingType"/>
+                <set field="currencyId" from-field="result.currencyId"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="SellingManagerDecorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <decorator-section-include name="body"/>
+                            <screenlet title="Edit Product Item" collapsible="true" name="GetItemProduct">
+                                <include-form name="EditItemProduct"  location="component://ebaystore/widget/EbaySellingManagerForms.xml"/>
+                            </screenlet>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+</screens>