В Magneto 2.2 администратор может создавать заказы в бэкэнде для продуктов, которых нет в наличии или которые отключены.Он сообщает администратору, что выбранного вами товара нет в наличии, но позволяет ему завершить заказ.
Как я могу предотвратить выполнение этого заказа, если администратор выбрал в заказе товар со склада или заказалколичество для товара, которого не хватает?
В Каталоге> Инвентарь Я установил, чтобы скрыть товары, которых нет в наличии, и выставил заказ на NO.но это применимо только к внешнему интерфейсу, но не к бэкэнду.
Мне был дан этот код с помощью Сохеля Раны и Ирена Кадивара, но он не завершен:
Попробуйте следующим образом:
app / code / SR / MagentoStackExchange / etc / adminhtml / di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Sales\Block\Adminhtml\Order\Create\Search\Grid">
<plugin name="SR_MagentoStackExchange::product_grid_create_order"
type="SR\MagentoStackExchange\Plugin\Block\Sales\Adminhtml\Order\Create\Search\Grid" sortOrder="1"/>
</type>
</config>
app / code / SR / MagentoStackExchange / Плагин / Блок / Продажи / Adminhtml / Заказ / Создание / Поиск /Grid.php
<?php
namespace SR\MagentoStackExchange\Plugin\Block\Sales\Adminhtml\Order\Create\Search;
class Grid
{
/**
* @var \Magento\CatalogInventory\Helper\Stock
*/
private $stockFilter;
/**
* Grid constructor.
*
* @param \Magento\CatalogInventory\Helper\Stock $stockFilter
*/
public function __construct(
\Magento\CatalogInventory\Helper\Stock $stockFilter
) {
$this->stockFilter = $stockFilter;
}
public function aroundSetCollection(
\Magento\Sales\Block\Adminhtml\Order\Create\Search\Grid $subject,
\Closure $proceed,
$collection
) {
$this->stockFilter->addInStockFilterToCollection($collection);
$proceed($collection);
}
}
?>
Этот метод не сработал полностью (частичное решение), большинство продуктов являются настраиваемым продуктом.Таким образом, для простого продукта продукт, которого нет в наличии, скрыт, и администратор не может выбрать его, это было сделано с помощью расширения, написанного выше.Но для конфигурируемого продукта администратор по-прежнему может выбрать продукт, выбрав конфигурируемый продукт по умолчанию, а также выбрать «Настройка» и выбрать продукт, которого нет в наличии.После выбора товара, отсутствующего на складе, под продуктом показывался большой красный крестик X Говорит, что товара нет в наличии.Но администратор смог сделать заказ на этот товар.
Примечание: допустим, размер обуви 43 отсутствует, а 42 есть в наличии, в сетке обувь 43 товара скрыта от сетки, но обувь42 показана также обувь по умолчанию, которая сочетает в себе все размеры, поэтому администратор может выбрать обувь по умолчанию и нажать «настроить», затем выбрать размер 43, которого нет в наличии, тогда он может сделать заказ (вот проблема).