2021-09-27 10:04:21 +00:00
|
|
|
import { stringify } from "../.././formatData/formatJson";
|
2021-11-26 10:42:59 +00:00
|
|
|
import { returnValueDependsOnShopVersion } from "../../formatData/dataDependingOnVersion";
|
|
|
|
import { getValueWithDefault, getVariantsListIds } from "./utils/Utils";
|
2021-02-23 12:09:58 +00:00
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
export function getFirstProducts(first, search) {
|
|
|
|
const filter = search
|
|
|
|
? `, filter:{
|
2021-02-16 14:19:46 +00:00
|
|
|
search:"${search}"
|
|
|
|
}`
|
2021-03-12 12:14:18 +00:00
|
|
|
: "";
|
|
|
|
const query = `query{
|
2021-03-12 14:57:02 +00:00
|
|
|
products(first:${first}${filter}){
|
|
|
|
edges{
|
|
|
|
node{
|
|
|
|
id
|
|
|
|
name
|
|
|
|
variants{
|
|
|
|
id
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-09-27 10:04:21 +00:00
|
|
|
}
|
|
|
|
}`;
|
2021-03-12 12:14:18 +00:00
|
|
|
return cy
|
|
|
|
.sendRequestWithQuery(query)
|
|
|
|
.then(resp => resp.body.data.products.edges);
|
|
|
|
}
|
2021-10-14 10:47:41 +00:00
|
|
|
|
2021-04-12 15:22:12 +00:00
|
|
|
export function updateProduct(productId, input) {
|
|
|
|
const mutation = `mutation {
|
|
|
|
productUpdate(id:"${productId}", input:${stringify(input)} ){
|
|
|
|
productErrors{
|
|
|
|
field
|
|
|
|
message
|
|
|
|
}
|
|
|
|
product{
|
|
|
|
id
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
`;
|
2021-04-28 13:10:47 +00:00
|
|
|
return cy
|
|
|
|
.sendRequestWithQuery(mutation)
|
|
|
|
.its("body.data.productUpdate.product");
|
2021-04-12 15:22:12 +00:00
|
|
|
}
|
2021-02-04 11:15:27 +00:00
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
export function updateChannelInProduct({
|
|
|
|
productId,
|
|
|
|
channelId,
|
Add channel shipping zones (#1015)
* Add naked input option to SingleAutocompleteSelectField and update it's stories
* Add new icons - chevron up, down & trash
* Add deletable item component and stories
* Add card add items footer component to be used in warehouses and product stocks assign
* Update schema and types
* Add shipping zones card components
* Update channel details page form to also include shipping zones
* Update makeTopLevelSearch hook files directory and add getSearchFetchMoreProps function to avoid extracting it manually every time
* Update channels types & fragments
* Move getDefaultNotifierSuccessErrorData function to useNotifier utils, update dir etc., also make order discount provider use it from the new dir
* Add shippinh zone to channel update and create and add shipping zone search
* Update messages
* Fix types
* Fix lint, types etc
* Small refactor from review and quick fix styles of shipping zones card
* Refactor a bit and update snapshots
* Refactor a bit and update snapshots
* Addd / refactor channels availability components
* Add useChannelsWithProductVariants hook with utils and types
* Add / refactor more channels availability components
* Move avatar from table cell avatar to separate component for it to be usable outside of tables
* Add channels with variants logic to product create and update pages & views
* Refactor components to use updated channels availability components
* Remove unnecessary comments
* Update storybook
* Update types
* Update messages
* Fix prices for variants / simple product not uodating properly
* Post merge cleanup, update schema, types, etc.
* Change shipping zone details warehouses card into settings card and add ability to assign channels to shipping zone
* Update types
* Update snapshots
* Fix selecting / deselecting all channels in channels with variants modal
* Fixes after review, some types changes etc.
* Update snapshots
* Small types fixes
* Make price rates views use parent shipping method channels instead of all
* Make price rates views use parent shipping method channels instead of all
* Update types
* Fix bugs
* Fixes after review
* Fix channels availability data submission
* Fix lint
* Fix variant pricing card showing not related channels
* Fixes after review
* Fix types
* Hide unaviable variants in add products to draft order dialog
* Fix channels with variants availability modal showing confirm button as enabled when it shouldn't
* Fix types
* Update semi checked icon to match old designs
* Update types
* Update channels icon in channels with variants availability
* Fix product cypress test after product channels mutation changed
* Fix trash and chevron down colors in dark mode
* Fix shipping zones card footer not updating query after click away
* Fix types in schema, add condition not to display shipping zones select in channel details if all zones have already been selected
* Fix products adding in order draft dialog
* Fix simple productupdate
* Update snapshots after merge with master
* Update messages
* Fix product api request for cypress
* Add missing test id
* Fix selecting if product is simple -> form being submitted with empty data sometimes
* Update snapshots, messages and add fix for invalid date at product update
* Remove unnecessary imports
* Fix failing test in saleor 2552 (#1061)
* fix
* fix
* fix
Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
Co-authored-by: Karolina <rakoczy.karolina@gmail.com>
2021-04-14 13:44:25 +00:00
|
|
|
variantsIdsToAdd = "[]",
|
|
|
|
variantsIdsToRemove = "[]",
|
2021-03-12 12:14:18 +00:00
|
|
|
isPublished = true,
|
|
|
|
isAvailableForPurchase = true,
|
|
|
|
visibleInListings = true
|
|
|
|
}) {
|
|
|
|
const mutation = `mutation{
|
2021-03-12 14:57:02 +00:00
|
|
|
productChannelListingUpdate(id:"${productId}",
|
|
|
|
input:{
|
Add channel shipping zones (#1015)
* Add naked input option to SingleAutocompleteSelectField and update it's stories
* Add new icons - chevron up, down & trash
* Add deletable item component and stories
* Add card add items footer component to be used in warehouses and product stocks assign
* Update schema and types
* Add shipping zones card components
* Update channel details page form to also include shipping zones
* Update makeTopLevelSearch hook files directory and add getSearchFetchMoreProps function to avoid extracting it manually every time
* Update channels types & fragments
* Move getDefaultNotifierSuccessErrorData function to useNotifier utils, update dir etc., also make order discount provider use it from the new dir
* Add shippinh zone to channel update and create and add shipping zone search
* Update messages
* Fix types
* Fix lint, types etc
* Small refactor from review and quick fix styles of shipping zones card
* Refactor a bit and update snapshots
* Refactor a bit and update snapshots
* Addd / refactor channels availability components
* Add useChannelsWithProductVariants hook with utils and types
* Add / refactor more channels availability components
* Move avatar from table cell avatar to separate component for it to be usable outside of tables
* Add channels with variants logic to product create and update pages & views
* Refactor components to use updated channels availability components
* Remove unnecessary comments
* Update storybook
* Update types
* Update messages
* Fix prices for variants / simple product not uodating properly
* Post merge cleanup, update schema, types, etc.
* Change shipping zone details warehouses card into settings card and add ability to assign channels to shipping zone
* Update types
* Update snapshots
* Fix selecting / deselecting all channels in channels with variants modal
* Fixes after review, some types changes etc.
* Update snapshots
* Small types fixes
* Make price rates views use parent shipping method channels instead of all
* Make price rates views use parent shipping method channels instead of all
* Update types
* Fix bugs
* Fixes after review
* Fix channels availability data submission
* Fix lint
* Fix variant pricing card showing not related channels
* Fixes after review
* Fix types
* Hide unaviable variants in add products to draft order dialog
* Fix channels with variants availability modal showing confirm button as enabled when it shouldn't
* Fix types
* Update semi checked icon to match old designs
* Update types
* Update channels icon in channels with variants availability
* Fix product cypress test after product channels mutation changed
* Fix trash and chevron down colors in dark mode
* Fix shipping zones card footer not updating query after click away
* Fix types in schema, add condition not to display shipping zones select in channel details if all zones have already been selected
* Fix products adding in order draft dialog
* Fix simple productupdate
* Update snapshots after merge with master
* Update messages
* Fix product api request for cypress
* Add missing test id
* Fix selecting if product is simple -> form being submitted with empty data sometimes
* Update snapshots, messages and add fix for invalid date at product update
* Remove unnecessary imports
* Fix failing test in saleor 2552 (#1061)
* fix
* fix
* fix
Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
Co-authored-by: Karolina <rakoczy.karolina@gmail.com>
2021-04-14 13:44:25 +00:00
|
|
|
updateChannels:{
|
2021-03-12 14:57:02 +00:00
|
|
|
channelId:"${channelId}"
|
|
|
|
isPublished:${isPublished}
|
|
|
|
isAvailableForPurchase:${isAvailableForPurchase}
|
|
|
|
visibleInListings:${visibleInListings}
|
Add channel shipping zones (#1015)
* Add naked input option to SingleAutocompleteSelectField and update it's stories
* Add new icons - chevron up, down & trash
* Add deletable item component and stories
* Add card add items footer component to be used in warehouses and product stocks assign
* Update schema and types
* Add shipping zones card components
* Update channel details page form to also include shipping zones
* Update makeTopLevelSearch hook files directory and add getSearchFetchMoreProps function to avoid extracting it manually every time
* Update channels types & fragments
* Move getDefaultNotifierSuccessErrorData function to useNotifier utils, update dir etc., also make order discount provider use it from the new dir
* Add shippinh zone to channel update and create and add shipping zone search
* Update messages
* Fix types
* Fix lint, types etc
* Small refactor from review and quick fix styles of shipping zones card
* Refactor a bit and update snapshots
* Refactor a bit and update snapshots
* Addd / refactor channels availability components
* Add useChannelsWithProductVariants hook with utils and types
* Add / refactor more channels availability components
* Move avatar from table cell avatar to separate component for it to be usable outside of tables
* Add channels with variants logic to product create and update pages & views
* Refactor components to use updated channels availability components
* Remove unnecessary comments
* Update storybook
* Update types
* Update messages
* Fix prices for variants / simple product not uodating properly
* Post merge cleanup, update schema, types, etc.
* Change shipping zone details warehouses card into settings card and add ability to assign channels to shipping zone
* Update types
* Update snapshots
* Fix selecting / deselecting all channels in channels with variants modal
* Fixes after review, some types changes etc.
* Update snapshots
* Small types fixes
* Make price rates views use parent shipping method channels instead of all
* Make price rates views use parent shipping method channels instead of all
* Update types
* Fix bugs
* Fixes after review
* Fix channels availability data submission
* Fix lint
* Fix variant pricing card showing not related channels
* Fixes after review
* Fix types
* Hide unaviable variants in add products to draft order dialog
* Fix channels with variants availability modal showing confirm button as enabled when it shouldn't
* Fix types
* Update semi checked icon to match old designs
* Update types
* Update channels icon in channels with variants availability
* Fix product cypress test after product channels mutation changed
* Fix trash and chevron down colors in dark mode
* Fix shipping zones card footer not updating query after click away
* Fix types in schema, add condition not to display shipping zones select in channel details if all zones have already been selected
* Fix products adding in order draft dialog
* Fix simple productupdate
* Update snapshots after merge with master
* Update messages
* Fix product api request for cypress
* Add missing test id
* Fix selecting if product is simple -> form being submitted with empty data sometimes
* Update snapshots, messages and add fix for invalid date at product update
* Remove unnecessary imports
* Fix failing test in saleor 2552 (#1061)
* fix
* fix
* fix
Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
Co-authored-by: Karolina <rakoczy.karolina@gmail.com>
2021-04-14 13:44:25 +00:00
|
|
|
addVariants:${variantsIdsToAdd}
|
|
|
|
removeVariants:${variantsIdsToRemove}
|
2021-03-12 14:57:02 +00:00
|
|
|
}
|
|
|
|
}){
|
|
|
|
product{
|
|
|
|
id
|
|
|
|
name
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}`;
|
2021-03-12 12:14:18 +00:00
|
|
|
return cy.sendRequestWithQuery(mutation);
|
|
|
|
}
|
2021-02-04 11:15:27 +00:00
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
export function updateChannelPriceInVariant(variantId, channelId) {
|
|
|
|
const mutation = `mutation{
|
2021-03-12 14:57:02 +00:00
|
|
|
productVariantChannelListingUpdate(id: "${variantId}", input: {
|
|
|
|
channelId: "${channelId}"
|
|
|
|
price: 10
|
|
|
|
costPrice: 10
|
|
|
|
}){
|
|
|
|
productChannelListingErrors{
|
|
|
|
message
|
|
|
|
}
|
2021-02-18 15:28:29 +00:00
|
|
|
}
|
2021-03-12 14:57:02 +00:00
|
|
|
} `;
|
2021-03-12 12:14:18 +00:00
|
|
|
return cy.sendRequestWithQuery(mutation);
|
|
|
|
}
|
2021-04-28 13:10:47 +00:00
|
|
|
export function createProduct({
|
2021-04-21 08:02:48 +00:00
|
|
|
attributeId,
|
2021-08-18 11:58:07 +00:00
|
|
|
attributeValue,
|
2021-04-21 08:02:48 +00:00
|
|
|
name,
|
2021-04-28 13:10:47 +00:00
|
|
|
productTypeId,
|
|
|
|
categoryId,
|
2021-04-21 08:02:48 +00:00
|
|
|
collectionId,
|
|
|
|
description
|
2021-04-28 13:10:47 +00:00
|
|
|
}) {
|
2021-04-21 08:02:48 +00:00
|
|
|
const collection = getValueWithDefault(
|
|
|
|
collectionId,
|
|
|
|
`collections:["${collectionId}"]`
|
|
|
|
);
|
2021-07-15 11:17:56 +00:00
|
|
|
const category = getValueWithDefault(categoryId, `category:"${categoryId}"`);
|
2021-04-21 08:02:48 +00:00
|
|
|
const descriptionLine = getValueWithDefault(
|
|
|
|
description,
|
|
|
|
`description:"{\\"blocks\\":[{\\"type\\":\\"paragraph\\",\\"data\\":{\\"text\\":\\"${description}\\"}}]}"`
|
|
|
|
);
|
2021-08-18 11:58:07 +00:00
|
|
|
const attributeValuesLine = getValueWithDefault(
|
|
|
|
attributeValue,
|
|
|
|
`values:["${attributeValue}"]`
|
|
|
|
);
|
2021-12-16 15:16:12 +00:00
|
|
|
const attributesLines = getValueWithDefault(
|
|
|
|
attributeId,
|
|
|
|
`attributes:[{
|
|
|
|
id:"${attributeId}"
|
|
|
|
${attributeValuesLine}
|
|
|
|
}]`
|
|
|
|
);
|
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
const mutation = `mutation{
|
2021-03-12 14:57:02 +00:00
|
|
|
productCreate(input:{
|
2021-12-16 15:16:12 +00:00
|
|
|
${attributesLines}
|
2021-03-12 14:57:02 +00:00
|
|
|
name:"${name}"
|
2021-04-21 08:02:48 +00:00
|
|
|
slug:"${name}"
|
|
|
|
seo:{title:"${name}" description:""}
|
2021-04-28 13:10:47 +00:00
|
|
|
productType:"${productTypeId}"
|
2021-07-15 11:17:56 +00:00
|
|
|
${category}
|
2021-04-21 08:02:48 +00:00
|
|
|
${collection}
|
|
|
|
${descriptionLine}
|
2021-03-12 14:57:02 +00:00
|
|
|
}){
|
|
|
|
product{
|
|
|
|
id
|
|
|
|
name
|
2021-02-02 11:34:10 +00:00
|
|
|
}
|
2021-03-12 14:57:02 +00:00
|
|
|
productErrors{
|
|
|
|
field
|
|
|
|
message
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}`;
|
2021-04-28 13:10:47 +00:00
|
|
|
return cy
|
|
|
|
.sendRequestWithQuery(mutation)
|
|
|
|
.its("body.data.productCreate.product");
|
2021-03-12 12:14:18 +00:00
|
|
|
}
|
2021-02-04 11:15:27 +00:00
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
export function createVariant({
|
|
|
|
productId,
|
|
|
|
sku,
|
|
|
|
warehouseId,
|
2021-04-28 13:10:47 +00:00
|
|
|
quantityInWarehouse,
|
2021-03-12 12:14:18 +00:00
|
|
|
channelId,
|
2021-04-16 11:36:24 +00:00
|
|
|
attributeId,
|
2021-03-12 12:14:18 +00:00
|
|
|
price = 1,
|
2021-06-07 11:35:26 +00:00
|
|
|
costPrice = 1,
|
2021-07-12 08:50:50 +00:00
|
|
|
trackInventory = true,
|
2021-10-28 14:43:26 +00:00
|
|
|
weight = 1,
|
2021-11-22 11:59:50 +00:00
|
|
|
attributeName = "value",
|
2021-12-05 15:03:04 +00:00
|
|
|
preorder
|
2021-03-12 12:14:18 +00:00
|
|
|
}) {
|
2021-12-05 15:03:04 +00:00
|
|
|
const preorderLines = getValueWithDefault(
|
|
|
|
preorder,
|
|
|
|
`preorder:${stringify(preorder)}`
|
|
|
|
);
|
2021-11-22 11:59:50 +00:00
|
|
|
const skuLines = getValueWithDefault(sku, `sku: "${sku}"`);
|
|
|
|
|
|
|
|
const attributeLines = getValueWithDefault(
|
|
|
|
attributeId,
|
|
|
|
`attributes: [{
|
|
|
|
id:"${attributeId}"
|
|
|
|
values: ["${attributeName}"]
|
|
|
|
}]`,
|
|
|
|
"attributes:[]"
|
|
|
|
);
|
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
const channelListings = getValueWithDefault(
|
2021-02-04 11:15:27 +00:00
|
|
|
channelId,
|
2021-03-12 12:14:18 +00:00
|
|
|
`channelListings:{
|
2021-02-18 19:32:35 +00:00
|
|
|
channelId:"${channelId}"
|
|
|
|
price:"${price}"
|
|
|
|
costPrice:"${costPrice}"
|
|
|
|
}`
|
2021-03-12 12:14:18 +00:00
|
|
|
);
|
2021-02-23 12:09:58 +00:00
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
const stocks = getValueWithDefault(
|
|
|
|
warehouseId,
|
|
|
|
`stocks:{
|
2021-02-18 19:32:35 +00:00
|
|
|
warehouse:"${warehouseId}"
|
2021-04-28 13:10:47 +00:00
|
|
|
quantity:${quantityInWarehouse}
|
2021-02-18 19:32:35 +00:00
|
|
|
}`
|
2021-03-12 12:14:18 +00:00
|
|
|
);
|
2021-02-18 19:32:35 +00:00
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
const mutation = `mutation{
|
2021-03-12 14:57:02 +00:00
|
|
|
productVariantBulkCreate(product: "${productId}", variants: {
|
2021-12-05 15:03:04 +00:00
|
|
|
${preorderLines}
|
2021-11-22 11:59:50 +00:00
|
|
|
${attributeLines}
|
2021-07-12 08:50:50 +00:00
|
|
|
weight: ${weight}
|
2021-11-22 11:59:50 +00:00
|
|
|
${skuLines}
|
2021-03-12 14:57:02 +00:00
|
|
|
${channelListings}
|
2021-06-07 11:35:26 +00:00
|
|
|
trackInventory:${trackInventory}
|
2021-03-12 14:57:02 +00:00
|
|
|
${stocks}
|
|
|
|
}) {
|
|
|
|
productVariants{
|
|
|
|
id
|
|
|
|
name
|
|
|
|
}
|
2021-12-17 11:07:51 +00:00
|
|
|
errors{
|
2021-03-12 14:57:02 +00:00
|
|
|
field
|
|
|
|
message
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}`;
|
2021-04-28 13:10:47 +00:00
|
|
|
return cy
|
|
|
|
.sendRequestWithQuery(mutation)
|
|
|
|
.its("body.data.productVariantBulkCreate.productVariants");
|
2021-03-12 12:14:18 +00:00
|
|
|
}
|
2021-02-04 11:15:27 +00:00
|
|
|
|
2021-03-12 12:14:18 +00:00
|
|
|
export function deleteProduct(productId) {
|
|
|
|
const mutation = `mutation{
|
2021-03-12 14:57:02 +00:00
|
|
|
productDelete(id: "${productId}"){
|
|
|
|
productErrors{
|
|
|
|
field
|
|
|
|
message
|
|
|
|
}
|
2021-02-18 15:28:29 +00:00
|
|
|
}
|
2021-03-12 14:57:02 +00:00
|
|
|
} `;
|
2021-03-12 12:14:18 +00:00
|
|
|
return cy.sendRequestWithQuery(mutation);
|
|
|
|
}
|
2021-07-12 08:50:50 +00:00
|
|
|
|
|
|
|
export function getVariants(variantsList) {
|
|
|
|
const variantsIds = getVariantsListIds(variantsList);
|
|
|
|
const query = `query{
|
|
|
|
productVariants(first:100 ids:[${variantsIds}]){
|
|
|
|
edges{
|
|
|
|
node{
|
|
|
|
stocks{
|
|
|
|
warehouse{
|
|
|
|
id
|
|
|
|
}
|
|
|
|
quantity
|
|
|
|
quantityAllocated
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}`;
|
|
|
|
return cy.sendRequestWithQuery(query).its("body.data.productVariants");
|
|
|
|
}
|
2021-10-21 10:47:18 +00:00
|
|
|
|
2021-12-05 15:03:04 +00:00
|
|
|
export function getVariant(id, channelSlug, auth = "auth") {
|
2021-11-26 10:42:59 +00:00
|
|
|
const preorder = returnValueDependsOnShopVersion(
|
|
|
|
"3.1",
|
|
|
|
`preorder{
|
|
|
|
globalThreshold
|
|
|
|
globalSoldUnits
|
|
|
|
endDate
|
|
|
|
}`
|
|
|
|
);
|
|
|
|
|
2021-10-21 10:47:18 +00:00
|
|
|
const query = `query{
|
2021-12-05 15:03:04 +00:00
|
|
|
productVariant(id:"${id}" channel:"${channelSlug}"){
|
2021-10-21 10:47:18 +00:00
|
|
|
id
|
|
|
|
name
|
2021-12-05 15:03:04 +00:00
|
|
|
stocks{
|
|
|
|
warehouse{
|
|
|
|
id
|
|
|
|
}
|
|
|
|
quantityAllocated
|
|
|
|
}
|
2021-11-26 10:42:59 +00:00
|
|
|
${preorder}
|
2021-11-22 11:59:50 +00:00
|
|
|
sku
|
2021-12-16 15:16:12 +00:00
|
|
|
attributes{
|
|
|
|
attribute{
|
|
|
|
inputType
|
|
|
|
}
|
|
|
|
values{
|
|
|
|
name
|
|
|
|
}
|
|
|
|
}
|
2021-10-21 10:47:18 +00:00
|
|
|
pricing{
|
|
|
|
onSale
|
|
|
|
discount{
|
|
|
|
gross{
|
|
|
|
amount
|
|
|
|
}
|
|
|
|
}
|
|
|
|
price{
|
|
|
|
gross{
|
|
|
|
amount
|
|
|
|
}
|
|
|
|
}
|
|
|
|
priceUndiscounted{
|
|
|
|
gross{
|
|
|
|
amount
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}`;
|
|
|
|
return cy.sendRequestWithQuery(query, auth).its("body.data.productVariant");
|
|
|
|
}
|
2021-11-26 10:42:59 +00:00
|
|
|
|
|
|
|
export function deactivatePreorderOnVariant(variantId) {
|
|
|
|
const mutation = `mutation{
|
|
|
|
productVariantPreorderDeactivate(id:"${variantId}"){
|
|
|
|
errors{
|
|
|
|
field
|
|
|
|
message
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}`;
|
|
|
|
return cy
|
|
|
|
.sendRequestWithQuery(mutation)
|
|
|
|
.its("body.data.productVariantPreorderDeactivate");
|
|
|
|
}
|
|
|
|
|
2021-12-16 15:16:12 +00:00
|
|
|
export function activatePreorderOnVariant({
|
|
|
|
variantId,
|
|
|
|
threshold = 50,
|
|
|
|
endDate
|
|
|
|
}) {
|
2021-11-26 10:42:59 +00:00
|
|
|
const thresholdLine = getValueWithDefault(
|
|
|
|
threshold,
|
|
|
|
`globalThreshold:${threshold}`
|
|
|
|
);
|
2021-12-16 15:16:12 +00:00
|
|
|
const endDateLine = getValueWithDefault(endDate, `endDate:${endDate}`);
|
2021-11-26 10:42:59 +00:00
|
|
|
const mutation = `mutation{
|
|
|
|
productVariantUpdate(id:"${variantId}", input:{
|
|
|
|
preorder:{
|
|
|
|
${thresholdLine}
|
|
|
|
${endDateLine}
|
2021-12-16 15:16:12 +00:00
|
|
|
}
|
|
|
|
}){
|
|
|
|
errors{
|
2021-12-15 12:17:35 +00:00
|
|
|
field
|
|
|
|
message
|
2021-11-26 10:42:59 +00:00
|
|
|
}
|
2021-12-15 12:17:35 +00:00
|
|
|
}
|
|
|
|
}`;
|
|
|
|
return cy.sendRequestWithQuery(mutation);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function updateVariantPrice({ variantId, channelId, price }) {
|
|
|
|
const mutation = `mutation {
|
|
|
|
productVariantChannelListingUpdate(id:"${variantId}", input:{
|
|
|
|
channelId:"${channelId}"
|
|
|
|
price:${price}
|
|
|
|
costPrice:${price}
|
2021-11-26 10:42:59 +00:00
|
|
|
}){
|
|
|
|
errors{
|
|
|
|
field
|
|
|
|
message
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}`;
|
|
|
|
return cy
|
|
|
|
.sendRequestWithQuery(mutation)
|
|
|
|
.its("body.data.productVariantUpdate");
|
|
|
|
}
|