/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import org.apache.ofbiz.product.product.ProductContentWrapper import org.apache.ofbiz.product.catalog.CatalogWorker import org.apache.ofbiz.ebaystore.EbayStoreHelper import com.ebay.sdk.ApiContext import com.ebay.sdk.call.AddItemCall import com.ebay.soap.eBLBaseComponents.BuyerPaymentMethodCodeType import com.ebay.soap.eBLBaseComponents.ItemSpecificsEnabledCodeType import com.ebay.soap.eBLBaseComponents.SiteCodeType import org.apache.ofbiz.ebaystore.EbayEvents //set the content path prefix contentPathPrefix = CatalogWorker.getContentPathPrefix(request) productStoreId = parameters.productStoreId search_CategoryId = parameters.search_CategoryId //Get the addItemList and Prepare details apiContext = EbayEvents.getApiContext(request) addItemObj = EbayEvents.getAddItemListingObject(request, apiContext) contents = [] if (addItemObj) { site = (SiteCodeType)apiContext.getSite() isExportValid = "false" context.site = site context.siteCode = apiContext.getSite().value() context.siteCode_Ebay_Motors = SiteCodeType.E_BAY_MOTORS.value() addItems = addItemObj.itemListing addItems.each{ addItemMap -> addItem = addItemMap.addItemCall content = [:] item = addItem.getItem() productId = item.getSKU() product = from("Product").where("productId", productId).cache(true).queryOne() contentWrapper = new ProductContentWrapper(product, request) content.productContentWrapper = contentWrapper content.product = product contents.add(content) if (addItemMap.isVerify == "Y") { isExportValid = "true" } else { isExportValid = "false" } } context.isExportValid = isExportValid request.setAttribute("productStoreId", productStoreId) categories = EbayEvents.getChildCategories(request) context.categories = categories storeCategories = EbayEvents.getStoreChildCategories(request) context.storeCategories = storeCategories // point product tab id productId = null if (request.getAttribute("isProductId") || parameters.isProductId) { if (request.getAttribute("isProductId")) { productId = request.getAttribute("isProductId") } else { productId = parameters.isProductId } context.isProductId = productId // get product default price form product price productPrices = from("ProductPrice").where("productId", productId, "productPricePurposeId", "EBAY").queryList() if (productPrices) { context.productPrices = productPrices } //Is it reserve on eBayInventory isReserve = EbayStoreHelper.isReserveInventory(delegator, productStoreId, productId) context.isReserve = isReserve // get category detail pkCateId = null stCate1ID = null stCate2ID = null addItems.each{ addItemMap -> addItem = addItemMap.addItemCall item = addItem.getItem() if (productId == item.getSKU()) { primaryCate = item.getPrimaryCategory() storeFront = item.getStorefront() if (storeFront) { stCate1ID = storeFront.getStoreCategoryID() stCate2ID = storeFront.getStoreCategory2ID() context.storeFront = storeFront } if (primaryCate) pkCateId = primaryCate.getCategoryID() } } categorySpecificObject = EbayEvents.categorySpecifics(pkCateId, request) if(categorySpecificObject) { Map categorySpecificMap = categorySpecificObject.get("categorySpecifics") int checkNameSpecific = null int checkValueSpecific = null Iterator specificIterator = categorySpecificMap.keySet().iterator() while(specificIterator.hasNext()){ String name = specificIterator.next() List valueList = categorySpecificMap.get(name) checkValueSpecific = (valueList) ? 1 : 0 } checkNameSpecific = categorySpecificMap.size() String checkSpecific = ((checkNameSpecific > 0) && (checkValueSpecific == 1)) ? "true" : "false" context.checkSpecific = checkSpecific context.categorySpecifix = categorySpecificObject } context.stCate1ID = stCate1ID context.stCate2ID = stCate2ID if (pkCateId) { refName = "itemCateFacade_" + pkCateId if (addItemObj.get(refName)) { cf = addItemObj.get(refName) if (cf) { listingTypes = [] listingDurationReferenceMap = cf.getListingDurationReferenceMap() listingDurationMap = cf.getListingDurationMap() if (listingDurationReferenceMap && listingDurationMap) { Iterator keys = listingDurationReferenceMap.keySet().iterator() while (keys.hasNext()) { listingTypeMap = [:] String key = keys.next() listingTypeMap.type = key listingTypeMap.durations = listingDurationMap.get(new Integer(listingDurationReferenceMap.get(key))) listingTypes.add(listingTypeMap) } } context.listingTypes = listingTypes buyerPaymentMethods = cf.getPaymentMethods() if (buyerPaymentMethods) { context.paymentMethods = buyerPaymentMethods context.buyerPayMethCode_PAY_PAL = BuyerPaymentMethodCodeType.PAY_PAL } // load item specifices and custom if both item attributes and item specifics are supported, we only use item specifics if (cf.getItemSpecificEnabled()) { if (ItemSpecificsEnabledCodeType.ENABLED.equals(cf.getItemSpecificEnabled())) { } else if (cf.AttributesEnabled()) { //show attributes input page String attributesHtml = attrMaster.renderHtml(cf.getJoinedAttrSets(), null) context.AttributesHtml = attributesHtml } else {//show return policy input page sf = EbayEvents.getSiteFacade(apiContext,request) details = sf.getEBayDetailsMap().get(apiContext.getSite()) returnPolicyEnabled = cf.getRetPolicyEnabled() context.EBayDetails = details context.ReturnPolicyEnabled = returnPolicyEnabled } } // load shipping services detail eBayDetailsMap = sf.getEBayDetailsMap() if (eBayDetailsMap) { eBayDetails = eBayDetailsMap.get(site) shippingServiceDetails = eBayDetails.getShippingServiceDetails() shippingServiceDetails = EbayEvents.filterShippingService(shippingServiceDetails) context.shippingServiceDetails = shippingServiceDetails shippingLocationDetails = eBayDetails.getShippingLocationDetails() context.shippingLocationDetails = shippingLocationDetails } // load AdItemTemplates if (cf.getAdItemTemplates()) { context.adItemTemplates = cf.getAdItemTemplates() } } } } } } context.addItemObj = addItemObj context.contentList = contents