From 748691a3e538d5d57578f32a0c7001debd0e6f68 Mon Sep 17 00:00:00 2001 From: fomichev Date: Thu, 17 Apr 2025 12:56:02 +0300 Subject: [PATCH] =?utf8?q?=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B0=20=D0=BD?= =?utf8?q?=D0=B0=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../MarketplaceOrdersController.php | 34 ++++++++++++++++ ...nk_column_to_marketlplace_orders_table.php | 39 +++++++++++++++++++ erp24/records/MarketplaceOrders.php | 6 ++- erp24/services/MarketplaceService.php | 5 +++ .../marketplace-orders/get-flowwow-orders.php | 1 + erp24/views/marketplace-orders/view.php | 1 + 6 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 erp24/migrations/m250417_074545_add_order_link_column_to_marketlplace_orders_table.php diff --git a/erp24/controllers/MarketplaceOrdersController.php b/erp24/controllers/MarketplaceOrdersController.php index e4bedccc..7f1a1af1 100644 --- a/erp24/controllers/MarketplaceOrdersController.php +++ b/erp24/controllers/MarketplaceOrdersController.php @@ -143,6 +143,40 @@ class MarketplaceOrdersController extends Controller ]); } + public function actionSetOrderLink() + { + $orders = MarketplaceOrders::find()->where(['order_link' => null])->all(); + + foreach ($orders as $order) { + if ($order->marketplace_id == 1) { + $baseUrl = "https://flowwow.com/admin/order/index?Order%5Bid%5D="; + $order->order_link = $baseUrl . $order->marketplace_order_id; + if(!$order->save()) { + Yii::error('Ошибка сохранения ссылки' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE), __METHOD__); + } +// $data = json_decode($order->raw_data, true); +// if (isset($data['orderLink'])) { +// $order->order_link = $data['orderLink']; +// if(!$order->save()) { +// Yii::error('Ошибка сохранения ссылки' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE), __METHOD__); +// } +// } + } elseif ($order->marketplace_id == 2) { + $baseUrl = "https://partner.market.yandex.ru/order/"; + $order->order_link = $baseUrl . $order->marketplace_order_id . "?tld=ru&partnerId=197274828"; + if(!$order->save()) { + Yii::error('Ошибка сохранения ссылки' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE), __METHOD__); + } + } else { + continue; + } + + } + + $this->redirect(['/marketplace-orders/index']); + + } + public function actionUpdateToReadyStatus($id) { $model = $this->findModel($id); diff --git a/erp24/migrations/m250417_074545_add_order_link_column_to_marketlplace_orders_table.php b/erp24/migrations/m250417_074545_add_order_link_column_to_marketlplace_orders_table.php new file mode 100644 index 00000000..9eeeb656 --- /dev/null +++ b/erp24/migrations/m250417_074545_add_order_link_column_to_marketlplace_orders_table.php @@ -0,0 +1,39 @@ +db->schema->getTableSchema(self::TABLE_NAME); + if ($table === null) { + return; + } + + if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('order_link')) { + $this->addColumn( + self::TABLE_NAME, + 'order_link', + $this->text()->null()->comment('Ссылка на заказ в МП') + ); + } + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('order_link')) { + $this->dropColumn(self::TABLE_NAME, 'order_link'); + } + } +} diff --git a/erp24/records/MarketplaceOrders.php b/erp24/records/MarketplaceOrders.php index 025ff03e..c265458f 100644 --- a/erp24/records/MarketplaceOrders.php +++ b/erp24/records/MarketplaceOrders.php @@ -34,6 +34,7 @@ use Yii; * @property string|null $number_1c Название документа в 1с * @property string|null $telegram_error ошибка телеграмма * @property string|null $status_processing_1c Статус обработки заказа в 1С + * @property string|null $order_link Ссылка на заказ в МП */ class MarketplaceOrders extends \yii\db\ActiveRecord { @@ -84,11 +85,11 @@ class MarketplaceOrders extends \yii\db\ActiveRecord [['store_id', 'warehouse_guid', 'returned_at', 'return_data', 'raw_data', 'guid'], 'default', 'value' => null], [['cancel_requested', 'status_telegram'], 'default', 'value' => 0], [['marketplace_order_id', 'marketplace_id', 'marketplace_name', 'status_id', 'substatus_id', 'creation_date', 'updated_at', 'total', 'delivery_total', 'buyer_total_before_discount', 'tax_system', 'payment_type', 'payment_method'], 'required'], - [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'status_processing_1c'], 'default', 'value' => null], + [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'status_processing_1c', 'order_link'], 'default', 'value' => null], [[ 'fake'], 'default', 'value' => 0], [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'marketplace_id', 'status_telegram', 'status_processing_1c'], 'integer'], [['creation_date', 'updated_at', 'returned_at'], 'safe'], - [['return_data', 'raw_data', 'marketplace_name', 'telegram_error'], 'string'], + [['return_data', 'raw_data', 'marketplace_name', 'telegram_error', 'order_link'], 'string'], [['total', 'delivery_total', 'buyer_total_before_discount'], 'number'], [['marketplace_order_id'], 'string', 'max' => 64], [['number_1c'], 'string', 'max' => 100], @@ -132,6 +133,7 @@ class MarketplaceOrders extends \yii\db\ActiveRecord 'status_telegram' => 'Статус отправки в телеграм', 'telegram_error' => 'Ошибка телеграмма', 'status_processing_1c' => 'Статус обработки заказа в 1С', + 'order_link' => 'Ссылка на заказ в МП', ]; } diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index f9a1bb5c..13f31c0b 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -1023,6 +1023,8 @@ class MarketplaceService $marketplaceOrder->substatus_id = (int)$substatusId; $marketplaceOrder->raw_data = $newRawData; $marketplaceOrder->status_1c = MarketplaceOrders::STATUSES_1C_CREATED_IN_ERP; + $baseUrl = "https://partner.market.yandex.ru/order/"; + $marketplaceOrder->order_link = $baseUrl . $marketplaceOrder->marketplace_order_id . "?tld=ru&partnerId=197274828"; if ($marketplaceOrder->save()) { self::sendMessageToTelegram($marketplaceOrder->guid, "Тестовое сообщение для https://tracker.yandex.ru/ERP-326 из [1]"); @@ -2004,6 +2006,9 @@ class MarketplaceService $marketplaceOrder->marketplace_id = 1; $marketplaceOrder->store_id = $store->store_id; $marketplaceOrder->status_1c = MarketplaceOrders::STATUSES_1C_CREATED_IN_ERP; + //$marketplaceOrder->order_link = $order['orderLink']; + $baseUrl = "https://flowwow.com/admin/order/index?Order%5Bid%5D="; + $marketplaceOrder->order_link = $baseUrl . $marketplaceOrder->marketplace_order_id; return $marketplaceOrder; } diff --git a/erp24/views/marketplace-orders/get-flowwow-orders.php b/erp24/views/marketplace-orders/get-flowwow-orders.php index 6007015f..f9f4e1d1 100644 --- a/erp24/views/marketplace-orders/get-flowwow-orders.php +++ b/erp24/views/marketplace-orders/get-flowwow-orders.php @@ -12,6 +12,7 @@ $this->title = 'Загрузка заказов Flowwow';
'btn btn-primary my-4']) ?> + 'btn btn-primary my-4']) ?>

title) ?>

diff --git a/erp24/views/marketplace-orders/view.php b/erp24/views/marketplace-orders/view.php index 7e6b74df..6399c7f5 100644 --- a/erp24/views/marketplace-orders/view.php +++ b/erp24/views/marketplace-orders/view.php @@ -22,6 +22,7 @@ $this->params['breadcrumbs'][] = $this->title; 'model' => $model, 'attributes' => [ 'id', + 'order_link', 'marketplace_order_id', [ 'attribute' => 'store_id', -- 2.39.5