194 lines
4.3 KiB
JavaScript
194 lines
4.3 KiB
JavaScript
class Product {
|
|
getFirstProducts(first, search) {
|
|
let filter = "";
|
|
if (search) {
|
|
filter = `, filter:{
|
|
search:"${search}"
|
|
}`;
|
|
}
|
|
const query = `query{
|
|
products(first:${first}${filter}){
|
|
edges{
|
|
node{
|
|
id
|
|
name
|
|
variants{
|
|
id
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
return cy.sendRequestWithQuery(query);
|
|
}
|
|
|
|
updateChannelInProduct(
|
|
productId,
|
|
channelId,
|
|
isPublished,
|
|
isAvailableForPurchase,
|
|
visibleInListings
|
|
) {
|
|
const mutation = `mutation{
|
|
productChannelListingUpdate(id:"${productId}",
|
|
input:{
|
|
addChannels:{
|
|
channelId:"${channelId}"
|
|
isPublished:${isPublished}
|
|
isAvailableForPurchase:${isAvailableForPurchase}
|
|
visibleInListings:${visibleInListings}
|
|
}
|
|
}){
|
|
product{
|
|
id
|
|
name
|
|
}
|
|
}
|
|
}`;
|
|
return cy.sendRequestWithQuery(mutation);
|
|
}
|
|
|
|
updateChannelPriceInVariant(variantId, channelId) {
|
|
const mutation = `mutation{
|
|
productVariantChannelListingUpdate(id: "${variantId}", input:{
|
|
channelId: "${channelId}"
|
|
price: 10
|
|
costPrice: 10
|
|
}){
|
|
productChannelListingErrors{
|
|
message
|
|
}
|
|
}
|
|
}`;
|
|
return cy.sendRequestWithQuery(mutation);
|
|
}
|
|
createProduct(attributeId, name, productType, category) {
|
|
const mutation = `mutation{
|
|
productCreate(input:{
|
|
attributes:[{
|
|
id:"${attributeId}"
|
|
}]
|
|
name:"${name}"
|
|
productType:"${productType}"
|
|
category:"${category}"
|
|
}){
|
|
product{
|
|
id
|
|
}
|
|
productErrors{
|
|
field
|
|
message
|
|
}
|
|
}
|
|
}`;
|
|
return cy.sendRequestWithQuery(mutation);
|
|
}
|
|
|
|
createVariant(
|
|
productId,
|
|
sku,
|
|
warehouseId,
|
|
quantity,
|
|
channelId,
|
|
price = 1,
|
|
costPrice = 1
|
|
) {
|
|
let channelListings = "";
|
|
let stocks = "";
|
|
if (channelId) {
|
|
channelListings = `channelListings:{
|
|
channelId:"${channelId}"
|
|
price:"${price}"
|
|
costPrice:"${costPrice}"
|
|
}`;
|
|
}
|
|
if (warehouseId) {
|
|
stocks = `stocks:{
|
|
warehouse:"${warehouseId}"
|
|
quantity:${quantity}
|
|
}`;
|
|
}
|
|
const mutation = `mutation{
|
|
productVariantBulkCreate(product:"${productId}", variants:{
|
|
attributes:[]
|
|
sku:"${sku}"
|
|
${channelListings}
|
|
${stocks}
|
|
}){
|
|
productVariants{
|
|
id
|
|
name
|
|
}
|
|
bulkProductErrors{
|
|
field
|
|
message
|
|
}
|
|
}
|
|
}`;
|
|
return cy.sendRequestWithQuery(mutation);
|
|
}
|
|
|
|
createTypeProduct(name, attributeId, slug = name) {
|
|
const mutation = `mutation{
|
|
productTypeCreate(input:{
|
|
name:"${name}"
|
|
slug: "${slug}"
|
|
isShippingRequired:true
|
|
productAttributes:"${attributeId}"
|
|
variantAttributes: "${attributeId}"
|
|
}){
|
|
productErrors{
|
|
field
|
|
message
|
|
}
|
|
productType{
|
|
id
|
|
}
|
|
}
|
|
}`;
|
|
return cy.sendRequestWithQuery(mutation);
|
|
}
|
|
|
|
deleteProduct(productId) {
|
|
const mutation = `mutation{
|
|
productDelete(id:"${productId}"){
|
|
productErrors{
|
|
field
|
|
message
|
|
}
|
|
}
|
|
}`;
|
|
return cy.sendRequestWithQuery(mutation);
|
|
}
|
|
|
|
getProductTypes(first, search) {
|
|
const query = `query{
|
|
productTypes(first:${first}, filter:{
|
|
search:"${search}"
|
|
}){
|
|
edges{
|
|
node{
|
|
id
|
|
name
|
|
}
|
|
}
|
|
}
|
|
}`;
|
|
return cy.sendRequestWithQuery(query);
|
|
}
|
|
|
|
deleteProductType(productTypeId) {
|
|
const mutation = `mutation{
|
|
productTypeDelete(id:"${productTypeId}"){
|
|
productErrors{
|
|
field
|
|
message
|
|
}
|
|
}
|
|
}`;
|
|
return cy.sendRequestWithQuery(mutation);
|
|
}
|
|
}
|
|
|
|
export default Product;
|