====== uMarketplace GraphQl API ====== ===== Get list of Vendors ===== 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)" } ] } } ===== Get Single Vendor Info ===== '' 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)" } } } ===== Get list of Vendor Products ===== 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": "

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.

\r\n" }, "price_range": { "maximum_price": { "regular_price": { "value": 45 } } } }, { "name": "Push It Messenger Bag", "sku": "24-WB04", "description": { "html": "

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.

\r\n" }, "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 } } } ===== Get product offers from multiple vendors ===== '' 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 } ] } } ===== Get product questions to vendors ===== '' 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" } ] } } ===== Ask product question to vendor ===== 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 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 } } ===== Get vendor reviews ===== '' 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" } ] } ] } } ===== Add product to cart with specific vendor ===== 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 } ] } } } }