public function actionTest() {
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
//http://localhost:5555/yandex-market/test
- return MarketplaceService::infoForMarketplace(2, true);
+ return MarketplaceService::infoForMarketplace(2);
$config = Configuration::getDefaultConfiguration()->setApiKey('Api-Key', 'ACMA:r3sa2VyjkgcO0aOxGoyAWuGH15g5mWAqXRMuylVA:a0bccb7e');
class MarketplaceService
{
- public static function infoForMarketplace(int $marketId, bool $is_yandex) {
+ public static function infoForMarketplace(int $marketId) {
if (!array_key_exists($marketId, MarketplaceStore::getWarehouseId()))
return;
+ $is_yandex = $marketId == 2;
+
// 1. Получение гуидов букетов
$productsGroup = ProductsClass::find()
->where(['tip' => [ProductsClass::MARKETPLACE, ProductsClass::MARKETPLACE_ADDITIONAL]])
// 3. Получение состава букетов
$bouquetComposition = [];
-// $componentsArr = [];
$componentsGuids = [];
foreach ($productsGuids as $ind => $dataComponents) {
$guid = $dataComponents['id'];
$componentsJson = json_decode($components);
$bouquetComposition[$guid] = $componentsJson;
foreach ($componentsJson as $compJsonGuid => $compJsonCnt) {
-// $componentsArr[] = ['guid' => $compJsonGuid, 'cnt' => $compJsonCnt];
$componentsGuids[] = $compJsonGuid;
}
}
}
$componentsGuids = array_unique($componentsGuids);
-//echo "<pre>"; var_dump($componentsArr); die;
+
// 4. Проверка остатков
$marketplaceStores = array_column(MarketplaceStore::findAll(['warehouse_id' => $marketId]), null, 'guid');
$balance2Dim[$balance['store_id']][$balance['product_id']] = $balance['quantity'];
$balanceStoreIds[] = $balance['store_id'];
}
-// echo "<pre>"; var_dump($balance2Dim); die;
+
$balanceStoreIds = array_unique($balanceStoreIds);
foreach ($bouquetComposition as $guid => $products) {
}
}
}
-// echo "<pre>"; var_dump($stockRecords); die;
$bouquetCount = PHP_INT_MAX;
foreach ($stockRecords as $productGuid => $values) {
// 5. Получение приоритетов
$priorities = MarketplacePriority::find()
->where(['guid' => ArrayHelper::getColumn($productsGuids, 'id')])->indexBy('guid')->asArray()->all();
-// echo "<pre>"; var_dump($priorities); die;
+
// 6. Массив для хранения гуидов, которые можно отправить
$availableGuids = [];