In order to get list of vendors perform API call to standard graphql endpoint.
Example:
{
vendorList {
vendorId,
vendorName,
vendorAttn,
email,
telephone,
fax,
streetFull,
street1,
street2,
city,
zip,
countryId,
regionId,
region,
regionCode,
billingUseShipping,
billingTelephone,
billingFax,
billingStreetFull,
billingStreet1,
billingStreet2,
billingCity,
billingZip,
billingCountryId,
billingRegionId,
billingRegion,
billingRegionCode,
status,
carrierCode,
urlKey,
createdAt,
vacationMode,
vacationEnd,
vacationMessage,
accountType,
isFeatured,
ratingSummary
}
}
RESPONSE
{
"data": {
"vendorList": [
{
"vendorId": "1",
"vendorName": "vendor1",
"vendorAttn": "",
"email": "wtsergo.test+v1@gmail.com",
"telephone": "4025555555",
"fax": null,
"streetFull": "1234 Test",
"street1": "1234 Test",
"street2": "",
"city": "los angeles",
"zip": "90210",
"countryId": "US",
"regionId": "12",
"region": null,
"regionCode": "CA",
"billingUseShipping": "1",
"billingTelephone": "4025555555",
"billingFax": null,
"billingStreetFull": "",
"billingStreet1": "",
"billingStreet2": "",
"billingCity": "",
"billingZip": null,
"billingCountryId": "",
"billingRegionId": null,
"billingRegion": null,
"billingRegionCode": null,
"status": "A",
"carrierCode": "flatrate",
"urlKey": "vendor1",
"createdAt": "2021-01-05 20:09:54",
"vacationMode": "0",
"vacationEnd": null,
"vacationMessage": null,
"accountType": null,
"isFeatured": "0",
"ratingSummary": "0.00 (0)"
},
{
"vendorId": "2",
"vendorName": "vendor2",
"vendorAttn": "",
"email": "wtsergo.test+v2@gmail.com",
"telephone": "4025555555",
"fax": null,
"streetFull": "14 elmwood st ne",
"street1": "14 elmwood st ne",
"street2": "",
"city": "rome",
"zip": "30161",
"countryId": "US",
"regionId": "19",
"region": null,
"regionCode": "GA",
"billingUseShipping": "1",
"billingTelephone": "4025555555",
"billingFax": null,
"billingStreetFull": "",
"billingStreet1": "",
"billingStreet2": "",
"billingCity": "",
"billingZip": null,
"billingCountryId": "",
"billingRegionId": null,
"billingRegion": null,
"billingRegionCode": null,
"status": "A",
"carrierCode": "flatrate",
"urlKey": "vendor2",
"createdAt": "2021-01-05 20:09:54",
"vacationMode": "0",
"vacationEnd": null,
"vacationMessage": null,
"accountType": null,
"isFeatured": null,
"ratingSummary": "0.00 (0)"
},
{
"vendorId": "3",
"vendorName": "vendor3",
"vendorAttn": "",
"email": "wtsergo.test+v3@gmail.com",
"telephone": "4025555555",
"fax": null,
"streetFull": "Bride Path",
"street1": "Bride Path",
"street2": "",
"city": "Mantoloking",
"zip": "44025",
"countryId": "US",
"regionId": "47",
"region": null,
"regionCode": "OH",
"billingUseShipping": "1",
"billingTelephone": "4025555555",
"billingFax": null,
"billingStreetFull": "",
"billingStreet1": "",
"billingStreet2": "",
"billingCity": "",
"billingZip": null,
"billingCountryId": "",
"billingRegionId": null,
"billingRegion": null,
"billingRegionCode": null,
"status": "A",
"carrierCode": "flatrate",
"urlKey": null,
"createdAt": "2021-02-16 07:47:41",
"vacationMode": "0",
"vacationEnd": null,
"vacationMessage": null,
"accountType": null,
"isFeatured": "0",
"ratingSummary": "0.00 (0)"
}
]
}
}
Example:
{
vendor(id: 1) {
vendorId
vendorName
vendorAttn
email
telephone
fax
streetFull
street1
street2
city
zip
countryId
regionId
region
regionCode
billingUseShipping
billingTelephone
billingFax
billingStreetFull
billingStreet1
billingStreet2
billingCity
billingZip
billingCountryId
billingRegionId
billingRegion
billingRegionCode
status
carrierCode
urlKey
createdAt
vacationMode
vacationEnd
vacationMessage
accountType
isFeatured
ratingSummary
}
}
RESPONSE
{
"data": {
"vendor": {
"vendorId": "1",
"vendorName": "vendor1",
"vendorAttn": "",
"email": "wtsergo.test+v1@gmail.com",
"telephone": "4025555555",
"fax": null,
"streetFull": "1234 Test",
"street1": "1234 Test",
"street2": "",
"city": "los angeles",
"zip": "90210",
"countryId": "US",
"regionId": "12",
"region": null,
"regionCode": "CA",
"billingUseShipping": "1",
"billingTelephone": "4025555555",
"billingFax": null,
"billingStreetFull": "",
"billingStreet1": "",
"billingStreet2": "",
"billingCity": "",
"billingZip": null,
"billingCountryId": "",
"billingRegionId": null,
"billingRegion": null,
"billingRegionCode": null,
"status": "A",
"carrierCode": "flatrate",
"urlKey": "vendor1",
"createdAt": "2021-01-05 20:09:54",
"vacationMode": "0",
"vacationEnd": null,
"vacationMessage": null,
"accountType": null,
"isFeatured": "0",
"ratingSummary": "0.00 (0)"
}
}
}
It's a shorthand of general magento products query.
Example:
{
vendorProducts(vendorId:3, filter: { price: { from: "28" to: "30"} }
) {
total_count
items {
name
sku
description {
html
}
price_range {
maximum_price {
regular_price {
value
}
}
}
}
}
}
RESPONSE
{
"data": {
"vendorProducts": {
"total_count": 2,
"items": [
{
"name": "Overnight Duffle",
"sku": "24-WB07",
"description": {
"html": "<p>For long weekends away, camping outings and business trips, the Overnight Duffle can't be beat. The dual handles make it a cinch to carry, while the durable waterproof exterior helps you worry less about the weather. With multiple organizational pockets inside and out, it's the perfect travel companion.</p>\r\n<ul>\r\n<li>Dual top handles.</li>\r\n<li>W 15\" x H 15\" x D 9\".</li>\r\n</ul>"
},
"price_range": {
"maximum_price": {
"regular_price": {
"value": 45
}
}
}
},
{
"name": "Push It Messenger Bag",
"sku": "24-WB04",
"description": {
"html": "<p>The name says so, but the Push It Messenger Bag is much more than a busy commuter's tote. It's a closet away from home when you're pedaling from class or work to gym and back or home again. It's the perfect size and shape for laptop, folded clothes, even extra shoes.</p>\r\n<ul>\r\n<li>Adjustable crossbody strap.</li>\r\n<li>Top handle.</li>\r\n<li>Zippered interior pocket.</li>\r\n<li>Secure clip closures.</li>\r\n<li>Durable fabric construction.</li>\r\n</ul>"
},
"price_range": {
"maximum_price": {
"regular_price": {
"value": 45
}
}
}
}
]
}
}
}
Magento native version of above query is
Example:
{
products(
filter: { udropship_vendor: { eq: "1"} }
) {
items {
name
sku
}
}
}
Example:
{
vendorProductOffers(sku: "24-WB04") {
vendorProductId
vendorId
productId
priority
vendorSku
vendorCost
stockQty
backorders
status
shippingPrice
vendorTitle
state
stateDescr
freeshipping
vendorPrice
specialPrice
specialFromDate
specialToDate
}
}
RESPONSE
{
"data": {
"vendorProductOffers": [
{
"vendorProductId": "15",
"vendorId": "1",
"productId": "14",
"priority": null,
"vendorSku": null,
"vendorCost": null,
"stockQty": "99",
"backorders": "-1",
"status": "1",
"shippingPrice": null,
"vendorTitle": null,
"state": "new",
"stateDescr": null,
"freeshipping": "0",
"vendorPrice": "187.86",
"specialPrice": null,
"specialFromDate": null,
"specialToDate": null
},
{
"vendorProductId": "6171",
"vendorId": "2",
"productId": "14",
"priority": null,
"vendorSku": null,
"vendorCost": null,
"stockQty": "20",
"backorders": "-1",
"status": "1",
"shippingPrice": null,
"vendorTitle": null,
"state": "new",
"stateDescr": null,
"freeshipping": "0",
"vendorPrice": "1287.86",
"specialPrice": null,
"specialFromDate": null,
"specialToDate": null
},
{
"vendorProductId": "6174",
"vendorId": "3",
"productId": "14",
"priority": null,
"vendorSku": null,
"vendorCost": null,
"stockQty": "30",
"backorders": "-1",
"status": "1",
"shippingPrice": null,
"vendorTitle": null,
"state": "new",
"stateDescr": null,
"freeshipping": "0",
"vendorPrice": "290",
"specialPrice": null,
"specialFromDate": null,
"specialToDate": null
}
]
}
}
Example:
{
vendorProductQuestions(sku: "24-WB04") {
questionText
answerText
customerName
vendorId
vendorName
visibility
questionDate
answerDate
}
}
RESPONSE
{
"data": {
"vendorProductQuestions": [
{
"questionText": "test question",
"answerText": "test answer",
"customerName": "test 1",
"vendorId": "1",
"vendorName": "vendor1",
"visibility": "1",
"questionDate": "2021-02-15 21:41:00",
"answerDate": "2021-02-15 21:45:51"
},
{
"questionText": "test 2 question",
"answerText": "test 2 answer",
"customerName": "test 2",
"vendorId": "1",
"vendorName": "vendor1",
"visibility": "1",
"questionDate": "2021-02-15 21:41:51",
"answerDate": "2021-02-15 21:45:48"
}
]
}
}
Before run this mutation you need to obtain customer token via generateCustomerToken mutation https://devdocs.magento.com/guides/v2.4/graphql/mutations/generate-customer-token.html and use it in Authorization: Bearer <token> header.
Example:
mutation {
askProductQuestion (input: {
vendorId: 3,
sku: "24-MB01",
email: "wtsergo@gmail.com",
name: "gql test",
question: "gql test question",
visibility: 1
})
}
RESPONSE
{
"data": {
"askProductQuestion": true
}
}
Example:
{
vendorReviews(vendorId: 1) {
detail
nickname
createdAt
ratingVotes {
ratingCode
isAggregate
percent
value
}
}
}
RESPONSE
{
"data": {
"vendorReviews": [
{
"detail": "test 000000003 description",
"nickname": "test",
"createdAt": "2021-02-15 22:21:09",
"ratingVotes": [
{
"ratingCode": "Vendor Quality",
"isAggregate": "1",
"percent": "80",
"value": "4"
},
{
"ratingCode": "Is Quality OK",
"isAggregate": "0",
"percent": "20",
"value": "1"
}
]
},
{
"detail": "test 000000007-1 description",
"nickname": "test",
"createdAt": "2021-02-15 22:21:30",
"ratingVotes": [
{
"ratingCode": "Vendor Quality",
"isAggregate": "1",
"percent": "60",
"value": "3"
},
{
"ratingCode": "Is Quality OK",
"isAggregate": "0",
"percent": "0",
"value": "0"
}
]
},
{
"detail": "test 000000006-1 review details",
"nickname": "test",
"createdAt": "2021-02-15 22:21:53",
"ratingVotes": [
{
"ratingCode": "Vendor Quality",
"isAggregate": "1",
"percent": "100",
"value": "5"
},
{
"ratingCode": "Is Quality OK",
"isAggregate": "0",
"percent": "20",
"value": "1"
}
]
}
]
}
}
It's the same mutation with small extension to grapql CartItemInput
Example:
mutation {
addSimpleProductsToCart(
input: {
cart_id: "{ CART_ID }"
cart_items: [
{
data: {
quantity: 1
sku: "test"
udropship_vendor: 1
}
}
]
}
) {
cart {
items {
id
product {
sku
stock_status
}
quantity
udropship_vendor
}
}
}
}
RESPONSE
{
"data": {
"addSimpleProductsToCart": {
"cart": {
"items": [
{
"id": "102",
"product": {
"sku": "test",
"stock_status": "IN_STOCK"
},
"quantity": 1,
"udropship_vendor": 1
}
]
}
}
}
}