Skip to content

Commit

Permalink
b2b examples
Browse files Browse the repository at this point in the history
Generate README

Update Insomnia package

folder rename

folder rename

formatting
  • Loading branch information
dustinfirman committed Jul 24, 2024
1 parent 88baef5 commit 5bc3163
Show file tree
Hide file tree
Showing 6 changed files with 157 additions and 1 deletion.
87 changes: 87 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2112,3 +2112,90 @@ variables
</details>

---
### B2b
<details><summary><strong>Get contextualized products</strong></summary>
<p>

Including the buyer argument on the @inContext directive will contextualize any storefront queries for a B2B customer.

With a contextualized query, you can access a quantityRule and quantityPriceBreaks on a product variant, as well as get a price that's contextualized for the B2B customer.

The customerAccessToken and companyLocationId in the BuyerInput are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b)
```gql
query RecommendedProducts (
$buyer: BuyerInput
) @inContext(buyer: $buyer) {
products(first: 5) {
nodes {
id
variants(first: 5) {
nodes {
id
price
quantityRule {
maximum
minimum
increment
}
quantityPriceBreaks(first: 5) {
nodes {
minimumQuantity
price {
amount
currencyCode
}
}
}
}
}
}
}
}

variables
{
"buyer": {
"customerAccessToken": "shpsb_eyJh123456789",
"companyLocationId": "gid://shopify/CompanyLocation/10079785100"
}
}</p>
</details>
<details><summary><strong>Create a cart with buyer identity</strong></summary>
<p>

Including the buyerIdentity of a B2B customer will create a contexualized cart. Checkouts made with this cart will be B2B checkouts.

The customerAccessToken and companyLocationId in the buyerIdentity are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b)
```gql
mutation createCart($cartInput: CartInput) {
cartCreate(input: $cartInput) {
cart {
id
createdAt
updatedAt
buyerIdentity {
email
phone
customer {
id
}
countryCode
}
}
}
}

variables
{
"cartInput": {
"buyerIdentity": {
"customerAccessToken": "shpsb_eyJh123456789",
"companyLocationId": "gid://shopify/CompanyLocation/10079785100"
}
}
}
```
</p>
</details>

---
2 changes: 1 addition & 1 deletion builds/storefront-api-learning-kit-insomnia.json

Large diffs are not rendered by default.

34 changes: 34 additions & 0 deletions examples/10_B2B/01_get_contextualized_products/query.graphql
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Including the buyer argument on the @inContext directive will contextualize any storefront queries for a B2B customer.

# With a contextualized query, you can access a quantityRule and quantityPriceBreaks on a product variant, as well as get a price that's contextualized for the B2B customer.

# The customerAccessToken and companyLocationId in the BuyerInput are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b)
query RecommendedProducts (
$buyer: BuyerInput
) @inContext(buyer: $buyer) {
products(first: 5) {
nodes {
id
variants(first: 5) {
nodes {
id
price
quantityRule {
maximum
minimum
increment
}
quantityPriceBreaks(first: 5) {
nodes {
minimumQuantity
price {
amount
currencyCode
}
}
}
}
}
}
}
}
7 changes: 7 additions & 0 deletions examples/10_B2B/01_get_contextualized_products/variables.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

{
"buyer": {
"customerAccessToken": "shpsb_eyJh123456789",
"companyLocationId": "gid://shopify/CompanyLocation/10079785100"
}
}
20 changes: 20 additions & 0 deletions examples/10_B2B/02_create_a_cart_with_buyer_identity/query.graphql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Including the buyerIdentity of a B2B customer will create a contexualized cart. Checkouts made with this cart will be B2B checkouts.

# The customerAccessToken and companyLocationId in the buyerIdentity are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b)
mutation createCart($cartInput: CartInput) {
cartCreate(input: $cartInput) {
cart {
id
createdAt
updatedAt
buyerIdentity {
email
phone
customer {
id
}
countryCode
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"cartInput": {
"buyerIdentity": {
"customerAccessToken": "shpsb_eyJh123456789",
"companyLocationId": "gid://shopify/CompanyLocation/10079785100"
}
}
}

0 comments on commit 5bc3163

Please sign in to comment.