本文整理汇总了PHP中Ess_M2ePro_Model_Listing_Product::addData方法的典型用法代码示例。如果您正苦于以下问题:PHP Ess_M2ePro_Model_Listing_Product::addData方法的具体用法?PHP Ess_M2ePro_Model_Listing_Product::addData怎么用?PHP Ess_M2ePro_Model_Listing_Product::addData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ess_M2ePro_Model_Listing_Product
的用法示例。
在下文中一共展示了Ess_M2ePro_Model_Listing_Product::addData方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: linkItem
private function linkItem(Ess_M2ePro_Model_Listing_Product $listingProduct)
{
$data = array('general_id' => $listingProduct->getData('general_id'), 'is_isbn_general_id' => Mage::helper('M2ePro')->isISBN($listingProduct->getData('general_id')), 'sku' => $listingProduct->getData('sku'), 'status' => Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED);
$listingProduct->addData($data)->save();
$dataForAdd = array('account_id' => $listingProduct->getListing()->getAccountId(), 'marketplace_id' => $listingProduct->getListing()->getMarketplaceId(), 'sku' => $listingProduct->getData('sku'), 'product_id' => $listingProduct->getProductId(), 'store_id' => $listingProduct->getListing()->getStoreId());
Mage::getModel('M2ePro/Amazon_Item')->setData($dataForAdd)->save();
$message = Mage::helper('M2ePro')->__('The product was found in your Amazon inventory and linked by SKU.');
$this->addListingsProductsLogsMessage($listingProduct, $message, Ess_M2ePro_Model_Log_Abstract::TYPE_SUCCESS, Ess_M2ePro_Model_Log_Abstract::PRIORITY_MEDIUM);
}
示例2: updateProductAfterAction
protected function updateProductAfterAction(Ess_M2ePro_Model_Listing_Product $listingProduct, array $nativeRequestData = array(), array $params = array(), $ebayItemsId = NULL, $saveEbayQtySold = false)
{
$dataForUpdate = array('status' => Ess_M2ePro_Model_Listing_Product::STATUS_LISTED);
!is_null($ebayItemsId) && ($dataForUpdate['ebay_item_id'] = (int) $ebayItemsId);
isset($params['status_changer']) && ($dataForUpdate['status_changer'] = (int) $params['status_changer']);
if (isset($params['start_date_raw'])) {
$dataForUpdate['start_date'] = Ess_M2ePro_Model_Connector_Server_Ebay_Abstract::ebayTimeToString($params['start_date_raw']);
}
if (isset($params['end_date_raw'])) {
$dataForUpdate['end_date'] = Ess_M2ePro_Model_Connector_Server_Ebay_Abstract::ebayTimeToString($params['end_date_raw']);
}
if ($saveEbayQtySold) {
$dataForUpdate['online_qty_sold'] = is_null($listingProduct->getChildObject()->getOnlineQtySold()) ? 0 : $listingProduct->getChildObject()->getOnlineQtySold();
$tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
$tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['qty']);
if ($tempUpdateFlag) {
$tempQty = $tempIsVariation ? $listingProduct->getChildObject()->getQty() : $nativeRequestData['qty'];
$dataForUpdate['online_qty'] = (int) $tempQty + (int) $dataForUpdate['online_qty_sold'];
}
} else {
$dataForUpdate['online_qty_sold'] = 0;
$tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
$tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['qty']);
if ($tempUpdateFlag) {
$tempQty = $tempIsVariation ? $listingProduct->getChildObject()->getQty() : $nativeRequestData['qty'];
$dataForUpdate['online_qty'] = $tempQty;
}
}
if ($listingProduct->getChildObject()->isListingTypeFixed()) {
$dataForUpdate['online_start_price'] = NULL;
$dataForUpdate['online_reserve_price'] = NULL;
$dataForUpdate['online_bids'] = NULL;
$tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
$tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['price_fixed']);
if ($tempUpdateFlag) {
if ($tempIsVariation) {
$tempPrice = NULL;
foreach ($nativeRequestData['variation'] as $variation) {
if ((int) $variation['qty'] <= 0) {
continue;
}
if (!is_null($tempPrice) && (double) $variation['price'] >= $tempPrice) {
continue;
}
$tempPrice = (double) $variation['price'];
}
} else {
$tempPrice = $nativeRequestData['price_fixed'];
}
$dataForUpdate['online_buyitnow_price'] = (double) $tempPrice;
}
} else {
$dataForUpdate['online_bids'] = 0;
if (isset($nativeRequestData['price_start'])) {
$dataForUpdate['online_start_price'] = (double) $nativeRequestData['price_start'];
}
if (isset($nativeRequestData['price_reserve'])) {
$dataForUpdate['online_reserve_price'] = (double) $nativeRequestData['price_reserve'];
}
if (isset($nativeRequestData['price_buyitnow'])) {
$dataForUpdate['online_buyitnow_price'] = (double) $nativeRequestData['price_buyitnow'];
}
}
$listingProduct->addData($dataForUpdate)->save();
}
示例3: updateProductAfterAction
protected function updateProductAfterAction(Ess_M2ePro_Model_Listing_Product $listingProduct, array $nativeRequestData = array(), array $params = array(), $startDate = false)
{
$dataForUpdate = array('status' => Ess_M2ePro_Model_Listing_Product::STATUS_LISTED, 'ignore_next_inventory_synch' => 1);
if ($this->isAllPermissionsEnabled($this->getPreparedPermissions($params['params']))) {
$dataForUpdate['synch_status'] = Ess_M2ePro_Model_Listing_Product::SYNCH_STATUS_OK;
$dataForUpdate['synch_reasons'] = NULL;
}
isset($params['status_changer']) && ($dataForUpdate['status_changer'] = (int) $params['status_changer']);
$startDate !== false && ($dataForUpdate['start_date'] = $startDate);
if (isset($nativeRequestData['qty'])) {
$dataForUpdate['online_qty'] = (int) $nativeRequestData['qty'];
if ((int) $dataForUpdate['online_qty'] > 0) {
$dataForUpdate['status'] = Ess_M2ePro_Model_Listing_Product::STATUS_LISTED;
$dataForUpdate['end_date'] = NULL;
} else {
$dataForUpdate['status'] = Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED;
$dataForUpdate['end_date'] = Mage::helper('M2ePro')->getCurrentGmtDate();
}
}
if (isset($nativeRequestData['price'])) {
$dataForUpdate['online_price'] = (double) $nativeRequestData['price'];
}
if (isset($nativeRequestData['condition_note'])) {
$dataForUpdate['condition_note'] = (string) $nativeRequestData['condition_note'];
}
if (isset($nativeRequestData['shipping_standard_rate'])) {
$dataForUpdate['shipping_standard_rate'] = $nativeRequestData['shipping_standard_rate'];
$dataForUpdate['shipping_standard_rate'] === '' && ($dataForUpdate['shipping_standard_rate'] = NULL);
}
if (isset($nativeRequestData['shipping_expedited_mode'])) {
$dataForUpdate['shipping_expedited_mode'] = (int) $nativeRequestData['shipping_expedited_mode'];
}
if (isset($nativeRequestData['shipping_expedited_rate'])) {
$dataForUpdate['shipping_expedited_rate'] = $nativeRequestData['shipping_expedited_rate'];
$dataForUpdate['shipping_expedited_rate'] === '' && ($dataForUpdate['shipping_expedited_rate'] = NULL);
}
if (isset($nativeRequestData['shipping_one_day_mode'])) {
$dataForUpdate['shipping_one_day_mode'] = $nativeRequestData['shipping_one_day_mode'];
$dataForUpdate['shipping_one_day_mode'] === '' && ($dataForUpdate['shipping_one_day_mode'] = NULL);
}
if (isset($nativeRequestData['shipping_one_day_rate'])) {
$dataForUpdate['shipping_one_day_rate'] = $nativeRequestData['shipping_one_day_rate'];
$dataForUpdate['shipping_one_day_rate'] === '' && ($dataForUpdate['shipping_one_day_rate'] = NULL);
}
if (isset($nativeRequestData['shipping_two_day_mode'])) {
$dataForUpdate['shipping_two_day_mode'] = $nativeRequestData['shipping_two_day_mode'];
$dataForUpdate['shipping_two_day_mode'] === '' && ($dataForUpdate['shipping_two_day_mode'] = NULL);
}
if (isset($nativeRequestData['shipping_two_day_rate'])) {
$dataForUpdate['shipping_two_day_rate'] = $nativeRequestData['shipping_two_day_rate'];
$dataForUpdate['shipping_two_day_rate'] === '' && ($dataForUpdate['shipping_two_day_rate'] = NULL);
}
$listingProduct->addData($dataForUpdate)->save();
}
示例4: updateProductAfterAction
protected function updateProductAfterAction(Ess_M2ePro_Model_Listing_Product $listingProduct, array $nativeRequestData = array(), array $params = array(), $startDate = false)
{
$dataForUpdate = array('status' => Ess_M2ePro_Model_Listing_Product::STATUS_LISTED, 'is_afn_channel' => Ess_M2ePro_Model_Amazon_Listing_Product::IS_AFN_CHANNEL_NO);
if ($this->isAllPermissionsEnabled($this->getPreparedPermissions($params['params']))) {
$dataForUpdate['synch_status'] = Ess_M2ePro_Model_Listing_Product::SYNCH_STATUS_OK;
$dataForUpdate['synch_reasons'] = NULL;
}
isset($params['status_changer']) && ($dataForUpdate['status_changer'] = (int) $params['status_changer']);
$startDate !== false && ($dataForUpdate['start_date'] = $startDate);
if (isset($nativeRequestData['qty'])) {
$dataForUpdate['online_qty'] = (int) $nativeRequestData['qty'];
if ((int) $dataForUpdate['online_qty'] > 0) {
$dataForUpdate['status'] = Ess_M2ePro_Model_Listing_Product::STATUS_LISTED;
$dataForUpdate['end_date'] = NULL;
} else {
$dataForUpdate['status'] = Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED;
$dataForUpdate['end_date'] = Mage::helper('M2ePro')->getCurrentGmtDate();
}
}
if (isset($nativeRequestData['price'])) {
$dataForUpdate['online_price'] = (double) $nativeRequestData['price'];
$dataForUpdate['online_sale_price'] = NULL;
$dataForUpdate['online_sale_price_start_date'] = NULL;
$dataForUpdate['online_sale_price_end_date'] = NULL;
if (isset($nativeRequestData['sale_price'])) {
$salePrice = (double) $nativeRequestData['sale_price'];
if ($salePrice > 0) {
$dataForUpdate['online_sale_price'] = $salePrice;
$dataForUpdate['online_sale_price_start_date'] = $nativeRequestData['sale_price_start_date'];
$dataForUpdate['online_sale_price_end_date'] = $nativeRequestData['sale_price_end_date'];
} else {
$dataForUpdate['online_sale_price'] = 0;
}
}
}
$listingProduct->addData($dataForUpdate)->save();
}
示例5: modifyAndLogListingProduct
private function modifyAndLogListingProduct(Ess_M2ePro_Model_Listing_Product $listingProduct, $status, $duplicateItemId = null)
{
/** @var Ess_M2ePro_Model_Listing_Log $logModel */
$logModel = Mage::getModel('M2ePro/Listing_Log');
$logModel->setComponentMode(Ess_M2ePro_Helper_Component_Ebay::NICK);
$logsActionId = $logModel->getNextActionId();
$statusLogMessage = $this->getStatusLogMessage($listingProduct->getStatus(), $status);
$logModel->addProductMessage($listingProduct->getData('listing_id'), $listingProduct->getData('product_id'), $listingProduct->getId(), Ess_M2ePro_Helper_Data::INITIATOR_EXTENSION, $logsActionId, Ess_M2ePro_Model_Listing_Log::ACTION_CHANNEL_CHANGE, $statusLogMessage, Ess_M2ePro_Model_Log_Abstract::TYPE_SUCCESS, Ess_M2ePro_Model_Log_Abstract::PRIORITY_LOW);
$additionalData = $listingProduct->getAdditionalData();
unset($additionalData['last_failed_action_data']);
$listingProduct->addData(array('status' => $status, 'additional_data' => json_encode($additionalData)))->save();
$listingProduct->getChildObject()->updateVariationsStatus();
if (is_null($duplicateItemId)) {
return;
}
// M2ePro_TRANSLATIONS
// Duplicated Item %item_id% was found and Stopped on eBay.
$textToTranslate = 'Duplicated Item %item_id% was found and stopped on eBay.';
$duplicateDeletedMessage = Mage::helper('M2ePro')->__($textToTranslate, $duplicateItemId);
$logModel->addProductMessage($listingProduct->getData('listing_id'), $listingProduct->getData('product_id'), $listingProduct->getId(), Ess_M2ePro_Helper_Data::INITIATOR_EXTENSION, $logsActionId, Ess_M2ePro_Model_Listing_Log::ACTION_CHANNEL_CHANGE, $duplicateDeletedMessage, Ess_M2ePro_Model_Log_Abstract::TYPE_WARNING, Ess_M2ePro_Model_Log_Abstract::PRIORITY_LOW);
}
示例6: updateProduct
protected function updateProduct(Ess_M2ePro_Model_Listing_Product $listingProduct, array $response)
{
$productData = array();
$descriptionTemplate = $listingProduct->getChildObject()->getDescriptionTemplate();
$oldDescriptionTemplateId = $descriptionTemplate->getId();
if (!isset($this->descriptionTemplatesIds[$oldDescriptionTemplateId]) && (trim($descriptionTemplate->getData('title_template')) != '#ebay_translated_title#' || trim($descriptionTemplate->getData('subtitle_template')) != '#ebay_translated_subtitle#' || trim($descriptionTemplate->getData('description_template')) != '#ebay_translated_description#')) {
$data = $descriptionTemplate->getDataSnapshot();
unset($data['id'], $data['update_date'], $data['create_date']);
$data['title'] = $data['title'] . Mage::helper('M2ePro')->__(' (Changed because Translation Service applied.)');
$data['title_mode'] = Ess_M2ePro_Model_Ebay_Template_Description::TITLE_MODE_CUSTOM;
$data['title_template'] = '#ebay_translated_title#';
$data['subtitle_mode'] = Ess_M2ePro_Model_Ebay_Template_Description::SUBTITLE_MODE_CUSTOM;
$data['subtitle_template'] = '#ebay_translated_subtitle#';
$data['description_mode'] = Ess_M2ePro_Model_Ebay_Template_Description::DESCRIPTION_MODE_CUSTOM;
$data['description_template'] = '#ebay_translated_description#';
$data['is_custom_template'] = 1;
$newDescriptionTemplate = Mage::getModel('M2ePro/Ebay_Template_Manager')->setTemplate(Ess_M2ePro_Model_Ebay_Template_Manager::TEMPLATE_DESCRIPTION)->getTemplateBuilder()->build($data);
$this->descriptionTemplatesIds[$oldDescriptionTemplateId] = $newDescriptionTemplate->getId();
}
if (isset($this->descriptionTemplatesIds[$oldDescriptionTemplateId])) {
$productData['template_description_custom_id'] = $this->descriptionTemplatesIds[$oldDescriptionTemplateId];
$productData['template_description_mode'] = Ess_M2ePro_Model_Ebay_Template_Manager::MODE_CUSTOM;
}
$this->checkAndCreateMagentoAttributes(array('ebay_translated_title' => 'Ebay Translated Title', 'ebay_translated_subtitle' => 'Ebay Translated Subtitle'), 'text');
$this->checkAndCreateMagentoAttributes(array('ebay_translated_description' => 'Ebay Translated Description'), 'textarea');
$this->checkAndCreateMagentoProductAttributes($listingProduct->getMagentoProduct(), array('ebay_translated_title', 'ebay_translated_subtitle', 'ebay_translated_description'));
$listingProduct->getMagentoProduct()->setAttributeValue('ebay_translated_title', $response['title'])->setAttributeValue('ebay_translated_subtitle', $response['subtitle'])->setAttributeValue('ebay_translated_description', $response['description']);
//------------------------------
$categoryPath = !is_null($response['category']['primary_id']) ? Mage::helper('M2ePro/Component_Ebay_Category_Ebay')->getPath((int) $response['category']['primary_id'], $this->params['marketplace_id']) : '';
$response['category']['path'] = $categoryPath;
if ($categoryPath) {
$data = Mage::getModel('M2ePro/Ebay_Template_Category')->getDefaultSettings();
$data['category_main_id'] = (int) $response['category']['primary_id'];
$data['category_main_path'] = $categoryPath;
$data['marketplace_id'] = $this->params['marketplace_id'];
$data['specifics'] = $this->getSpecificsData($response['item_specifics']);
$productData['template_category_id'] = Mage::getModel('M2ePro/Ebay_Template_Category_Builder')->build($data)->getId();
} else {
$response['category']['primary_id'] = null;
}
$additionalData = $listingProduct->getAdditionalData();
$additionalData['translation_service']['to'] = array_merge($additionalData['translation_service']['to'], $response);
$productData['additional_data'] = json_encode($additionalData);
$listingProduct->addData($productData)->save();
$listingProduct->getChildObject()->addData(array('translation_status' => Ess_M2ePro_Model_Ebay_Listing_Product::TRANSLATION_STATUS_TRANSLATED, 'translated_date' => Mage::helper('M2ePro')->getCurrentGmtDate()))->save();
}
示例7: linkItem
private function linkItem(Ess_M2ePro_Model_Listing_Product $listingProduct)
{
$data = array('general_id' => $listingProduct->getData('general_id'), 'sku' => $listingProduct->getData('sku'), 'status' => Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED);
$listingProduct->addData($data)->save();
$dataForAdd = array('account_id' => $listingProduct->getListing()->getAccountId(), 'marketplace_id' => $listingProduct->getListing()->getMarketplaceId(), 'sku' => $listingProduct->getData('sku'), 'product_id' => $listingProduct->getProductId(), 'store_id' => $listingProduct->getListing()->getStoreId());
if ($listingProduct->getChildObject()->isVariationsReady()) {
$variations = $listingProduct->getVariations(true);
/* @var $variation Ess_M2ePro_Model_Listing_Product_Variation */
$variation = reset($variations);
$options = $variation->getOptions();
$dataForAdd['variation_options'] = array();
foreach ($options as $optionData) {
$dataForAdd['variation_options'][$optionData['attribute']] = $optionData['option'];
}
$dataForAdd['variation_options'] = json_encode($dataForAdd['variation_options']);
}
Mage::getModel('M2ePro/Buy_Item')->setData($dataForAdd)->save();
$message = Mage::helper('M2ePro')->__('The product was found in your Rakuten.com inventory and linked by Reference ID.');
$this->addListingsProductsLogsMessage($listingProduct, $message, Ess_M2ePro_Model_Log_Abstract::TYPE_SUCCESS, Ess_M2ePro_Model_Log_Abstract::PRIORITY_MEDIUM);
}
示例8: updateListingProduct
private function updateListingProduct(Ess_M2ePro_Model_Listing_Product $listingProduct, $generalId)
{
$tempSku = $listingProduct->getChildObject()->getAddingSku();
$data = array('general_id' => $generalId, 'sku' => $tempSku, 'existance_check_status' => Ess_M2ePro_Model_Buy_Listing_Product::EXISTANCE_CHECK_STATUS_FOUND, 'status' => Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED);
$listingProduct->addData($data)->save();
$dataForAdd = array('account_id' => $listingProduct->getListing()->getGeneralTemplate()->getAccountId(), 'marketplace_id' => $listingProduct->getListing()->getGeneralTemplate()->getMarketplaceId(), 'sku' => $tempSku, 'product_id' => $listingProduct->getProductId(), 'store_id' => $listingProduct->getListing()->getStoreId());
Mage::getModel('M2ePro/Buy_Item')->setData($dataForAdd)->save();
$message = Mage::helper('M2ePro')->__('The product was found in your Rakuten.com inventory and linked by Reference ID.');
$this->addListingsProductsLogsMessage($listingProduct, $message, Ess_M2ePro_Model_Log_Abstract::TYPE_SUCCESS, Ess_M2ePro_Model_Log_Abstract::PRIORITY_MEDIUM);
}
示例9: updateProductAfterAction
protected function updateProductAfterAction(Ess_M2ePro_Model_Listing_Product $listingProduct, array $nativeRequestData = array(), array $params = array(), $startDate = false)
{
$dataForUpdate = array('status' => Ess_M2ePro_Model_Listing_Product::STATUS_LISTED);
isset($params['status_changer']) && ($dataForUpdate['status_changer'] = (int) $params['status_changer']);
$startDate !== false && ($dataForUpdate['start_date'] = $startDate);
if (isset($nativeRequestData['qty'])) {
$dataForUpdate['online_qty'] = (int) $nativeRequestData['qty'];
if ((int) $dataForUpdate['online_qty'] > 0) {
$dataForUpdate['status'] = Ess_M2ePro_Model_Listing_Product::STATUS_LISTED;
$dataForUpdate['end_date'] = NULL;
} else {
$dataForUpdate['status'] = Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED;
$dataForUpdate['end_date'] = Mage::helper('M2ePro')->getCurrentGmtDate();
}
}
if (isset($nativeRequestData['price'])) {
$dataForUpdate['online_price'] = (double) $nativeRequestData['price'];
}
if (isset($nativeRequestData['condition_note'])) {
$dataForUpdate['condition_note'] = (string) $nativeRequestData['condition_note'];
$dataForUpdate['condition_note'] == '' && ($dataForUpdate['condition_note'] = new Zend_Db_Expr("''"));
}
if (isset($nativeRequestData['shipping_standard_rate'])) {
$dataForUpdate['shipping_standard_rate'] = $nativeRequestData['shipping_standard_rate'];
$dataForUpdate['shipping_standard_rate'] === '' && ($dataForUpdate['shipping_standard_rate'] = NULL);
}
if (isset($nativeRequestData['shipping_expedited_mode'])) {
$dataForUpdate['shipping_expedited_mode'] = (int) $nativeRequestData['shipping_expedited_mode'];
}
if (isset($nativeRequestData['shipping_expedited_rate'])) {
$dataForUpdate['shipping_expedited_rate'] = $nativeRequestData['shipping_expedited_rate'];
$dataForUpdate['shipping_expedited_rate'] === '' && ($dataForUpdate['shipping_expedited_rate'] = NULL);
}
if (isset($nativeRequestData['shipping_one_day_mode'])) {
$dataForUpdate['shipping_one_day_mode'] = $nativeRequestData['shipping_one_day_mode'];
$dataForUpdate['shipping_one_day_mode'] === '' && ($dataForUpdate['shipping_one_day_mode'] = NULL);
}
if (isset($nativeRequestData['shipping_one_day_rate'])) {
$dataForUpdate['shipping_one_day_rate'] = $nativeRequestData['shipping_one_day_rate'];
$dataForUpdate['shipping_one_day_rate'] === '' && ($dataForUpdate['shipping_one_day_rate'] = NULL);
}
if (isset($nativeRequestData['shipping_two_day_mode'])) {
$dataForUpdate['shipping_two_day_mode'] = $nativeRequestData['shipping_two_day_mode'];
$dataForUpdate['shipping_two_day_mode'] === '' && ($dataForUpdate['shipping_two_day_mode'] = NULL);
}
if (isset($nativeRequestData['shipping_two_day_rate'])) {
$dataForUpdate['shipping_two_day_rate'] = $nativeRequestData['shipping_two_day_rate'];
$dataForUpdate['shipping_two_day_rate'] === '' && ($dataForUpdate['shipping_two_day_rate'] = NULL);
}
$listingProduct->addData($dataForUpdate)->save();
}
示例10: updateProductAfterAction
protected function updateProductAfterAction(Ess_M2ePro_Model_Listing_Product $listingProduct, array $nativeRequestData = array(), array $params = array(), $ebayItemsId = NULL, $saveSoldData = false)
{
$dataForUpdate = array('status' => Ess_M2ePro_Model_Listing_Product::STATUS_LISTED, 'additional_data' => $listingProduct->getAdditionalData());
!empty($nativeRequestData['title']) && ($dataForUpdate['online_title'] = $nativeRequestData['title']);
!empty($nativeRequestData['sku']) && ($dataForUpdate['online_sku'] = $nativeRequestData['sku']);
$dataForUpdate['additional_data']['is_eps_ebay_images_mode'] = $params['is_eps_ebay_images_mode'];
$isImagesUploadError = isset($params['is_images_upload_error']) ? $params['is_images_upload_error'] : false;
if (isset($nativeRequestData['images']['images']) && !$isImagesUploadError) {
$dataForUpdate['additional_data']['ebay_product_images_hash'] = sha1(json_encode($nativeRequestData['images']['images']));
}
!is_null($ebayItemsId) && ($dataForUpdate['ebay_item_id'] = (int) $ebayItemsId);
isset($params['status_changer']) && ($dataForUpdate['status_changer'] = (int) $params['status_changer']);
if (isset($nativeRequestData['category_main_id'])) {
$dataForUpdate['online_category'] = Mage::helper('M2ePro/Component_Ebay_Category_Ebay')->getPath($nativeRequestData['category_main_id'], $listingProduct->getMarketplace()->getId()) . ' (' . $nativeRequestData['category_main_id'] . ')';
}
if (isset($params['start_date_raw'])) {
$dataForUpdate['start_date'] = Ess_M2ePro_Model_Connector_Server_Ebay_Abstract::ebayTimeToString($params['start_date_raw']);
}
if (isset($params['end_date_raw'])) {
$dataForUpdate['end_date'] = Ess_M2ePro_Model_Connector_Server_Ebay_Abstract::ebayTimeToString($params['end_date_raw']);
}
if ($saveSoldData) {
$dataForUpdate['online_qty_sold'] = is_null($listingProduct->getChildObject()->getOnlineQtySold()) ? 0 : $listingProduct->getChildObject()->getOnlineQtySold();
$tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
$tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['qty']);
if ($tempUpdateFlag) {
$tempQty = $tempIsVariation ? $listingProduct->getChildObject()->getQty() : $nativeRequestData['qty'];
$dataForUpdate['online_qty'] = (int) $tempQty + (int) $dataForUpdate['online_qty_sold'];
}
} else {
$dataForUpdate['online_qty_sold'] = 0;
$tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
$tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['qty']);
if ($tempUpdateFlag) {
$tempQty = $tempIsVariation ? $listingProduct->getChildObject()->getQty() : $nativeRequestData['qty'];
$dataForUpdate['online_qty'] = $tempQty;
}
}
if ($listingProduct->getChildObject()->isListingTypeFixed()) {
$dataForUpdate['online_start_price'] = NULL;
$dataForUpdate['online_reserve_price'] = NULL;
$dataForUpdate['online_bids'] = NULL;
$tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
$tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['price_fixed']);
if ($tempUpdateFlag) {
if ($tempIsVariation) {
$tempPrice = NULL;
foreach ($nativeRequestData['variation'] as $variation) {
if ((int) $variation['qty'] <= 0) {
continue;
}
if (!is_null($tempPrice) && (double) $variation['price'] >= $tempPrice) {
continue;
}
$tempPrice = (double) $variation['price'];
}
} else {
$tempPrice = $nativeRequestData['price_fixed'];
}
$dataForUpdate['online_buyitnow_price'] = (double) $tempPrice;
}
} else {
!$saveSoldData && ($dataForUpdate['online_bids'] = 0);
if (isset($nativeRequestData['price_start'])) {
$dataForUpdate['online_start_price'] = (double) $nativeRequestData['price_start'];
}
if (isset($nativeRequestData['price_reserve'])) {
$dataForUpdate['online_reserve_price'] = (double) $nativeRequestData['price_reserve'];
}
if (isset($nativeRequestData['price_buyitnow'])) {
$dataForUpdate['online_buyitnow_price'] = (double) $nativeRequestData['price_buyitnow'];
}
}
$dataForUpdate['additional_data'] = json_encode($dataForUpdate['additional_data']);
$listingProduct->addData($dataForUpdate)->save();
}
示例11: modifyAndLogListingProduct
private function modifyAndLogListingProduct(Ess_M2ePro_Model_Listing_Product $listingProduct, $status, $duplicateItemId = null)
{
$additionalData = $listingProduct->getAdditionalData();
unset($additionalData['last_failed_action_data']);
$listingProduct->addData(array('status' => $status, 'additional_data' => json_encode($additionalData)))->save();
/** @var Ess_M2ePro_Model_Listing_Log $logModel */
$logModel = Mage::getModel('M2ePro/Listing_Log');
$logModel->setComponentMode(Ess_M2ePro_Helper_Component_Ebay::NICK);
$logActionId = $logModel->getNextActionId();
$statusLogMessage = $this->getStatusLogMessage($status);
Mage::log(print_r($listingProduct, true));
$logModel->addProductMessage($listingProduct->getData('listing_id'), $listingProduct->getData('product_id'), $listingProduct->getId(), Ess_M2ePro_Model_Log_Abstract::INITIATOR_EXTENSION, $logActionId, Ess_M2ePro_Model_Listing_Log::ACTION_CHANGE_STATUS_ON_CHANNEL, $statusLogMessage, Ess_M2ePro_Model_Log_Abstract::TYPE_SUCCESS, Ess_M2ePro_Model_Log_Abstract::PRIORITY_LOW);
if (is_null($duplicateItemId)) {
return;
}
// ->__('Duplicated item %s was found and stopped on eBay.');
$duplicateDeletedMessage = sprintf('Duplicated item %s was found and stopped on eBay.', $duplicateItemId);
$logModel->addProductMessage($listingProduct->getData('listing_id'), $listingProduct->getData('product_id'), $listingProduct->getId(), Ess_M2ePro_Model_Log_Abstract::INITIATOR_EXTENSION, $logActionId, Ess_M2ePro_Model_Listing_Log::ACTION_CHANGE_STATUS_ON_CHANNEL, $duplicateDeletedMessage, Ess_M2ePro_Model_Log_Abstract::TYPE_WARNING, Ess_M2ePro_Model_Log_Abstract::PRIORITY_LOW);
}