Last active
January 18, 2023 14:45
-
-
Save leomp12/847b3f269e2c947d4de892e4b5aebbec to your computer and use it in GitHub Desktop.
Revisions
-
leomp12 revised this gist
Jan 18, 2023 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -10,7 +10,7 @@ e corpo como o exemplo abaixo: { "$match": { "created_at": { "$gte": "2022-12-16T19:59:43.659Z" }, "transactions.status.current": { "$in": ["pending", "under_analysis"] } } }, { "$unwind": "$items" }, @@ -38,7 +38,7 @@ e corpo como o exemplo abaixo: Alterando a data mínima (`"2022-12-16T19:59:43.659Z"` no exemplo) para 1 mês atrás (ou um pouco mais, dependendo da operação da loja) e possivelmente o(s) status a ser ignorado, neste exemplo apenas pedidos pendente (`"pending"`) ou em análise (`"under_analysis"`) serão considerados na agregação. Neste exemplo todos SKUs com "estoque reservado" serão retornados em uma resposta como: @@ -92,7 +92,7 @@ Se preferir, você pode filtrar a agregação com uma lista de SKUs (`"items.sku { "$match": { "created_at": { "$gte": "2022-12-16T19:59:43.659Z" }, "transactions.status.current": { "$in": ["pending", "under_analysis"] }, "items.sku": { "$in": ["123", "456", "789", "abc"] } } } -
leomp12 revised this gist
Jan 16, 2023 . No changes.There are no files selected for viewing
-
leomp12 revised this gist
Jan 16, 2023 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -84,6 +84,8 @@ Neste exemplo todos SKUs com "estoque reservado" serão retornados em uma respos } ``` --- Se preferir, você pode filtrar a agregação com uma lista de SKUs (`"items.sku"`) editando o primeiro passo do pipeline na request: ```json -
leomp12 created this gist
Jan 16, 2023 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,97 @@ # E-Com Plus - Buscando "reserva de estoque" em pedidos por data/status e agrupamento por SKU Envie um `POST https://api.e-com.plus/v1/$aggregate.json` com [autenticação](https://developers.e-com.plus/docs/api/#/store/authenticate-yourself/authenticate-yourself) e corpo como o exemplo abaixo: ```json { "resource": "orders", "pipeline": [ { "$match": { "created_at": { "$gte": "2022-12-16T19:59:43.659Z" }, "financial_status.current": { "$ne": "paid" } } }, { "$unwind": "$items" }, { "$project": { "product_id": "$items.product_id", "sku": "$items.sku", "stock_status": "$items.stock_status", "quantity": "$items.quantity" } }, { "$match": { "stock_status": "released" } }, { "$group": { "_id": "$sku", "reserved_stock": { "$sum": "$quantity" }, "sku": { "$first": "$sku" }, "product_id": { "$first": "$product_id" } } }, { "$project" : { "_id": 0 } } ] } ``` Alterando a data mínima (`"2022-12-16T19:59:43.659Z"` no exemplo) para 1 mês atrás (ou um pouco mais, dependendo da operação da loja) e possivelmente o(s) status a ser ignorado, neste exemplo pedidos pagos (`"paid"`) não serão considerados na agregação. Neste exemplo todos SKUs com "estoque reservado" serão retornados em uma resposta como: ```json { "result": [ { "reserved_stock": 1, "sku": "cx-ed-1052", "product_id": "5c70168cc626be23430d4fd9" }, { "reserved_stock": 1, "sku": "cd-acl-9965-777-8", "product_id": "5c702e1cc626be23430d500e" }, { "reserved_stock": 1, "sku": "cd-acl-9965-509-5", "product_id": "5c702e1cc626be23430d500e" }, { "reserved_stock": 1, "sku": "hd-csr-303", "product_id": "5c701c8ac626be23430d4fe5" }, { "reserved_stock": 1, "sku": "cd-acl-9965-304-4", "product_id": "5c702e1cc626be23430d500e" }, { "reserved_stock": 5, "sku": "ms-csr-303", "product_id": "5c7010a3c626be23430d4fb4" }, { "reserved_stock": 2, "sku": "HBT6818", "product_id": "5c769d1fc626be23430d50a0" } ] } ``` Se preferir, você pode filtrar a agregação com uma lista de SKUs (`"items.sku"`) editando o primeiro passo do pipeline na request: ```json { "$match": { "created_at": { "$gte": "2022-12-16T19:59:43.659Z" }, "financial_status.current": { "$ne": "paid" }, "items.sku": { "$in": ["123", "456", "789", "abc"] } } } ```