Flamingo Commerce Graphql API¶
In Flamingo Commerce most of the modules provide GraphQL schemas and the corresponding resolvers and modifiers.
Usage¶
To enable graphql in your project follow the documentations in the "graphql" Flamingo module. (See GraphQL Module)
Examples¶
See the following example queries to get a feeling on how the Flamingo Commerce GraphQL schema can be used:
Receiving Cart¶
query cartexample {
  Commerce_Cart {
    cart {
      id
      itemCount
      deliveries {
        deliveryInfo {
          code
        }
        cartitems {
          qty
          productName
        }
      }
    }
  }
}
Adding a product to Cart¶
mutation add {
  Commerce_AddToCart(marketplaceCode: "awesome-retailer_7409939", qty: 10, deliveryCode: "delivery") {
    cart {
      id
    }
}
}
Receiving Products¶
query productssimple {
  Commerce_Product(marketplaceCode: "awesome-retailer_7409939") {
   ...productData
  }
}
fragment productData on Commerce_Product {
baseData {
      title
    }
  isSaleable
  saleableData {
    activePrice {
      default {
        amount
        currency
      }
      discounted {
        amount
        currency
      }
      discountText
      isDiscounted
    }
  }
}
This example uses GraphQL Fragments to share the common set of properties.
Typed Products¶
Product is an interface and there can be many types implementing it. You can modify the query like this:
query productstyped {
  Commerce_Product(marketplaceCode: "awesome-retailer_7409939") {
   __typename
    ... on Commerce_SimpleProduct {
      ...productData
    }
  }
}