blob: c043733c685a985c275ca6657028d10c5c47bcb6 [file] [log] [blame]
/*
* 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<String, List> categorySpecificMap = categorySpecificObject.get("categorySpecifics")
int checkNameSpecific = null
int checkValueSpecific = null
Iterator<String> specificIterator = categorySpecificMap.keySet().iterator()
while(specificIterator.hasNext()){
String name = specificIterator.next()
List<String> 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