From 6fac16a2697c178ec4436a9763a15ca91c8e1f06 Mon Sep 17 00:00:00 2001 From: Adrian Pilarczyk Date: Wed, 24 Jul 2024 12:42:03 +0200 Subject: [PATCH 1/3] chore: Improve helper text in Strapi config form --- .../providers/strapi/strapi-config-form.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/cms-v2/src/modules/providers/strapi/strapi-config-form.tsx b/apps/cms-v2/src/modules/providers/strapi/strapi-config-form.tsx index f8786db89e..fa37610f06 100644 --- a/apps/cms-v2/src/modules/providers/strapi/strapi-config-form.tsx +++ b/apps/cms-v2/src/modules/providers/strapi/strapi-config-form.tsx @@ -37,7 +37,7 @@ const PureForm = ({ defaultValues, onSubmit, onDelete }: PureFormProps) => { control={control} name="configName" label="Configuration name" - helperText="Meaningful name that will help you understand it later. E.g. 'staging' or 'prod' " + helperText={`Meaningful name that will help you understand it later, e.g. "staging" or "prod".`} /> @@ -47,14 +47,14 @@ const PureForm = ({ defaultValues, onSubmit, onDelete }: PureFormProps) => { control={control} name="authToken" label="Auth token" - helperText="Token with full permissions for the content type you want Saleor to store product." + helperText="Token with full permissions for the content type you want Saleor to store product in." /> @@ -65,15 +65,15 @@ const PureForm = ({ defaultValues, onSubmit, onDelete }: PureFormProps) => { name="itemType" control={control} placeholder="saleor-products" - helperText="Plural name of the content type you want Saleor to send product to. E.g. 'products' or 'product-variants'" + helperText={`Plural name of the content type you want Saleor to send product to, e.g. "products" or "product-variants".`} /> - Map fields from Saleor to your Strapi schema. + Map fields from Saleor to your Strapi schema - All fields should be type of Text. Channels should be - type of JSON. + All fields should be of type Text. Channels should be of + type JSON. { padding={2} > Saleor Field - Strapi field + Strapi Field {SaleorProviderFieldsMappingKeys.map((saleorField) => ( // todo extract this table to component From 9310fcfe835ed8bf12563c238a3c53ec85498e90 Mon Sep 17 00:00:00 2001 From: Adrian Pilarczyk Date: Wed, 24 Jul 2024 13:16:09 +0200 Subject: [PATCH 2/3] feat: Add SKU to WebhookProductVariant fragment --- apps/cms-v2/graphql/fragments/WebhookProductVariant.graphql | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/cms-v2/graphql/fragments/WebhookProductVariant.graphql b/apps/cms-v2/graphql/fragments/WebhookProductVariant.graphql index ef7a4fa5fb..4d6957fd6f 100644 --- a/apps/cms-v2/graphql/fragments/WebhookProductVariant.graphql +++ b/apps/cms-v2/graphql/fragments/WebhookProductVariant.graphql @@ -1,6 +1,7 @@ fragment WebhookProductVariant on ProductVariant { id name + sku product { id name From c0d61cc5fa106a77380a5098d4522069d944a4f9 Mon Sep 17 00:00:00 2001 From: Adrian Pilarczyk Date: Fri, 2 Aug 2024 11:13:06 +0200 Subject: [PATCH 3/3] feat: Add variant SKU field to SaleorProviderFieldsMapping --- .../src/modules/configuration/app-config.test.ts | 2 ++ .../configuration/print-saleor-product-fields.ts | 3 +++ .../schemas/saleor-provider-fields-mapping.schema.ts | 2 ++ .../providers/builder.io/builder-io-config-form.tsx | 1 + .../providers/contentful/contentful-client.test.ts | 2 ++ .../providers/contentful/contentful-config-form.tsx | 1 + .../contentful/contentful-webhooks-processor.test.ts | 10 ++++++---- .../modules/providers/datocms/datocms-config-form.tsx | 1 + .../cms-v2/src/modules/providers/fields-mapper.test.ts | 3 +++ apps/cms-v2/src/modules/providers/fields-mapper.ts | 4 +++- .../providers/payloadcms/payloadcms-config-form.tsx | 1 + .../modules/providers/strapi/strapi-config-form.tsx | 1 + .../webhooks-processors-delegator.test.ts | 3 +++ 13 files changed, 29 insertions(+), 5 deletions(-) diff --git a/apps/cms-v2/src/modules/configuration/app-config.test.ts b/apps/cms-v2/src/modules/configuration/app-config.test.ts index 4713e1763f..89231383a1 100644 --- a/apps/cms-v2/src/modules/configuration/app-config.test.ts +++ b/apps/cms-v2/src/modules/configuration/app-config.test.ts @@ -17,6 +17,7 @@ const getMockContentfulInput = (): ContentfulProviderConfig.InputShape => { productSlug: "productSlug", variantId: "variantId", variantName: "variantName", + variantSku: "variantSku", }, spaceId: "test", }; @@ -34,6 +35,7 @@ const getMockDatocmsInput = (): DatocmsProviderConfig.InputShape => { productSlug: "productSlug", variantId: "variantId", variantName: "variantName", + variantSku: "variantSku", }, }; }; diff --git a/apps/cms-v2/src/modules/configuration/print-saleor-product-fields.ts b/apps/cms-v2/src/modules/configuration/print-saleor-product-fields.ts index f3c7d68dd9..bf1fb10766 100644 --- a/apps/cms-v2/src/modules/configuration/print-saleor-product-fields.ts +++ b/apps/cms-v2/src/modules/configuration/print-saleor-product-fields.ts @@ -20,5 +20,8 @@ export const printSaleorProductFields = (fieldName: SaleorProviderFieldsMappingK case "variantId": { return "Variant ID"; } + case "variantSku": { + return "Variant SKU"; + } } }; diff --git a/apps/cms-v2/src/modules/configuration/schemas/saleor-provider-fields-mapping.schema.ts b/apps/cms-v2/src/modules/configuration/schemas/saleor-provider-fields-mapping.schema.ts index 73caa9172b..8d17632b8a 100644 --- a/apps/cms-v2/src/modules/configuration/schemas/saleor-provider-fields-mapping.schema.ts +++ b/apps/cms-v2/src/modules/configuration/schemas/saleor-provider-fields-mapping.schema.ts @@ -6,6 +6,7 @@ import { z } from "zod"; export const SaleorProviderFieldsMappingSchema = z.object({ variantId: z.string().min(1), variantName: z.string().min(1), + variantSku: z.string().min(1), productId: z.string().min(1), productName: z.string().min(1), productSlug: z.string().min(1), @@ -22,4 +23,5 @@ export const SaleorProviderFieldsMappingKeys: Array { productName: "", productSlug: "", variantId: "", + variantSku: "", }, }} /> diff --git a/apps/cms-v2/src/modules/providers/contentful/contentful-client.test.ts b/apps/cms-v2/src/modules/providers/contentful/contentful-client.test.ts index 97cae2ed89..aae967e818 100644 --- a/apps/cms-v2/src/modules/providers/contentful/contentful-client.test.ts +++ b/apps/cms-v2/src/modules/providers/contentful/contentful-client.test.ts @@ -18,6 +18,7 @@ const getMockContenfulConfiguration = (): ContentfulProviderConfig.FullShape => productSlug: "product-slug", variantId: "variant-id", variantName: "variant-name", + variantSku: "variant-sku", }, }); @@ -25,6 +26,7 @@ const getMockWebhookProductVariant = (): WebhookProductVariantFragment => { return { id: "test-id", name: "test-name", + sku: "test-sku", product: { id: "test-product-id", name: "test-product-name", diff --git a/apps/cms-v2/src/modules/providers/contentful/contentful-config-form.tsx b/apps/cms-v2/src/modules/providers/contentful/contentful-config-form.tsx index 4c60f62ba5..07e668cb97 100644 --- a/apps/cms-v2/src/modules/providers/contentful/contentful-config-form.tsx +++ b/apps/cms-v2/src/modules/providers/contentful/contentful-config-form.tsx @@ -339,6 +339,7 @@ const AddVariant = () => { productName: "", productSlug: "", variantId: "", + variantSku: "", }, spaceId: "", }} diff --git a/apps/cms-v2/src/modules/providers/contentful/contentful-webhooks-processor.test.ts b/apps/cms-v2/src/modules/providers/contentful/contentful-webhooks-processor.test.ts index 3c78ab9a9f..0b5ea6a655 100644 --- a/apps/cms-v2/src/modules/providers/contentful/contentful-webhooks-processor.test.ts +++ b/apps/cms-v2/src/modules/providers/contentful/contentful-webhooks-processor.test.ts @@ -21,6 +21,7 @@ const getMockContenfulConfiguration = (): ContentfulProviderConfig.FullShape => productSlug: "product-slug", variantId: "variant-id", variantName: "variant-name", + variantSku: "variant-sku", }, }); @@ -28,6 +29,7 @@ const getMockWebhookProductVariant = (): WebhookProductVariantFragment => { return { id: "test-id", name: "test-name", + sku: "test-sku", product: { id: "test-product-id", name: "test-product-name", @@ -61,7 +63,7 @@ describe("ContentfulWebhooksProcessor", () => { processor = new ContentfulWebhooksProcessor( getMockContenfulConfiguration(), - () => mockContentfulClient + () => mockContentfulClient, ); }); @@ -74,7 +76,7 @@ describe("ContentfulWebhooksProcessor", () => { expect.objectContaining({ configuration: getMockContenfulConfiguration(), variant: mockProductVariant, - }) + }), ); }); @@ -87,7 +89,7 @@ describe("ContentfulWebhooksProcessor", () => { expect.objectContaining({ configuration: getMockContenfulConfiguration(), variant: mockProductVariant, - }) + }), ); }); @@ -100,7 +102,7 @@ describe("ContentfulWebhooksProcessor", () => { expect.objectContaining({ configuration: getMockContenfulConfiguration(), variant: mockProductVariant, - }) + }), ); }); diff --git a/apps/cms-v2/src/modules/providers/datocms/datocms-config-form.tsx b/apps/cms-v2/src/modules/providers/datocms/datocms-config-form.tsx index 3cdad65bba..15aa9f1991 100644 --- a/apps/cms-v2/src/modules/providers/datocms/datocms-config-form.tsx +++ b/apps/cms-v2/src/modules/providers/datocms/datocms-config-form.tsx @@ -255,6 +255,7 @@ const AddFormVariant = () => { productName: "", productSlug: "", variantId: "", + variantSku: "", }, }} /> diff --git a/apps/cms-v2/src/modules/providers/fields-mapper.test.ts b/apps/cms-v2/src/modules/providers/fields-mapper.test.ts index 72a8933c19..d797ccbb15 100644 --- a/apps/cms-v2/src/modules/providers/fields-mapper.test.ts +++ b/apps/cms-v2/src/modules/providers/fields-mapper.test.ts @@ -11,10 +11,12 @@ describe("FieldsMapper", () => { productSlug: "product-slug", variantId: "variant-id", variantName: "variant-name", + variantSku: "variant-sku", }, variant: { id: "aaa-bbb-ccc", name: "43", + sku: "sku", channelListings: [ { channel: { @@ -37,6 +39,7 @@ describe("FieldsMapper", () => { "product-name": "Shoes", "product-slug": "shoes", "variant-id": "aaa-bbb-ccc", + "variant-sku": "sku", channels: [ { channel: { diff --git a/apps/cms-v2/src/modules/providers/fields-mapper.ts b/apps/cms-v2/src/modules/providers/fields-mapper.ts index 1cdc701f9b..a7847d77c5 100644 --- a/apps/cms-v2/src/modules/providers/fields-mapper.ts +++ b/apps/cms-v2/src/modules/providers/fields-mapper.ts @@ -9,7 +9,8 @@ export class FieldsMapper { variant: WebhookProductVariantFragment; configMapping: ProvidersConfig.AnyFullShape["productVariantFieldsMapping"]; }) { - const { channels, variantName, productId, productName, productSlug, variantId } = configMapping; + const { channels, variantName, productId, productName, productSlug, variantId, variantSku } = + configMapping; return { [variantName]: variant.name, @@ -18,6 +19,7 @@ export class FieldsMapper { [productSlug]: variant.product.slug, [variantId]: variant.id, [channels]: variant.channelListings, + [variantSku]: variant.sku, }; } } diff --git a/apps/cms-v2/src/modules/providers/payloadcms/payloadcms-config-form.tsx b/apps/cms-v2/src/modules/providers/payloadcms/payloadcms-config-form.tsx index ebb69c68cf..e29571013a 100644 --- a/apps/cms-v2/src/modules/providers/payloadcms/payloadcms-config-form.tsx +++ b/apps/cms-v2/src/modules/providers/payloadcms/payloadcms-config-form.tsx @@ -197,6 +197,7 @@ const AddFormVariant = () => { productName: "", productSlug: "", variantId: "", + variantSku: "", }, }} /> diff --git a/apps/cms-v2/src/modules/providers/strapi/strapi-config-form.tsx b/apps/cms-v2/src/modules/providers/strapi/strapi-config-form.tsx index fa37610f06..b059e52ff7 100644 --- a/apps/cms-v2/src/modules/providers/strapi/strapi-config-form.tsx +++ b/apps/cms-v2/src/modules/providers/strapi/strapi-config-form.tsx @@ -155,6 +155,7 @@ const AddFormVariant = () => { productName: "", productSlug: "", variantId: "", + variantSku: "", }, }} /> diff --git a/apps/cms-v2/src/modules/webhooks-operations/webhooks-processors-delegator.test.ts b/apps/cms-v2/src/modules/webhooks-operations/webhooks-processors-delegator.test.ts index 4a068906b0..9eb1622cf2 100644 --- a/apps/cms-v2/src/modules/webhooks-operations/webhooks-processors-delegator.test.ts +++ b/apps/cms-v2/src/modules/webhooks-operations/webhooks-processors-delegator.test.ts @@ -18,6 +18,7 @@ const getMockContentfulInput = (): ContentfulProviderConfig.InputShape => { productSlug: "productSlug", variantId: "variantId", variantName: "variantName", + variantSku: "variantSku", }, spaceId: "test", }; @@ -36,6 +37,7 @@ const getMockDatocmsInput = (): DatocmsProviderConfig.InputShape => { productSlug: "productSlug", variantId: "variantId", variantName: "variantName", + variantSku: "variantSku", }, }; }; @@ -81,6 +83,7 @@ const getMockProductVariantWebhookFragment = (): WebhookProductVariantFragment = return { id: "variant-id", name: "variant-name", + sku: "variant-sku", product: { id: "product-id", name: "product-name",