Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolfgang Thomas committed Oct 25, 2023
2 parents fb0ac82 + fc4a987 commit 4967a54
Show file tree
Hide file tree
Showing 145 changed files with 9,974 additions and 308 deletions.
43 changes: 14 additions & 29 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,46 +2,39 @@ version: 2
jobs:
build:
machine:
image: ubuntu-2004:202111-02
image: ubuntu-2204:2022.07.1
steps:
- checkout
- run: make build
- run: make test-helpcenter

test_announcements:
machine:
image: ubuntu-2004:202111-02
image: ubuntu-2204:2022.07.1
steps:
- checkout
- run: make build
- run: FIREBASE_PROJECT=$STAGING_FIREBASE_PROJECT GOOGLE_APPLICATION_CREDENTIALS=$STAGING_GOOGLE_APPLICATION_CREDENTIALS make test-push-announcements
- run: FIREBASE_PROJECT=$STAGING_FIREBASE_PROJECT FIREBASE_TOKEN=$FIREBASE_TOKEN GOOGLE_APPLICATION_CREDENTIALS=$STAGING_GOOGLE_APPLICATION_CREDENTIALS make test-firebase-functions

deploy_staging:
push_staging:
machine:
image: ubuntu-2004:202111-02
image: ubuntu-2204:2022.07.1
steps:
- checkout
- add_ssh_keys
- run:
name: Deploy on staging server
command: HOSTNAME=$STAGING_HOSTNAME PORT=$STAGING_PORT HELP_CENTER_URL="https://${STAGING_HOSTNAME}/" make deploy
- run:
name: Push announcements of communication panel of the PIM into firestore
command: FIREBASE_PROJECT=$STAGING_FIREBASE_PROJECT GOOGLE_APPLICATION_CREDENTIALS="$STAGING_GOOGLE_APPLICATION_CREDENTIALS" make push-announcements
- run:
name: Push serverless functions into firebase to expose communication panel API
command: FIREBASE_PROJECT=$STAGING_FIREBASE_PROJECT GOOGLE_APPLICATION_CREDENTIALS="$STAGING_GOOGLE_APPLICATION_CREDENTIALS" make deploy-firebase-functions

deploy_production:
push_production:
machine:
image: ubuntu-2004:202111-02
image: ubuntu-2204:2022.07.1
steps:
- checkout
- add_ssh_keys
- run:
name: Deploy on production server
command: HOSTNAME=$PROD_HOSTNAME PORT=$PROD_PORT ONLY_PREVIOUS_MONTH_UPDATES=true make deploy
- run:
name: Push announcements of communication panel of the PIM into firestore
command: FIREBASE_PROJECT=$PROD_FIREBASE_PROJECT GOOGLE_APPLICATION_CREDENTIALS="$PROD_GOOGLE_APPLICATION_CREDENTIALS" ONLY_PREVIOUS_MONTH_UPDATES=true make push-announcements
Expand All @@ -59,24 +52,16 @@ workflows:
ignore:
- master

pull_request_announcements:
jobs:
- test_announcements:
filters:
branches:
only:
-/announcements.*/

deployment:
jobs:
- deploy_production:
filters:
branches:
only: master
- deploy_staging:
- push_production:
filters:
branches:
only: master
- push_staging:
filters:
branches:
only: master

# feature announcements of the previous months should be deployed automatically the 5th day of the month in the helpcenter
# before this date, the announcements are not generated and so not pushed in production
Expand All @@ -90,6 +75,6 @@ workflows:
only:
- master
jobs:
- deploy_production
- test_announcements
- build
- build
- test_announcements
- push_production
22 changes: 14 additions & 8 deletions content/md/assets/about-product-link-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ The `pattern` property allows you to define how the PIM should split the [source

The split pattern should be a string. It should be given as a regular expression.
For the PIM to know into which asset attributes the result of the split should be sent, this regular expression should contain one or several named capture groups.
Note that the names of these capture groups should be equal to the code of existing asset attribute of the family and these asset attributes can only be `text` attributes and `number` attributes.
Note that the names of these capture groups should be equal to the code of existing asset attribute of the family and these asset attributes can only be `text`, `number` and `option` attributes.

::: warning
These asset attributes cannot be localizable neither scopable.
Expand Down Expand Up @@ -142,7 +142,12 @@ Now that you know how the naming convention feature works, we can go on discover

As said above, the product link rule is very useful when you can automate the link between assets and products/product models.

This rule is defined at the asset family level and it is automatically launched by the PIM after the asset is created.
This rule is defined at the asset family level, and the PIM automatically launches it after the asset is created.
Note that if:
* you did not define a naming convention
* you created/uploaded your assets within the user interface

Then, at the asset creation, only the code and the label will be available, while at the asset upload, only the code, the label and the media file will be available. Therefore, if your product selection is based on an asset attribute value, it will select no product. You can either add a naming convention or execute the PLR manually after filling in the desired asset attribute value.

:::tips
If your product link rule happened to change afterward, you could easily execute it again thanks to the `Execute rules` button.
Expand Down Expand Up @@ -183,7 +188,7 @@ The format of the product selection part is defined as follows:
{
"field": "enabled",
"operator": "=",
"value": "true"
"value": true
},
{
"field": "categories",
Expand All @@ -201,13 +206,14 @@ You can use multiple conditions to make your selection. Those conditions are cum
Here is the list of the fields you can use to select your products:

- Among the product properties:
* the `product family`,
* the `product categories`,
* the `product status`,
* the `family`,
* the `categories`,
* the `enabled`.
- Among the product attributes:
* the `identifier` attribute,
* the `text` attributes,
* the `simple/multi select` attributes.
* the `text` & `text area` attributes,
* the `simple select` and `multi select` attributes,
* the `yes/no` attribute.

[Here](https://api.akeneo.com/documentation/asset-manager.html#product-selection) is the complete explanation of the expected JSON format.

Expand Down
6 changes: 6 additions & 0 deletions content/md/assets/create-and-display-assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,3 +213,9 @@ The PIM cannot ensure that what you are currently seeing in a `media link` attri
If you want to be sure that the thumbnail that you are currently seeing is still the one behind the url (and not the old one that is still in the PIM cache), you can click on the reload icon just next to the url or on the top right corner of the main media preview.

![Reload button](../img/Assets_ReloadButton.png)

::: info
To optimize user experience, we set three limits to get a preview:
* 56 MB for the size of an asset
* 2 seconds to fetch an asset from its distant server
:::
7 changes: 4 additions & 3 deletions content/md/assets/import-assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,19 @@ You already know that you can easily mass create assets in an asset family with

When the main media of the asset family is a `media link` attribute, you can't access the `mass upload` functionality as you don't have any binary file to upload.

If you are in this situation, or if you simply need to import assets and their attribute values in the Asset Manager, this article may be interesting for you :wink:.
If you are in this situation, or if you simply need to import assets and their attribute values in the Asset Manager, this article may be interesting for you.

# Import assets with an import profile

You can import a CSV or excel file with a list of urls and/or an archive with all the media. To do so, you first have to create an [import profile](imports.html#create-a-new-import-profile): choose a code, a label and select either `Asset import in XLSX` or `Asset import in CSV`.

:::tips
To get the structure of your asset import file, you can export the assets first - by creating an export profile with the `assets` job. But mind you! you can only [export assets from one family at once](export-assets.html#how-to-export-your-assets-with-the-export-jobs).
* To get the structure of your asset import file, you can export the assets first - by creating an export profile with the `assets` job. But mind you! you can only [export assets from one family at once](export-assets.html#how-to-export-your-assets-with-the-export-jobs).
* If you get the structure of your import file thanks to a previous export, you'll have a `filepath` column. This column is ignored during the import, in order to avoid any problem with the prefix/suffix of the `media link` attributes.
:::

:::info
If you get the structure of your import file thanks to a previous export, you'll have a `filepath` column. This column is ignored during the import, in order to avoid any problem with the prefix/suffix of the `media link` attributes :wink:.
Imports (including archives) are limited to 512 MB per file.
:::

:::warning
Expand Down
7 changes: 4 additions & 3 deletions content/md/connectivity/connection-dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@ In the PIM, there is a dashboard called `Data flows`, to help you follow your [c

::: info
This is still the very first version of this dashboard. For now, **we only monitor simple products and product variants**.
In the future, it will show you many more indicators. Stay tuned! 🙂
And also, don't hesitate to fill in the survey at the bottom of the dashboard page to vote for the next KPI you'd like to see in there.
Don't hesitate to fill in the survey at the bottom of the dashboard page to vote for the next KPI you'd like to see in there.
:::

In this dashboard, for now, you can monitor both your source and destination connections.

::: tips
Empty charts? Have you ticked the `Track this connection in the dashboard` checkbox in your connections settings? Do you use the connection user to call the PIM through the API?
**Empty charts?**
Have you ticked the `Track this connection in the dashboard` checkbox in your connections settings? Do you use the connection user to call the PIM through the API?
Please, note that inbound charts are updated every hour, and outbound charts are updated as soon as a connection gets or receives a product from your PIM.
:::

# Source connection monitoring
Expand Down
110 changes: 110 additions & 0 deletions content/md/connectivity/how-to-configure-catalogs-for-apps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
id: how-to-configure-catalogs-for-apps
themes: connectivity
title: How to configure **catalogs for Apps**?
popular: true
ee: false
related: what-is-an-app, how-to-connect-my-pim-with-apps, manage-your-apps
---

# What's a catalog?

With catalogs, you can configure which products you want to share with an app thanks to a product selection composed of one or several criteria that allow you to filter products.

When an app uses catalogs to retrieve product data, it automatically enables the Catalogs tab and creates catalogs for this app in your PIM.
To configure your catalogs, go to the `Connect > Connected Apps`, click on `Manage app`, and then click on `Catalogs`.

Here you access the list of all the catalogs the app can manage with a label and a status.

![Catalog list](../img/app-catalog-list.png)

Click on the catalog you want to set up to access the configuration interface.

When you access a catalog, you will see two tabs:
- `Product selection`: where you will configure criteria to filter your product selection,
- `Filter the values`: when a catalog is not compatible with mapping, we display this tab to allow you to choose which values to send to the app based on filters,
- `Product mapping`: where you can map your PIM attributes with the app expected targets.

::: info
If you can't click on `Manage apps`, please read our paragraph [Who can connect apps?](#who-can-connect-apps)
:::

# Configure a product selection

In the `Product selection` tab, you can define selection criteria. They are the attributes or system fields you can use to filter your products. Altogether, the criteria will create your Product selection.

![Catalog - Product selection](../img/app-catalog-product-selection.png)

::: warning
When there are no criteria, your whole PIM catalog is selected.
:::

You will find the system fields at the top of the list and below are all the attributes gathered by attribute groups. There is a search bar to help you find the attributes.

<img class="img-responsive in-article" alt="Product selection criteria" src="../img/app-catalog-criteria-selection.png" style="max-width: 700px;">

Each time you add a criterion, its color turns purple to inform you that it is already used.
A new line appears in the product selection.

Let's see how a line is organized.

1. You will find the system fields or attribute you chose in purple on the left.
2. Then, you have to choose an operator. Depending on the filter, the operator list changes.

The following fields vary depending on your filter. There can be up to 3 types of fields.
- You can have the value field. For example, if your filter is a multi-select attribute type, you can choose which options you want to filter on.
- If your filter has a value per channel and/or per locale, the channel and locale fields appear to let you choose which locale/channel you want to filter on.

If you want to remove a condition, click on the cross at the end of the line.

## Available conditions

To select your products, you can use the following system fields and attribute types of the PIM as conditions:
- Status
- Category
- Completeness
- Family
- Simple select attribute
- Text attribute
- Measurement attribute
- Yes/No attribute
- Multi-select attribute
- Number attribute
- Text area attribute
- Date attribute
- Identifier
- Measurement

# Configure value filters

In the `Filter the values` tab, you can configure data filters to send only the data your app needs.

## Available filters

To filter product values, you can use the following filters:
- Channels: when an attribute has value per channel, the PIM sends only product values for the selected channels
- Locales: when an attribute has value per locale, the PIM sends only product values for the selected locales
- Currencies: the PIM sends only prices for the selected currencies

## Example

You connect your e-commerce app with your PIM and want to send only data related to your e-commerce channel.

In the `Filter the values` tab, we advise you to filter the values on your e-commerce channel as in the following screenshot.

<img class="img-responsive in-article" alt="Catalog - Filter the values" src="../img/app-catalog-value-filters.png" style="max-width: 500px;">


# Enable/disable a catalog

Once you finish configuring your catalog, update the `Enable status` value to `Yes` in the catalog header.

<img class="img-responsive in-article" alt="Product selection criteria" src="../img/app-catalog-enable-button.png" style="max-width: 700px;">

As soon as you enable a catalog, the app will be able to retrieve your product selection data.

On the contrary, if you want to stop the catalog synchronization between Akeneo PIM and the app, update the `Enable status` value to `No` in the catalog header.

::: info
All new catalogs are disabled by default when you connect an app. It's up to you to enable them when your configuration is ready.
:::
Loading

0 comments on commit 4967a54

Please sign in to comment.