From b244562cb7877f43df7b5c3eb5522a6883ae610d Mon Sep 17 00:00:00 2001 From: sanjjaymahalingam Date: Tue, 2 Sep 2025 22:56:33 +0530 Subject: [PATCH 1/7] rdt-for-vdf --- lib/muffin_man/sp_api_client.rb | 5 +++-- .../vendor_direct_fulfillment_inventory/v1.rb | 6 ++++-- .../vendor_direct_fulfillment_orders/v20211228.rb | 2 ++ .../vendor_direct_fulfillment_shipping/v20211228.rb | 11 ++++++++--- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/lib/muffin_man/sp_api_client.rb b/lib/muffin_man/sp_api_client.rb index 61dbc37..4372ea7 100644 --- a/lib/muffin_man/sp_api_client.rb +++ b/lib/muffin_man/sp_api_client.rb @@ -9,7 +9,7 @@ class SpApiClient attr_reader :refresh_token, :client_id, :client_secret, :sandbox, :config, :region, :request_type, :local_var_path, :query_params, :request_body, :scope, :access_token_cache_key, :credentials, - :pii_data_elements + :pii_data_elements, :requires_rdt ACCESS_TOKEN_URL = "https://api.amazon.com/auth/o2/token".freeze SERVICE_NAME = "execute-api".freeze @@ -31,6 +31,7 @@ def initialize(credentials, sandbox = false) @sandbox = sandbox @credentials = credentials @pii_data_elements = [] + @requires_rdt = false Typhoeus::Config.user_agent = "" @config = MuffinMan.configuration end @@ -132,7 +133,7 @@ def request_grantless_access_token end def headers - if requires_rdt_token_for_pii? + if requires_rdt_token_for_pii? || requires_rdt access_token = retrieve_rdt_access_token || retrieve_lwa_access_token else access_token = scope ? retrieve_grantless_access_token : retrieve_lwa_access_token diff --git a/lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb b/lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb index 9ecbf54..afde770 100644 --- a/lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb +++ b/lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb @@ -3,11 +3,13 @@ module MuffinMan module VendorDirectFulfillmentInventory class V1 < SpApiClient - def submit_inventory_update(warehouse_id, selling_party, is_full_update, items) + def submit_inventory_update(warehouse_id, selling_party_id, is_full_update, items) @local_var_path = "/vendor/directFulfillment/inventory/v1/warehouses/#{warehouse_id}/items" @request_body = { "inventory" => { - "sellingParty" => selling_party, + "sellingParty" => { + "partyId" => selling_party_id + }, "isFullUpdate" => is_full_update, "items" => items } diff --git a/lib/muffin_man/vendor_direct_fulfillment_orders/v20211228.rb b/lib/muffin_man/vendor_direct_fulfillment_orders/v20211228.rb index 18816ab..489769e 100644 --- a/lib/muffin_man/vendor_direct_fulfillment_orders/v20211228.rb +++ b/lib/muffin_man/vendor_direct_fulfillment_orders/v20211228.rb @@ -20,12 +20,14 @@ def get_orders(created_after, created_before, params = {}) } @query_params.merge!(params.slice(*GET_ORDERS_PARAMS)) @request_type = "GET" + @requires_rdt = true call_api end def get_order(purchase_order_number) @local_var_path = "/vendor/directFulfillment/orders/2021-12-28/purchaseOrders/#{purchase_order_number}" @request_type = "GET" + @requires_rdt = true call_api end diff --git a/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb b/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb index 58ca38b..2447d6b 100644 --- a/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb +++ b/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb @@ -31,16 +31,17 @@ def submit_shipping_label_request(shipping_label_requests) def get_shipping_label(purchase_order_number) @local_var_path = "/vendor/directFulfillment/shipping/2021-12-28/shippingLabels/#{purchase_order_number}" @request_type = "GET" + @requires_rdt = true call_api end - def create_shipping_labels(purchase_order_number, selling_party, ship_from_party, containers: nil) + def create_shipping_labels(purchase_order_number, selling_party, ship_from_party, containers) @local_var_path = "/vendor/directFulfillment/shipping/2021-12-28/shippingLabels/#{purchase_order_number}" @request_body = { "sellingParty" => selling_party, - "shipFromParty" => ship_from_party + "shipFromParty" => ship_from_party, + "containers" => containers } - @request_body["containers"] = containers if containers @request_type = "POST" call_api end @@ -67,12 +68,14 @@ def get_customer_invoices(created_after, created_before, params = {}) } @query_params.merge!(params.slice(*VENDOR_DIRECT_FULFILLMENT_SHIPPING_PARAMS)) @request_type = "GET" + @requires_rdt = true call_api end def get_customer_invoice(purchase_order_number) @local_var_path = "/vendor/directFulfillment/shipping/2021-12-28/customerInvoices/#{purchase_order_number}" @request_type = "GET" + @requires_rdt = true call_api end @@ -84,12 +87,14 @@ def get_packing_slips(created_after, created_before, params = {}) } @query_params.merge!(params.slice(*VENDOR_DIRECT_FULFILLMENT_SHIPPING_PARAMS)) @request_type = "GET" + @requires_rdt = true call_api end def get_packing_slip(purchase_order_number) @local_var_path = "/vendor/directFulfillment/shipping/2021-12-28/packingSlips/#{purchase_order_number}" @request_type = "GET" + @requires_rdt = true call_api end end From 9c0e79b4040032f64139ace33faf522bf6a21915 Mon Sep 17 00:00:00 2001 From: sanjjaymahalingam Date: Tue, 9 Sep 2025 10:49:01 +0530 Subject: [PATCH 2/7] rdt-for-vdf --- lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb | 6 ++---- .../vendor_direct_fulfillment_orders/v20211228.rb | 2 -- .../vendor_direct_fulfillment_shipping/v20211228.rb | 5 ----- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb b/lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb index afde770..9ecbf54 100644 --- a/lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb +++ b/lib/muffin_man/vendor_direct_fulfillment_inventory/v1.rb @@ -3,13 +3,11 @@ module MuffinMan module VendorDirectFulfillmentInventory class V1 < SpApiClient - def submit_inventory_update(warehouse_id, selling_party_id, is_full_update, items) + def submit_inventory_update(warehouse_id, selling_party, is_full_update, items) @local_var_path = "/vendor/directFulfillment/inventory/v1/warehouses/#{warehouse_id}/items" @request_body = { "inventory" => { - "sellingParty" => { - "partyId" => selling_party_id - }, + "sellingParty" => selling_party, "isFullUpdate" => is_full_update, "items" => items } diff --git a/lib/muffin_man/vendor_direct_fulfillment_orders/v20211228.rb b/lib/muffin_man/vendor_direct_fulfillment_orders/v20211228.rb index 489769e..18816ab 100644 --- a/lib/muffin_man/vendor_direct_fulfillment_orders/v20211228.rb +++ b/lib/muffin_man/vendor_direct_fulfillment_orders/v20211228.rb @@ -20,14 +20,12 @@ def get_orders(created_after, created_before, params = {}) } @query_params.merge!(params.slice(*GET_ORDERS_PARAMS)) @request_type = "GET" - @requires_rdt = true call_api end def get_order(purchase_order_number) @local_var_path = "/vendor/directFulfillment/orders/2021-12-28/purchaseOrders/#{purchase_order_number}" @request_type = "GET" - @requires_rdt = true call_api end diff --git a/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb b/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb index 2447d6b..3727302 100644 --- a/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb +++ b/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb @@ -31,7 +31,6 @@ def submit_shipping_label_request(shipping_label_requests) def get_shipping_label(purchase_order_number) @local_var_path = "/vendor/directFulfillment/shipping/2021-12-28/shippingLabels/#{purchase_order_number}" @request_type = "GET" - @requires_rdt = true call_api end @@ -68,14 +67,12 @@ def get_customer_invoices(created_after, created_before, params = {}) } @query_params.merge!(params.slice(*VENDOR_DIRECT_FULFILLMENT_SHIPPING_PARAMS)) @request_type = "GET" - @requires_rdt = true call_api end def get_customer_invoice(purchase_order_number) @local_var_path = "/vendor/directFulfillment/shipping/2021-12-28/customerInvoices/#{purchase_order_number}" @request_type = "GET" - @requires_rdt = true call_api end @@ -87,14 +84,12 @@ def get_packing_slips(created_after, created_before, params = {}) } @query_params.merge!(params.slice(*VENDOR_DIRECT_FULFILLMENT_SHIPPING_PARAMS)) @request_type = "GET" - @requires_rdt = true call_api end def get_packing_slip(purchase_order_number) @local_var_path = "/vendor/directFulfillment/shipping/2021-12-28/packingSlips/#{purchase_order_number}" @request_type = "GET" - @requires_rdt = true call_api end end From 0eb35f14e3138bebde65ce523d88ef602046adf5 Mon Sep 17 00:00:00 2001 From: sanjjaymahalingam Date: Tue, 9 Sep 2025 18:19:55 +0530 Subject: [PATCH 3/7] rdt-for-vdf --- lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb b/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb index 3727302..5ee80d8 100644 --- a/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb +++ b/lib/muffin_man/vendor_direct_fulfillment_shipping/v20211228.rb @@ -42,6 +42,7 @@ def create_shipping_labels(purchase_order_number, selling_party, ship_from_party "containers" => containers } @request_type = "POST" + @requires_rdt = true call_api end From dfe6e339d8f79fd812bb88ee5828418fc565ffc2 Mon Sep 17 00:00:00 2001 From: sanjjaymahalingam Date: Tue, 9 Sep 2025 18:23:40 +0530 Subject: [PATCH 4/7] rdt-for-vdf --- .../vendor_direct_fulfillment_shipping/v20211228_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/muffin_man/vendor_direct_fulfillment_shipping/v20211228_spec.rb b/spec/muffin_man/vendor_direct_fulfillment_shipping/v20211228_spec.rb index bc2fc9a..1c49c20 100644 --- a/spec/muffin_man/vendor_direct_fulfillment_shipping/v20211228_spec.rb +++ b/spec/muffin_man/vendor_direct_fulfillment_shipping/v20211228_spec.rb @@ -98,7 +98,8 @@ response = vendor_direct_fulfillment_shipping_client.create_shipping_labels( purchase_order_number, selling_party, - ship_from_party + ship_from_party, + [] ) expect(response.response_code).to eq(200) expect(JSON.parse(response.body)).to include( From eaa4af9a13905a7aaea696119d4a3cbacf1b5f56 Mon Sep 17 00:00:00 2001 From: sanjjaymahalingam Date: Tue, 9 Sep 2025 18:31:12 +0530 Subject: [PATCH 5/7] rdt-for-vdf --- .../vendor_direct_fulfillment_shipping/v20211228_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/muffin_man/vendor_direct_fulfillment_shipping/v20211228_spec.rb b/spec/muffin_man/vendor_direct_fulfillment_shipping/v20211228_spec.rb index 1c49c20..6e7316a 100644 --- a/spec/muffin_man/vendor_direct_fulfillment_shipping/v20211228_spec.rb +++ b/spec/muffin_man/vendor_direct_fulfillment_shipping/v20211228_spec.rb @@ -94,6 +94,7 @@ let(:ship_from_party) { { "partyId" => "ABCD" } } it "executes create_shipping_labels request" do + stub_request_rdt_token stub_vendor_direct_fulfillment_shipping_v20211228_create_shipping_labels response = vendor_direct_fulfillment_shipping_client.create_shipping_labels( purchase_order_number, From 35b1a90737db3ed60b236dbbc84839e75ed96bcb Mon Sep 17 00:00:00 2001 From: sanjjaymahalingam Date: Tue, 9 Sep 2025 18:43:43 +0530 Subject: [PATCH 6/7] rdt-for-vdf --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cda0e8..e550ff0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 2.5.0 [#102](https://github.com/patterninc/muffin_man/pull/102) + +- Restrictive data token for Vendor Direct Fulfillment Shipping v2021-12-28 createShippingLabels + # 2.4.14 - Fixed query params of Amazon Finances API v2024-06-19 [#98](https://github.com/patterninc/muffin_man/pull/98) From d47b1ed5ad73a943d299e9a16486a9cd0f6b78d4 Mon Sep 17 00:00:00 2001 From: sanjjaymahalingam Date: Tue, 9 Sep 2025 18:48:31 +0530 Subject: [PATCH 7/7] rdt-for-vdf --- lib/muffin_man/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/muffin_man/version.rb b/lib/muffin_man/version.rb index 3aa95d2..2df6eb4 100644 --- a/lib/muffin_man/version.rb +++ b/lib/muffin_man/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module MuffinMan - VERSION = "2.4.14" + VERSION = "2.5.0" end