anchor.diff:    updatedAt: DateTime
     chargeTaxes: Boolean!
     weight: Weight
  +  privateMeta: [MetaStore]!
  +  meta: [MetaStore]!
     url: String!
     thumbnailUrl(size: Int): String @deprecated(reason: "thumbnailUrl is deprecated, use\\n         thumbnail instead")
     thumbnail(size: Int): Image
  
positive.code: }
  
  type ProductVariantUpdate {
    errors: [Error!]
    productVariant: ProductVariant
  }
  
negative.code:   collectionRemoveProducts(collectionId: ID!, products: [ID]!): CollectionRemoveProducts
    collectionUpdate(id: ID!, input: CollectionInput!): CollectionUpdate
    collectionTranslate(id: ID!, input: TranslationInput!, languageCode: LanguageCodeEnum!): CollectionTranslate
    collectionUpdateMetadata(id: ID!, input: MetaInput!): CollectionUpdateMeta
    collectionClearMetadata(id: ID!, input: MetaPath!): CollectionClearMeta
    collectionUpdatePrivateMetadata(id: ID!, input: MetaInput!): CollectionUpdatePrivateMeta
    collectionClearPrivateMetadata(id: ID!, input: MetaPath!): CollectionClearPrivateMeta
    productCreate(input: ProductCreateInput!): ProductCreate
    productDelete(id: ID!): ProductDelete
    productBulkDelete(ids: [ID]!): ProductBulkDelete
    productBulkPublish(ids: [ID]!, isPublished: Boolean!): ProductBulkPublish
    productUpdate(id: ID!, input: ProductInput!): ProductUpdate
    productTranslate(id: ID!, input: TranslationInput!, languageCode: LanguageCodeEnum!): ProductTranslate
    productUpdateMetadata(id: ID!, input: MetaInput!): ProductUpdateMeta
    productClearMetadata(id: ID!, input: MetaPath!): ProductClearMeta
    productUpdatePrivateMetadata(id: ID!, input: MetaInput!): ProductUpdatePrivateMeta
    productClearPrivateMetadata(id: ID!, input: MetaPath!): ProductClearPrivateMeta
    productImageCreate(input: ProductImageCreateInput!): ProductImageCreate
    productImageDelete(id: ID!): ProductImageDelete
    productImageBulkDelete(ids: [ID]!): ProductImageBulkDelete
  