diff --git a/src/data/navigation/sections/graphql.js b/src/data/navigation/sections/graphql.js index 0420c4378..b1a66b18b 100644 --- a/src/data/navigation/sections/graphql.js +++ b/src/data/navigation/sections/graphql.js @@ -1149,10 +1149,22 @@ module.exports = [ title: "deleteRequisitionListItems", path: "/graphql/schema/b2b/requisition-list/mutations/delete-items/", }, + { + title: "importSharedRequisitionList", + path: "/graphql/schema/b2b/requisition-list/mutations/import-shared-requisition-list/", + }, { title: "moveItemsBetweenRequisitionLists", path: "/graphql/schema/b2b/requisition-list/mutations/move-items/", }, + { + title: "shareRequisitionListByEmail", + path: "/graphql/schema/b2b/requisition-list/mutations/share-requisition-list-by-email/", + }, + { + title: "shareRequisitionListByToken", + path: "/graphql/schema/b2b/requisition-list/mutations/share-requisition-list-by-token/", + }, { title: "updateRequisitionList", path: "/graphql/schema/b2b/requisition-list/mutations/update/", @@ -1163,6 +1175,16 @@ module.exports = [ }, ], }, + { + title: "Queries", + path: "/graphql/schema/b2b/requisition-list/queries", + pages: [ + { + title: "sharedRequisitionList", + path: "/graphql/schema/b2b/requisition-list/queries/shared-requisition-list/", + }, + ] + }, { title: "Interfaces", path: "/graphql/schema/b2b/requisition-list/interfaces/" diff --git a/src/pages/graphql/schema/b2b/requisition-list/mutations/import-shared-requisition-list.md b/src/pages/graphql/schema/b2b/requisition-list/mutations/import-shared-requisition-list.md new file mode 100644 index 000000000..6000eeae8 --- /dev/null +++ b/src/pages/graphql/schema/b2b/requisition-list/mutations/import-shared-requisition-list.md @@ -0,0 +1,105 @@ +--- +title: importSharedRequisitionList mutation +edition: saas +keywords: + - B2B +--- + +import CommerceOnly from '/src/_includes/commerce-only.md' + + + +# importSharedRequisitionList mutation + + + +This mutation is part of the B2B Storefront Compatibility Package and is only available on [Adobe Commerce as a Cloud Service](https://experienceleague.adobe.com/en/docs/commerce/cloud-service/overview). + +The `importSharedRequisitionList` mutation allows recipients within the same company to import or clone a shared requisition list. You must specify a valid token, generated by the [shareRequisitionListByToken](share-requisition-list-by-token.md) mutation, as an input parameter. This mutation returns a `requisition_list` object and `user_errors`, if any. + +## Syntax + +```graphql +{ + importSharedRequisitionList( + token: String! + ): ImportSharedRequisitionListOutput +} +``` + +## Example usage + +The following example demonstrates how to import a shared requisition list using the specified token as its identifier. + +**Request:** + +```graphql +mutation ImportSharedRequisitionList { + importSharedRequisitionList( + token: "Ra4yCcOAesVKIHNKuqUy6G3PMbcWt6HMohgcwDMXmnwrbB2SCeMMDPGlmDukDXGc" + ) { + requisition_list { + description + name + uid + items(currentPage: 1, pageSize: 20) { + items { + quantity + sku + uid + product { + attribute_set_id + uid + name + } + } + page_info { + current_page + page_size + total_pages + } + } + } + user_errors { + code + message + } + } +} +``` + +**Response:** + +```json +{ + "data": { + "importSharedRequisitionList": { + "requisition_list": { + "description": null, + "name": "John's Favorites", + "uid": "MTA5Nw==", + "items": { + "items": [ + { + "quantity": 2, + "sku": "Augusta", + "uid": "NDgx", + "product": { + "attribute_set_id": 4, + "uid": "MzQ3", + "name": "Augusta" + } + } + ], + "page_info": { + "current_page": 1, + "page_size": 20, + "total_pages": 1 + } + } + }, + "user_errors": [] + } + } +} +``` diff --git a/src/pages/graphql/schema/b2b/requisition-list/mutations/index.md b/src/pages/graphql/schema/b2b/requisition-list/mutations/index.md index 84872e023..08ac42f61 100644 --- a/src/pages/graphql/schema/b2b/requisition-list/mutations/index.md +++ b/src/pages/graphql/schema/b2b/requisition-list/mutations/index.md @@ -24,7 +24,11 @@ The B2B requisition list mutations allow you to perform the following operations - [Update items in a requisition list](update-items.md) - [Delete items from a requistion list](delete-items.md) +- Share requisition lists + - [Share requisition list with a token](share-requisition-list-by-token.md) + - [Share requisition list by email](share-requisition-list-by-email.md) + - [Import shared requisition list](import-shared-requisition-list.md) + - Manage the cart - [Add requisition list items to the cart](add-items-to-cart.md) - [Clear the cart](clear-customer-cart.md) - \ No newline at end of file diff --git a/src/pages/graphql/schema/b2b/requisition-list/mutations/share-requisition-list-by-email.md b/src/pages/graphql/schema/b2b/requisition-list/mutations/share-requisition-list-by-email.md new file mode 100644 index 000000000..d0318710f --- /dev/null +++ b/src/pages/graphql/schema/b2b/requisition-list/mutations/share-requisition-list-by-email.md @@ -0,0 +1,61 @@ +--- +title: shareRequisitionListByEmail mutation +edition: saas +keywords: + - B2B +--- + +import CommerceOnly from '/src/_includes/commerce-only.md' + + + +# shareRequisitionListByEmail mutation + + + +This mutation is part of the B2B Storefront Compatibility Package and is only available on [Adobe Commerce as a Cloud Service](https://experienceleague.adobe.com/en/docs/commerce/cloud-service/overview). + +The `shareRequisitionListByEmail` mutation enables B2B customers to share a requisition list with colleagues within the same company in an email. The mutation requires `requisitionListUid` and an array of `customerUids` as input parameters. This mutation returns a `sent_count` which shows the count of emails the list has been shared to, and `user_errors`, if any. + +## Syntax + +```graphql +{ + shareRequisitionListByEmail( + input: ShareRequisitionListByEmailInput! + ): ShareRequisitionListByEmailOutput +} +``` + +## Example usage + +The following example shares a requisition list to the specified customer UIDs. + +**Request:** + +```graphql +mutation ShareRequisitionListByEmail { + shareRequisitionListByEmail( + input: { customerUids: ["MQ==", "Mg=="], requisitionListUid: "OTc5" } + ) { + sent_count + user_errors { + code + message + } + } +} +``` + +**Response:** + +```json +{ + "data": { + "shareRequisitionListByEmail": { + "sent_count": 2, + "user_errors": [] + } + } +} +``` diff --git a/src/pages/graphql/schema/b2b/requisition-list/mutations/share-requisition-list-by-token.md b/src/pages/graphql/schema/b2b/requisition-list/mutations/share-requisition-list-by-token.md new file mode 100644 index 000000000..a92991307 --- /dev/null +++ b/src/pages/graphql/schema/b2b/requisition-list/mutations/share-requisition-list-by-token.md @@ -0,0 +1,54 @@ +--- +title: shareRequisitionListByToken mutation +edition: saas +keywords: + - B2B +--- + +import CommerceOnly from '/src/_includes/commerce-only.md' + + + +# shareRequisitionListByToken mutation + + + +This mutation is part of the B2B Storefront Compatibility Package and is only available on [Adobe Commerce as a Cloud Service](https://experienceleague.adobe.com/en/docs/commerce/cloud-service/overview). + +The `shareRequisitionListByToken` mutation enables B2B customers to share a requisition list with colleagues within the same company using a shareable link generated on the storefront. The mutation requires `requisitionListUid` as an input parameter. This mutation returns the token assigned to the shared requisition list. + +## Syntax + +```graphql +{ + shareRequisitionListByToken( + requisitionListUid: ID! + ): ShareRequisitionListByTokenOutput +} +``` + +## Example usage + +The following example provides a token for a shareable requisition list. + +**Request:** + +```graphql +mutation ShareRequisitionListByToken { + shareRequisitionListByToken(requisitionListUid: "OTc5") { + token + } +} +``` + +**Response:** + +```json +{ + "data": { + "shareRequisitionListByToken": { + "token": "qEJD2aUhmYnf1jNoaOtlo7XwBP8BRof5GhF0L5kbdJxYMZ13OlFvy2VFy33NnUCp" + } + } +} +``` diff --git a/src/pages/graphql/schema/b2b/requisition-list/queries/index.md b/src/pages/graphql/schema/b2b/requisition-list/queries/index.md new file mode 100644 index 000000000..0f0a5c8da --- /dev/null +++ b/src/pages/graphql/schema/b2b/requisition-list/queries/index.md @@ -0,0 +1,16 @@ +--- +title: Requisition list (B2B) queries +keywords: + - B2B +--- + +import CommerceOnly from '/src/_includes/commerce-only.md' + + + +# Requisition list (B2B) queries + +The following query retrieves a shared requisition list + +- [View Shared Requisition List](shared-requisition-list.md) + \ No newline at end of file diff --git a/src/pages/graphql/schema/b2b/requisition-list/queries/shared-requisition-list.md b/src/pages/graphql/schema/b2b/requisition-list/queries/shared-requisition-list.md new file mode 100644 index 000000000..a881def0e --- /dev/null +++ b/src/pages/graphql/schema/b2b/requisition-list/queries/shared-requisition-list.md @@ -0,0 +1,102 @@ +--- +title: sharedRequisitionList query +edition: saas +keywords: + - B2B +--- + +import CommerceOnly from '/src/_includes/commerce-only.md' + + + +# sharedRequisitionList query + + + +This query is part of the B2B Storefront Compatibility Package and is only available on [Adobe Commerce as a Cloud Service](https://experienceleague.adobe.com/en/docs/commerce/cloud-service/overview). + +The `sharedRequisitionList` query uses a token to retrieve a shared requisition list. The response can contain the `sender_name` and `requisition_list` object. + +## Syntax + +```graphql +{ + sharedRequisitionList( + token: String! + ): SharedRequisitionListOutput +} +``` + +## Example usage + +The following example opens a shared requisition list by specifying the shared token. + +**Request:** + +```graphql +query SharedRequisitionList { + sharedRequisitionList( + token: "qEJD2aUhmYnf1jNoaOtlo7XwBP8BRof5GhF0L5kbdJxYMZ13OlFvy2VFy33NnUCp" + ) { + sender_name + requisition_list { + description + name + uid + items(currentPage: 1, pageSize: 20) { + total_pages + items { + quantity + sku + uid + product { + attribute_set_id + name + } + } + page_info { + current_page + page_size + total_pages + } + } + } + } +} +``` + +**Response:** + +```json +{ + "data": { + "sharedRequisitionList": { + "sender_name": "Jane", + "requisition_list": { + "description": "Test RL sharing", + "name": "Shared RL", + "uid": "OTc5", + "items": { + "total_pages": 1, + "items": [ + { + "quantity": 2, + "sku": "Augusta", + "uid": "NDEw", + "product": { + "attribute_set_id": 4, + "name": "Augusta" + } + } + ], + "page_info": { + "current_page": 1, + "page_size": 20, + "total_pages": 1 + } + } + } + } + } +} +```