Товары в корзине для плагина доставки Есть решение

Увы, информации из метода getItems() плагина недостаточно. Нужен список товаров и артикулов. У товара может быть доп. параметр "Запрет авиадоставки" (в основном это аэрозольные баллоны под давлением), поэтому заказ с таким товаром имеет дополнительные ограничения на доставку. И второй момент — разные артикулы могут быть в разных городах. Поэтому если какого-то артикула нет на основном складе, надо увеличить планируемый срок доставки (возможно, владельцу магазина еще захочется увеличить стоимость доставки, но пока он требует только время).

items() из shopCart() я получил. А вот как правильно получить доп параметры товара и наличие артикула на складах пока раскопать не могу. :-/ Можно, конечно и напрямую в БД лезть, но это крайний случай. shopProductsCollection() по id товаров сделать?

1 ответ

  • 1
    Леонид Вакуленко Webasyst 26 февраля 2015 09:30 # Решение

    Не вижу ничего зазорного в том, чтобы получить что-то из БД :)

    // Получить параметры для списка $products
    $product_params_model = new shopProductParamsModel();
    $rows = $product_params_model->getByField('product_id', array_keys($products), true);
    foreach ($rows as $row) {
        $products[$row['product_id']]['params'][$row['name']] = $row['value'];
    }
    
    // Получить остатки по артикулам и складам
    // $sku_stock_counts[sku_id][stock_id]['name'] == название склада
    // $sku_stock_counts[sku_id][stock_id]['count'] == остаток для данного ску
    $product_stocks_model = new shopProductStocksModel();
    $sku_stock_counts = $product_stocks_model->getBySkuId(array(100, 200, 300, 400));
    

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите