contentful / apps Goto Github PK
View Code? Open in Web Editor NEWApps on the Contentful Marketplace and resources to build them
Home Page: https://contentful.com/marketplace
Apps on the Contentful Marketplace and resources to build them
Home Page: https://contentful.com/marketplace
Hi Team,
We got an inquiry if it is possible to increase the limit for MAX_FILES_UPPER_LIMIT. Currently it is set to 25.
Best Regards,
John
Hello,
Thank you for this app, it is very useful.
For future development, I need to configure more than 10 sites (~15 sites).
would It be possible to change (Increased or uncapped) restriction to configure more than 10 sites?
I see this restriction is defined in variable "export const MAX_CONFIGS = 10;" in apps/apps/netlify/frontend/src/constants.js.
Best regards
I don't know how to run or test an app like this on my end, or if it's even possible, so I can't confirm that this actually will fix it:
I believe this line needs to be image_metadata
instead of metadata
Describe the bug
Using the latest package.json on the example "Page-location" App
To Reproduce
npm install
page-location appnpm start
Expected behavior
App development server starts
Desktop (please complete the following information):
Mac OS - Catalina
Additional context
Add any other context about the problem here.
Feature request for the Netlify app.
It would be very useful to be able to allowed permission based access to the app in the sidebar. So that the ability to trigger any deployment is driven by role.
Case:
Anyone without permission to trigger a built could see the active deploying statuses in a Read Only form. And those with permission get the fully functional app.
There is a hard limit of 25 colors built into the color picker app. This is less than my company's color palette. Could this limit be removed? It should be a matter of just removing this line:
When building the Cloudinary URL in makeThumbnail
only the public_id and thumbnail transformation string are passed into the url
and video_thumbnail_url
functions.
In Cloudinary an asset is unique/identified by not only the public_id but only when in combination with the 'resource_type' and 'type'. Therefore the below assets with the same public_id (sample) are actually different entities:
image/upload/sample
image/private/sample
video/upload/sample
As the 'type' parameter isn't supplied Cloudinary defaults it to 'upload'. This works for most cases but when one of the selected assets is not of type 'upload' then the URL will be built incorrectly and therefore the requested thumbnail would not be returned.
We have a client who has images uploaded as private and therefore currently the thumbnails don't display.
I've made a small change to the code locally but have no permission to push it to a branch and therefore create a pull request.
What's the procedure for submitting PRs?
Is there some possibility to append and not to rewrite previous selection of items (products for example), when you are building custom web app using @contentful/ecommerce-app-base and renderSkuPicker function ?
I don't know if this is the place to ask, but I can't seem to figure out how to query the Shopify Storefront API using the Contentful App. The instructions here: https://www.contentful.com/help/shopify-app/ seem to show an incomplete example?
Where am I supposed to use a query like this? I've tried to use it on allShopifyProduct, allShopifyProductVariant, shopifyProduct, shopifyProductVariant and it always gives me an error
"message": "Unknown type \"ids\". Did you mean \"ID\"?"
"message": "Unknown argument \"ids\" on field \"nodes\" of type \"ShopifyProductVariantConnection\".",
This is one of the queries
query MyQuery($productVariantIDs: ids) {
allShopifyProductVariant {
nodes (ids: $productVariantIDs) {
id,
...on ShopifyProductVariant {
sku,
image {
src: originalSrc
},
title,
product {
id,
title
}
}
}
}
}
I set the variable as
{
"productVariantIDs": "2d874bad-d142-5285-9c7c-55d95b746625"
}
I guess I'm looking for a little more guidance than the documentation provides.
Dependabot couldn't find a Dockerfile for this project.
Dependabot requires a Dockerfile to evaluate your project's current Docker dependencies. It had expected to find one at the path: /.circleci/Dockerfile
.
If this isn't a Docker project, or if it is a library, you may wish to disable updates for it in the .dependabot/config.yml
file in this repo.
Hi,
This is more a question/feature request than an issue, but:
I've spent some time going through the Contentful App framework documentation and the SDK reference but I can't find anything around configuring an Icon/logo for the app.
Any pointers?
Thanks in advance
I'm pretty sure this is more of a limitation and not an issue, but once I've selected an image and added it in Contentful, if I go into Cloudinary and want to update Meta Data this information is not pushed back to Contentful in any way.
I'm assuming in a situation like this I have to build/setup my own hook for when Cloudinary images change if I want it to reflect in Contentful, or simply repick the "new" image in Contentful for this new info to show up.
Just looking for confirmation on if this is the intended behavior.
Describe the bug
When listing categories in the contentful commercetools app it uses categorySearch. However categorySearch is not a supported api:
{{{"data":null,"errors":[{"message":"Cannot query field 'categorySearch' on type 'Query'. Did you mean 'category' or 'categories'? (line 2, column 3):\n categorySearch(fulltext:
{text: $searchTerm, locale: $locale}
) {\n ^","locations":[
{"line":2,"column":3}
]}]}}}
To Reproduce
Steps to reproduce the behavior:
Expected behavior
To use the proper apis for this.
{{{"data":null,"errors":[{"message":"Cannot query field 'categorySearch' on type 'Query'. Did you mean 'category' or 'categories'? (line 2, column 3):\n categorySearch(fulltext:
{text: $searchTerm, locale: $locale}
) {\n ^","locations":[
{"line":2,"column":3}
]}]}}}
I'm currently experiencing a good deal of confusion around IDs in Shopify's API.
The one that this plugin returns is a long string of around 48 characters. Example: Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzY1MzcxMjM1Mjg3NTY=
.
However, the only ID I can seem to get Shopify's APIs (any of them, the storefront and the admin) to return are either short numeric (e.g. 6586511065140
) or longer strings that are essentially gid versions with the same otherwise numeric (e.g. gid://shopify/Product/6586511065140
).
In the past, Shopify's admin API was returning the former (the long 48 char version) but something has changed which has broken my site (incredibly frustrating!).
Is there no way for this plugin to use the shorter numeric or gid version of the ID?
Note that I was using the default product variant
option for the plugin but have since switched the just the product
option, though this problem existed before I made the change (and I thought that perhaps the change might solve the issue, but it did not).
Hello, for my use case we wanted to host all the extra information for the products on contentful and match them with the Shopify ids. But while working on it I noticed that the products that can be selected through contentful are the variations of the products and not the overarching product.
Any advice in how to get the overarching product of the variants through contentful?
Thank you.
Issue description
Adding more than 20 products to a field leads to "Product missing" message in products preview
Steps to reproduce
Expected behavior
I expected all selected products to show correctly in the preview, the error message is misleading. The products do exist and should render (name & image).
Root cause
Commerce tools api response is limited to 20 entries. You have to provide the offset in order to fetch remaining results. Example of a response:
The logic to fetch the products preview is not considering the number of results, always returning at most 20 entries (link).
export async function fetchProductPreviews(
skus: string[],
config: ConfigurationParameters
): Promise<Product[]> {
if (skus.length === 0) {
return [];
}
const client = createClient(config);
const response = await client
.productProjections()
.search()
.get({
queryArgs: {
'filter.query': [`variants.sku:${skus.map((sku) => `"${sku}"`).join(',')}`],
},
})
.execute();
if (response.statusCode === 200) {
const products = response.body.results.map(productTransformer(config));
const foundSKUs = products.map((product: Product) => product.sku);
const missingProducts = skus
.filter((sku) => !foundSKUs.includes(sku))
.map((sku) => ({
sku,
image: '',
id: '',
name: '',
isMissing: true,
}));
return [...products, ...missingProducts];
}
throw new Error(`Request failed with status ${response.statusCode}`);
}
Describe the bug
The Cloudinary widget is no longer able to insert/associate files into Contentful.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The widget should get dismissed and the Cloudinary image should be inserted/previewed in the corresponding Contentful entry field.
Screenshots
Desktop (please complete the following information):
Additional context
This appeared to have been working at least until sometime Friday 2 July and was only detected today.
In this file is a handlebar template set which uses "name.en" to show the product name of a product. But we don't have this locale so nothing shows up. I think it is better to use the defined locale from the app setup.
There are some app samples here: https://github.com/contentful/apps/tree/master/examples
But these seem a lot less helpful than what create-contentful-app
makes (i.e. cca demonstrates all the extension points, includes test skeletons, etc). Is it potentially worth marking these examples deprecated and sending folks to create-contentful-app instead?
Describe the bug
I'm trying to open the Media Library widget on Safari but I can't get past the authentication step. See attached video.
To Reproduce
Steps to reproduce the behavior:
Expected behaviour
Should be able to see images from the Cloudinary Media Library
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
I'm experiencing an issue where the Appearance of the Cloudinary App/Widget in Contentful will revert back to the the JSON field appearance. All settings are still correct when this happens, and I have to go into the Content Model and update the Appearance to Cloudinary again for things to show up properly and when I try to add new Cloudinary content I am asked to log into Cloudinary again.
I've reached out to Cloudinary as well to see if this is something they are aware about or if it's user/setup error. The Cloudinary widget does require cookies and I'm sure Contentful does too - I am not using any extensions that would interfere with any of that or would reset it.
Hi,
Is there an example app that doesn't use React?
Thanks,
Describe the bug
there is a problem on MUX App, when the video is required and there is no video; It doesn't give an error. As it put a value inside the field.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Field should give an error when there is no video and should block publishing.
Screenshots
Hello. Instance parameters are documented for UI extensions e.g. here or here
I was searching how to do same for App but didn't find any documentation about this and from the code examples and implementation it looks like it is not there (at all?). E.g. this commit takes care of migrating installation parameters from extension.json but instance parameters are not handled/migrated there. What is the status with this?
I'd like to have some settings per field. With Cloudinary integration I'd like to have per field settings of
Please change the language on the button.
Use of the term preview is not really correct. The button goes to the site's URLs nothing more that I can tell. It doesn't use the Preview content API for example like might be set up using Contentful's built in preview features.
Which makes it very confusing to have 2 preview buttons in the sidebar. One being a real preview the other, a link to the site.
I suggest:
An option to hide the button altogether would also be an excellent change.
Describe the bug
Installing the ecommerce library on top of create-contentful-app throws hooks error inside the AppConfig
To Reproduce
Steps to reproduce the behavior:
npx @contentful/create-contentful-app init my-first-app
npx @contentful/create-contentful-app create-definition
npm install @contentful/ecommerce-app-base --save
import { Product, setup } from '@contentful/ecommerce-app-base';
setup({
makeCTA: () => 'Select products',
name: 'My SKU App',
logo: 'https://example.com/logo.svg',
color: '#d7f0fa',
description: 'My example SKU App',
parameterDefinitions: [
{
id: 'category',
type: 'Symbol',
name: 'Catehory',
description: 'Product category of our shop',
required: true,
},
],
validateParameters: () => null,
fetchProductPreviews: async (skus) => {
const responess = await Promise.all(
skus.map((sku) => fetch(`https://example.com/products/${sku}`))
);
return responess.map<Product>((response) => response.json() as unknown as Product);
},
renderDialog: (sdk) => {
const container = document.createElement('div');
container.innerHTML = `<iframe src="https://example.com/products-search" />`;
document.body.appendChild(container);
},
openDialog: async (sdk, currentValue, config) => {
return await sdk.dialogs.openCurrentApp({
parameters: { config, currentValue },
});
},
isDisabled: () => false,
});
Expected behavior
App config should load properly
Actual behavior
There are errors in the console related to hooks and nothing loads on the screen
Desktop
My company is exploring adding the Opimizely app to our Contentful space and while testing, I'm running into an issue where selecting an experiment does not populate the "Variations" section for the user to choose from.
After doing a little digging, it seems like the Optimizely endpoint that is being used to get all the experiments doesn't return experiments with object key key
; not sure if the REST api endpoint has been updated or not, but is it possible to fix this by not using that key value?
re:
Thank you!
Examples include: Watermarks, Audio Normalisation, Enabling MP4 as seen in the Mux Docs here
https://docs.mux.com/guides/video/add-watermarks-to-your-videos
https://docs.mux.com/guides/video/adjust-audio-levels
https://docs.mux.com/guides/video/enable-static-mp4-renditions
This is happening because the Cloudinary thumbnail URL is in wrong format
https://res.cloudinary.com/ID/image/upload/q_auto:good/w_150,h_100,c_fill/v1/path-to-asset
When strict transformations are enabled then this URL can never be exposed using named transformations due to following reasons
c_fill,h_100,w_150
works, w_150,h_100,c_fill
won't.q_auto:good/w_150,h_100,c_fill
becuase /
are not allowed.The fix is the correct the order of transformations in thumbnail by sorting them alphabetically.
Describe the bug
I have created an app using default-values-backend
and decided to upgrade f36 packages as it is using an older version. once I run start
it ends unexpectedly with an error.
To Reproduce
npx create-contentful-app --example default-values-backend
npm install @contentful/f36-components @contentful/browserslist-config
public/config.js
with @contentful/f36-components
and replace some elements like TextField
to TextInput
npm run start
Expected behavior
It builds the frontend and runs the server.
Screenshots
> [email protected] buildFrontend
> parcel build public/index.html
🚨 .../backend-app/node_modules/@contentful/f36-button/dist/esm/index.js: Unexpected token: operator (?)
at Z.get (.../backend-app/node_modules/terser/dist/bundle.min.js:1:525)
at Object.errorToJson (.../backend-app/node_modules/@parcel/utils/src/errorUtils.js:9:20)
at Pipeline.process (.../backend-app/node_modules/parcel-bundler/src/Pipeline.js:29:26)
at async Object.run (.../backend-app/node_modules/parcel-bundler/src/worker.js:15:12)
at async Bundler.loadAsset (.../backend-app/node_modules/parcel-bundler/src/Bundler.js:577:19)
at async .../backend-app/node_modules/parcel-bundler/src/Bundler.js:610:13
at async Promise.all (index 7)
at async Bundler.loadAsset (.../backend-app/node_modules/parcel-bundler/src/Bundler.js:599:21)
at async .../backend-app/node_modules/parcel-bundler/src/Bundler.js:610:13
at async Promise.all (index 4)
Process finished with exit code 1
Desktop (please complete the following information):
Additional context
Interestingly when I have added another script that runs parcel watch public/index.html
and ran the server separately using ts-node
with a few changes on the code, this have rendered the configuration page without any errors.
We are using a branch deploy in Netlify to deploy our site to a preview
subdomain, where the only difference from prod is that the preview subdomain uses the Contentful preview API, rather than the CDN.
Ideally, we would like to be able to use the Contentful Netlify app to point content editors to the preview
subdomain rather than the production domain (where content will only exist when published).
There are a few changes that would significantly improve the usefulness of this app for us, if the app could be specific to a branch deploy on a Contentful site:
Dependabot couldn't find a Dockerfile for this project.
Dependabot requires a Dockerfile to evaluate your project's current Docker dependencies. It had expected to find one at the path: /.circleci/Dockerfile
.
If this isn't a Docker project, or if it is a library, you may wish to disable updates for it in the .dependabot/config.yml
file in this repo.
My current understanding is that Page extensions can currently only be built with Extensions, but not with Apps.
Can you add this capability to the App Framework?
Describe the bug
When trying to select the focal point on SVGs, the image doesn't display and it's impossible to select a focal point.
As you can see, the image is in the markup but has no width/height.
To Reproduce
Steps to reproduce the behaviour:
Expected behavior
I'd expect the image to display/preview so I can select a focal point.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Through the Inspector I did add width: 100%
to the <img>
and that at least let me display the image -- and whilst I could click to set a focal point, the circle cursor/indicator wasn't draggable
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 3879.22 343">
<polygon points="3879.22 343 1879.2 343 1879.2 213.63 1749.86 213.63 1697.21 343 0 343 0 334.78 1691.68 334.78 1744.33 205.42 1887.41 205.42 1887.41 334.78 3879.22 334.78 3879.22 343" style="fill: #ff91d7;"/>
<path d="M1967.26,82.6l31.16,17.68,28.47-15.54s1.35,3.33,3.25,4.44c1.9,1.11,4.68,.95,4.68,.95,0,0,3.73-.47,7.22-3.09,3.49-2.62,5.55-4.84,5.55-4.84l2.22-4.05,.48-2.46,6.98,3.96-15.62,21.57s-3.42-2.34-6.3-2.76c-2.88-.42-9.44-.37-17.36,6.08-7.92,6.45-15.63,15.16-15.63,15.16l-11.38,9.18-6.92,2.78-8.65,.11-10.44-5.61-4.35-4.62-2.62-4.93-1.26-7.97,1.05-7.13,3.51-8.81,5.97-10.1Z" style="fill: #322744;"/>
<path d="M2167.61,293.88c-.2-4.93-3.12-12.37-3.12-12.37l-8.52-16.14-30.14-55.79-13.75-25.51s-8.87-16.34-11.25-20.51c-2.37-4.16-7.77-10.99-16.04-15.28-8.28-4.29-19.44-3.69-19.44-3.69l-29.59,.26s-3.14,5.18-8.15,9.38c-5.01,4.2-14.31,7.13-18.85,7.81-4.54,.68-9.42,.34-9.42,.34l.72,4.03,.42,11.8s-4.24,4.16-7.13,6.03c-2.89,1.87-9.17,3.31-15.2,3.82-6.03,.51-11.04-1.11-15.62-2.33-4.58-1.23-9.17-5.73-9.17-5.73l.68-3.61s1.4-11.33,1.49-16.34c.08-5.01-2.63-8.96-2.63-8.96l-4.67-6.75-24.9,.19s-20.51-.1-22.83,.1c-2.32,.19-7.75,.92-12.95,3.89-5.19,2.96-9.78,8.03-11.93,11.89-2.15,3.85-4.38,8.93-5.19,14.04-.81,5.11-.53,10.79,.65,17.25,1.17,6.45,5.03,14.89,5.89,16.96,.85,2.07,9.53,17.33,9.53,17.33l14.12,23.94,16.03,27.39s3.73,5.47,5.87,7.84c2.14,2.37,4.82,3.44,8.15,5.01,3.33,1.57,13.88,1.45,19.12,1.22,5.24-.23,21.85-2.57,21.85-2.57,0,0,1.83,1.45,4.9,5.93,3.06,4.48,3.83,11.32,4.06,15.61,.23,4.28-1.38,10.14-1.84,11.9-.46,1.76-3.33,6.96-4.32,8.46-1,1.49-3.45,3.9-3.45,3.9l6.52,.08,34.06-.12,38.82-.12,30.73-.12s45.11-.04,52.03-.52c6.92-.48,15.89-4.36,21.49-8.85,5.6-4.48,8.8-10.05,10.84-14.81,2.04-4.76,2.33-11.36,2.13-16.28Zm-89.22-16.98c-2.95,.13-13.24,.5-13.24,.5l.02-47.19,28.05,46.53s-8.98-.09-14.82,.16Z" style="fill: #322744;"/>
<path d="M1991.35,41.54c-8.24-5.2-17.86-13.24-19.35-23.5-1.6-11.06,8.41-20.54,19.26-16.55,6.09,2.24,10.35,7.85,12.99,13.77,3.68,8.23,4.85,17.33,7.53,25.94,2.68,8.61,5.03,14.98,13.99,20.24" style="fill: #322744;"/>
<path d="M2033.46,90.9c-3.58,0-5.52-2.96-7.06-5.73-.15-.27-.05-.61,.22-.76,.27-.15,.61-.05,.76,.22,1.45,2.61,3.11,5.16,6.09,5.16h.04c5.81-.04,15.51-7.36,16.21-13.64,.28-2.52-.73-5-2.56-6.32-1.93-1.39-4.55-1.38-7.57,.02-.28,.13-.61,0-.74-.27-.13-.28,0-.61,.27-.74,4.31-2,7.1-1.06,8.69,.08,2.16,1.55,3.34,4.43,3.02,7.35-.76,6.88-10.97,14.59-17.31,14.64h-.04Z" style="fill: #322744;"/>
<path d="M2000.49,179.45c-.3,0-.55-.24-.56-.54-.06-1.7-.14-3.16-.22-4.49-.07-1.22-.13-2.33-.16-3.39-.14-4.39-.32-6.24-.67-8.71-.04-.31,.17-.59,.47-.63,.33-.03,.59,.17,.63,.47,.36,2.52,.54,4.39,.68,8.83,.04,1.05,.09,2.15,.16,3.36,.07,1.33,.15,2.8,.22,4.51,.01,.31-.23,.57-.54,.58h-.02Z" style="fill: #322744;"/>
<path d="M1999.44,162.81c-.28,0-.53-.22-.55-.51-.86-9.02-3.96-13.82-7.18-17.68-5.49-6.56-12.26-10.18-22.76-15.35-7.95-3.92-12.2-10.32-12.63-19.02-.45-9.05,4-17.47,8.21-24.66l25.75-43.95c.16-.27,.5-.35,.76-.2,.27,.16,.36,.5,.2,.76l-25.75,43.95c-4.13,7.04-8.5,15.29-8.06,24.04,.41,8.27,4.45,14.35,12.01,18.07,10.63,5.24,17.49,8.91,23.12,15.64,4.56,5.46,6.72,10.76,7.43,18.29,.03,.31-.19,.58-.5,.61-.02,0-.04,0-.05,0Z" style="fill: #322744;"/>
<path d="M2035.51,145.26c-.2,0-.39-.11-.49-.29-7.01-12.94-6.27-20.4-2.44-29.63,3.26-7.86,9.57-15.98,15.13-23.14,1.13-1.46,2.24-2.88,3.28-4.26,13.94-18.37,16.62-34.6,8.19-49.64-4.28-7.62-10.78-13.57-18.3-16.76-10.39-4.4-22.88-3.7-33.44,1.87-.26,.14-.61,.04-.75-.23-.15-.27-.04-.61,.23-.75,10.85-5.73,23.7-6.45,34.39-1.91,7.75,3.28,14.44,9.41,18.84,17.24,8.55,15.25,5.77,32.36-8.27,50.86-1.04,1.37-2.15,2.8-3.29,4.26-5.53,7.11-11.79,15.17-14.98,22.89-3.7,8.92-4.41,16.12,2.39,28.67,.15,.27,.05,.61-.22,.76-.08,.05-.18,.07-.27,.07Z" style="fill: #322744;"/>
<path d="M1998.57,100.98c-.09,0-.19-.02-.28-.07l-31.32-17.87c-.27-.15-.36-.49-.21-.76,.15-.27,.5-.36,.76-.21l31.05,17.71,28.04-15.38c.27-.14,.61-.05,.76,.22,.15,.27,.05,.61-.22,.76l-28.32,15.53c-.08,.05-.18,.07-.27,.07Z" style="fill: #322744;"/>
<path d="M1953.43,180.55s-.06,0-.09,0c-.31-.05-.51-.34-.47-.64,1.83-11.55,2.44-15.82,1.94-21.21-.45-4.86-1.95-6.92-4.21-10.05-.4-.55-.81-1.12-1.24-1.74-.39-.55-1.33-1.85-2.58-3.57-4.18-5.74-11.95-16.43-13.47-19.45-1.89-3.76-3.81-9.41-2.23-14.96,1.8-6.3,7.32-10.45,13.31-14.48l13.18-8.88c1.13-.76,2.54-1.72,4.17-1.8,1.49-.06,2.26,.49,3.1,1.09l.32,.23c.25,.18,.32,.52,.14,.78-.18,.26-.53,.31-.78,.14l-.33-.23c-.8-.57-1.3-.94-2.4-.89-1.32,.06-2.53,.88-3.6,1.61l-13.18,8.88c-5.81,3.91-11.16,7.92-12.85,13.86-1.48,5.21,.35,10.57,2.15,14.16,1.48,2.94,9.21,13.57,13.37,19.29,1.26,1.73,2.21,3.03,2.59,3.59,.43,.62,.84,1.19,1.23,1.73,2.28,3.16,3.93,5.44,4.41,10.6,.51,5.53-.1,9.84-1.95,21.49-.04,.28-.28,.47-.55,.47Z" style="fill: #322744;"/>
<path d="M1947.84,221.28c-.2,0-.39-.1-.49-.29-5.55-10.12-9.86-18.02-14.14-25.88-4.43-8.12-8.83-16.19-14.56-26.64-.15-.27-.05-.61,.22-.76,.27-.15,.61-.05,.76,.22,5.73,10.45,10.14,18.52,14.56,26.64,4.29,7.86,8.59,15.76,14.14,25.88,.15,.27,.05,.61-.22,.76-.08,.05-.18,.07-.27,.07Z" style="fill: #322744;"/>
<path d="M1980.03,132.58c-5.66,0-10.62-2.63-15.23-5.82-.25-.18-.32-.52-.14-.78,.17-.25,.52-.31,.78-.14,9.16,6.33,17.58,8.72,28.91-.16,6.09-4.77,10.09-8.92,13.62-12.58,3.34-3.46,6.22-6.45,10.06-9.17,8.62-6.09,14.91-8.49,23.45-3.7,.27,.15,.37,.49,.21,.76-.15,.27-.49,.36-.76,.21-8.07-4.53-13.82-2.32-22.26,3.64-3.75,2.65-6.6,5.61-9.9,9.03-3.55,3.69-7.58,7.86-13.73,12.69-5.56,4.36-10.51,6.02-15,6.02Z" style="fill: #322744;"/>
<path d="M2039.32,69.83c-.09,0-.19-.02-.28-.08l-48.2-28c-.27-.16-.36-.5-.2-.76,.15-.27,.49-.36,.76-.2l48.2,28c.27,.16,.36,.5,.2,.76-.1,.18-.29,.28-.48,.28Z" style="fill: #322744;"/>
<path d="M2057.01,80.1c-.09,0-.19-.02-.28-.08l-6.68-3.88c-.27-.16-.36-.5-.2-.76,.15-.27,.49-.36,.76-.2l6.68,3.88c.27,.16,.36,.5,.2,.76-.1,.18-.29,.28-.48,.28Z" style="fill: #322744;"/>
<path d="M2025.76,62c-.1,0-.19-.03-.28-.08-8.93-5.25-11.44-11.54-14.24-20.55-1-3.23-1.81-6.58-2.59-9.82-1.29-5.38-2.63-10.95-4.91-16.06-2.15-4.81-6.1-11.05-12.68-13.48-4.65-1.71-9.48-.94-13.24,2.1-4.02,3.26-6.04,8.56-5.27,13.84,1.17,8.08,7.59,15.85,19.09,23.11,.26,.17,.34,.51,.18,.77-.17,.26-.51,.34-.77,.17-11.79-7.44-18.38-15.48-19.6-23.89-.82-5.67,1.35-11.36,5.67-14.87,4.07-3.3,9.3-4.13,14.33-2.28,6.95,2.56,11.07,9.06,13.31,14.07,2.32,5.2,3.67,10.82,4.98,16.25,.77,3.22,1.57,6.55,2.57,9.75,2.81,9.02,5.13,14.87,13.74,19.92,.27,.16,.36,.5,.2,.76-.1,.18-.29,.28-.48,.28Z" style="fill: #322744;"/>
<path d="M1976.1,188.63c-9.48,0-18.33-3.14-23.1-8.2-.21-.22-.2-.58,.02-.79,.22-.21,.58-.21,.79,.02,4.56,4.84,13.1,7.85,22.29,7.85,10.36,0,19.64-3.74,23.64-9.53,.18-.25,.53-.31,.78-.14,.25,.18,.32,.52,.14,.78-4.21,6.08-13.85,10-24.56,10Z" style="fill: #322744;"/>
<path d="M2001.58,163.12c-.73,0-1.21-.02-1.92-.05-.31-.01-.58-.28-.57-.58s.24-.57,.54-.54c.76,.03,1.23,.05,1.95,.05,14.95,0,28.56-7.19,33.86-17.9,.14-.28,.47-.39,.75-.25,.28,.14,.39,.47,.25,.75-5.49,11.08-19.5,18.52-34.86,18.52Z" style="fill: #322744;"/>
<path d="M1874.63,251.18c-.3,0-.55-.24-.56-.54-.41-12.04-3.08-16.46-8.92-21.83-5.71-5.25-14.43-7.85-22.15-9.87-2.44-.64-4.94-1.22-7.37-1.78-5.22-1.2-10.61-2.45-15.71-4.39-10.61-4.06-17.81-8.64-23.24-20.05-6.77-14.24-5.94-28.94-4.97-45.96l.16-2.81v-1.34c0-.16,.07-.32,.2-.42l31.57-26.85c.21-.18,.51-.18,.72,0l31.57,26.85c.13,.11,.2,.26,.2,.42v45.39c0,.31-.25,.56-.56,.56h-46.27c-.31,0-.56-.25-.56-.56s.25-.56,.56-.56h45.71v-44.57l-31.02-26.37-31.01,26.37v1.12l-.16,2.85c-.96,16.87-1.79,31.43,4.86,45.41,5.27,11.08,12.29,15.53,22.63,19.49,5.03,1.92,10.38,3.16,15.56,4.35,2.43,.56,4.95,1.14,7.4,1.79,7.85,2.06,16.72,4.71,22.62,10.13,5.95,5.47,8.86,10.25,9.28,22.61,.01,.31-.23,.57-.54,.58h-.02Z" style="fill: #322744;"/>
<path d="M1928.29,335.33c-16.32,0-30.35-3.04-37.4-5.65-4.04-1.5-9.24-3.63-13.61-6.89-8-5.96-10.14-14.21-10.89-24.76-.18-2.56,.48-5.98,2.36-7.43,2.32-1.8,5.56-1.18,8.16-.7l.82,.15c4.93,.88,9.01,1.58,12.82,2.21,1.8,.29,5.92,1.07,10.29,1.89,5.1,.96,10.77,2.03,14.03,2.57-2.19-2.35-5.14-5.84-8.42-11.06-3.12-4.96-4.38-8.83-3.74-11.49,.32-1.32,1.09-2.36,2.29-3.08,5.22-3.13,10.86,4.49,13.89,8.59,.37,.5,.69,.93,.97,1.29,.19,.24,.15,.59-.1,.78-.24,.19-.59,.15-.78-.1-.28-.36-.61-.81-.98-1.31-2.82-3.81-8.08-10.9-12.42-8.29-.95,.57-1.53,1.35-1.78,2.39-.56,2.36,.65,5.93,3.6,10.63,3.84,6.11,7.22,9.82,9.42,12.08,.17,.17,.21,.43,.1,.64-.11,.21-.34,.34-.58,.3-2.65-.38-9.58-1.69-15.71-2.84-4.36-.82-8.47-1.59-10.26-1.89-3.82-.63-7.89-1.33-12.83-2.21l-.83-.15c-2.5-.47-5.34-1.01-7.27,.48-1.48,1.15-2.09,4.12-1.93,6.47,.72,10.24,2.78,18.24,10.44,23.94,4.25,3.17,9.36,5.26,13.33,6.74,6.97,2.58,20.84,5.59,37.01,5.59l197.01-.45c16.52,0,30.06-6.8,37.13-18.66,6.48-10.86,6.52-24.43,.1-36.32l-61.09-113.21c-7.62-13.83-19-20.55-34.8-20.55h-31.18c-.31,0-.56-.25-.56-.56s.25-.56,.56-.56h31.18c16.24,0,27.94,6.91,35.78,21.13l61.1,113.21c6.6,12.23,6.55,26.22-.13,37.42-7.28,12.2-21.17,19.2-38.09,19.2l-197,.45Z" style="fill: #322744;"/>
<path d="M2065.35,277.97c-.19,0-.37-.1-.47-.25-.17-.1-.27-.28-.27-.48v-47.02c0-.25,.17-.47,.41-.54,.24-.06,.5,.04,.63,.25l28.05,46.49c.1,.17,.11,.39,0,.56-.1,.18-.29,.28-.49,.28-9.12,0-18.49,.24-27.84,.71h-.03Zm.38-45.75v44.61c8.9-.44,17.81-.67,26.5-.68l-26.5-43.93Z" style="fill: #322744;"/>
<path d="M1943.46,292.16c-2.3,0-4.71-.08-7.27-.25-7.5-.51-13.7-4.59-18.41-12.11l-.25-.39c-5.52-9.22-10.45-17.58-15.22-25.67-4.81-8.15-9.78-16.58-15.34-25.87-5.33-8.91-10.85-18.11-14.25-28.17-3.95-11.7-4.4-22.52-1.29-31.31,7.3-22.1,25.48-24.48,32.96-24.48h43.65c.31,0,.56,.25,.56,.56s-.25,.56-.56,.56h-43.65c-7.23,0-24.82,2.31-31.9,23.73-3.02,8.56-2.57,19.14,1.3,30.6,3.36,9.94,8.84,19.1,14.15,27.95,5.56,9.28,10.53,17.72,15.34,25.87,4.77,8.09,9.7,16.45,15.21,25.65l.25,.39c4.51,7.2,10.41,11.1,17.53,11.59,10.85,.75,18.97-.31,27.57-1.43,1.94-.25,3.91-.51,5.94-.75,.6-.07,1.29-.17,2.06-.27,.31-.02,.59,.18,.63,.48s-.18,.58-.48,.63c-.77,.1-1.47,.19-2.07,.27-2.03,.24-4,.5-5.93,.75-6.63,.86-12.99,1.69-20.52,1.69Z" style="fill: #322744;"/>
<path d="M1903.01,306.65s-.07,0-.11,0c-3.2-.62-31.42-6.25-35.8-12.37-.18-.25-.12-.6,.13-.78,.25-.18,.6-.12,.78,.13,2.93,4.1,19.74,8.95,35.1,11.93,.3,.06,.5,.35,.44,.65-.05,.27-.29,.45-.55,.45Z" style="fill: #322744;"/>
<path d="M1900.52,315.56s-.1,0-.15-.02c-12.98-3.6-29.34-9.06-33.59-14.62-.19-.24-.14-.6,.1-.78,.24-.18,.59-.15,.78,.11,3.17,4.14,14.89,9.19,33,14.22,.3,.08,.47,.39,.39,.69-.07,.25-.29,.41-.54,.41Z" style="fill: #322744;"/>
<path d="M1898.06,324.09c-.05,0-.11,0-.17-.02-4.81-1.49-21.09-6.81-28.87-12.96-.24-.19-.28-.54-.09-.78,.19-.24,.54-.28,.78-.09,5.15,4.07,15.8,8.84,28.51,12.77,.29,.09,.46,.4,.37,.7-.07,.24-.29,.39-.53,.39Z" style="fill: #322744;"/>
<path d="M1875.43,335.89c-15.52,0-28.15-12.63-28.15-28.15v-45.12c0-.31,.25-.56,.56-.56h55.18c.31,0,.56,.25,.56,.56v32.08c0,.31-.25,.56-.56,.56s-.56-.25-.56-.56v-31.52h-54.06v44.57c0,14.9,12.13,27.03,27.03,27.03,5.96,0,11.62-1.9,16.36-5.51,.25-.19,.6-.14,.78,.11,.19,.25,.14,.6-.11,.78-4.94,3.75-10.83,5.73-17.03,5.73Z" style="fill: #322744;"/>
<path d="M1833.13,303.3c-8.42,0-15.26-6.84-15.26-15.26s6.85-15.26,15.26-15.26,15.26,6.84,15.26,15.26-6.85,15.26-15.26,15.26Zm0-29.4c-7.8,0-14.14,6.35-14.14,14.14s6.34,14.14,14.14,14.14,14.14-6.35,14.14-14.14-6.34-14.14-14.14-14.14Z" style="fill: #322744;"/>
<path d="M1970.65,335.1c-.17,0-.33-.07-.44-.21-.19-.24-.15-.59,.09-.78,6.01-4.74,9.74-13.71,9.74-23.42,0-8.63-2.92-15.95-8.44-21.18-.22-.21-.23-.57-.02-.79,.22-.22,.57-.23,.79-.02,5.75,5.45,8.79,13.06,8.79,22,0,10.04-3.89,19.35-10.16,24.3-.1,.08-.22,.12-.35,.12Z" style="fill: #322744;"/>
<path d="M1952.87,124.98c-.17,0-.34-.08-.45-.23l-.57-.78c-2.29-3.14-4.66-6.4-5.64-10.35-.97-3.89-.49-8.34,1.35-12.52,2.03-4.62,4.17-8.4,7.18-13.38,.16-.27,.5-.35,.77-.19,.26,.16,.35,.5,.19,.77-2.99,4.94-5.11,8.69-7.12,13.25-1.74,3.96-2.2,8.15-1.29,11.8,.93,3.74,3.23,6.9,5.46,9.96l.57,.78c.18,.25,.12,.6-.12,.78-.1,.07-.21,.11-.33,.11Z" style="fill: #322744;"/>
<path d="M1943.94,124.37c-.15,0-.31-.06-.42-.19-1.81-2.06-3.06-3.83-3.72-5.27-1.95-4.28-2.56-7.71-2.05-11.47,.52-3.85,2.36-7.76,5.78-12.29,.19-.25,.54-.3,.78-.11,.25,.19,.29,.54,.11,.78-3.3,4.37-5.07,8.11-5.57,11.77-.48,3.54,.1,6.78,1.96,10.85,.61,1.34,1.8,3.02,3.54,5,.2,.23,.18,.58-.05,.79-.11,.09-.24,.14-.37,.14Z" style="fill: #322744;"/>
<path d="M2003.13,283.96c-.3,0-.54-.23-.56-.53-.03-.61-2.83-61.72-3.81-96.26-.09-3.21-.19-6.2-.29-8.91l-.05-1.3c-.01-.31,.23-.57,.54-.58,.3,.03,.57,.23,.58,.54l.05,1.3c.09,2.71,.2,5.71,.29,8.92,.98,34.53,3.79,95.63,3.81,96.24,.01,.31-.22,.57-.53,.58h-.02Z" style="fill: #322744;"/>
</svg>
Describe the bug
Was used ecommerce-app-base template, all needed functions were made and setup was performed using setup function from @contentful/ecommerce-app-base package. Also was used renderSkuPicker function with pagination, using this setup I'm not able to save selected products (SKUs) from any page except first. Maybe there is some issue with data related to selected products in state?
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Save any Product from response from needed platform (Shopware, Magento, etc...) even using pagination inside renderSkuPicker function.
Describe the bug
There's an issue with the Contentful Bynder app. The correct Bynder environment is not persisted across Contentful environments in the same Contentful space. Looks like it’s not respecting the env configurations.
The issue occurs when logging into Bynder via the modal—by clicking on the “Select a file on Bynder” button—the user session is persisted across environments if a user changes Contentful environments. This results in the Bynder app potentially looking for assets in the Bynder production asset dam when in the Contentful development environment and vice-versa. I’ve logged a ticket with Bynder.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A user should be able to see the assets in the Bynder environment that corresponds to the Contentful environment.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
In custom-validation example (and possibly others) the upload script is missing.
Expected behavior
I'd expect the create-contentful-app to work as described in your documentation, regardless of the selected example.
Describe the bug
The auto-completion on the queries in the GraphQL Playground stopped working, I used to be able to see the possible values, now I can only see the entries __schema and __typename. Queries themselves are still working, only the auto-completion stopped working. The Schema and the Docs in the sidebar still show the valid and working query entries.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The auto-completion shows the possible values for the query
Screenshots
Desktop (please complete the following information):
Hello,
I've been testing the shopify app in contentful and I have noticed the products don't have a variant name displayed even tho' the graphQL query has it. Would be nice enough to fix this? Most shops have variants to products, and the product selector has the same product listed 2-3 times when in fact there are 2 to 3 different variants to that product. A regular user would find it difficult to select the correct product variant.
{
nodes (ids: [${queryIds}]) {
id,
...on ProductVariant {
sku,
image {
src: originalSrc
},
title,
product {
id,
title
}
}
}
}
Thank you!
App appears to be calling the european api endpoint, ignoring the api url specified in config.
We are unable to fetch products from commercetools' US api endpoint.
Forgive my ignorance. We’re exploring using the app method for custom fields rather than the legacy extensions.
Using the bootstrap has been a great help to do what we need. It seems both the CRA and nextjs solutions (closest to our tech stack) both do very similar things. As CRA out of the box isn’t greqt with routes we considered nextjs but is it possible when defining an app in Contentful to use a subdirectory rather than the route?
I’m all for single purpose but think we have a use case where some logic isn’t worth duplicating. So hosting more fields in one app would be ace.
If this isn’t on the roadmap, no problem, if there’s an example, happy to poked in the right direction.
Thanks
I'm using the package to show and publish the products.
Its working fine now.
I want a new feature like I want to add a dropdown in the dialogue box, In that dropdown I ll show some items,
When I select the item, I want to show the products based on the dropdown field, Is this possible?
Describe the bug
Cloudinary image has structural, contextual and embedded metadata types and none of those aren't returned when using contentful Apis to get the entry. There is a metadata field returned which is always an empty array.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The metadata should return contextual metadata. Ideally this field should be an object like this
{
"structural": {
"product_engagement": "value"
},
"contextual": {
"title": "title",
"description": "description which can be used as an alt tag"
},
"embedded": {
"Colorspace": "rgb",
"DPI": "96"
}
}
Desktop (please complete the following information):
Cloudinary settings
Describe the bug
The Shopify contentful app is using an unsupported api version. There is no option to select another version as it is hardcoded in the app. For now this will keep on working. But in 2023-01 the base64 hased object id's are no longer supported: https://shopify.dev/api/examples/object-ids. This Shopify app will no longer work with the latest Shopify version in 2023-01. Would it be possible to select what version of the api you want to use in the shopify app configuration?
I'm trying to save multiple (Array fields) entries to contentful but request is failing. Seems like only Symbol
field type is supported according to this code.
Below is the failed response:
`{
"sys": {
"type": "Error",
"id": "InvalidEntry"
},
"message": "Validation error",
"details": {
"errors": [
{
"name": "type",
"value": [
"FG018004",
"FG035001",
"FG005012"
],
"type": "Symbol",
"details": "The type of \"value\" is incorrect, expected type: Symbol",
"path": [
"fields",
"FlBFCOln67hlX5Zk",
"en-US",
0
]
}
]
},
"requestId": "5146b11619ecc4b2ba5fdb974b5397cc"
}
As a content editor, when opening the product selector, products can be searched using a search input field within the product selector. However, for categories there is no search feature. As you can imagine, selecting the right category when there are many to choose from is not very practical (see image).
Would it be possible to also add the search feature to the category selector widget?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.