Magento 2.1.9: Как убрать продажную цену в мульти магазине?


12

Есть ли способ убрать продажные цены в разных магазинах? используя какой-либо скрипт? или используя любой другой способ, кроме администратора?

Я использую пять разных магазинов, магазин по умолчанию легок, но многим магазинам нужно много времени, так как вы можете менять только простые продукты вручную, и похоже, что вы не можете изменить конфигурируемые продукты.

В принципе, на распродажу обуви уходит около 20 минут, что не может быть правильным.

Ответы:


1

Цена устанавливается на уровне простого продукта в Magento 2 (и конфигурируемые продукты будут наследовать специальную цену от простых продуктов под ней).

Самый быстрый способ сделать это правильно - использовать REST API внутри скрипта. Это лучший способ, если вы новичок - Magento создал его как интерфейс для внешней интеграции, который следует использовать везде, где это возможно.

http://devdocs.magento.com/swagger/index_20.html#!/catalogProductRepositoryV1

Правильная конечная точка - это каталог PUT / V1 / products / {sku} каталога продукта.

Обратите внимание, что вам нужно поместить код магазина в URL-адрес вызова, как описано здесь.

http://devdocs.magento.com/guides/v2.0/rest/rest_endpoints.html

Вот хороший пост об использовании скрипта с REST API

ПОЛУЧИТЬ или УСТАНОВИТЬ Продукт по специальной цене, используя REST API

Другой вариант - импортировать мультисервисный CSV с использованием функции импорта Magento 2 - это лучше всего, если вы не знакомы с разработкой Magento / PHP:

Вот статья об этом:

https://www.alexcorradi.org/blog/a-guide-on-how-to-import-export-products-in-magento-2

В противном случае, если у вас есть тестовая среда и вы более уверены в кодировании, вы можете создать свой собственный скрипт для обновления:

Внутри класса у вас будет:

protected $action;

public function __construct(\Magento\Catalog\Model\Product\Action $productAction) {
   $this->action = $productAction;
}

public function updatePrice($productIds, $data, $storeId) {
    $this->action->updateAttributes($productIds, $data, $storeId);
}

затем для запуска используйте следующее;

 $specialPrice = null; // OR '' can't remember off the top of my head which clears it - perhaps either.

 $data = ['special_price' => $specialPrice];
 $storeId = 1; //whatever store id you like
 $productIds = [1,2,3,4,5,6,7]; //whatever product ids you wish to change.

 $this->updatePrice($productIds, $data, $storeId);

запустить для каждого магазина.

Извиняюсь за любые ошибки, я просто печатаю по памяти. Пожалуйста, сначала запустите тестовую среду!


1

Try1: вы можете использовать плагин для обновления цены продажи.

Try2: Вы можете удалить sell_price из набора атрибутов по умолчанию или отключить этот атрибут, чтобы без каких-либо усилий вы могли это сделать.


Try1: любой плагин? Try2: Да, но я добавил разные цены для всех магазинов, так как я могу отключить этот атрибут?
Аасим Гория

Да, вы можете отключить этот атрибут
князь Ядав

Я имею в виду, о каком атрибуте вы говорите?
Аасим Гория

"sell_price" нужно отключить или удалить из значения по умолчанию attribute_set
Принц Ядав

1

Используйте правила цен каталога. Маркетинг> Правила цены каталога

Таким образом, вы можете установить цены продажи во всех магазинах или выбрать магазины, и это легко обновить и включить или отключить в массовом порядке.

Вы можете установить условия для соответствия всевозможным комбинациям: категория / производитель / размер / цвет / sku / mpn

В бэкэнде также можно создавать атрибуты, которые можно использовать для правил цены каталога. например. У меня есть атрибут «сезон» с опциями выпадающего меню, такими как 2017-4, то есть зимние продукты.

Поэтому я создаю правило цены каталога для: Производитель = Billabong, Категория = Рубашки, Сезон = 2017-4 и применяю скидку 20% на товары, соответствующие этим критериям. И вы можете установить сайты, на которых применяется правило, а также даты, когда вы хотите, чтобы правила запускались.

Вы также можете использовать цвет или размеры в ваших правилах. Это становится очень выгодным, когда продукт не менял названия в течение нескольких лет, и есть старый цветовой путь, от которого вы хотите избавиться, вы можете установить только одну комбинацию цвета и / или размера, которая будет продаваться, в то время как остальные конфигурируемые продукты остаются в цене.


спасибо за ответ, на самом деле я уже установил продажную цену для всех моих мульти-магазинов, поэтому мне нужно удалить ее из всех моих магазинов. Кроме того, если я добавил цену продажи простого продукта для всех сопутствующих продуктов, он также будет удален, поэтому, пожалуйста, предложите мне, если у вас есть какое-либо решение для этого. Заранее спасибо
Аасим Гория

Зайдите в каталог, выберите все товары> Обновить атрибуты> отметьте «Специальная цена» и оставьте это поле пустым. Это приведет к удалению цены продажи со всех продуктов, после чего вы сможете начать использовать правила корзины. Если у вас есть много продуктов, вы можете сделать это партиями по 500 продуктов за раз, чтобы немного упростить процесс и не тратить время. Процесс запускается некоторое время, но небольшими партиями это не так уж плохо.
dawhoo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.