
* add multichannel to configuration view * create multichannels list view * create multichannels list view * add ChannelsCreate view * update channels in configuration * add stories * update default messages * fix ChannelForm props * update channels list styles * update snapshots * update channel form currency input * update Channels fragments * extract messages * remove tabs from channelsList * channel details, channel delete modal (#598) * create Channel details view * create ChannelDeleteDialog * add channels delete dialog to channels list * update messages and types * fixes after review * channels availability (#609) * create Channel details view * update messages and types * create ChannelsAvailability component * create more product channels components * create channels stories, update fixtures, types * update product views with channels data * update schema and snapshots * update defaultMessages * update ProductUpdate view * create ChannelsAvailabilityDropdown component * add product channels to local storage * update globalTypes * Update to new schema and resolve issues * Update messages * create deleteChannel mutation * add channels availability component to product create view * refactor ProductCreate and ProductUpdate views * CollectionProducts view cleanup * add disabled prop to ActionDialog * use updateChannels mutation in ProductCreate view * ProductCreate - update submit function * fixes after review * update snapshots and messages Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com> * channels shipping components (#655) * create PricingCard, OrderValue and OrderWeight components * create ShippingZoneRatesPage and DeleteShippingRateDialog * update ChannelsAvailability component * updates after review * channels shipping views (#662) * update ChannelsAvailability component * updates after review * create PriceRate views, update types * create weight rates views * update shipping views, stories, messages * update snapshots * update snapshots * update useChannels hook * orders channels components (#698) * create OrderChannelSectionCard component * update OrderDetailsPage * update DraftOrderChannelCard * update snapshots * update fixtures * small change after review, update snapshots * product pricing (#702) * update product types * update Pricing in simple product view * use productVariantCreate mutation in simple product view * update snapshots and messages * handle create variant (#715) * update product types * update Pricing in simple product view * handle product create and update errors * update snapshots and messages * fix update and create product handlers * update pricing types * channels modal - new styles, search input (#717) * update product types * update Pricing in simple product view * handle product create and update errors * update pricing types * add search input in ChannelsAvailabilityDialog * update ChannelsAvailabilityDialog in all views * update snapshots * fix search input label styles * update toggleAllChannels function * update variant creator (#724) * update product types * update Pricing in simple product view * handle product create and update errors * update pricing types * add search input in ChannelsAvailabilityDialog * update ChannelsAvailabilityDialog in all views * update snapshots * add channelLisitngs to variant creator * update variant creator price styles * update product variant creator reducer tests * update createVariants tests * update error handling in product variant creator * add Skip pricing for now option * use PriceField instead of TextField in ProductVariantCreatorSummary * create price validation function * fix errors handling in ProductVariantPrice component * fixes after review * Product List - remove publish/unpublish buttons (#727) * ProductList - remove publish and unpublish buttons * update messages * update snapshots, messages * revert changes in ChannelsAvailabilityDropdown * products/shipping/discount list settings (#739) * create ChannelSettingsDialog component * update snapshots * ProductList - open settings modal when there is no selected channel * add settings modal to vouchers list * add settings dialog to sales list * add setting modal to shipping list * update shipping * update snapshots, messages * useChannelsSettings - remove selectedChannelSlug * fix channels update handler in product and shipping view * messages update in ChannelSettingsDialog * handle product/discount list when there is no channels * update onSettingsOpen prop * collection availability dropdown (#743) * add availability dropdown to collection products list * update channelListingProduct fragment name * update voucher view/components with channels (#746) * update voucher view/components with channels * update VoucherSummary, remove defaultCurrency from voucher components * update snapshots * move getChannelsVariables func to discounts handlers * update voucher messages * sale view/components with channels (#750) * update sale views with channels * small fixes in discounts * order views with channels (#752) * update draft orders with channels * add channel activate/deactivate mutations * remove sort by total in orders list * add error notification on channel activate/deactivate * product variants channel select (#755) * add channels selector to ProductVariants component * remove selectedChannel from ProductUpdate, update messages and snapshots * update product fragments * update translations (#762) * update translations * fix translation types * update messages * update Availability component (#766) * update ChannelsAvailability component * update product fixtures * update collection and channel fixtures * ChannelsAvailability - handle errors * update product handlers * update ChannelsAvailability styles * update ProductVariant * update snapshots * fix missing things in multichannel (#785) * add availability dropdown to discount products list * fix error handling in shipping components * update product views and components * update messages * update category view/components * update CategoryProducts styles * remove defaultCurrency from shipping components * create ChannelsSelect component * update channels error handling after review * another fixes after review * Add channels to collection views/components (#791) ** update collection components and views * update create collection view * update error handling in collection * remove filter bar from collection list * update products fragments * small fix in collection create view * use collectionFragment in useCatalogSearch * update defaultMessages and snapshots * update homepage view/drop defaultCurrency (#801) * update homepage view * drop defaultCurrency prop * fix onChannelChange function in home view * remove visibility from product list filters * update export products with channels (#803) * update ProductExportDialog with channels * add new channel error code * remover VISIBLE from product export dialog Financial information * fix input size in ProductVariantCreatorSummary (#804) * channels currency code select (#806) * create select with currency codes * fix ChannelDeleteDialog * update defaultMessages, remove unneeded ChannelDetails handlers * fixes after rebase * replace channelListing with channelListings * [multichannel] Update schema] * Fix product create test Co-authored-by: AlicjaSzu <alicja.szukuc@gmail.com> Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com> Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
584 lines
15 KiB
TypeScript
584 lines
15 KiB
TypeScript
import {
|
|
bulkProductErrorFragment,
|
|
bulkStockErrorFragment,
|
|
exportErrorFragment,
|
|
productChannelListingErrorFragment,
|
|
productErrorFragment,
|
|
productErrorWithAttributesFragment,
|
|
stockErrorFragment
|
|
} from "@saleor/fragments/errors";
|
|
import {
|
|
exportFileFragment,
|
|
fragmentVariant,
|
|
productFragmentDetails
|
|
} from "@saleor/fragments/products";
|
|
import makeMutation from "@saleor/hooks/makeMutation";
|
|
import gql from "graphql-tag";
|
|
|
|
import {
|
|
productBulkDelete,
|
|
productBulkDeleteVariables
|
|
} from "./types/productBulkDelete";
|
|
import {
|
|
ProductChannelListingUpdate,
|
|
ProductChannelListingUpdateVariables
|
|
} from "./types/ProductChannelListingUpdate";
|
|
import { ProductCreate, ProductCreateVariables } from "./types/ProductCreate";
|
|
import { ProductDelete, ProductDeleteVariables } from "./types/ProductDelete";
|
|
import { ProductExport, ProductExportVariables } from "./types/ProductExport";
|
|
import {
|
|
ProductImageCreate,
|
|
ProductImageCreateVariables
|
|
} from "./types/ProductImageCreate";
|
|
import {
|
|
ProductImageDelete,
|
|
ProductImageDeleteVariables
|
|
} from "./types/ProductImageDelete";
|
|
import {
|
|
ProductImageReorder,
|
|
ProductImageReorderVariables
|
|
} from "./types/ProductImageReorder";
|
|
import {
|
|
ProductImageUpdate,
|
|
ProductImageUpdateVariables
|
|
} from "./types/ProductImageUpdate";
|
|
import { ProductUpdate, ProductUpdateVariables } from "./types/ProductUpdate";
|
|
import {
|
|
ProductVariantBulkCreate,
|
|
ProductVariantBulkCreateVariables
|
|
} from "./types/ProductVariantBulkCreate";
|
|
import {
|
|
ProductVariantBulkDelete,
|
|
ProductVariantBulkDeleteVariables
|
|
} from "./types/ProductVariantBulkDelete";
|
|
import {
|
|
ProductVariantChannelListingUpdate,
|
|
ProductVariantChannelListingUpdateVariables
|
|
} from "./types/ProductVariantChannelListingUpdate";
|
|
import {
|
|
ProductVariantReorder,
|
|
ProductVariantReorderVariables
|
|
} from "./types/ProductVariantReorder";
|
|
import {
|
|
ProductVariantSetDefault,
|
|
ProductVariantSetDefaultVariables
|
|
} from "./types/ProductVariantSetDefault";
|
|
import {
|
|
SimpleProductUpdate,
|
|
SimpleProductUpdateVariables
|
|
} from "./types/SimpleProductUpdate";
|
|
import { VariantCreate, VariantCreateVariables } from "./types/VariantCreate";
|
|
import { VariantDelete, VariantDeleteVariables } from "./types/VariantDelete";
|
|
import {
|
|
VariantImageAssign,
|
|
VariantImageAssignVariables
|
|
} from "./types/VariantImageAssign";
|
|
import {
|
|
VariantImageUnassign,
|
|
VariantImageUnassignVariables
|
|
} from "./types/VariantImageUnassign";
|
|
import { VariantUpdate, VariantUpdateVariables } from "./types/VariantUpdate";
|
|
|
|
export const productImageCreateMutation = gql`
|
|
${productErrorFragment}
|
|
${productFragmentDetails}
|
|
mutation ProductImageCreate($product: ID!, $image: Upload!, $alt: String) {
|
|
productImageCreate(input: { alt: $alt, image: $image, product: $product }) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
product {
|
|
...Product
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductImageCreateMutation = makeMutation<
|
|
ProductImageCreate,
|
|
ProductImageCreateVariables
|
|
>(productImageCreateMutation);
|
|
|
|
export const productDeleteMutation = gql`
|
|
${productErrorFragment}
|
|
mutation ProductDelete($id: ID!) {
|
|
productDelete(id: $id) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
product {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductDeleteMutation = makeMutation<
|
|
ProductDelete,
|
|
ProductDeleteVariables
|
|
>(productDeleteMutation);
|
|
|
|
export const productImagesReorder = gql`
|
|
${productErrorFragment}
|
|
mutation ProductImageReorder($productId: ID!, $imagesIds: [ID]!) {
|
|
productImageReorder(productId: $productId, imagesIds: $imagesIds) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
product {
|
|
id
|
|
images {
|
|
id
|
|
alt
|
|
sortOrder
|
|
url
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductImagesReorder = makeMutation<
|
|
ProductImageReorder,
|
|
ProductImageReorderVariables
|
|
>(productImagesReorder);
|
|
|
|
const productVariantSetDefault = gql`
|
|
${productErrorFragment}
|
|
${productFragmentDetails}
|
|
mutation ProductVariantSetDefault($productId: ID!, $variantId: ID!) {
|
|
productVariantSetDefault(productId: $productId, variantId: $variantId) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
product {
|
|
...Product
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const useProductVariantSetDefaultMutation = makeMutation<
|
|
ProductVariantSetDefault,
|
|
ProductVariantSetDefaultVariables
|
|
>(productVariantSetDefault);
|
|
|
|
export const productUpdateMutation = gql`
|
|
${productErrorWithAttributesFragment}
|
|
${productFragmentDetails}
|
|
mutation ProductUpdate($id: ID!, $input: ProductInput!) {
|
|
productUpdate(id: $id, input: $input) {
|
|
errors: productErrors {
|
|
...ProductErrorWithAttributesFragment
|
|
}
|
|
product {
|
|
...Product
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductUpdateMutation = makeMutation<
|
|
ProductUpdate,
|
|
ProductUpdateVariables
|
|
>(productUpdateMutation);
|
|
|
|
export const simpleProductUpdateMutation = gql`
|
|
${bulkStockErrorFragment}
|
|
${productErrorWithAttributesFragment}
|
|
${productFragmentDetails}
|
|
${stockErrorFragment}
|
|
${fragmentVariant}
|
|
mutation SimpleProductUpdate(
|
|
$id: ID!
|
|
$input: ProductInput!
|
|
$productVariantId: ID!
|
|
$productVariantInput: ProductVariantInput!
|
|
$addStocks: [StockInput!]!
|
|
$deleteStocks: [ID!]!
|
|
$updateStocks: [StockInput!]!
|
|
) {
|
|
productUpdate(id: $id, input: $input) {
|
|
errors: productErrors {
|
|
...ProductErrorWithAttributesFragment
|
|
}
|
|
product {
|
|
...Product
|
|
}
|
|
}
|
|
productVariantUpdate(id: $productVariantId, input: $productVariantInput) {
|
|
errors: productErrors {
|
|
...ProductErrorWithAttributesFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
productVariantStocksCreate(
|
|
stocks: $addStocks
|
|
variantId: $productVariantId
|
|
) {
|
|
errors: bulkStockErrors {
|
|
...BulkStockErrorFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
productVariantStocksDelete(
|
|
warehouseIds: $deleteStocks
|
|
variantId: $productVariantId
|
|
) {
|
|
errors: stockErrors {
|
|
...StockErrorFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
productVariantStocksUpdate(
|
|
stocks: $updateStocks
|
|
variantId: $productVariantId
|
|
) {
|
|
errors: bulkStockErrors {
|
|
...BulkStockErrorFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useSimpleProductUpdateMutation = makeMutation<
|
|
SimpleProductUpdate,
|
|
SimpleProductUpdateVariables
|
|
>(simpleProductUpdateMutation);
|
|
|
|
export const productCreateMutation = gql`
|
|
${productErrorWithAttributesFragment}
|
|
${productFragmentDetails}
|
|
mutation ProductCreate($input: ProductCreateInput!) {
|
|
productCreate(input: $input) {
|
|
errors: productErrors {
|
|
...ProductErrorWithAttributesFragment
|
|
}
|
|
product {
|
|
...Product
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductCreateMutation = makeMutation<
|
|
ProductCreate,
|
|
ProductCreateVariables
|
|
>(productCreateMutation);
|
|
|
|
export const variantDeleteMutation = gql`
|
|
${productErrorFragment}
|
|
mutation VariantDelete($id: ID!) {
|
|
productVariantDelete(id: $id) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
productVariant {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useVariantDeleteMutation = makeMutation<
|
|
VariantDelete,
|
|
VariantDeleteVariables
|
|
>(variantDeleteMutation);
|
|
|
|
export const variantUpdateMutation = gql`
|
|
${bulkStockErrorFragment}
|
|
${fragmentVariant}
|
|
${productErrorWithAttributesFragment}
|
|
mutation VariantUpdate(
|
|
$addStocks: [StockInput!]!
|
|
$removeStocks: [ID!]!
|
|
$id: ID!
|
|
$attributes: [AttributeValueInput]
|
|
$sku: String
|
|
$trackInventory: Boolean!
|
|
$stocks: [StockInput!]!
|
|
$weight: WeightScalar
|
|
) {
|
|
productVariantUpdate(
|
|
id: $id
|
|
input: {
|
|
attributes: $attributes
|
|
sku: $sku
|
|
trackInventory: $trackInventory
|
|
weight: $weight
|
|
}
|
|
) {
|
|
errors: productErrors {
|
|
...ProductErrorWithAttributesFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
productVariantStocksUpdate(stocks: $stocks, variantId: $id) {
|
|
errors: bulkStockErrors {
|
|
...BulkStockErrorFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
productVariantStocksCreate(stocks: $addStocks, variantId: $id) {
|
|
errors: bulkStockErrors {
|
|
...BulkStockErrorFragment
|
|
}
|
|
productVariant {
|
|
id
|
|
stocks {
|
|
...StockFragment
|
|
}
|
|
}
|
|
}
|
|
productVariantStocksDelete(warehouseIds: $removeStocks, variantId: $id) {
|
|
errors: stockErrors {
|
|
code
|
|
field
|
|
}
|
|
productVariant {
|
|
id
|
|
stocks {
|
|
...StockFragment
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useVariantUpdateMutation = makeMutation<
|
|
VariantUpdate,
|
|
VariantUpdateVariables
|
|
>(variantUpdateMutation);
|
|
|
|
export const variantCreateMutation = gql`
|
|
${fragmentVariant}
|
|
${productErrorWithAttributesFragment}
|
|
mutation VariantCreate($input: ProductVariantCreateInput!) {
|
|
productVariantCreate(input: $input) {
|
|
errors: productErrors {
|
|
...ProductErrorWithAttributesFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useVariantCreateMutation = makeMutation<
|
|
VariantCreate,
|
|
VariantCreateVariables
|
|
>(variantCreateMutation);
|
|
|
|
export const productImageDeleteMutation = gql`
|
|
${productErrorFragment}
|
|
mutation ProductImageDelete($id: ID!) {
|
|
productImageDelete(id: $id) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
product {
|
|
id
|
|
images {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductImageDeleteMutation = makeMutation<
|
|
ProductImageDelete,
|
|
ProductImageDeleteVariables
|
|
>(productImageDeleteMutation);
|
|
|
|
export const productImageUpdateMutation = gql`
|
|
${productErrorFragment}
|
|
${productFragmentDetails}
|
|
mutation ProductImageUpdate($id: ID!, $alt: String!) {
|
|
productImageUpdate(id: $id, input: { alt: $alt }) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
product {
|
|
...Product
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductImageUpdateMutation = makeMutation<
|
|
ProductImageUpdate,
|
|
ProductImageUpdateVariables
|
|
>(productImageUpdateMutation);
|
|
|
|
export const variantImageAssignMutation = gql`
|
|
${fragmentVariant}
|
|
${productErrorFragment}
|
|
mutation VariantImageAssign($variantId: ID!, $imageId: ID!) {
|
|
variantImageAssign(variantId: $variantId, imageId: $imageId) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useVariantImageAssignMutation = makeMutation<
|
|
VariantImageAssign,
|
|
VariantImageAssignVariables
|
|
>(variantImageAssignMutation);
|
|
|
|
export const variantImageUnassignMutation = gql`
|
|
${fragmentVariant}
|
|
${productErrorFragment}
|
|
mutation VariantImageUnassign($variantId: ID!, $imageId: ID!) {
|
|
variantImageUnassign(variantId: $variantId, imageId: $imageId) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
productVariant {
|
|
...ProductVariant
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useVariantImageUnassignMutation = makeMutation<
|
|
VariantImageUnassign,
|
|
VariantImageUnassignVariables
|
|
>(variantImageUnassignMutation);
|
|
|
|
export const productBulkDeleteMutation = gql`
|
|
${productErrorFragment}
|
|
mutation productBulkDelete($ids: [ID!]!) {
|
|
productBulkDelete(ids: $ids) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductBulkDeleteMutation = makeMutation<
|
|
productBulkDelete,
|
|
productBulkDeleteVariables
|
|
>(productBulkDeleteMutation);
|
|
|
|
export const ProductVariantBulkCreateMutation = gql`
|
|
${bulkProductErrorFragment}
|
|
mutation ProductVariantBulkCreate(
|
|
$id: ID!
|
|
$inputs: [ProductVariantBulkCreateInput]!
|
|
) {
|
|
productVariantBulkCreate(product: $id, variants: $inputs) {
|
|
errors: bulkProductErrors {
|
|
...BulkProductErrorFragment
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductVariantBulkCreateMutation = makeMutation<
|
|
ProductVariantBulkCreate,
|
|
ProductVariantBulkCreateVariables
|
|
>(ProductVariantBulkCreateMutation);
|
|
|
|
export const ProductVariantBulkDeleteMutation = gql`
|
|
${productErrorFragment}
|
|
mutation ProductVariantBulkDelete($ids: [ID!]!) {
|
|
productVariantBulkDelete(ids: $ids) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductVariantBulkDeleteMutation = makeMutation<
|
|
ProductVariantBulkDelete,
|
|
ProductVariantBulkDeleteVariables
|
|
>(ProductVariantBulkDeleteMutation);
|
|
|
|
export const productExportMutation = gql`
|
|
${exportFileFragment}
|
|
${exportErrorFragment}
|
|
mutation ProductExport($input: ExportProductsInput!) {
|
|
exportProducts(input: $input) {
|
|
exportFile {
|
|
...ExportFileFragment
|
|
}
|
|
errors: exportErrors {
|
|
...ExportErrorFragment
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductExport = makeMutation<
|
|
ProductExport,
|
|
ProductExportVariables
|
|
>(productExportMutation);
|
|
|
|
export const ProductChannelListingUpdateMutation = gql`
|
|
${productFragmentDetails}
|
|
${productChannelListingErrorFragment}
|
|
mutation ProductChannelListingUpdate(
|
|
$id: ID!
|
|
$input: ProductChannelListingUpdateInput!
|
|
) {
|
|
productChannelListingUpdate(id: $id, input: $input) {
|
|
product {
|
|
...Product
|
|
}
|
|
errors: productChannelListingErrors {
|
|
...ProductChannelListingErrorFragment
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
const productVariantReorder = gql`
|
|
${productErrorFragment}
|
|
${productFragmentDetails}
|
|
mutation ProductVariantReorder($move: ReorderInput!, $productId: ID!) {
|
|
productVariantReorder(moves: [$move], productId: $productId) {
|
|
errors: productErrors {
|
|
...ProductErrorFragment
|
|
}
|
|
product {
|
|
...Product
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const useProductVariantReorderMutation = makeMutation<
|
|
ProductVariantReorder,
|
|
ProductVariantReorderVariables
|
|
>(productVariantReorder);
|
|
export const useProductChannelListingUpdate = makeMutation<
|
|
ProductChannelListingUpdate,
|
|
ProductChannelListingUpdateVariables
|
|
>(ProductChannelListingUpdateMutation);
|
|
|
|
export const ProductVariantChannelListingUpdateMutation = gql`
|
|
${fragmentVariant}
|
|
${productChannelListingErrorFragment}
|
|
mutation ProductVariantChannelListingUpdate(
|
|
$id: ID!
|
|
$input: [ProductVariantChannelListingAddInput!]!
|
|
) {
|
|
productVariantChannelListingUpdate(id: $id, input: $input) {
|
|
variant {
|
|
...ProductVariant
|
|
}
|
|
errors: productChannelListingErrors {
|
|
...ProductChannelListingErrorFragment
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const useProductVariantChannelListingUpdate = makeMutation<
|
|
ProductVariantChannelListingUpdate,
|
|
ProductVariantChannelListingUpdateVariables
|
|
>(ProductVariantChannelListingUpdateMutation);
|