Skip to content

Commit

Permalink
1.75.1 (FINAL RELEASE)
Browse files Browse the repository at this point in the history
  • Loading branch information
m2epro committed Feb 4, 2025
1 parent eb6b977 commit 45439d8
Show file tree
Hide file tree
Showing 29 changed files with 506 additions and 447 deletions.
4 changes: 2 additions & 2 deletions Block/Adminhtml/Amazon/Listing/View/Amazon/Grid.php
Original file line number Diff line number Diff line change
Expand Up @@ -246,8 +246,8 @@ protected function _prepareColumns()
]);

$this->addColumn('amazon_sku', [
'header' => $this->__('SKU'),
'header_export' => __('Amazon SKU'),
'header' => $this->__('Channel SKU'),
'header_export' => __('Channel SKU'),
'align' => 'left',
'width' => '150px',
'type' => 'text',
Expand Down
4 changes: 2 additions & 2 deletions Block/Adminhtml/Walmart/Listing/View/Walmart/Grid.php
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ protected function _prepareColumns()
]);

$this->addColumn('sku', [
'header' => __('SKU'),
'header_export' => __('Walmart SKU'),
'header' => __('Channel SKU'),
'header_export' => __('Channel SKU'),
'align' => 'left',
'width' => '150px',
'type' => 'text',
Expand Down
13 changes: 5 additions & 8 deletions Controller/Adminhtml/Listing/Moving/MoveToListing.php
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
<?php

/**
* @author M2E Pro Developers Team
* @copyright M2E LTD
* @license Commercial use is forbidden
*/

namespace Ess\M2ePro\Controller\Adminhtml\Listing\Moving;

use Ess\M2ePro\Model\Ebay\Listing\Product\Variation\Updater as EbayVariationUpdater;
use Ess\M2ePro\Model\Amazon\Listing\Product\Variation\Updater as AmazonVariationUpdater;
use Ess\M2ePro\Model\Walmart\Listing\Product\Variation\Updater as WalmartVariationUpdater;

class MoveToListing extends \Ess\M2ePro\Controller\Adminhtml\Listing
{
/** @var \Ess\M2ePro\Helper\Data\Session */
Expand Down Expand Up @@ -44,9 +42,8 @@ public function execute()
$variationUpdaterModel = ucwords($targetListing->getComponentMode())
. '\Listing\Product\Variation\Updater';

/** @var \Ess\M2ePro\Model\Listing\Product\Variation\Updater $variationUpdaterObject */
/** @var EbayVariationUpdater|AmazonVariationUpdater|WalmartVariationUpdater $variationUpdaterObject */
$variationUpdaterObject = $this->modelFactory->getObject($variationUpdaterModel);
$variationUpdaterObject->beforeMassProcessEvent();

$errorsCount = 0;
foreach ($selectedProducts as $listingProductId) {
Expand Down
88 changes: 1 addition & 87 deletions Helper/Component/Ebay.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ class Ebay
public const MARKETPLACE_IN = 16;

public const LISTING_DURATION_GTC = 100;
public const MAX_LENGTH_FOR_OPTION_VALUE = 50;
public const VARIATION_SKU_MAX_LENGTH = 80;
public const ITEM_SKU_MAX_LENGTH = 50;

/** @var \Ess\M2ePro\Model\ActiveRecord\Component\Parent\Ebay\Factory */
Expand All @@ -40,25 +38,21 @@ class Ebay
private $config;
/** @var \Ess\M2ePro\Helper\Data\Cache\Permanent */
private $cachePermanent;
/** @var \Ess\M2ePro\Helper\Data */
private $dataHelper;

public function __construct(
\Ess\M2ePro\Helper\Component\Ebay\Configuration $componentEbayConfiguration,
\Ess\M2ePro\Model\ActiveRecord\Component\Parent\Ebay\Factory $ebayFactory,
\Ess\M2ePro\Helper\Module\Translation $moduleTranslation,
\Ess\M2ePro\Model\ActiveRecord\Factory $activeRecordFactory,
\Ess\M2ePro\Helper\Data\Cache\Permanent $cachePermanent,
\Ess\M2ePro\Model\Config\Manager $config,
\Ess\M2ePro\Helper\Data $dataHelper
\Ess\M2ePro\Model\Config\Manager $config
) {
$this->ebayFactory = $ebayFactory;
$this->activeRecordFactory = $activeRecordFactory;
$this->componentEbayConfiguration = $componentEbayConfiguration;
$this->moduleTranslation = $moduleTranslation;
$this->config = $config;
$this->cachePermanent = $cachePermanent;
$this->dataHelper = $dataHelper;
}

// ----------------------------------------
Expand Down Expand Up @@ -297,86 +291,6 @@ public function getCarrierTitle($carrierCode, $title = null): string

// ----------------------------------------

/**
* @param array $options
*
* @return array
*/
public function prepareOptionsForVariations(array $options): array
{
$set = [];
foreach ($options['set'] as $optionTitle => $optionsSet) {
foreach ($optionsSet as $singleOptionKey => $singleOption) {
$set[trim($optionTitle)][$singleOptionKey] = trim(
$this->dataHelper->reduceWordsInString(
$singleOption,
self::MAX_LENGTH_FOR_OPTION_VALUE
)
);
}
}
$options['set'] = $set;

foreach ($options['variations'] as &$variation) {
foreach ($variation as &$singleOption) {
$singleOption['option'] = trim(
$this->dataHelper->reduceWordsInString(
$singleOption['option'],
self::MAX_LENGTH_FOR_OPTION_VALUE
)
);
$singleOption['attribute'] = trim($singleOption['attribute']);
}
}
unset($singleOption, $variation);

return $options;
}

/**
* @param array $options
*
* @return array
*/
public function prepareOptionsForOrders(array $options): array
{
foreach ($options as &$singleOption) {
if ($singleOption instanceof \Magento\Catalog\Model\Product) {
$reducedName = trim(
$this->dataHelper->reduceWordsInString(
$singleOption->getName(),
self::MAX_LENGTH_FOR_OPTION_VALUE
)
);
$singleOption->setData('name', $reducedName);

continue;
}

foreach ($singleOption['values'] as &$singleOptionValue) {
foreach ($singleOptionValue['labels'] as &$singleOptionLabel) {
$singleOptionLabel = trim(
$this->dataHelper->reduceWordsInString(
$singleOptionLabel,
self::MAX_LENGTH_FOR_OPTION_VALUE
)
);
}
}
}

if (isset($options['additional']['attributes'])) {
foreach ($options['additional']['attributes'] as $code => &$title) {
$title = trim($title);
}
unset($title);
}

return $options;
}

// ----------------------------------------

/**
* @return void
*/
Expand Down
21 changes: 6 additions & 15 deletions Helper/Data.php
Original file line number Diff line number Diff line change
Expand Up @@ -337,22 +337,13 @@ public function normalizeToUtfEncoding($data)
return self::normalizeToUtf($data);
}

/**
* @param string $string
* @param int $neededLength
* @param int $longWord
* @param int $minWordLen
* @param int $atEndOfWord
*
* @return string
*/
public function reduceWordsInString(
public static function reduceWordsInString(
$string,
$neededLength,
$longWord = 6,
$minWordLen = 2,
$atEndOfWord = '.'
) {
int $neededLength,
int $longWord = 6,
int $minWordLen = 2,
string $atEndOfWord = '.'
): string {
$oldEncoding = mb_internal_encoding();
mb_internal_encoding('UTF-8');

Expand Down
9 changes: 5 additions & 4 deletions Model/Ebay/Connector/Item/Requester.php
Original file line number Diff line number Diff line change
Expand Up @@ -281,10 +281,11 @@ protected function validateConfigurator()

protected function initializeVariations()
{
/** @var \Ess\M2ePro\Model\Ebay\Listing\Product\Variation\Updater $variationUpdater */
$variationUpdater = $this->modelFactory->getObject('Ebay_Listing_Product_Variation_Updater');
$variationUpdater->process($this->listingProduct);
$variationUpdater->afterMassProcessEvent();
/** @var \Ess\M2ePro\Model\Ebay\Listing\Product\VariationService $variationService */
$variationService = \Magento\Framework\App\ObjectManager::getInstance()->get(
\Ess\M2ePro\Model\Ebay\Listing\Product\VariationService::class
);
$variationService->update($this->listingProduct);
}

//########################################
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,16 @@ public function process(array $params = []): void
}
}

if (
$configurator->isQtyAllowed()
&& !$configurator->isPriceAllowed()
) {
if ($this->isMeetForceRevisePriceRequirements()) {
$configurator->allowPrice();
$tags['price'] = true;
}
}

if (
!$this->input->getListingProduct()->hasBlockingByError()
&& $this->input->hasInstructionWithTypes($this->getReviseTitleInstructionTypes())
Expand Down Expand Up @@ -617,4 +627,20 @@ public function isMeetReviseOtherRequirements(): bool
$this->input->getListingProduct()->getChildObject()
);
}

private function isMeetForceRevisePriceRequirements(): bool
{
/** @var \Ess\M2ePro\Model\Ebay\Listing\Product $ebayListingProduct */
$ebayListingProduct = $this->input->getListingProduct()->getChildObject();

if ($ebayListingProduct->isProductInPromotion()) {
return false;
}

if (!$ebayListingProduct->getEbaySynchronizationTemplate()->isReviseUpdatePrice()) {
return false;
}

return true;
}
}
14 changes: 2 additions & 12 deletions Model/Ebay/Listing/Product/PriceCalculator.php
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
<?php

/**
* @author M2E Pro Developers Team
* @copyright M2E LTD
* @license Commercial use is forbidden
*/

namespace Ess\M2ePro\Model\Ebay\Listing\Product;

use Ess\M2ePro\Model\Ebay\Template\SellingFormat;
use Ess\M2ePro\Model\Listing\Product\Variation as ListingProductVariation;

class PriceCalculator extends \Ess\M2ePro\Model\Listing\Product\PriceCalculator
{
Expand All @@ -26,11 +19,8 @@ protected function isPriceVariationModeChildren()
protected function prepareOptionTitles($optionTitles)
{
foreach ($optionTitles as &$optionTitle) {
$optionTitle = trim(
$this->helperFactory->getObject('Data')->reduceWordsInString(
$optionTitle,
\Ess\M2ePro\Helper\Component\Ebay::MAX_LENGTH_FOR_OPTION_VALUE
)
$optionTitle = \Ess\M2ePro\Model\Ebay\Listing\Product\Variation\Option::formatOptionValue(
(string)$optionTitle
);
}

Expand Down
10 changes: 3 additions & 7 deletions Model/Ebay/Listing/Product/Variation.php
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
<?php

/**
* @author M2E Pro Developers Team
* @copyright M2E LTD
* @license Commercial use is forbidden
*/

namespace Ess\M2ePro\Model\Ebay\Listing\Product;

/**
* @method \Ess\M2ePro\Model\Listing\Product\Variation getParentObject()
*/
class Variation extends \Ess\M2ePro\Model\ActiveRecord\Component\Child\Ebay\AbstractModel
{
private const SKU_MAX_LENGTH = 80;

/** @var \Ess\M2ePro\Model\Ebay\Listing\Product\PriceCalculatorFactory */
private $priceCalculatorFactory;

Expand Down Expand Up @@ -436,7 +432,7 @@ public function getSku()
. $this->getHelper('Data')->convertStringToSku($option->getOption());
}

if (mb_strlen($sku) > \Ess\M2ePro\Helper\Component\Ebay::VARIATION_SKU_MAX_LENGTH) {
if (mb_strlen($sku) > self::SKU_MAX_LENGTH) {
$sku = 'RANDOM_' . sha1($sku);
}

Expand Down
Loading

0 comments on commit 45439d8

Please sign in to comment.