Я хочу разделить заказ в соответствии с весом продукта в magento2 и максимальным размером контейнера, установленным со стороны администратора - PullRequest
1 голос
/ 02 ноября 2019

Предположим, что условие веса на стороне администратора равно 1, и мы добавили в корзину товар с весом, например [1,1,0.3,0.7,0.8,0.4] (это массив товаров с весом), тогда есть 5номер заказа. два идентификатора заказа для веса 1 и 1, второй идентификатор порядка для веса 0,3 и 0,7, поскольку они могут объединяться по сумме массива, третий и четвертый идентификаторы порядка для 0,8 и 0,4, поскольку они не могут объединяться из-за условия веса, превышающего со стороны администратора

функция, которую я пытаюсь разделить, но условие веса на стороне администратора на меньшее условие не обрабатывается

открытая функция splitOrderByWeight ($ order) {

    $result = [];
    $i=0;
    $tmparr = [];
    $total = 0;

    //get the weight from admin side
    $splitWeight = $this->helper->getweight();
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();

    foreach ($order->getAllVisibleItems() as $item) {
        $id=$item->getProductId();
        $product= $objectManager->get('\Magento\Catalog\Model\Product')->load($id);
        $weight = $product->getData('weight');
        $sku= $item->getSku();
        $product_type=$item->getProduct()->getTypeId();
        $order_quantity=$item->getQtyOrdered();
        $order_id = $item->getOrderId();
        $order_item_id = $item->getId();
        $actualWeight = $order_quantity*$weight;
        $tmparr[$id]=$actualWeight;
        arsort($tmparr);
    }

    $logger->info($tmparr);
    foreach ($tmparr as $key => $weight) {
        if($item->getParentItemId() || $this->isSimple($item)){

            if($weight >= $splitWeight){
                $result[] = $this->getArrayItem($item,'all'.$i);
                $i++;
            }
            else{
                $result[] = $this->getArrayItem($item,'all');
            }

        }
    }



    return $result;

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...