├── .circleci ├── config.yml ├── list_workflows.jpg ├── re_run.jpg └── tools │ ├── destroyer │ ├── __init__.py │ ├── config.yml │ ├── get_outdated_environment.py │ ├── remove_state_folder.py │ ├── settings.py │ └── terraform_destroy.py │ └── requirements.txt ├── .github └── CODEOWNERS ├── .gitignore ├── .gitleaks.toml ├── Dockerfile ├── Makefile ├── README.md ├── components ├── block-about-app.css ├── block-about-app.html ├── block-welcome.css ├── block-welcome.html ├── button-publish-your-app.html ├── components.css ├── components.html ├── tile-app.css ├── tile-app.html ├── tile.css └── tile.html ├── content ├── app-portal │ ├── create-app-record.md │ ├── get-started.md │ ├── manage-app-availability.md │ ├── manage-app-notifications.md │ ├── manage-your-team.md │ ├── measure-app-performance.md │ └── publish-your-app.md ├── apps │ ├── app-concepts-and-use-cases.md │ ├── app-developer-tools.md │ ├── authentication-and-authorization.md │ ├── catalogs.md │ ├── create-app │ │ ├── activate-java.md │ │ ├── activate-nodejs.md │ │ ├── activate-php.md │ │ ├── activate-python.md │ │ ├── callback-java.md │ │ ├── callback-nodejs.md │ │ ├── callback-php.md │ │ └── callback-python.md │ ├── create-custom-app.md │ ├── create-the-ux-of-your-app.md │ ├── homepage.md │ ├── overview.md │ └── secure-your-app.md ├── concepts │ ├── asset-manager.md │ ├── catalog-structure.md │ ├── introduction.md │ ├── pam.md │ ├── products.md │ ├── reference-entities.md │ └── target-market-settings.md ├── event-platform │ ├── api-reference.md │ ├── authentication-and-authorization.md │ ├── available-events.md │ ├── available-filters.md │ ├── best-practices.md │ ├── compatibility.md │ ├── concepts.md │ ├── faq.md │ ├── getting-started.md │ ├── integration-examples.md │ ├── key-platform-behaviors.md │ ├── limitations.md │ ├── logs.md │ ├── migrate-from-deprecated-event-api.md │ └── overview.md ├── events-api │ ├── deprecation-faq.md │ ├── limits-and-scalability.md │ ├── migrate-to-event-platform.md │ ├── more-about-events.md │ ├── overview.md │ ├── security.md │ └── subscription.md ├── events-reference │ ├── events-reference-5.0 │ │ ├── product-models.md │ │ ├── products.md │ │ └── resources │ │ │ ├── product-created.yml │ │ │ ├── product-model-created.yml │ │ │ ├── product-model-removed.yml │ │ │ ├── product-model-updated.yml │ │ │ ├── product-removed.yml │ │ │ └── product-updated.yml │ ├── events-reference-6.0 │ │ ├── product-models.md │ │ ├── products.md │ │ └── resources │ │ │ ├── product-created.yml │ │ │ ├── product-model-created.yml │ │ │ ├── product-model-removed.yml │ │ │ ├── product-model-updated.yml │ │ │ ├── product-removed.yml │ │ │ └── product-updated.yml │ ├── events-reference-7.0 │ │ ├── product-models.md │ │ ├── products.md │ │ └── resources │ │ │ ├── product-created.yml │ │ │ ├── product-model-created.yml │ │ │ ├── product-model-removed.yml │ │ │ ├── product-model-updated.yml │ │ │ ├── product-removed.yml │ │ │ └── product-updated.yml │ └── events-reference-serenity │ │ ├── product-models.md │ │ ├── products.md │ │ └── resources │ │ ├── product-created.yml │ │ ├── product-model-created.yml │ │ ├── product-model-removed.yml │ │ ├── product-model-updated.yml │ │ ├── product-removed.yml │ │ └── product-updated.yml ├── extensions │ ├── overview.md │ └── ui-extensions.md ├── files │ ├── Akeneo PIM API.postman_collection.json │ ├── akeneo-PIM-API-environment-4x.postman_environment.json │ ├── akeneo-PIM-API-environment-old.postman_environment.json │ ├── app-activation-sequence-diagram.txt │ ├── app-authentication-sequence-diagram.txt │ └── your-very-first-collection.postman_collection.json ├── fonts │ ├── Roobert-Bold.woff │ ├── Roobert-Bold.woff2 │ ├── Roobert-BoldItalic.woff │ ├── Roobert-BoldItalic.woff2 │ ├── Roobert-Heavy.woff │ ├── Roobert-Heavy.woff2 │ ├── Roobert-HeavyItalic.woff │ ├── Roobert-HeavyItalic.woff2 │ ├── Roobert-Light.woff │ ├── Roobert-Light.woff2 │ ├── Roobert-LightItalic.woff │ ├── Roobert-LightItalic.woff2 │ ├── Roobert-Medium.woff │ ├── Roobert-Medium.woff2 │ ├── Roobert-MediumItalic.woff │ ├── Roobert-MediumItalic.woff2 │ ├── Roobert-Regular.woff │ ├── Roobert-Regular.woff2 │ ├── Roobert-RegularItalic.woff │ ├── Roobert-RegularItalic.woff2 │ ├── Roobert-SemiBold.woff │ ├── Roobert-SemiBold.woff2 │ ├── Roobert-SemiBoldItalic.woff │ └── Roobert-SemiBoldItalic.woff2 ├── getting-started │ ├── connect-the-pim-4x │ │ ├── step-1.md │ │ ├── step-2.md │ │ ├── step-3.md │ │ └── welcome.md │ ├── connect-the-pim-old │ │ ├── step-1.md │ │ ├── step-2.md │ │ ├── step-3.md │ │ └── welcome.md │ ├── events-api-best-practices-5x │ │ └── welcome.md │ ├── from-identifiers-to-uuid-7x │ │ └── welcome.md │ ├── quick-start-my-first-webhook-5x │ │ ├── step-1.md │ │ ├── step-2.md │ │ └── welcome.md │ ├── synchronize-pim-products-6x │ │ ├── step-0.md │ │ ├── step-1.md │ │ ├── step-2.md │ │ ├── step-3.md │ │ ├── step-4.md │ │ ├── step-5.md │ │ ├── step-6.md │ │ └── welcome.md │ ├── your-first-tutorial-4x │ │ ├── step-1.md │ │ ├── step-2.md │ │ ├── step-3.md │ │ └── welcome.md │ └── your-first-tutorial-old │ │ ├── step-1.md │ │ ├── step-2.md │ │ ├── step-3.md │ │ └── welcome.md ├── graphql │ ├── advanced.md │ ├── best-practices.md │ ├── browse-graphql-capabilities.md │ ├── common-notions.md │ ├── compatibility.md │ ├── error-codes.md │ ├── getting-started.md │ ├── integration.md │ ├── limitations.md │ ├── queries-and-arguments.md │ ├── recommendations.md │ └── use-cases.md ├── guides │ ├── dam-connection │ │ ├── glossary.md │ │ ├── introduction.md │ │ ├── pre-requisites.md │ │ ├── synchronize-assets.md │ │ └── technical-stack.md │ ├── ecommerce-connection │ │ ├── introduction.md │ │ ├── step0-who-is-your-app-intended-for.md │ │ ├── step1-who-does-what.md │ │ ├── step2-understand-akeneo-pim.md │ │ ├── step3-reconcile-PIM-data-with-eCommerce-data.md │ │ └── step4-define-your-first-scope.md │ ├── erp-connection │ │ ├── introduction.md │ │ ├── step1-who-is-your-app-intended-for.md │ │ ├── step2-analyze-erp-data.md │ │ ├── step3-understand-akeneo-pim.md │ │ └── step4-how-to-build-your-app.md │ ├── print-connection │ │ ├── introduction.md │ │ ├── step0-who-is-your-app-intended-for.md │ │ ├── step1-who-does-what.md │ │ ├── step2-understand-akeneo-pim.md │ │ ├── step3-reconcile-PIM-data-with-print-features.md │ │ └── step4-define-your-first-scope.md │ ├── syndication-connection │ │ ├── introduction.md │ │ ├── step0-who-is-your-app-intended-for.md │ │ ├── step1-who-does-what.md │ │ ├── step2-understand-akeneo-pim.md │ │ └── step3-define-your-first-scope.md │ └── translation-connection │ │ ├── introduction.md │ │ ├── step1-who-is-your-app-intended-for.md │ │ ├── step2-understand-akeneo-pim.md │ │ ├── step3-how-to-build-your-app.md │ │ └── step4-known-limits.md ├── img │ ├── Akeneo_APIs.svg │ ├── aep │ │ ├── checkbox-on-apps-connection-page.png │ │ ├── checkbox-on-connection-page.png │ │ ├── custom-integration-with-aws.png │ │ ├── more-complex-use-case.png │ │ ├── multitenant-use-case.png │ │ ├── overview-schema.png │ │ ├── postman-collection.png │ │ ├── postman-create-subscriber.png │ │ └── postman-create-subscription.png │ ├── akene36.png │ ├── akeneo.svg │ ├── apps │ │ ├── 045574c-messagebar-_error.png │ │ ├── 0a59bc4-buttons_-_GOOD.png │ │ ├── 0a9c36d-HELP_-_tooltip.png │ │ ├── 1330753-HELP_-_helper_inline_-_error.png │ │ ├── 15e9fb0-Information_hierarchy_-_BAD.png │ │ ├── 186d6a8-contrast_-_BAD.png │ │ ├── 1903e2b-HELP_-_helper_-_error.png │ │ ├── 1a3ad6b-HELP_-_helper_inline_-_warning.png │ │ ├── 1d63458-error-_GOOD_2.png │ │ ├── 21dc979-message_bas-success.png │ │ ├── 23df9de-error_-_BAD.png │ │ ├── 30057e3-Onboarding_-_Guide_tour.png │ │ ├── 3589c33-Search_-_BAD.png │ │ ├── 3c4404b-HELP_-_helper_inline_-_info.png │ │ ├── 408952a-Pattern.png │ │ ├── 40dba32-Onboarding_-_Guide_tour.png │ │ ├── 4650997-contrast_-_GOOD.png │ │ ├── 468baf5-home-daily_2.png │ │ ├── 4c7e76e-Color_button_-_BAD.png │ │ ├── 526454f-button_hierarchy.png │ │ ├── 5879c20-LINK_-_general_link_to_help_center.png │ │ ├── 61f2655-NAV_-_lateral_navigation.png │ │ ├── 61f44f4-Information_hierarchy_-_GOOD (1).png │ │ ├── 61f44f4-Information_hierarchy_-_GOOD.png │ │ ├── 6381601-Frame_2.jpg │ │ ├── 6610c35-message_bas-success.png │ │ ├── 766c5a7-error_-_GOOD.png │ │ ├── 76e2d20-LINK_-_general_link_to_help_center.png │ │ ├── 89d73f6-First_visite_-_BAD.png │ │ ├── 973e7e8-Frame_2.jpg │ │ ├── 990472f-Onboarding_-_wizard.png │ │ ├── 9b15587-Color_button_-_GOOD.png │ │ ├── a691d13-Search_-_GOOD.png │ │ ├── ae326f3-First_visite_-_GOOD.png │ │ ├── app-activation-sequence-diagram.png │ │ ├── app-authentication-sequence-diagram.png │ │ ├── app-catalog-enable-button.png │ │ ├── app-catalog-list.png │ │ ├── app-ngrok-result.png │ │ ├── apps-fit-akeneo.png │ │ ├── b8a79a1-First_visite_-_GOOD.png │ │ ├── c21f19b-buttons_-_BAD.png │ │ ├── catalogs-product-selection.png │ │ ├── cd05dc9-HELP_-Information.png │ │ ├── connected-custom-app.png │ │ ├── create-a-custom-app-button.png │ │ ├── custom-app-creation-credentials.png │ │ ├── custom-app-creation-info.png │ │ ├── custom-app-regenerate-credentials.png │ │ ├── custom-apps-section.png │ │ ├── d76add3-HELP_-_helper_-_warning.png │ │ ├── d7b8ec6-NAV_-_Top_navigation.png │ │ ├── d8bfe41-Disabled.png │ │ ├── dev-tools-akeneo.svg │ │ ├── dev-tools-download.svg │ │ ├── dev-tools-langages.svg │ │ ├── dev-tools-php.svg │ │ ├── dev-tools-postman.svg │ │ ├── dev-tools-slack.svg │ │ ├── f508a1e-LINK_-_contextual_link_to_helpcenter.png │ │ ├── fcaa6ec-HELP_-_helper_-_info.png │ │ ├── julia.png │ │ ├── mapping-interface.png │ │ ├── marketplace-with-custom-app.png │ │ ├── peter.png │ │ ├── pim-marketplace-with-apps.png │ │ ├── role-developer-mode.png │ │ ├── update-scopes-notification.png │ │ ├── whats-an-app.png │ │ └── wizard-authorization.png │ ├── concepts │ │ ├── asset-attribute-option.svg │ │ ├── asset-dam-link.svg │ │ ├── asset-family-for-transformation.svg │ │ ├── asset-family.svg │ │ ├── asset-manager.svg │ │ ├── asset-media-file.svg │ │ ├── asset-transformation.svg │ │ ├── asset.svg │ │ ├── asset_categories_ui.png │ │ ├── assets_ui.png │ │ ├── association_types_ui.png │ │ ├── attribute_groups_ui.png │ │ ├── attribute_options_ui.png │ │ ├── attributes_ui.png │ │ ├── boolean-asset-attribute.svg │ │ ├── categories_ui.png │ │ ├── channels_ui.png │ │ ├── currencies_ui.png │ │ ├── date-asset-attribute.svg │ │ ├── families_ui.png │ │ ├── family_variants_ui.png │ │ ├── locales_ui.png │ │ ├── media-file-asset-attribute.svg │ │ ├── media-link-asset-attributes.svg │ │ ├── media_files_ui.png │ │ ├── metrics_attributes_ui.png │ │ ├── number-asset-attribute.svg │ │ ├── product_models_in_the_grid_ui.png │ │ ├── product_models_in_the_pef_ui.png │ │ ├── product_with_variants.png │ │ ├── products_ui.png │ │ ├── record-asset-attribute.svg │ │ ├── reference_entity_attribute_options_ui.png │ │ ├── reference_entity_attribute_ui.png │ │ ├── reference_entity_media_file_ui.png │ │ ├── reference_entity_record_ui.png │ │ ├── reference_entity_ui.png │ │ ├── single-and-multiple-options-asset-attributes.svg │ │ ├── text-asset-attribute.svg │ │ └── v1.7 │ │ │ ├── attribute_options_ui.png │ │ │ ├── attributes_ui.png │ │ │ ├── categories_ui.png │ │ │ ├── channels_ui.png │ │ │ ├── families_ui.png │ │ │ ├── locales_ui.png │ │ │ ├── media_files_ui.png │ │ │ └── products_ui.png │ ├── events-api │ │ └── event-log-ui.gif │ ├── extensions │ │ └── ui-extensions │ │ │ ├── action-extension-schema.png │ │ │ ├── pim-header-with-extension.png │ │ │ ├── pim-product-grid-with-bulk-trigger-action.png │ │ │ ├── pim-product-with-tab-extension.png │ │ │ ├── postman-add-extension.png │ │ │ ├── postman-delete-extension.png │ │ │ ├── postman-fill-env.png │ │ │ ├── postman-update-extension-1.png │ │ │ └── postman-update-extension-2.png │ ├── faviconV2.png │ ├── getting-started │ │ ├── api-connection-creation-popin.png │ │ ├── api-connections-empty-screen.png │ │ ├── authentication-response.png │ │ ├── connection-creation-button.png │ │ ├── connection-creation-erp-popin.png │ │ ├── connection-creation-popin.png │ │ ├── connection-credentials-copy-icon.png │ │ ├── connection-credentials.png │ │ ├── copy-past-credentials-old.png │ │ ├── credentials-in-postman.png │ │ ├── credentials-in-the-pim.png │ │ ├── events-api-best-practices │ │ │ └── connector-with-message-queue.png │ │ ├── flow-type-selection.png │ │ ├── my-erp-connection.png │ │ ├── my-very-first-api-connection.png │ │ ├── permission-activation.png │ │ ├── permission-assignation-my-erp-user.png │ │ ├── permission-assignation.png │ │ ├── postman-environment-4x-popin.png │ │ ├── postman-environment-4x.png │ │ ├── postman-environment-old-popin.png │ │ ├── postman-environment-old.png │ │ ├── postman-import-popin.png │ │ ├── quick-start-my-first-webhook │ │ │ ├── create-webhook-site.png │ │ │ ├── event-subscription-configuration-sf-project.png │ │ │ ├── event-subscription-configuration.png │ │ │ ├── log-result.png │ │ │ ├── server-running.png │ │ │ └── webhook-site-test-details.png │ │ ├── role-creation.png │ │ ├── role-naming-my-erp-connector.png │ │ ├── role-naming.png │ │ ├── send-authent-request.png │ │ ├── source-flow-type-selection.png │ │ ├── synchronize-pim-products │ │ │ ├── step-0-pim-objects-relationship-schema.svg │ │ │ ├── step-1-objects-relationship-schema.svg │ │ │ ├── step-1-steps-schema.svg │ │ │ ├── step-2-objects-relationship-schema.svg │ │ │ ├── step-2-steps-schema.svg │ │ │ ├── step-3-objects-relationship-schema.svg │ │ │ ├── step-3-steps-schema.svg │ │ │ ├── step-4-objects-relationship-schema.svg │ │ │ ├── step-4-steps-schema.svg │ │ │ ├── step-5-objects-relationship-schema.svg │ │ │ ├── step-5-steps-schema.svg │ │ │ ├── step-6-objects-relationship-schema.svg │ │ │ └── step-6-steps-schema.svg │ │ ├── token-expiration-in-postman.png │ │ ├── url-environment-4x.png │ │ ├── url-environment-old.png │ │ ├── very-first-request-collection-in-postman.png │ │ └── your-very-first-request.png │ ├── graphql │ │ ├── api-error.png │ │ ├── common-filters.png │ │ ├── common-notions-pagination.png │ │ ├── deprecations-in-graphiql.png │ │ ├── graphiql-ide.jpg │ │ ├── logo.png │ │ ├── query-common-variables.png │ │ ├── query-getting-started.png │ │ └── query-token.png │ ├── guides │ │ ├── asset-conversion.svg │ │ ├── configuration-attribute-type.png │ │ ├── configuration-attribute.png │ │ ├── configuration-category.png │ │ ├── configuration-family.png │ │ ├── configuration-image.png │ │ ├── configuration-product.png │ │ ├── dam-connection-detailed.svg │ │ ├── dam-connection-macro.svg │ │ ├── dam-pim-connection-macro.svg │ │ ├── dam_pim-asset-push.svg │ │ ├── dam_pim-asset-transformation.svg │ │ ├── dam_pim-connection_api.svg │ │ ├── dam_pim-connection_queuingSystem.svg │ │ ├── dam_pim-connection_webhook.svg │ │ ├── dam_pim-general-workflow.svg │ │ ├── ecommerce-connection-macro.svg │ │ ├── ecommerce-erp-connection-macro.svg │ │ ├── erp-dam-pim-ecommerce.svg │ │ ├── erp-dam-pim-syndication.svg │ │ ├── erp-pim-ecommerce-flow.svg │ │ ├── erp-pim-ecommerce.svg │ │ ├── erp-pim-syndication.svg │ │ ├── personas.png │ │ ├── pim-erp-ecommerce-flow.svg │ │ ├── print-connection-macro.svg │ │ ├── syndication-connection-macro.svg │ │ ├── syndication-erp-connection-macro.svg │ │ ├── translation-connection-macro.svg │ │ ├── what-is-a-channel.svg │ │ ├── what-is-a-locale.svg │ │ └── what-is-an-attribute-group.svg │ ├── icons │ │ ├── icon--arrow-back.svg │ │ ├── icon--check.png │ │ ├── icon--close.svg │ │ ├── icon--down.svg │ │ ├── icon--facebook.svg │ │ ├── icon--github.png │ │ ├── icon--linkedin.svg │ │ ├── icon--outside.svg │ │ ├── icon--php-client.svg │ │ ├── icon--postman.svg │ │ ├── icon--rest.svg │ │ ├── icon--search.svg │ │ ├── icon--twitter.svg │ │ ├── icon--unselect-tag.svg │ │ ├── icon--webhook.svg │ │ ├── icon--youtube.svg │ │ ├── icons.svg │ │ └── sandbox.svg │ ├── illustrations │ │ ├── illus--Asset.svg │ │ ├── illus--Assetattribute.svg │ │ ├── illus--Assetattributeoption.svg │ │ ├── illus--Assetfamily.svg │ │ ├── illus--Assetmediafile.svg │ │ ├── illus--Associationtype.svg │ │ ├── illus--Attribute.svg │ │ ├── illus--Attributegroup.svg │ │ ├── illus--Attributeoption.svg │ │ ├── illus--Authentication.svg │ │ ├── illus--Catalogproducts.svg │ │ ├── illus--Catalogs.svg │ │ ├── illus--Category.svg │ │ ├── illus--Channel.svg │ │ ├── illus--Coding.svg │ │ ├── illus--Currency.svg │ │ ├── illus--Drafts.svg │ │ ├── illus--Family.svg │ │ ├── illus--Familyvariant.svg │ │ ├── illus--Locale.svg │ │ ├── illus--Mappingschemaforproducts.svg │ │ ├── illus--Measurefamily.svg │ │ ├── illus--Measurementfamily.svg │ │ ├── illus--Overview.svg │ │ ├── illus--PAMasset.svg │ │ ├── illus--PAMassetcategory.svg │ │ ├── illus--PAMassetreferencefile.svg │ │ ├── illus--PAMassettag.svg │ │ ├── illus--PAMassetvariationfile.svg │ │ ├── illus--Productidentifier.svg │ │ ├── illus--Productmediafile.svg │ │ ├── illus--Productmodel.svg │ │ ├── illus--Productuuid.svg │ │ ├── illus--Publishedproduct.svg │ │ ├── illus--Referenceentity.svg │ │ ├── illus--Referenceentityattribute.svg │ │ ├── illus--Referenceentityattributeoption.svg │ │ ├── illus--Referenceentitymediafile.svg │ │ ├── illus--Referenceentityrecord.svg │ │ ├── illus--System.svg │ │ ├── illus--Translatedproduct.svg │ │ ├── illus--Views.svg │ │ ├── illus--apps.svg │ │ ├── illus--build_amazing_tools.svg │ │ ├── illus--connection.svg │ │ ├── illus--contribution.svg │ │ ├── illus--dam-connection.svg │ │ ├── illus--developer.svg │ │ ├── illus--ecommerce-connection.svg │ │ ├── illus--erp-connection.svg │ │ ├── illus--first-request.svg │ │ ├── illus--how-to-connect.svg │ │ ├── illus--lock.svg │ │ ├── illus--main-banner-apps.svg │ │ ├── illus--main-banner.svg │ │ ├── illus--marketplace.svg │ │ ├── illus--old-versions.svg │ │ ├── illus--php-client.svg │ │ ├── illus--postman.svg │ │ ├── illus--print-connection.svg │ │ ├── illus--syndication-connection.svg │ │ └── illus--translation-connection.svg │ ├── rest-api │ │ ├── activate_api_access.png │ │ ├── authentication_ui.png │ │ ├── create_a_role.png │ │ ├── erp-connection-user-group.png │ │ ├── hide-permission-mode.png │ │ ├── my-erp-user-in-group.png │ │ ├── pim.png │ │ ├── proposal-by-api.png │ │ ├── proposal-permission-mode.png │ │ ├── read-only-permission-mode.png │ │ └── v1.7 │ │ │ ├── activate_api_access.png │ │ │ └── create_a_role.png │ ├── tutorials │ │ ├── how-to-collect-product-variations │ │ │ ├── schema_product_models.svg │ │ │ ├── scheme_model_and_variant.svg │ │ │ └── scheme_variants.png │ │ └── how-to-get-pim-product-information │ │ │ └── schema_workflow_product.svg │ └── ziggy.png ├── mapping │ └── product │ │ ├── 0.0.1 │ │ └── schema │ │ ├── 0.0.10 │ │ └── schema │ │ ├── 0.0.11 │ │ └── schema │ │ ├── 0.0.12 │ │ └── schema │ │ ├── 0.0.13 │ │ └── schema │ │ ├── 0.0.2 │ │ └── schema │ │ ├── 0.0.3 │ │ └── schema │ │ ├── 0.0.4 │ │ └── schema │ │ ├── 0.0.5 │ │ └── schema │ │ ├── 0.0.6 │ │ └── schema │ │ ├── 0.0.7 │ │ └── schema │ │ ├── 0.0.8 │ │ └── schema │ │ ├── 0.0.9 │ │ └── schema │ │ ├── 0.1.0 │ │ └── schema │ │ ├── 0.2.0 │ │ └── schema │ │ ├── 0.3.0 │ │ └── schema │ │ ├── 1.0.0 │ │ ├── example │ │ └── schema │ │ ├── 1.0.1 │ │ └── schema │ │ ├── 1.0.2 │ │ └── schema │ │ └── 1.0.3 │ │ ├── example │ │ └── schema ├── misc │ └── products-with-variants.md ├── news │ ├── 2022.md │ ├── 2023.md │ ├── 2024.md │ └── whats-next.md ├── php-client │ ├── authentication.md │ ├── exception.md │ ├── getting-started.md │ ├── http-client.md │ ├── introduction.md │ ├── list-resources.md │ └── resources │ │ ├── PAM │ │ ├── asset-categories.md │ │ ├── asset-reference-files.md │ │ ├── asset-tags.md │ │ ├── asset-variation-files.md │ │ └── assets.md │ │ ├── app-catalog │ │ ├── app-catalog-product.md │ │ └── app-catalog.md │ │ ├── asset-manager │ │ ├── asset-attribute-options.md │ │ ├── asset-attributes.md │ │ ├── asset-families.md │ │ ├── asset-media-files.md │ │ └── assets.md │ │ ├── catalog-structure │ │ ├── association-types.md │ │ ├── attribute-groups.md │ │ ├── attribute-options.md │ │ ├── attributes.md │ │ ├── categories.md │ │ ├── category-media-files.md │ │ ├── families.md │ │ └── family-variants.md │ │ ├── products │ │ ├── async-calls.md │ │ ├── product-drafts-uuid.md │ │ ├── product-drafts.md │ │ ├── product-media-files.md │ │ ├── product-model-drafts.md │ │ ├── product-models.md │ │ ├── products-uuid.md │ │ ├── products.md │ │ └── published-products.md │ │ ├── reference-entity │ │ ├── attribute-options.md │ │ ├── attributes.md │ │ ├── media-files.md │ │ ├── records.md │ │ └── reference-entities.md │ │ └── target-market-settings │ │ ├── channels.md │ │ ├── currencies.md │ │ ├── locales.md │ │ ├── measure-families.md │ │ └── measurement-families.md ├── redirections │ ├── to-app-concepts-and-use-cases.html │ ├── to-apps-homepage.html │ └── to-get-your-app-token.html ├── rest-api │ ├── authentication.md │ ├── authentication_old.md │ ├── filter.md │ ├── introduction.md │ ├── overview.md │ ├── pagination.md │ ├── permissions.md │ ├── responses.md │ ├── troubleshooting.md │ ├── update.md │ └── why-the-api.md ├── supplier-data-manager │ ├── api-reference.md │ ├── common-usage.md │ └── getting-started.md ├── swagger │ ├── akeneo-web-api.json │ ├── akeneo-web-api.yaml │ ├── definitions.yaml │ ├── parameters.yaml │ ├── paths.yaml │ ├── resources │ │ ├── app_catalogs │ │ │ ├── definitions │ │ │ │ ├── app_catalog.yaml │ │ │ │ ├── app_catalog_creation.yaml │ │ │ │ ├── app_catalog_update.yaml │ │ │ │ └── mapping_schema_product.yaml │ │ │ └── routes │ │ │ │ ├── app_catalogs.yaml │ │ │ │ ├── app_catalogs_id.yaml │ │ │ │ ├── app_catalogs_id_duplicate.yaml │ │ │ │ ├── app_catalogs_id_mapped_models.yaml │ │ │ │ ├── app_catalogs_id_mapped_products.yaml │ │ │ │ ├── app_catalogs_id_mapped_variants.yaml │ │ │ │ ├── app_catalogs_id_product_uuids.yaml │ │ │ │ ├── app_catalogs_id_products.yaml │ │ │ │ ├── app_catalogs_id_products_uuid.yaml │ │ │ │ └── app_catalogs_mapping_schema_product.yaml │ │ ├── asset_attributes │ │ │ ├── definitions │ │ │ │ ├── asset_attribute.yaml │ │ │ │ └── asset_attribute_option.yaml │ │ │ └── routes │ │ │ │ ├── asset_attributes.yaml │ │ │ │ ├── asset_attributes_code.yaml │ │ │ │ ├── asset_attributes_code_options.yaml │ │ │ │ └── asset_attributes_code_options_code.yaml │ │ ├── asset_families │ │ │ ├── definitions │ │ │ │ ├── asset_families.yaml │ │ │ │ ├── asset_family.yaml │ │ │ │ └── examples │ │ │ │ │ ├── asset_families.yaml │ │ │ │ │ └── asset_family.yaml │ │ │ └── routes │ │ │ │ ├── asset_families.yaml │ │ │ │ └── asset_families_code.yaml │ │ ├── asset_media_files │ │ │ └── routes │ │ │ │ ├── asset_media_files.yaml │ │ │ │ └── asset_media_files_code.yaml │ │ ├── assets │ │ │ ├── definitions │ │ │ │ ├── asset.yaml │ │ │ │ └── assets.yaml │ │ │ └── routes │ │ │ │ ├── assets.yaml │ │ │ │ └── assets_code.yaml │ │ ├── association_types │ │ │ ├── definitions │ │ │ │ └── association_type.yaml │ │ │ └── routes │ │ │ │ ├── association_types.yaml │ │ │ │ └── association_types_code.yaml │ │ ├── attribute_groups │ │ │ ├── definitions │ │ │ │ └── attribute_group.yaml │ │ │ └── routes │ │ │ │ ├── attribute_groups.yaml │ │ │ │ └── attribute_groups_code.yaml │ │ ├── attributes │ │ │ ├── definitions │ │ │ │ ├── attribute.yaml │ │ │ │ └── attribute_option.yaml │ │ │ └── routes │ │ │ │ ├── attributes.yaml │ │ │ │ ├── attributes_code.yaml │ │ │ │ ├── attributes_code_options.yaml │ │ │ │ └── attributes_code_options_code.yaml │ │ ├── categories │ │ │ ├── definitions │ │ │ │ ├── category.yaml │ │ │ │ └── category_update.yaml │ │ │ └── routes │ │ │ │ ├── categories.yaml │ │ │ │ ├── categories_code.yaml │ │ │ │ ├── category_media_files.yaml │ │ │ │ └── category_media_files_code_download.yaml │ │ ├── channels │ │ │ ├── definitions │ │ │ │ └── channel.yaml │ │ │ └── routes │ │ │ │ ├── channels.yaml │ │ │ │ └── channels_code.yaml │ │ ├── currencies │ │ │ ├── definitions │ │ │ │ └── currency.yaml │ │ │ └── routes │ │ │ │ ├── currencies.yaml │ │ │ │ └── currencies_code.yaml │ │ ├── deprecated │ │ │ ├── asset_categories │ │ │ │ ├── definitions │ │ │ │ │ └── asset_category.yaml │ │ │ │ └── routes │ │ │ │ │ ├── asset_categories.yaml │ │ │ │ │ └── asset_categories_code.yaml │ │ │ ├── asset_tags │ │ │ │ ├── definitions │ │ │ │ │ └── asset_tag.yaml │ │ │ │ └── routes │ │ │ │ │ ├── asset_tags.yaml │ │ │ │ │ └── asset_tags_code.yaml │ │ │ └── assets │ │ │ │ ├── definitions │ │ │ │ ├── asset.yaml │ │ │ │ ├── asset_reference_file.yaml │ │ │ │ └── asset_variation_file.yaml │ │ │ │ └── routes │ │ │ │ ├── assets.yaml │ │ │ │ ├── assets_code.yaml │ │ │ │ ├── assets_code_reference_files_channel_code_locale_code.yaml │ │ │ │ ├── assets_code_reference_files_channel_code_locale_code_download.yaml │ │ │ │ ├── assets_code_variation_files_channel_code_locale_code.yaml │ │ │ │ └── assets_code_variation_files_channel_code_locale_code_download.yaml │ │ ├── families │ │ │ ├── definitions │ │ │ │ ├── family.yaml │ │ │ │ └── family_variant.yaml │ │ │ └── routes │ │ │ │ ├── families.yaml │ │ │ │ ├── families_code.yaml │ │ │ │ ├── families_code_variants.yaml │ │ │ │ └── families_code_variants_code.yaml │ │ ├── jobs │ │ │ └── routes │ │ │ │ ├── export.yaml │ │ │ │ └── import.yaml │ │ ├── list_endpoints.yaml │ │ ├── locales │ │ │ ├── definitions │ │ │ │ └── locale.yaml │ │ │ └── routes │ │ │ │ ├── locales.yaml │ │ │ │ └── locales_code.yaml │ │ ├── measure_families │ │ │ ├── definitions │ │ │ │ └── measure_family.yaml │ │ │ └── routes │ │ │ │ ├── measure_families.yaml │ │ │ │ └── measure_families_code.yaml │ │ ├── measurement_families │ │ │ ├── definitions │ │ │ │ ├── measurement_families.yaml │ │ │ │ └── measurement_family.yaml │ │ │ └── routes │ │ │ │ └── measurement_families.yaml │ │ ├── media_files │ │ │ ├── definitions │ │ │ │ ├── media_file.yaml │ │ │ │ └── media_file_links.yaml │ │ │ └── routes │ │ │ │ ├── media_files.yaml │ │ │ │ ├── media_files_code.yaml │ │ │ │ └── media_files_code_download.yaml │ │ ├── product_models │ │ │ ├── definitions │ │ │ │ ├── product_model.yaml │ │ │ │ └── product_model_with_intents.yaml │ │ │ └── routes │ │ │ │ ├── product_models.yaml │ │ │ │ ├── product_models_code.yaml │ │ │ │ ├── product_models_code_draft.yaml │ │ │ │ └── product_models_code_proposal.yaml │ │ ├── products │ │ │ ├── definitions │ │ │ │ ├── examples │ │ │ │ │ └── products.yaml │ │ │ │ ├── product.yaml │ │ │ │ └── product_with_intents.yaml │ │ │ └── routes │ │ │ │ ├── products.yaml │ │ │ │ ├── products_code.yaml │ │ │ │ ├── products_code_draft.yaml │ │ │ │ └── products_code_proposal.yaml │ │ ├── products_uuid │ │ │ ├── definitions │ │ │ │ ├── examples │ │ │ │ │ └── products_uuid.yaml │ │ │ │ └── product_uuid.yaml │ │ │ └── routes │ │ │ │ ├── products_uuid.yaml │ │ │ │ ├── products_uuid_search.yaml │ │ │ │ ├── products_uuid_uuid.yaml │ │ │ │ ├── products_uuid_uuid_draft.yaml │ │ │ │ └── products_uuid_uuid_proposal.yaml │ │ ├── published_products │ │ │ ├── definitions │ │ │ │ └── published_product.yaml │ │ │ └── routes │ │ │ │ ├── published_products.yaml │ │ │ │ └── published_products_code.yaml │ │ ├── reference_entities │ │ │ ├── definitions │ │ │ │ ├── reference_entities.yaml │ │ │ │ ├── reference_entity.yaml │ │ │ │ └── reference_entity_links.yaml │ │ │ └── routes │ │ │ │ ├── reference_entities.yaml │ │ │ │ └── reference_entities_code.yaml │ │ ├── reference_entity_attributes │ │ │ ├── definitions │ │ │ │ ├── reference_entity_attribute.yaml │ │ │ │ └── reference_entity_attribute_option.yaml │ │ │ └── routes │ │ │ │ ├── reference_entity_attributes.yaml │ │ │ │ ├── reference_entity_attributes_code.yaml │ │ │ │ ├── reference_entity_attributes_code_options.yaml │ │ │ │ └── reference_entity_attributes_code_options_code.yaml │ │ ├── reference_entity_media_files │ │ │ └── routes │ │ │ │ ├── reference_entity_media_files.yaml │ │ │ │ └── reference_entity_media_files_code.yaml │ │ ├── reference_entity_records │ │ │ ├── definitions │ │ │ │ ├── reference_entity_record.yaml │ │ │ │ └── reference_entity_records.yaml │ │ │ └── routes │ │ │ │ ├── reference_entity_records.yaml │ │ │ │ └── reference_entity_records_code.yaml │ │ ├── system_information.yaml │ │ ├── token.yaml │ │ └── ui_extensions │ │ │ ├── definitions │ │ │ ├── configuration.yaml │ │ │ ├── description.yaml │ │ │ ├── examples │ │ │ │ ├── ui_extension.yaml │ │ │ │ ├── ui_extension_patch_body.yaml │ │ │ │ ├── ui_extension_patch_response.yaml │ │ │ │ └── ui_extension_post_body.yaml │ │ │ ├── name.yaml │ │ │ ├── position.yaml │ │ │ ├── responses │ │ │ │ └── 404not_found.yaml │ │ │ ├── status.yaml │ │ │ ├── type.yaml │ │ │ └── version.yaml │ │ │ └── routes │ │ │ ├── ui_extensions.yaml │ │ │ └── ui_extensions_uuid.yaml │ └── responses.yaml └── tutorials │ ├── guides │ ├── how-to-collect-product-variations.md │ ├── how-to-get-families-and-attributes.md │ ├── how-to-get-pim-category-tree.md │ ├── how-to-get-pim-product-information.md │ ├── how-to-get-your-app-token.md │ └── how-to-retrieve-pim-structure.md │ └── homepage │ └── homepage.md ├── deployments ├── modules │ ├── dependencies │ │ ├── apis.tf │ │ ├── artifact-registry.tf │ │ ├── dns.tf │ │ ├── monitoring.tf │ │ └── variables.tf │ └── services │ │ ├── main.tf │ │ ├── networking │ │ ├── backend-bucket.tf │ │ ├── dns.tf │ │ ├── load-balancer.tf │ │ ├── locals.tf │ │ ├── outputs.tf │ │ └── variables.tf │ │ ├── outputs.tf │ │ ├── storage │ │ ├── main.tf │ │ ├── outputs.tf │ │ └── variables.tf │ │ └── variables.tf └── stages │ ├── dev │ ├── dependencies │ │ ├── main.tf │ │ └── variables.tf │ └── services │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── providers.tf │ │ └── variables.tf │ ├── ppd │ ├── dependencies │ │ ├── main.tf │ │ └── variables.tf │ └── services │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── providers.tf │ │ └── variables.tf │ ├── prd │ ├── dependencies │ │ ├── main.tf │ │ └── variables.tf │ └── services │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── providers.tf │ │ └── variables.tf │ └── sdx │ ├── dependencies │ ├── main.tf │ └── variables.tf │ └── services │ ├── main.tf │ ├── outputs.tf │ ├── providers.tf │ └── variables.tf ├── gulpfile.js ├── package-lock.json ├── package.json ├── src ├── api-reference │ ├── index.handlebars │ └── reference.handlebars ├── events-reference │ └── reference.handlebars ├── index.handlebars └── partials │ ├── app-portal.handlebars │ ├── apps-developer-tools.handlebars │ ├── apps.handlebars │ ├── back-to-top-button.handlebars │ ├── beta.handlebars │ ├── documentation.handlebars │ ├── event-platform.handlebars │ ├── events-documentation.handlebars │ ├── events-reference.handlebars │ ├── extensions.handlebars │ ├── footer.handlebars │ ├── getting-started.handlebars │ ├── graphql-documentation.handlebars │ ├── guided-tutorials-homepage.handlebars │ ├── guided-tutorials.handlebars │ ├── layout.handlebars │ ├── misc.handlebars │ ├── news.handlebars │ └── supplier-data-manager-documentation.handlebars ├── styles ├── alert.less ├── anchor.less ├── apps-developer-tools.less ├── apps-homepage.less ├── button.less ├── code.less ├── codetabs.less ├── fa.less ├── font.less ├── footer.less ├── forms.less ├── guided-tutorial.less ├── img.less ├── jumbotron.less ├── label.less ├── landing-page.less ├── layout.less ├── link.less ├── list.less ├── modal.less ├── nav.less ├── panel.less ├── persona.less ├── sticky.less ├── typography.less └── variables.less ├── tasks ├── build-doc.js ├── copy-assets.js ├── events-reference.js ├── landings.js ├── less.js └── reference.js ├── title-description.json └── yarn.lock /.circleci/list_workflows.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/.circleci/list_workflows.jpg -------------------------------------------------------------------------------- /.circleci/re_run.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/.circleci/re_run.jpg -------------------------------------------------------------------------------- /.circleci/tools/destroyer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/.circleci/tools/destroyer/__init__.py -------------------------------------------------------------------------------- /.circleci/tools/destroyer/config.yml: -------------------------------------------------------------------------------- 1 | application: 2 | short_name: pim-api-docs 3 | gcp_project: 4 | id: akecld-prd-pim-api-docs-dev 5 | region: europe-west3 6 | artifact_registry_name: docker-repository 7 | terraform: 8 | version: 1.6.5 9 | sources_path: /project/deployments 10 | bucket_name: akecld-terraform-pim-api-docs-dev 11 | -------------------------------------------------------------------------------- /.circleci/tools/requirements.txt: -------------------------------------------------------------------------------- 1 | requests==2.22.0 2 | google-api-core==2.8.0 3 | google-auth==2.6.6 4 | google-cloud-core==2.3.2 5 | google-cloud-artifact-registry==1.3.1 6 | google-cloud-storage==2.5.0 7 | google-api-python-client==2.64.0 8 | docker==4.1.0 9 | PyGithub==1.55 10 | PyYAML==6.0.1 11 | GitPython==3.1.30 12 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/.github/CODEOWNERS -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.sublime-project 2 | *.sublime-workspace 3 | /dist/ 4 | /node_modules/ 5 | .DS_Store 6 | /tmp/ 7 | config.json 8 | .env 9 | /.idea -------------------------------------------------------------------------------- /.gitleaks.toml: -------------------------------------------------------------------------------- 1 | [extend] 2 | # useDefault will extend the base configuration with the default gitleaks config: 3 | # https://github.com/zricethezav/gitleaks/blob/master/config/gitleaks.toml 4 | useDefault = true 5 | 6 | [allowlist] 7 | description = 'Custom global allow list' 8 | paths = [ 9 | # These files generate alerts but they are test files 10 | '''content/swagger/akeneo-web-api.json''', 11 | # GraphQL documentation 12 | '''content/graphql/setup/getting-started.md''', 13 | # On API Spec we have example of secret 14 | '''content/swagger/aep/public-oas.yml''', 15 | # Event Platform getting started documentation 16 | '''content/event-platform/getting-started.md''', 17 | # Rest API old authentication 18 | '''content/rest-api/authentication_old.md''', 19 | # UI Extension documentation 20 | '''content/extensions/ui-extensions.md''', 21 | ] 22 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:16-alpine 2 | RUN apk add yarn 3 | RUN apk add openssh-client 4 | RUN apk add rsync 5 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | UID = $(id -u) 2 | GID = $(id -g) 3 | 4 | DOCKER_IMAGE_TAG = pim-api-docs:latest 5 | DOCKER_RUN = docker run -it --rm -u $(UID):$(GID) -v "$${PWD}":/opt/workdir -w /opt/workdir 6 | 7 | .PHONY: docker-build yarn-install serve deploy-staging 8 | .DEFAULT_GOAL := build 9 | 10 | docker-build: 11 | docker build -t $(DOCKER_IMAGE_TAG) - < Dockerfile 12 | 13 | yarn-install: docker-build 14 | $(DOCKER_RUN) -e HOME=/tmp -v /etc/passwd:/etc/passwd:ro $(DOCKER_IMAGE_TAG) yarn install 15 | 16 | watch: yarn-install 17 | $(DOCKER_RUN) --expose=8000 -p=8000:8000 $(DOCKER_IMAGE_TAG) yarn gulp serve 18 | 19 | build: yarn-install 20 | $(DOCKER_RUN) $(DOCKER_IMAGE_TAG) yarn gulp create-dist 21 | 22 | deploy: build 23 | $(DOCKER_RUN) -v /etc/passwd:/etc/passwd:ro -v $${SSH_AUTH_SOCK}:/ssh-auth.sock:ro -e SSH_AUTH_SOCK=/ssh-auth.sock $(DOCKER_IMAGE_TAG) rsync --no-v -e "ssh -q -p $${PORT} -o StrictHostKeyChecking=no -o PubkeyAcceptedKeyTypes=+ssh-rsa" -az --delete dist/ akeneo@$${HOSTNAME}:/var/www/html 24 | -------------------------------------------------------------------------------- /components/block-about-app.css: -------------------------------------------------------------------------------- 1 | .block-about-app { 2 | position: relative; 3 | background-color: #F1F4F9; 4 | padding: 45px 38px; 5 | margin-top: 81px; 6 | 7 | font-size: 16px; 8 | line-height: 24px; 9 | 10 | color: #677688; 11 | border-radius: 5px; 12 | } 13 | 14 | .block-about-app-img { 15 | position: absolute; 16 | right: 5.92%; 17 | bottom: 50.66%; 18 | height: 183px; 19 | width: 231px; 20 | } 21 | 22 | .block-about-app img { 23 | min-width: 100%; 24 | } 25 | 26 | 27 | .block-about-app-row { 28 | display: flex; 29 | align-items: center; 30 | } 31 | 32 | .block-about-app-title { 33 | font-family: 'Roobert'; 34 | font-style: normal; 35 | font-weight: 700; 36 | font-size: 26px; 37 | line-height: 31px; 38 | display: flex; 39 | align-items: center; 40 | 41 | color: #677688; 42 | } 43 | 44 | .block-about-app-text { 45 | font-family: 'Roobert'; 46 | font-style: normal; 47 | font-weight: 400; 48 | font-size: 16px; 49 | line-height: 19px; 50 | margin-top: 45px; 51 | 52 | color: #677688; 53 | } 54 | 55 | .block-about-app-row .block-about-app-text { 56 | width: 87%; 57 | } 58 | 59 | .block-link{ 60 | color: #4CA8E0; 61 | } 62 | -------------------------------------------------------------------------------- /components/block-about-app.html: -------------------------------------------------------------------------------- 1 |
2 |
Need to learn more about Apps?
3 |
4 | 9 |
10 | 11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /components/block-welcome.css: -------------------------------------------------------------------------------- 1 | .block-welcome { 2 | position: relative; 3 | background-color: #F1F4F9; 4 | padding: 30px 46px; 5 | margin-top: 27px; 6 | 7 | font-size: 16px; 8 | line-height: 24px; 9 | 10 | color: #677688; 11 | border-radius: 5px; 12 | } 13 | 14 | .block-welcome img { 15 | margin-top: -31px; 16 | margin-right: 27px; 17 | margin-bottom: -11px; 18 | } 19 | 20 | .block-welcome-row { 21 | display: flex; 22 | align-items: center; 23 | gap: 73px; 24 | } 25 | 26 | .block-welcome-title { 27 | font-family: 'Roobert'; 28 | font-style: normal; 29 | font-weight: 500; 30 | font-size: 22px; 31 | line-height: 26px; 32 | display: flex; 33 | align-items: center; 34 | 35 | color: #677688; 36 | } 37 | 38 | .block-welcome-text { 39 | font-family: 'Roobert'; 40 | font-style: normal; 41 | font-weight: 400; 42 | font-size: 16px; 43 | line-height: 19px; 44 | margin-top: 30px; 45 | 46 | color: #677688; 47 | } 48 | -------------------------------------------------------------------------------- /components/block-welcome.html: -------------------------------------------------------------------------------- 1 |
2 |
Welcome!
3 |
4 |
5 | This pre-requisite section will follow you all along the tutorials 6 | marked with the use case "App workflow". 7 |
8 | 9 |
10 |
11 | The workflow starts with this tutorial that will guide you through the creation of a draft App. 12 | At the end of this tutorial, your draft App will receive an access token and will be able to call 13 | the REST API. 14 |
15 |
16 | Let's start! 17 |
18 |
19 | -------------------------------------------------------------------------------- /components/button-publish-your-app.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 7 | 8 |
9 | -------------------------------------------------------------------------------- /components/tile-app.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | Start Apps New 4 |
5 |
6 | Starter for bootstraping your first Akeneo 7 | App quickly. 8 |
9 |
10 | 11 |
12 |
13 | 14 |
Github repository:
akeneo/sample-apps/basic-app
15 |
16 |
By Akeneo
17 |
18 | 19 | -------------------------------------------------------------------------------- /components/tile.css: -------------------------------------------------------------------------------- 1 | .tile { 2 | position: relative; 3 | box-sizing: border-box; 4 | word-wrap: break-word; 5 | 6 | display: flex; 7 | flex-direction: row; 8 | align-items: flex-start; 9 | padding: 20px 25px 10px; 10 | gap: 10px; 11 | 12 | width: 355px; 13 | height: 130px; 14 | 15 | background: #F1F4F9; 16 | 17 | border: 1px solid #8C9AAF; 18 | border-radius: 5px; 19 | } 20 | 21 | .tile-title { 22 | position: absolute; 23 | font-family: 'Roobert'; 24 | font-style: normal; 25 | font-weight: 600; 26 | font-size: 24px; 27 | line-height: 29px; 28 | 29 | display: flex; 30 | align-items: center; 31 | 32 | color: #414D97; 33 | 34 | flex: none; 35 | order: 0; 36 | flex-grow: 0; 37 | } 38 | 39 | .tile-tag { 40 | display: flex; 41 | flex-direction: row; 42 | width: auto; 43 | position: absolute; 44 | bottom: 10px; 45 | right: 0; 46 | } 47 | 48 | .tile-tag .tag-selectable { 49 | margin-right: 10px; 50 | } 51 | -------------------------------------------------------------------------------- /components/tile.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | How to get your App token & other think 4 |
5 |
6 | 10 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /content/app-portal/measure-app-performance.md: -------------------------------------------------------------------------------- 1 | # Measure app performance 2 | 3 | ## Overview of reporting tools 4 | 5 | App Store Portal provides the following analytics to measure your app's performance. 6 | 7 | ### App Analytics 8 | 9 | You can use App Analytics to: 10 | 11 | - Find out how many pageviews your app made in the past week. 12 | - Find out how many customers activated your app from their Akeneo PIM in the past week. 13 | 14 | ::: info 15 | You’d like to get more data about your app? Please, [let us know](https://surveys.hotjar.com/3598506e-7dda-419e-8031-7f802b941779) which metrics could help you monitor your app performance. 16 | ::: 17 | -------------------------------------------------------------------------------- /content/apps/app-developer-tools.md: -------------------------------------------------------------------------------- 1 | # App developer tools 2 | 3 | ## Getting Started with Sample Apps 4 | 10 | 11 | -------------------------------------------------------------------------------- /content/apps/create-app/activate-php.md: -------------------------------------------------------------------------------- 1 | ```php [activate:PHP] 2 | 3 | // Let's create an `activate.php` file 4 | 5 | $oauthClientId = ''; 6 | $getAuthorizationUrl = '%s/connect/apps/v1/authorize?%s'; 7 | $scopes = ['read_products', 'write_products', 'delete_products']; 8 | 9 | session_start(); 10 | 11 | $pimUrl = $_GET['pim_url']; 12 | if (empty($pimUrl)) { 13 | exit('Missing PIM URL in the query'); 14 | } 15 | 16 | // create a random state for preventing cross-site request forgery 17 | $state = bin2hex(random_bytes(10)); 18 | 19 | // Store in the user session the state and the PIM URL 20 | $_SESSION['oauth2_state'] = $state; 21 | $_SESSION['pim_url'] = $pimUrl; 22 | 23 | // Build the parameters for the Authorization Request 24 | // https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.1 25 | $authorizeUrlParams = http_build_query([ 26 | 'response_type' => 'code', 27 | 'client_id' => $oauthClientId, 28 | 'scope' => implode(' ', $scopes), 29 | 'state' => $state, 30 | ]); 31 | 32 | // Build the url for the Authorization Request using the PIM URL 33 | $url = sprintf($getAuthorizationUrl, $pimUrl, $authorizeUrlParams); 34 | header('Location: '.$url); 35 | exit; 36 | ``` -------------------------------------------------------------------------------- /content/event-platform/api-reference.md: -------------------------------------------------------------------------------- 1 | # API reference 2 | 3 | Several choices are offered to deep dive into our API, to discover all the endpoints, and their request/response schema: 4 | 5 | - Download our Open API specification, it's the source of truth. 6 | - You can also consult this static documentation 7 | - Discover it thanks to the postman collection 8 | 9 | 10 | 11 | ::: panel-link Continue by exploring the available events you'll be able to subscribe to. [Next](/event-platform/available-events.html) 12 | ::: 13 | -------------------------------------------------------------------------------- /content/event-platform/compatibility.md: -------------------------------------------------------------------------------- 1 | # PIM Compatibility 2 | 3 | The compatibility of the Event Platform with `various editions` of Akeneo PIM is explained below. 4 | 5 | | Akeneo PIM Edition | Supported ? | 6 | |---------------------------|---------------| 7 | | ENTERPRISE EDITION (SAAS) | Supported | 8 | | ENTERPRISE EDITION (PAAS) | Not supported | 9 | | GROWTH EDITION | Supported | 10 | | COMMUNITY EDITION | Not supported | 11 | 12 | ::: panel-link Consult now our Quotas&Limits section [Next](/event-platform/limitations.html) 13 | ::: 14 | -------------------------------------------------------------------------------- /content/event-platform/limitations.md: -------------------------------------------------------------------------------- 1 | # Are there any quotas or limits? 2 | 3 | 4 | **Event Platform Limits:** 5 | 6 | - Up to 20 subscribers per PIM instance 7 | - Up to 20 subscriptions per subscriber 8 | 9 | **Event Platform Quotas:** 10 | 11 | Our Event platform has specific quotas designed to ensure optimal performance and fair usage for all users. 12 | - **Weekly Event Limit**: You can distribute up to 5 million events per week for the light payload. 13 | - **Exceeding Limits**: If you exceed this limit occasionally, your usage will not be interrupted. However, habitual overages may require further discussion to optimize your usage. 14 | 15 | ::: panel-link Consult now our FAQ [Next](/event-platform/faq.html) 16 | ::: -------------------------------------------------------------------------------- /content/event-platform/migrate-from-deprecated-event-api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/event-platform/migrate-from-deprecated-event-api.md -------------------------------------------------------------------------------- /content/event-platform/overview.md: -------------------------------------------------------------------------------- 1 | # Event Platform Overview 2 | 3 | The **Event Platform** seamlessly integrates with Akeneo PIM through a subscription-based event system. External applications can subscribe to specific events triggered within Akeneo PIM, enabling faster data updates and synchronization than continuous polling. 4 | 5 | Using our event platform ensures smooth and efficient responses to changes in your PIM, such as product updates, deletions, and other significant events, enhancing your system's responsiveness and connectivity. 6 | 7 | 8 | ![overview-schema.png](../img/aep/overview-schema.png) 9 | 10 | ::: panel-link Let's get started! [Next](/event-platform/getting-started.html) 11 | ::: 12 | -------------------------------------------------------------------------------- /content/events-api/limits-and-scalability.md: -------------------------------------------------------------------------------- 1 | # Limits and Scalability 2 | 3 | ## PIM side limits 4 | 5 | ### Number of event subscriptions 6 | 7 | You can only subscribe to `3` events. 8 | 9 | ### Limit of event API requests per hour 10 | 11 | The amount of event API requests per hour is `4000`. 12 | 13 | ### Event API Batch size 14 | 15 | Each event API request can contain up to `10` events. 16 | 17 | ### Request timeout 18 | 19 | Each event API request has a timeout of `0.5` seconds. 20 | -------------------------------------------------------------------------------- /content/events-reference/events-reference-5.0/resources/product-model-removed.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | events: 4 | type: array 5 | items: 6 | type: object 7 | properties: 8 | resource: 9 | type: object 10 | properties: 11 | action: 12 | type: string 13 | description: Event type 14 | event_id: 15 | type: string 16 | description: Unique event identifier 17 | event_datetime: 18 | type: string 19 | description: Event datetime 20 | author: 21 | type: string 22 | description: Author of the event 23 | author_type: 24 | type: string 25 | description: Type of the author "ui" or "api" 26 | pim_source: 27 | type: string 28 | description: URL of the PIM that sends the event 29 | data: 30 | type: object 31 | properties: 32 | code: 33 | type: string 34 | description: Product model code 35 | -------------------------------------------------------------------------------- /content/events-reference/events-reference-5.0/resources/product-removed.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | events: 4 | type: array 5 | items: 6 | type: object 7 | properties: 8 | action: 9 | type: string 10 | description: Event type 11 | event_id: 12 | type: string 13 | description: Unique event identifier 14 | event_datetime: 15 | type: string 16 | description: Event datetime 17 | author: 18 | type: string 19 | description: Author of the event 20 | author_type: 21 | type: string 22 | description: Type of the author "ui" or "api" 23 | pim_source: 24 | type: string 25 | description: URL of the PIM that sends the event 26 | data: 27 | type: object 28 | properties: 29 | resource: 30 | type: object 31 | properties: 32 | identifier: 33 | type: string 34 | -------------------------------------------------------------------------------- /content/events-reference/events-reference-6.0/resources/product-model-removed.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | events: 4 | type: array 5 | items: 6 | type: object 7 | properties: 8 | resource: 9 | type: object 10 | properties: 11 | action: 12 | type: string 13 | description: Event type 14 | event_id: 15 | type: string 16 | description: Unique event identifier 17 | event_datetime: 18 | type: string 19 | description: Event datetime 20 | author: 21 | type: string 22 | description: Author of the event 23 | author_type: 24 | type: string 25 | description: Type of the author "ui" or "api" 26 | pim_source: 27 | type: string 28 | description: URL of the PIM that sends the event 29 | data: 30 | type: object 31 | properties: 32 | code: 33 | type: string 34 | description: Product model code 35 | -------------------------------------------------------------------------------- /content/events-reference/events-reference-6.0/resources/product-removed.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | events: 4 | type: array 5 | items: 6 | type: object 7 | properties: 8 | action: 9 | type: string 10 | description: Event type 11 | event_id: 12 | type: string 13 | description: Unique event identifier 14 | event_datetime: 15 | type: string 16 | description: Event datetime 17 | author: 18 | type: string 19 | description: Author of the event 20 | author_type: 21 | type: string 22 | description: Type of the author "ui" or "api" 23 | pim_source: 24 | type: string 25 | description: URL of the PIM that sends the event 26 | data: 27 | type: object 28 | properties: 29 | resource: 30 | type: object 31 | properties: 32 | identifier: 33 | type: string 34 | -------------------------------------------------------------------------------- /content/events-reference/events-reference-7.0/resources/product-model-removed.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | events: 4 | type: array 5 | items: 6 | type: object 7 | properties: 8 | resource: 9 | type: object 10 | properties: 11 | action: 12 | type: string 13 | description: Event type 14 | event_id: 15 | type: string 16 | description: Unique event identifier 17 | event_datetime: 18 | type: string 19 | description: Event datetime 20 | author: 21 | type: string 22 | description: Author of the event 23 | author_type: 24 | type: string 25 | description: Type of the author "ui" or "api" 26 | pim_source: 27 | type: string 28 | description: URL of the PIM that sends the event 29 | data: 30 | type: object 31 | properties: 32 | code: 33 | type: string 34 | description: Product model code 35 | -------------------------------------------------------------------------------- /content/events-reference/events-reference-7.0/resources/product-removed.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | events: 4 | type: array 5 | items: 6 | type: object 7 | properties: 8 | action: 9 | type: string 10 | description: Event type 11 | event_id: 12 | type: string 13 | description: Unique event identifier 14 | event_datetime: 15 | type: string 16 | description: Event datetime 17 | author: 18 | type: string 19 | description: Author of the event 20 | author_type: 21 | type: string 22 | description: Type of the author "ui" or "api" 23 | pim_source: 24 | type: string 25 | description: URL of the PIM that sends the event 26 | data: 27 | type: object 28 | properties: 29 | resource: 30 | type: object 31 | properties: 32 | identifier: 33 | type: string 34 | description: Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute 35 | uuid: 36 | type: string 37 | description: Product UUID 38 | -------------------------------------------------------------------------------- /content/events-reference/events-reference-serenity/resources/product-model-removed.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | events: 4 | type: array 5 | items: 6 | type: object 7 | properties: 8 | resource: 9 | type: object 10 | properties: 11 | action: 12 | type: string 13 | description: Event type 14 | event_id: 15 | type: string 16 | description: Unique event identifier 17 | event_datetime: 18 | type: string 19 | description: Event datetime 20 | author: 21 | type: string 22 | description: Author of the event 23 | author_type: 24 | type: string 25 | description: Type of the author "ui" or "api" 26 | pim_source: 27 | type: string 28 | description: URL of the PIM that sends the event 29 | data: 30 | type: object 31 | properties: 32 | code: 33 | type: string 34 | description: Product model code 35 | -------------------------------------------------------------------------------- /content/events-reference/events-reference-serenity/resources/product-removed.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | events: 4 | type: array 5 | items: 6 | type: object 7 | properties: 8 | action: 9 | type: string 10 | description: Event type 11 | event_id: 12 | type: string 13 | description: Unique event identifier 14 | event_datetime: 15 | type: string 16 | description: Event datetime 17 | author: 18 | type: string 19 | description: Author of the event 20 | author_type: 21 | type: string 22 | description: Type of the author "ui" or "api" 23 | pim_source: 24 | type: string 25 | description: URL of the PIM that sends the event 26 | data: 27 | type: object 28 | properties: 29 | resource: 30 | type: object 31 | properties: 32 | identifier: 33 | type: string 34 | description: Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute 35 | uuid: 36 | type: string 37 | description: Product UUID 38 | -------------------------------------------------------------------------------- /content/extensions/overview.md: -------------------------------------------------------------------------------- 1 | # Extensions 2 | 3 | The **Extensions** solution is designed to enhance and customize the PIM user experience by allowing you to add new features and functionalities tailored to your specific business needs. 4 | 5 | By leveraging the Extensions solution, you can take advantage of various plugins and customizations that improve usability and streamline processes. Whether you need to automate repetitive tasks, or generate advanced reports for better insights, the Extensions solution provides the flexibility to enhance the PIM experience. Our comprehensive documentation and support resources will guide you through the process of discovering creating, and managing extensions, empowering you to maximize the value of your product information. 6 | 7 | ::: panel-link Let's discover UI extensions! [Next](/extensions/ui-extensions.html) 8 | ::: 9 | -------------------------------------------------------------------------------- /content/files/akeneo-PIM-API-environment-4x.postman_environment.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Akeneo 4.0 / 5.0 PIM REST API environment", 3 | "values": [ 4 | { 5 | "enabled": true, 6 | "key": "url", 7 | "value": "https://your-favorite-4x-PIM.akeneo.com", 8 | "type": "text" 9 | }, 10 | { 11 | "enabled": true, 12 | "key": "clientId", 13 | "value": "connection_client_id", 14 | "type": "text" 15 | }, 16 | { 17 | "enabled": true, 18 | "key": "secret", 19 | "value": "connection_secret", 20 | "type": "text" 21 | }, 22 | { 23 | "enabled": true, 24 | "key": "username", 25 | "value": "connection_username", 26 | "type": "text" 27 | }, 28 | { 29 | "enabled": true, 30 | "key": "password", 31 | "value": "connection_password", 32 | "type": "text" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /content/files/akeneo-PIM-API-environment-old.postman_environment.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Akeneo 1.7/2.x/3.x PIM REST API environment", 3 | "values": [ 4 | { 5 | "enabled": true, 6 | "key": "url", 7 | "value": "https://your-favorite-1.7-2x-or-3x-PIM.akeneo.com", 8 | "type": "text" 9 | }, 10 | { 11 | "enabled": true, 12 | "key": "clientId", 13 | "value": "client_id", 14 | "type": "text" 15 | }, 16 | { 17 | "enabled": true, 18 | "key": "secret", 19 | "value": "secret", 20 | "type": "text" 21 | }, 22 | { 23 | "enabled": true, 24 | "key": "username", 25 | "value": "username", 26 | "type": "text" 27 | }, 28 | { 29 | "enabled": true, 30 | "key": "password", 31 | "value": "password", 32 | "type": "text" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /content/files/app-activation-sequence-diagram.txt: -------------------------------------------------------------------------------- 1 | materialdesignicons f004 "**++User++**" as User #000000 2 | participant "**++Akeneo PIM++**" as PIM 3 | participant "**++App++**" as App 4 | 5 | lifelinestyle User :1:dashed 6 | lifelinestyle PIM :1:solid 7 | lifelinestyle App :1:solid 8 | 9 | group #dddddd User navigation 10 | 11 | User->PIM: Launch App Activation 12 | activate PIM 13 | PIM-:1>App: Redirection to the Activation URL 14 | deactivate PIM 15 | activate App 16 | App-:1>PIM: Redirection for the Authorization Request 17 | deactivate App 18 | activate PIM 19 | User->PIM: Validate Authorization Request 20 | PIM->App: Redirection to the Callback URL 21 | deactivate PIM 22 | activate App 23 | entryspacing 2 24 | 25 | end 26 | group #dddddd API requests 27 | 28 | entryspacing 1 29 | App->PIM: Access Token Request 30 | deactivate App 31 | activate PIM 32 | entryspacing 1 33 | PIM-->App: Access Token Response 34 | deactivate PIM 35 | entryspacing 2 36 | App->PIM: REST API calls with token 37 | 38 | end 39 | -------------------------------------------------------------------------------- /content/files/app-authentication-sequence-diagram.txt: -------------------------------------------------------------------------------- 1 | materialdesignicons f004 "**++User++**" as User #000000 2 | participant "**++Akeneo PIM++**" as PIM 3 | participant "**++App++**" as App 4 | 5 | lifelinestyle User :1:dashed 6 | lifelinestyle PIM :1:solid 7 | lifelinestyle App :1:solid 8 | 9 | group #dddddd User navigation 10 | 11 | User->PIM: Launch App Activation 12 | activate PIM 13 | PIM-:1>App: Redirection to the Activation URL 14 | deactivate PIM 15 | activate App 16 | App-:1>PIM: Redirection for the Authorization Request\n**with OpenID scope** 17 | deactivate App 18 | activate PIM 19 | User->PIM: Validate Authorization Request 20 | User->PIM: **Validate Authentication Request** 21 | PIM->App: Redirection to the Callback URL 22 | deactivate PIM 23 | activate App 24 | entryspacing 2 25 | 26 | end 27 | group #dddddd API requests 28 | 29 | entryspacing 1 30 | App->PIM: Access Token Request 31 | deactivate App 32 | activate PIM 33 | entryspacing 1 34 | PIM-->App: Access Token Response\n**with ID Token** 35 | deactivate PIM 36 | entryspacing 2 37 | 38 | end 39 | -------------------------------------------------------------------------------- /content/fonts/Roobert-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Bold.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Bold.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-BoldItalic.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-BoldItalic.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-Heavy.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Heavy.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-Heavy.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Heavy.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-HeavyItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-HeavyItalic.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-HeavyItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-HeavyItalic.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Light.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Light.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-LightItalic.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-LightItalic.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Medium.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Medium.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-MediumItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-MediumItalic.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-MediumItalic.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Regular.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-Regular.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-RegularItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-RegularItalic.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-RegularItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-RegularItalic.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-SemiBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-SemiBold.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-SemiBold.woff2 -------------------------------------------------------------------------------- /content/fonts/Roobert-SemiBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-SemiBoldItalic.woff -------------------------------------------------------------------------------- /content/fonts/Roobert-SemiBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/fonts/Roobert-SemiBoldItalic.woff2 -------------------------------------------------------------------------------- /content/getting-started/connect-the-pim-old/step-3.md: -------------------------------------------------------------------------------- 1 | # Configure your connector 2 | 3 | Thanks to step 1, you now have a wonderful connector. 4 | Thanks to step 2, you now have: 5 | - a username, 6 | - a password for this user, 7 | - a client ID, 8 | - a secret. 9 | 10 | Let's now configure your connection with the credentials! 11 | 12 | ## Step by step 13 | Give this set of credentials to the connector you cooked in step 1. 14 | They will authenticate all its REST API calls. 15 | 16 | You can now use your connector for real and test the entire workflow, from the product creation in your ERP to their creation into the PIM, for our tutorial example. 17 | 18 | And... that's it! :tada: You now know how to properly connect the PIM. :wink: 19 | -------------------------------------------------------------------------------- /content/getting-started/synchronize-pim-products-6x/step-0.md: -------------------------------------------------------------------------------- 1 | # Discover the PIM objects relationship schema 2 | 3 | The PIM is a complex system with many objects, [concepts](https://help.akeneo.com/pim/serenity/themes-for-julia.html), and interactions between its components. The first time you consume an API resource, you may feel puzzled by your response payloads. 4 | So, before beginning your synchronization process, make sure to understand these interactions: it's a little step during your journey, but a crucial one for your comprehension. 5 | 6 | And because a picture is worth a thousand words, the following global relationship schema may help you. 7 | 8 | ![PIM objects relationship schema](../../img/getting-started/synchronize-pim-products/step-0-pim-objects-relationship-schema.svg) 9 | 10 | This relation schema is the complete version of what you will discover, step by step, all along with this guide. 11 | Every square represents a queryable resource of your PIM; narrows show interactions between them. 12 | 13 | ::: tips 14 | Don't forget this page and come back to it whenever you need to see "the big picture". 15 | ::: 16 | 17 | That's all! Let's now start serious matters... 18 | 19 | ::: panel-link [Next step: synchronize your PIM structure](/getting-started/synchronize-pim-products-6x/step-1.html) 20 | ::: 21 | -------------------------------------------------------------------------------- /content/getting-started/your-first-tutorial-4x/welcome.md: -------------------------------------------------------------------------------- 1 | # 👋 Welcome to this tutorial! 2 | 3 | This tutorial will teach you: 4 | > How to make your very first REST API request on Akeneo Product Cloud via an API `Connector` 5 | 6 | ## Goal 7 | This is the very first tutorial to follow. At the end, you will have: 8 | - declared a new connection into the PIM, 9 | - obtained your credentials to authenticate yourself with the REST API, 10 | - received products from your PIM by using the REST API. 11 | 12 | ## Prerequisite 13 | 14 | **You have access to Akeneo Product Cloud** 15 | This can seem pretty obvious. But yeah! You will need a PIM if you want to make any REST API requests. 16 | And of course, you also have to make sure that you can access it from where you are requesting. 17 | ::: info 18 | This tutorial is dedicated to Akeneo Product Cloud. If you are working on a previous PIM version (<4.0), we also got you covered! :wink: There is a tutorial for you right [here](/getting-started/your-first-tutorial-old/welcome.html). 19 | ::: 20 | 21 | That's it! :tada: 22 | 23 | ::: panel-link Let's move to the first step of this tutorial [The connection creation](/getting-started/your-first-tutorial-4x/step-1.html) 24 | ::: 25 | -------------------------------------------------------------------------------- /content/getting-started/your-first-tutorial-old/welcome.md: -------------------------------------------------------------------------------- 1 | # 👋 Welcome to this tutorial! 2 | 3 | This tutorial will teach you: 4 | > How to make your very first REST API request on a v1.7, v2 or v3 PIM 5 | 6 | ## Goal 7 | This is the very first tutorial to follow. At the end, you will have: 8 | - obtained your credentials to authenticate yourself with the REST API, 9 | - received products from your PIM by using the REST API. 10 | 11 | ## Prerequisite 12 | 13 | **You have access to a v1.7, v2 or v3 Akeneo PIM.** 14 | This can seem pretty obvious. But yeah! You will need a PIM if you want to make any REST API requests. 15 | And of course, you also have to make sure that you can access it from where you are requesting. 16 | ::: info 17 | This tutorial is dedicated to version of the PIM older than the v4. If you are working on a v4 PIM or newer, we also got you covered! :wink: There is a tutorial for you right [here](/getting-started/your-first-tutorial-4x/welcome.html). 18 | ::: 19 | 20 | That's it! :tada: 21 | 22 | ::: panel-link Let's move to the first step of this tutorial [The credentials generation](/getting-started/your-first-tutorial-old/step-1.html) 23 | ::: 24 | 25 | -------------------------------------------------------------------------------- /content/graphql/compatibility.md: -------------------------------------------------------------------------------- 1 | # PIM Compatibility 2 | 3 | The compatibility of the Akeneo `GraphQL API` with `various editions` of Akeneo PIM is explained below. 4 | 5 | | Akeneo PIM Edition | Supported ? | 6 | |---------------------------|---------------| 7 | | ENTERPRISE EDITION (SAAS) | Supported | 8 | | ENTERPRISE EDITION (PAAS) | Not supported | 9 | | GROWTH EDITION | Supported | 10 | | COMMUNITY EDITION | Not supported | 11 | 12 | ::: panel-link Consult now our usage recommendations [Next](/graphql/recommendations.html) 13 | ::: 14 | -------------------------------------------------------------------------------- /content/graphql/recommendations.md: -------------------------------------------------------------------------------- 1 | # Our usage recommendation 2 | 3 | :::info 4 | We encourage you to use the Akeneo **GraphQL API** as follows: 5 | ::: 6 | 7 | - An **App/integration** need **only data reading** ⇒ Use the **GraphQL API** 8 | - An **App/integration** need **data reading & writing** 9 | - Few data to fetch & write ⇒ Use the **REST API** 10 | - Only writing data ⇒ Use the **REST API** 11 | - Complex data / relations fetching + writing ⇒ Use both the **GraphQL API** and the **REST API** 12 | 13 | - An **App/integration** need **data reading with filtering** 14 | - Without UI ⇒ **GraphQL API** with **the search parameter** 15 | - Using UI ⇒ **GraphQL API** + **CatalogsForApps** (on the roadmap) 16 | 17 | ::: panel-link And now, have a look at the GraphQL API limitations [Next](/graphql/limitations.html) 18 | ::: 19 | -------------------------------------------------------------------------------- /content/guides/dam-connection/glossary.md: -------------------------------------------------------------------------------- 1 | # Glossary 2 | 3 | To better understand what we are talking about, have a look at Akeneo PIM [Asset manager concepts](/concepts/asset-manager.html). 4 | 5 | Every DAM (Digital Asset Manager) third-party system is different. Anyway, we defined global concepts for the DAM: 6 | - **DAM asset**: This is the representation of the asset from the DAM. 7 | As it differs from one DAM third-party system to another, we cannot dive into its definition. 8 | We differentiate assets coming from a DAM third-party system and assets pushed into Akeneo PIM. 9 | - **DAM property**: A property is the pending side of an asset attribute but for a DAM asset. 10 | - **DAM asset value**: It's a data value of a property of a DAM asset. 11 | -------------------------------------------------------------------------------- /content/img/aep/checkbox-on-apps-connection-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/checkbox-on-apps-connection-page.png -------------------------------------------------------------------------------- /content/img/aep/checkbox-on-connection-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/checkbox-on-connection-page.png -------------------------------------------------------------------------------- /content/img/aep/custom-integration-with-aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/custom-integration-with-aws.png -------------------------------------------------------------------------------- /content/img/aep/more-complex-use-case.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/more-complex-use-case.png -------------------------------------------------------------------------------- /content/img/aep/multitenant-use-case.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/multitenant-use-case.png -------------------------------------------------------------------------------- /content/img/aep/overview-schema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/overview-schema.png -------------------------------------------------------------------------------- /content/img/aep/postman-collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/postman-collection.png -------------------------------------------------------------------------------- /content/img/aep/postman-create-subscriber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/postman-create-subscriber.png -------------------------------------------------------------------------------- /content/img/aep/postman-create-subscription.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/aep/postman-create-subscription.png -------------------------------------------------------------------------------- /content/img/akene36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/akene36.png -------------------------------------------------------------------------------- /content/img/apps/045574c-messagebar-_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/045574c-messagebar-_error.png -------------------------------------------------------------------------------- /content/img/apps/0a59bc4-buttons_-_GOOD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/0a59bc4-buttons_-_GOOD.png -------------------------------------------------------------------------------- /content/img/apps/0a9c36d-HELP_-_tooltip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/0a9c36d-HELP_-_tooltip.png -------------------------------------------------------------------------------- /content/img/apps/1330753-HELP_-_helper_inline_-_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/1330753-HELP_-_helper_inline_-_error.png -------------------------------------------------------------------------------- /content/img/apps/15e9fb0-Information_hierarchy_-_BAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/15e9fb0-Information_hierarchy_-_BAD.png -------------------------------------------------------------------------------- /content/img/apps/186d6a8-contrast_-_BAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/186d6a8-contrast_-_BAD.png -------------------------------------------------------------------------------- /content/img/apps/1903e2b-HELP_-_helper_-_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/1903e2b-HELP_-_helper_-_error.png -------------------------------------------------------------------------------- /content/img/apps/1a3ad6b-HELP_-_helper_inline_-_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/1a3ad6b-HELP_-_helper_inline_-_warning.png -------------------------------------------------------------------------------- /content/img/apps/1d63458-error-_GOOD_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/1d63458-error-_GOOD_2.png -------------------------------------------------------------------------------- /content/img/apps/21dc979-message_bas-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/21dc979-message_bas-success.png -------------------------------------------------------------------------------- /content/img/apps/23df9de-error_-_BAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/23df9de-error_-_BAD.png -------------------------------------------------------------------------------- /content/img/apps/30057e3-Onboarding_-_Guide_tour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/30057e3-Onboarding_-_Guide_tour.png -------------------------------------------------------------------------------- /content/img/apps/3589c33-Search_-_BAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/3589c33-Search_-_BAD.png -------------------------------------------------------------------------------- /content/img/apps/3c4404b-HELP_-_helper_inline_-_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/3c4404b-HELP_-_helper_inline_-_info.png -------------------------------------------------------------------------------- /content/img/apps/408952a-Pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/408952a-Pattern.png -------------------------------------------------------------------------------- /content/img/apps/40dba32-Onboarding_-_Guide_tour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/40dba32-Onboarding_-_Guide_tour.png -------------------------------------------------------------------------------- /content/img/apps/4650997-contrast_-_GOOD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/4650997-contrast_-_GOOD.png -------------------------------------------------------------------------------- /content/img/apps/468baf5-home-daily_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/468baf5-home-daily_2.png -------------------------------------------------------------------------------- /content/img/apps/4c7e76e-Color_button_-_BAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/4c7e76e-Color_button_-_BAD.png -------------------------------------------------------------------------------- /content/img/apps/526454f-button_hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/526454f-button_hierarchy.png -------------------------------------------------------------------------------- /content/img/apps/5879c20-LINK_-_general_link_to_help_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/5879c20-LINK_-_general_link_to_help_center.png -------------------------------------------------------------------------------- /content/img/apps/61f2655-NAV_-_lateral_navigation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/61f2655-NAV_-_lateral_navigation.png -------------------------------------------------------------------------------- /content/img/apps/61f44f4-Information_hierarchy_-_GOOD (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/61f44f4-Information_hierarchy_-_GOOD (1).png -------------------------------------------------------------------------------- /content/img/apps/61f44f4-Information_hierarchy_-_GOOD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/61f44f4-Information_hierarchy_-_GOOD.png -------------------------------------------------------------------------------- /content/img/apps/6381601-Frame_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/6381601-Frame_2.jpg -------------------------------------------------------------------------------- /content/img/apps/6610c35-message_bas-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/6610c35-message_bas-success.png -------------------------------------------------------------------------------- /content/img/apps/766c5a7-error_-_GOOD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/766c5a7-error_-_GOOD.png -------------------------------------------------------------------------------- /content/img/apps/76e2d20-LINK_-_general_link_to_help_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/76e2d20-LINK_-_general_link_to_help_center.png -------------------------------------------------------------------------------- /content/img/apps/89d73f6-First_visite_-_BAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/89d73f6-First_visite_-_BAD.png -------------------------------------------------------------------------------- /content/img/apps/973e7e8-Frame_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/973e7e8-Frame_2.jpg -------------------------------------------------------------------------------- /content/img/apps/990472f-Onboarding_-_wizard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/990472f-Onboarding_-_wizard.png -------------------------------------------------------------------------------- /content/img/apps/9b15587-Color_button_-_GOOD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/9b15587-Color_button_-_GOOD.png -------------------------------------------------------------------------------- /content/img/apps/a691d13-Search_-_GOOD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/a691d13-Search_-_GOOD.png -------------------------------------------------------------------------------- /content/img/apps/ae326f3-First_visite_-_GOOD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/ae326f3-First_visite_-_GOOD.png -------------------------------------------------------------------------------- /content/img/apps/app-activation-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/app-activation-sequence-diagram.png -------------------------------------------------------------------------------- /content/img/apps/app-authentication-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/app-authentication-sequence-diagram.png -------------------------------------------------------------------------------- /content/img/apps/app-catalog-enable-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/app-catalog-enable-button.png -------------------------------------------------------------------------------- /content/img/apps/app-catalog-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/app-catalog-list.png -------------------------------------------------------------------------------- /content/img/apps/app-ngrok-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/app-ngrok-result.png -------------------------------------------------------------------------------- /content/img/apps/apps-fit-akeneo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/apps-fit-akeneo.png -------------------------------------------------------------------------------- /content/img/apps/b8a79a1-First_visite_-_GOOD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/b8a79a1-First_visite_-_GOOD.png -------------------------------------------------------------------------------- /content/img/apps/c21f19b-buttons_-_BAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/c21f19b-buttons_-_BAD.png -------------------------------------------------------------------------------- /content/img/apps/catalogs-product-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/catalogs-product-selection.png -------------------------------------------------------------------------------- /content/img/apps/cd05dc9-HELP_-Information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/cd05dc9-HELP_-Information.png -------------------------------------------------------------------------------- /content/img/apps/connected-custom-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/connected-custom-app.png -------------------------------------------------------------------------------- /content/img/apps/create-a-custom-app-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/create-a-custom-app-button.png -------------------------------------------------------------------------------- /content/img/apps/custom-app-creation-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/custom-app-creation-credentials.png -------------------------------------------------------------------------------- /content/img/apps/custom-app-creation-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/custom-app-creation-info.png -------------------------------------------------------------------------------- /content/img/apps/custom-app-regenerate-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/custom-app-regenerate-credentials.png -------------------------------------------------------------------------------- /content/img/apps/custom-apps-section.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/custom-apps-section.png -------------------------------------------------------------------------------- /content/img/apps/d76add3-HELP_-_helper_-_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/d76add3-HELP_-_helper_-_warning.png -------------------------------------------------------------------------------- /content/img/apps/d7b8ec6-NAV_-_Top_navigation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/d7b8ec6-NAV_-_Top_navigation.png -------------------------------------------------------------------------------- /content/img/apps/d8bfe41-Disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/d8bfe41-Disabled.png -------------------------------------------------------------------------------- /content/img/apps/dev-tools-download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /content/img/apps/dev-tools-php.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /content/img/apps/f508a1e-LINK_-_contextual_link_to_helpcenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/f508a1e-LINK_-_contextual_link_to_helpcenter.png -------------------------------------------------------------------------------- /content/img/apps/fcaa6ec-HELP_-_helper_-_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/fcaa6ec-HELP_-_helper_-_info.png -------------------------------------------------------------------------------- /content/img/apps/julia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/julia.png -------------------------------------------------------------------------------- /content/img/apps/mapping-interface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/mapping-interface.png -------------------------------------------------------------------------------- /content/img/apps/marketplace-with-custom-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/marketplace-with-custom-app.png -------------------------------------------------------------------------------- /content/img/apps/peter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/peter.png -------------------------------------------------------------------------------- /content/img/apps/pim-marketplace-with-apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/pim-marketplace-with-apps.png -------------------------------------------------------------------------------- /content/img/apps/role-developer-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/role-developer-mode.png -------------------------------------------------------------------------------- /content/img/apps/update-scopes-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/update-scopes-notification.png -------------------------------------------------------------------------------- /content/img/apps/whats-an-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/whats-an-app.png -------------------------------------------------------------------------------- /content/img/apps/wizard-authorization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/apps/wizard-authorization.png -------------------------------------------------------------------------------- /content/img/concepts/asset_categories_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/asset_categories_ui.png -------------------------------------------------------------------------------- /content/img/concepts/assets_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/assets_ui.png -------------------------------------------------------------------------------- /content/img/concepts/association_types_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/association_types_ui.png -------------------------------------------------------------------------------- /content/img/concepts/attribute_groups_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/attribute_groups_ui.png -------------------------------------------------------------------------------- /content/img/concepts/attribute_options_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/attribute_options_ui.png -------------------------------------------------------------------------------- /content/img/concepts/attributes_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/attributes_ui.png -------------------------------------------------------------------------------- /content/img/concepts/categories_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/categories_ui.png -------------------------------------------------------------------------------- /content/img/concepts/channels_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/channels_ui.png -------------------------------------------------------------------------------- /content/img/concepts/currencies_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/currencies_ui.png -------------------------------------------------------------------------------- /content/img/concepts/families_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/families_ui.png -------------------------------------------------------------------------------- /content/img/concepts/family_variants_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/family_variants_ui.png -------------------------------------------------------------------------------- /content/img/concepts/locales_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/locales_ui.png -------------------------------------------------------------------------------- /content/img/concepts/media_files_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/media_files_ui.png -------------------------------------------------------------------------------- /content/img/concepts/metrics_attributes_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/metrics_attributes_ui.png -------------------------------------------------------------------------------- /content/img/concepts/product_models_in_the_grid_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/product_models_in_the_grid_ui.png -------------------------------------------------------------------------------- /content/img/concepts/product_models_in_the_pef_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/product_models_in_the_pef_ui.png -------------------------------------------------------------------------------- /content/img/concepts/product_with_variants.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/product_with_variants.png -------------------------------------------------------------------------------- /content/img/concepts/products_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/products_ui.png -------------------------------------------------------------------------------- /content/img/concepts/reference_entity_attribute_options_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/reference_entity_attribute_options_ui.png -------------------------------------------------------------------------------- /content/img/concepts/reference_entity_attribute_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/reference_entity_attribute_ui.png -------------------------------------------------------------------------------- /content/img/concepts/reference_entity_media_file_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/reference_entity_media_file_ui.png -------------------------------------------------------------------------------- /content/img/concepts/reference_entity_record_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/reference_entity_record_ui.png -------------------------------------------------------------------------------- /content/img/concepts/reference_entity_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/reference_entity_ui.png -------------------------------------------------------------------------------- /content/img/concepts/v1.7/attribute_options_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/v1.7/attribute_options_ui.png -------------------------------------------------------------------------------- /content/img/concepts/v1.7/attributes_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/v1.7/attributes_ui.png -------------------------------------------------------------------------------- /content/img/concepts/v1.7/categories_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/v1.7/categories_ui.png -------------------------------------------------------------------------------- /content/img/concepts/v1.7/channels_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/v1.7/channels_ui.png -------------------------------------------------------------------------------- /content/img/concepts/v1.7/families_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/v1.7/families_ui.png -------------------------------------------------------------------------------- /content/img/concepts/v1.7/locales_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/v1.7/locales_ui.png -------------------------------------------------------------------------------- /content/img/concepts/v1.7/media_files_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/v1.7/media_files_ui.png -------------------------------------------------------------------------------- /content/img/concepts/v1.7/products_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/concepts/v1.7/products_ui.png -------------------------------------------------------------------------------- /content/img/events-api/event-log-ui.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/events-api/event-log-ui.gif -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/action-extension-schema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/action-extension-schema.png -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/pim-header-with-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/pim-header-with-extension.png -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/pim-product-grid-with-bulk-trigger-action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/pim-product-grid-with-bulk-trigger-action.png -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/pim-product-with-tab-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/pim-product-with-tab-extension.png -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/postman-add-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/postman-add-extension.png -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/postman-delete-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/postman-delete-extension.png -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/postman-fill-env.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/postman-fill-env.png -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/postman-update-extension-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/postman-update-extension-1.png -------------------------------------------------------------------------------- /content/img/extensions/ui-extensions/postman-update-extension-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/extensions/ui-extensions/postman-update-extension-2.png -------------------------------------------------------------------------------- /content/img/faviconV2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/faviconV2.png -------------------------------------------------------------------------------- /content/img/getting-started/api-connection-creation-popin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/api-connection-creation-popin.png -------------------------------------------------------------------------------- /content/img/getting-started/api-connections-empty-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/api-connections-empty-screen.png -------------------------------------------------------------------------------- /content/img/getting-started/authentication-response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/authentication-response.png -------------------------------------------------------------------------------- /content/img/getting-started/connection-creation-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/connection-creation-button.png -------------------------------------------------------------------------------- /content/img/getting-started/connection-creation-erp-popin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/connection-creation-erp-popin.png -------------------------------------------------------------------------------- /content/img/getting-started/connection-creation-popin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/connection-creation-popin.png -------------------------------------------------------------------------------- /content/img/getting-started/connection-credentials-copy-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/connection-credentials-copy-icon.png -------------------------------------------------------------------------------- /content/img/getting-started/connection-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/connection-credentials.png -------------------------------------------------------------------------------- /content/img/getting-started/copy-past-credentials-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/copy-past-credentials-old.png -------------------------------------------------------------------------------- /content/img/getting-started/credentials-in-postman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/credentials-in-postman.png -------------------------------------------------------------------------------- /content/img/getting-started/credentials-in-the-pim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/credentials-in-the-pim.png -------------------------------------------------------------------------------- /content/img/getting-started/events-api-best-practices/connector-with-message-queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/events-api-best-practices/connector-with-message-queue.png -------------------------------------------------------------------------------- /content/img/getting-started/flow-type-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/flow-type-selection.png -------------------------------------------------------------------------------- /content/img/getting-started/my-erp-connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/my-erp-connection.png -------------------------------------------------------------------------------- /content/img/getting-started/my-very-first-api-connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/my-very-first-api-connection.png -------------------------------------------------------------------------------- /content/img/getting-started/permission-activation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/permission-activation.png -------------------------------------------------------------------------------- /content/img/getting-started/permission-assignation-my-erp-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/permission-assignation-my-erp-user.png -------------------------------------------------------------------------------- /content/img/getting-started/permission-assignation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/permission-assignation.png -------------------------------------------------------------------------------- /content/img/getting-started/postman-environment-4x-popin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/postman-environment-4x-popin.png -------------------------------------------------------------------------------- /content/img/getting-started/postman-environment-4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/postman-environment-4x.png -------------------------------------------------------------------------------- /content/img/getting-started/postman-environment-old-popin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/postman-environment-old-popin.png -------------------------------------------------------------------------------- /content/img/getting-started/postman-environment-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/postman-environment-old.png -------------------------------------------------------------------------------- /content/img/getting-started/postman-import-popin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/postman-import-popin.png -------------------------------------------------------------------------------- /content/img/getting-started/quick-start-my-first-webhook/create-webhook-site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/quick-start-my-first-webhook/create-webhook-site.png -------------------------------------------------------------------------------- /content/img/getting-started/quick-start-my-first-webhook/event-subscription-configuration-sf-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/quick-start-my-first-webhook/event-subscription-configuration-sf-project.png -------------------------------------------------------------------------------- /content/img/getting-started/quick-start-my-first-webhook/event-subscription-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/quick-start-my-first-webhook/event-subscription-configuration.png -------------------------------------------------------------------------------- /content/img/getting-started/quick-start-my-first-webhook/log-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/quick-start-my-first-webhook/log-result.png -------------------------------------------------------------------------------- /content/img/getting-started/quick-start-my-first-webhook/server-running.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/quick-start-my-first-webhook/server-running.png -------------------------------------------------------------------------------- /content/img/getting-started/quick-start-my-first-webhook/webhook-site-test-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/quick-start-my-first-webhook/webhook-site-test-details.png -------------------------------------------------------------------------------- /content/img/getting-started/role-creation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/role-creation.png -------------------------------------------------------------------------------- /content/img/getting-started/role-naming-my-erp-connector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/role-naming-my-erp-connector.png -------------------------------------------------------------------------------- /content/img/getting-started/role-naming.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/role-naming.png -------------------------------------------------------------------------------- /content/img/getting-started/send-authent-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/send-authent-request.png -------------------------------------------------------------------------------- /content/img/getting-started/source-flow-type-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/source-flow-type-selection.png -------------------------------------------------------------------------------- /content/img/getting-started/token-expiration-in-postman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/token-expiration-in-postman.png -------------------------------------------------------------------------------- /content/img/getting-started/url-environment-4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/url-environment-4x.png -------------------------------------------------------------------------------- /content/img/getting-started/url-environment-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/url-environment-old.png -------------------------------------------------------------------------------- /content/img/getting-started/very-first-request-collection-in-postman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/very-first-request-collection-in-postman.png -------------------------------------------------------------------------------- /content/img/getting-started/your-very-first-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/getting-started/your-very-first-request.png -------------------------------------------------------------------------------- /content/img/graphql/api-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/api-error.png -------------------------------------------------------------------------------- /content/img/graphql/common-filters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/common-filters.png -------------------------------------------------------------------------------- /content/img/graphql/common-notions-pagination.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/common-notions-pagination.png -------------------------------------------------------------------------------- /content/img/graphql/deprecations-in-graphiql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/deprecations-in-graphiql.png -------------------------------------------------------------------------------- /content/img/graphql/graphiql-ide.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/graphiql-ide.jpg -------------------------------------------------------------------------------- /content/img/graphql/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/logo.png -------------------------------------------------------------------------------- /content/img/graphql/query-common-variables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/query-common-variables.png -------------------------------------------------------------------------------- /content/img/graphql/query-getting-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/query-getting-started.png -------------------------------------------------------------------------------- /content/img/graphql/query-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/graphql/query-token.png -------------------------------------------------------------------------------- /content/img/guides/configuration-attribute-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/guides/configuration-attribute-type.png -------------------------------------------------------------------------------- /content/img/guides/configuration-attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/guides/configuration-attribute.png -------------------------------------------------------------------------------- /content/img/guides/configuration-category.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/guides/configuration-category.png -------------------------------------------------------------------------------- /content/img/guides/configuration-family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/guides/configuration-family.png -------------------------------------------------------------------------------- /content/img/guides/configuration-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/guides/configuration-image.png -------------------------------------------------------------------------------- /content/img/guides/configuration-product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/guides/configuration-product.png -------------------------------------------------------------------------------- /content/img/guides/personas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/guides/personas.png -------------------------------------------------------------------------------- /content/img/icons/icon--arrow-back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /content/img/icons/icon--check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/icons/icon--check.png -------------------------------------------------------------------------------- /content/img/icons/icon--close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /content/img/icons/icon--down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /content/img/icons/icon--facebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /content/img/icons/icon--github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/icons/icon--github.png -------------------------------------------------------------------------------- /content/img/icons/icon--linkedin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /content/img/icons/icon--outside.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /content/img/icons/icon--search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /content/img/icons/icon--twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /content/img/icons/icon--unselect-tag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /content/img/icons/icon--webhook.svg: -------------------------------------------------------------------------------- 1 | webhook -------------------------------------------------------------------------------- /content/img/icons/icon--youtube.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--Assetattributeoption.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--Attributeoption.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--Authentication.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--Familyvariant.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--Overview.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--PAMassetreferencefile.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--PAMassettag.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--PAMassetvariationfile.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--Referenceentityattributeoption.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/illustrations/illus--System.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/img/rest-api/activate_api_access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/activate_api_access.png -------------------------------------------------------------------------------- /content/img/rest-api/authentication_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/authentication_ui.png -------------------------------------------------------------------------------- /content/img/rest-api/create_a_role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/create_a_role.png -------------------------------------------------------------------------------- /content/img/rest-api/erp-connection-user-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/erp-connection-user-group.png -------------------------------------------------------------------------------- /content/img/rest-api/hide-permission-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/hide-permission-mode.png -------------------------------------------------------------------------------- /content/img/rest-api/my-erp-user-in-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/my-erp-user-in-group.png -------------------------------------------------------------------------------- /content/img/rest-api/pim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/pim.png -------------------------------------------------------------------------------- /content/img/rest-api/proposal-by-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/proposal-by-api.png -------------------------------------------------------------------------------- /content/img/rest-api/proposal-permission-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/proposal-permission-mode.png -------------------------------------------------------------------------------- /content/img/rest-api/read-only-permission-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/read-only-permission-mode.png -------------------------------------------------------------------------------- /content/img/rest-api/v1.7/activate_api_access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/v1.7/activate_api_access.png -------------------------------------------------------------------------------- /content/img/rest-api/v1.7/create_a_role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/rest-api/v1.7/create_a_role.png -------------------------------------------------------------------------------- /content/img/tutorials/how-to-collect-product-variations/scheme_variants.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/tutorials/how-to-collect-product-variations/scheme_variants.png -------------------------------------------------------------------------------- /content/img/ziggy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akeneo/pim-api-docs/229af8bfbaf41a777a5d96aa591b37a04a39230d/content/img/ziggy.png -------------------------------------------------------------------------------- /content/php-client/introduction.md: -------------------------------------------------------------------------------- 1 | # PHP developer, you are? 2 | > We have a client for you! 3 | 4 | The PHP client facilitates the usage of the REST API in your PHP projects when building extensions and/or tools for your favorite PIM. 5 | 6 | ## Support & issues 7 | Please be aware that the PHP client is only supported **in best effort**, whether you are an Enterprise or Community customer. 8 | 9 | If you ever find a bug, do not hesitate to directly open a Github issue on the [API client repository](https://github.com/akeneo/php-api-client). 10 | 11 | Don't forget that we also love when you contribute and help us do better tools. So do not hesitate! Every feedback/pull request is very welcomed! 12 | 13 | 14 | ## Keep in touch 15 | If you just want to discuss about it, join the community in the [#web-api](https://akeneopim-ug.slack.com/messages/web-api/) channel in our [Slack user group community](https://akeneopim-ug.slack.com/). 16 | 17 | :::panel-link Want to be ready quickly?[Let's start with our simple getting started](/php-client/getting-started.html) 18 | ::: 19 | -------------------------------------------------------------------------------- /content/php-client/resources/app-catalog/app-catalog-product.md: -------------------------------------------------------------------------------- 1 | ### App catalog product 2 | 3 | 4 | #### Get the list of product uuids 5 | ::: php-client-availability versions=9.1 6 | 7 | ```php 8 | $client = new \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder('https://akeneo.com/')->buildAuthenticatedByPassword('client_id', 'secret', 'admin', 'admin'); 9 | 10 | /* 11 | * Returns an array like the following: 12 | * [ 13 | * "844c736b-a19b-48a6-a354-6056044729f0", 14 | * "b2a683ef-4a91-4ed3-b3fa-76dab065a8d5", 15 | * "eddfbd2a-abc7-488d-b9e3-41289c824f80" 16 | * ] 17 | */ 18 | $catalogs = $client->getAppCatalogProductApi()->all(); 19 | ``` 20 | -------------------------------------------------------------------------------- /content/php-client/resources/asset-manager/asset-media-files.md: -------------------------------------------------------------------------------- 1 | ### Asset media file 2 | 3 | We refer here to the asset media file of the [Asset Manager](/concepts/asset-manager.html#asset-media-file). 4 | 5 | #### Download the media file associated to a asset or a record 6 | ::: php-client-availability versions=5.0 ee-only 7 | 8 | ```php 9 | $client = new \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder('http://akeneo.com/')->buildAuthenticatedByPassword('client_id', 'secret', 'admin', 'admin'); 10 | 11 | $mediaFileCode = 'f/c/3/6/fc36131bf5a352261999ea8424f540fce164d66b_allie_jean_model_picture.png'; 12 | $mediaFileResponse = $client->getAssetMediaFileApi()->download($mediaFileCode); 13 | ``` 14 | 15 | From the response, you can retrieve the file name in the header "Content-Disposition" and the mime type in the header "Content-Type". 16 | 17 | #### Create a new media file for a asset or a record 18 | ::: php-client-availability versions=5.0 ee-only 19 | 20 | ```php 21 | $client = new \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder('http://akeneo.com/')->buildAuthenticatedByPassword('client_id', 'secret', 'admin', 'admin'); 22 | 23 | $mediaFileCode = $client->getAssetMediaFileApi()->create('/tmp/allie_jean_model_picture.png'); 24 | ``` 25 | -------------------------------------------------------------------------------- /content/php-client/resources/products/async-calls.md: -------------------------------------------------------------------------------- 1 | ### Async Calls 2 | 3 | ::: php-client-availability versions=11.3 4 | 5 | ```php 6 | $upsertListResponseFactory = new UpsertResourceListResponseFactory(); 7 | 8 | $client = new \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder('http://akeneo.com/')->buildAuthenticatedByPassword('client_id', 'secret', 'username', 'password'); 9 | 10 | $promise = $client->getProductApi()->upsertAsyncList($productToUpsert); 11 | 12 | $response = $upsertListResponseFactory->create($promise->wait()->getBody()); 13 | ``` 14 | 15 | All the requests are synchronous by default. But since the version 11.3 of the PHP client, you can now use asynchronous requests on all resources available through the API. For example, to upsert asynchronously a list of resources, you need to use the `upsertAsyncList` method instead of the `upsertList` one. This method returns a promise that you can wait for to get the response. 16 | -------------------------------------------------------------------------------- /content/php-client/resources/reference-entity/media-files.md: -------------------------------------------------------------------------------- 1 | ### Reference entity media file 2 | 3 | #### Download the media file associated to a reference entity or a record 4 | ::: php-client-availability versions=4.0 ee-only 5 | 6 | ```php 7 | $client = new \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder('http://akeneo.com/')->buildAuthenticatedByPassword('client_id', 'secret', 'admin', 'admin'); 8 | 9 | $mediaFileResponse = $client->getReferenceEntityMediaFileApi()->download('images/kartell.png'); 10 | ``` 11 | 12 | From the response, you can retrieve the file name in the header "Content-Disposition" and the mime type in the header "Content-Type". 13 | 14 | #### Create a new media file for a reference entity or a record 15 | ::: php-client-availability versions=4.0 ee-only 16 | 17 | ```php 18 | $client = new \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder('http://akeneo.com/')->buildAuthenticatedByPassword('client_id', 'secret', 'admin', 'admin'); 19 | 20 | $mediaFileCode = $client->getReferenceEntityMediaFileApi()->create('/tmp/kartell.png'); 21 | ``` 22 | -------------------------------------------------------------------------------- /content/redirections/to-app-concepts-and-use-cases.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 16 | 17 | 18 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /content/redirections/to-apps-homepage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 16 | 17 | 18 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /content/redirections/to-get-your-app-token.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 16 | 17 | 18 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /content/rest-api/introduction.md: -------------------------------------------------------------------------------- 1 | # 👋 Welcome to the REST API basics documentation! 2 | 3 | You are probably asking yourself a ton of questions about our REST API. 4 | From the pagination to the permissions, this part of the documentation will give you all the keys to understand how our REST API works. 5 | 6 | In other words, here you will find everything you need to know in order to create the best REST API-based tools. :rocket: 7 | 8 | -------------------------------------------------------------------------------- /content/supplier-data-manager/api-reference.md: -------------------------------------------------------------------------------- 1 | # API Reference 2 | 3 | The Supplier Data Manager API is a RESTful API that provides a comprehensive set of endpoints to manage your projects, files, jobs, output formats, modules configuration, and more. 4 | 5 | Several choices are offered to deep dive into our API, to discover all the endpoints, and their request/response schema: 6 | 7 | - Consult our online documentation: [Redoc](https://sdm.akeneo.cloud/doc/v1/redoc/) or [Swagger](https://sdm.akeneo.cloud/doc/v1/swagger/). 8 | - Download our OpenAPI specification. 9 | - Discover it thanks to the postman collection -------------------------------------------------------------------------------- /content/swagger/akeneo-web-api.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | title: Akeneo PIM REST API 4 | version: "1.0.0" 5 | # the domain of the service 6 | host: demo.akeneo.com 7 | # array of all schemes that your REST API supports 8 | schemes: 9 | - http 10 | produces: 11 | - application/json 12 | paths: 13 | $ref: ./paths.yaml 14 | definitions: 15 | $ref: ./definitions.yaml 16 | responses: 17 | $ref: ./responses.yaml 18 | parameters: 19 | $ref: ./parameters.yaml 20 | -------------------------------------------------------------------------------- /content/swagger/resources/app_catalogs/definitions/app_catalog.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | id: 4 | type: string 5 | description: Catalog id 6 | x-immutable: true 7 | name: 8 | type: string 9 | description: Catalog name 10 | enabled: 11 | type: boolean 12 | description: Whether the catalog is enabled or not 13 | default: false 14 | managed_currencies: 15 | type: array 16 | description: List of currency codes 17 | items: 18 | type: string 19 | managed_locales: 20 | type: array 21 | description: List of locale codes 22 | items: 23 | type: string 24 | example: { 25 | "_links": { 26 | "self": { 27 | "href": "http://demo.akeneo.com/api/rest/v1/catalogs/3af8e091-6df5-4ed1-a9aa-090de12e5be5" 28 | } 29 | }, 30 | "id": "12351d98-200e-4bbc-aa19-7fdda1bd14f2", 31 | "name": "My app catalog", 32 | "enabled": false, 33 | "managed_currencies": [ 34 | "EUR", 35 | "USD", 36 | "GBP" 37 | ], 38 | "managed_locales": [ 39 | "fr_FR", 40 | "en_US" 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /content/swagger/resources/app_catalogs/definitions/app_catalog_creation.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["name"] 3 | properties: 4 | name: 5 | type: string 6 | description: Catalog name 7 | managed_currencies: 8 | type: array 9 | description: List of currency codes 10 | items: 11 | type: string 12 | managed_locales: 13 | type: array 14 | description: List of locale codes 15 | items: 16 | type: string 17 | example: { 18 | "name": "My app catalog", 19 | "managed_currencies": ["EUR", "USD", "GBP"], 20 | "managed_locales": ["fr_FR", "en_US"] 21 | } 22 | -------------------------------------------------------------------------------- /content/swagger/resources/app_catalogs/definitions/app_catalog_update.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["name"] 3 | properties: 4 | name: 5 | type: string 6 | description: Catalog name 7 | managed_currencies: 8 | type: array 9 | description: List of currency codes 10 | items: 11 | type: string 12 | managed_locales: 13 | type: array 14 | description: List of locale codes 15 | items: 16 | type: string 17 | example: { 18 | "name": "My app catalog", 19 | "managed_currencies": ["EUR", "USD", "GBP"], 20 | "managed_locales": ["fr_FR", "en_US"] 21 | } 22 | -------------------------------------------------------------------------------- /content/swagger/resources/asset_attributes/definitions/asset_attribute_option.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: Attribute's option code 7 | x-immutable: true 8 | labels: 9 | type: object 10 | description: Attribute labels for each locale 11 | x-validation-rules: The `localeCode` is the code of an existing and activated locale 12 | default: {} 13 | properties: 14 | localeCode: 15 | type: string 16 | description: Attribute label for the locale `localeCode` 17 | example: { 18 | "code": "small", 19 | "labels": { 20 | "en_US": "S", 21 | "fr_FR": "S" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /content/swagger/resources/asset_media_files/routes/asset_media_files.yaml: -------------------------------------------------------------------------------- 1 | post: 2 | summary: Create a new media file for an asset 3 | operationId: "post_asset_media_files" 4 | description: This endpoint allows you to create a new media file and associate it to a media file attribute value of an asset. 5 | tags: 6 | - Asset media file 7 | x-versions: 8 | - "3.2" 9 | - "4.0" 10 | - "5.0" 11 | - "6.0" 12 | - "7.0" 13 | - "SaaS" 14 | x-ee: true 15 | parameters: 16 | - name: Content-type 17 | in: header 18 | type: string 19 | description: Equal to 'multipart/form-data', no other value allowed 20 | required: true 21 | - name: body 22 | in: body 23 | x-form-data: true 24 | schema: 25 | required: ["file"] 26 | properties: 27 | file: 28 | type: string 29 | description: The binary of the media file 30 | format: binary 31 | responses: 32 | 201: 33 | $ref: "#/responses/AssetMediaFileUploaded" 34 | 401: 35 | $ref: "#/responses/401Error" 36 | 415: 37 | $ref: "#/responses/415ErrorMultipart" 38 | 422: 39 | $ref: "#/responses/422Error" 40 | -------------------------------------------------------------------------------- /content/swagger/resources/asset_media_files/routes/asset_media_files_code.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Download the media file associated to an asset 3 | operationId: "get_asset_media_files__code" 4 | description: This endpoint allows you to download a given media file that is associated with an asset. 5 | x-content-type: Mime-type of the media file 6 | tags: 7 | - Asset media file 8 | x-versions: 9 | - "3.2" 10 | - "4.0" 11 | - "5.0" 12 | - "6.0" 13 | - "7.0" 14 | - "SaaS" 15 | x-ee: true 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 200: 20 | description: OK 21 | x-details: Returns the binary of the media file 22 | x-content-type: Mime-type of the media file 23 | 401: 24 | $ref: "#/responses/401Error" 25 | 404: 26 | $ref: "#/responses/404Error" 27 | -------------------------------------------------------------------------------- /content/swagger/resources/association_types/definitions/association_type.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: Association type code 7 | x-immutable: true 8 | labels: 9 | type: object 10 | description: Association type labels for each locale 11 | x-validation-rules: The `localeCode` is the code of an existing and activated locale 12 | default: {} 13 | properties: 14 | localeCode: 15 | type: string 16 | description: Association type label for the locale `localeCode` 17 | is_quantified: 18 | type: boolean 19 | description: When true, the association is a quantified association (Only available in the PIM Serenity version.) 20 | default: false 21 | x-immutable: true 22 | is_two_way: 23 | type: boolean 24 | description: When true, the association is a two-way association (Only available in the PIM Serenity version.) 25 | default: false 26 | x-immutable: true 27 | 28 | example: { 29 | "code": "upsell", 30 | "labels": { 31 | "en_US": "Upsell", 32 | "fr_FR": "Vente incitative" 33 | }, 34 | "is_quantified": false, 35 | "is_two_way": false 36 | } 37 | -------------------------------------------------------------------------------- /content/swagger/resources/attributes/definitions/attribute_option.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: Code of option 7 | attribute: 8 | type: string 9 | description: Code of attribute related to the attribute option 10 | x-validation-rules: It is the same attribute code as the one given as path parameter 11 | sort_order: 12 | type: integer 13 | description: Order of attribute option 14 | x-validation-rules: It is a positive integer 15 | labels: 16 | type: object 17 | description: Attribute option labels for each locale 18 | x-validation-rules: The `localeCode` is the code of an existing and activated locale 19 | default: {} 20 | properties: 21 | localeCode: 22 | type: string 23 | description: Attribute option label for the locale `localeCode` 24 | example: { 25 | "code": "black", 26 | "attribute": "a_simple_select", 27 | "sort_order": 2, 28 | "labels": { 29 | "en_US": "Black", 30 | "fr_FR": "Noir" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /content/swagger/resources/categories/routes/category_media_files_code_download.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Download a category media file 3 | operationId: "get_category_media_files__file_path__download" 4 | description: This endpoint allows you to download a given media file that is used as an attribute value of a enriched category. 5 | x-content-type: Mime-type of the media file 6 | tags: 7 | - Category 8 | x-versions: 9 | - "SaaS" 10 | parameters: 11 | - $ref: '#/parameters/file_path' 12 | responses: 13 | 200: 14 | description: OK 15 | x-details: Returns the binary of the media file 16 | x-content-type: Mime-type of the media file 17 | 401: 18 | $ref: "#/responses/401Error" 19 | 403: 20 | $ref: "#/responses/403Error" 21 | 404: 22 | $ref: "#/responses/404Error" 23 | -------------------------------------------------------------------------------- /content/swagger/resources/currencies/definitions/currency.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: Currency code 7 | x-immutable: true 8 | enabled: 9 | type: boolean 10 | description: Whether the currency is enabled 11 | label: 12 | type: string 13 | description: Currency label 14 | example: { 15 | "code": "EUR", 16 | "enabled": true, 17 | "label": "EUR (Euro)" 18 | } 19 | -------------------------------------------------------------------------------- /content/swagger/resources/currencies/routes/currencies_code.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Get a currency 3 | operationId: "currencies_get" 4 | description: This endpoint allows you to get the information about a given currency. 5 | tags: 6 | - Currency 7 | x-versions: 8 | - "2.x" 9 | - "3.x" 10 | - "4.0" 11 | - "5.0" 12 | - "6.0" 13 | - "7.0" 14 | - "SaaS" 15 | parameters: 16 | - $ref: '#/parameters/code' 17 | responses: 18 | 200: 19 | description: OK 20 | x-details: Returns the content of the currency in JSON standard format 21 | schema: 22 | $ref: '#/definitions/Currency' 23 | 401: 24 | $ref: "#/responses/401Error" 25 | 403: 26 | $ref: "#/responses/403Error" 27 | 404: 28 | $ref: "#/responses/404Error" 29 | 406: 30 | $ref: "#/responses/406Error" 31 | -------------------------------------------------------------------------------- /content/swagger/resources/deprecated/asset_categories/definitions/asset_category.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: PAM asset category code 7 | x-immutable: true 8 | parent: 9 | type: string 10 | description: PAM ssset category code of the parent's asset category 11 | x-validation-rules: "• It is either equal to `null` or to an existing asset category code. • If equal to an existing asset category code, it cannot reference itself." 12 | default: "null" 13 | labels: 14 | type: object 15 | description: PAM asset category labels for each locale 16 | x-validation-rules: The `localeCode` is the code of an existing and activated locale 17 | default: {} 18 | properties: 19 | localeCode: 20 | type: string 21 | description: PAM asset category label for the locale `localeCode` 22 | example: { 23 | "code": "front_views", 24 | "parent": "pictures", 25 | "labels": { 26 | "en_US": "Front views", 27 | "fr_FR": "Vues de face" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /content/swagger/resources/deprecated/asset_tags/definitions/asset_tag.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: PAM asset tag code 7 | x-immutable: true 8 | example: { 9 | "code": "tshirt" 10 | } 11 | -------------------------------------------------------------------------------- /content/swagger/resources/deprecated/assets/definitions/asset_reference_file.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | code: 4 | type: string 5 | description: Code of the PAM asset reference file 6 | x-immutable: true 7 | locale: 8 | type: string 9 | description: Locale of the PAM asset reference file, equal to `null` if the asset is not localizable 10 | _link: 11 | type: object 12 | description: Links to get and download the reference file 13 | properties: 14 | download: 15 | type: object 16 | properties: 17 | href: 18 | type: string 19 | description: URI to download the reference file 20 | example: { 21 | "code": "7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg", 22 | "locale": null, 23 | "_link": { 24 | "download": { 25 | "href": "https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /content/swagger/resources/deprecated/assets/definitions/asset_variation_file.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | code: 4 | type: string 5 | description: Code of the PAM asset variation file 6 | x-immutable: true 7 | locale: 8 | type: string 9 | description: Locale of the PAM asset variation file, equal to `null` if the asset is not localizable 10 | scope: 11 | type: string 12 | description: Channel of the PAM asset variation file 13 | _link: 14 | type: object 15 | description: Links to get and download the reference file 16 | properties: 17 | download: 18 | type: object 19 | properties: 20 | href: 21 | type: string 22 | description: URI to download the variation file 23 | example: { 24 | "code": "7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg", 25 | "locale": null, 26 | "scope": "ecommerce", 27 | "_link": { 28 | "download": { 29 | "href": "https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /content/swagger/resources/deprecated/assets/routes/assets_code_reference_files_channel_code_locale_code_download.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Download a reference file 3 | operationId: "get_reference_files__channel_code__locale_code__download" 4 | description: This endpoint allows you to download a given reference file. 5 | x-content-type: Mime-type of the reference file 6 | tags: 7 | - PAM asset reference file 8 | x-versions: 9 | - "2.1" 10 | - "2.2" 11 | - "2.3" 12 | - "3.x" 13 | x-ee: true 14 | x-deprecated: true 15 | parameters: 16 | - $ref: '#/parameters/asset_code' 17 | - $ref: '#/parameters/locale_code' 18 | responses: 19 | 200: 20 | description: OK 21 | x-details: Returns the binary of the reference file 22 | x-content-type: Mime-type of the reference file 23 | 401: 24 | $ref: "#/responses/401Error" 25 | 403: 26 | $ref: "#/responses/403Error" 27 | 404: 28 | $ref: "#/responses/404Error" 29 | -------------------------------------------------------------------------------- /content/swagger/resources/deprecated/assets/routes/assets_code_variation_files_channel_code_locale_code_download.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Download a variation file 3 | operationId: "get_variation_files__channel_code__locale_code__download" 4 | description: This endpoint allows you to download a given variation file. 5 | x-content-type: Mime-type of the variation file 6 | tags: 7 | - PAM asset variation file 8 | x-versions: 9 | - "2.1" 10 | - "2.2" 11 | - "2.3" 12 | - "3.x" 13 | x-ee: true 14 | x-deprecated: true 15 | parameters: 16 | - $ref: '#/parameters/asset_code' 17 | - $ref: '#/parameters/channel_code' 18 | - $ref: '#/parameters/locale_code' 19 | responses: 20 | 200: 21 | description: OK 22 | x-details: Returns the binary of the variation file 23 | x-content-type: Mime-type of the variation file 24 | 401: 25 | $ref: "#/responses/401Error" 26 | 403: 27 | $ref: "#/responses/403Error" 28 | 404: 29 | $ref: "#/responses/404Error" 30 | -------------------------------------------------------------------------------- /content/swagger/resources/jobs/routes/export.yaml: -------------------------------------------------------------------------------- 1 | post: 2 | summary: Launch export job by code 3 | operationId: "post_job_export" 4 | tags: 5 | - Jobs 6 | x-versions: 7 | - "SaaS" 8 | description: This endpoint allows you to launch an export job by code. 9 | parameters: 10 | - name: code 11 | in: path 12 | type: string 13 | description: Job code 14 | required: true 15 | responses: 16 | 200: 17 | description: OK 18 | x-details: Returns the execution ID for the launched job 19 | x-examples-per-version: 20 | - x-version: 'SaaS' 21 | x-example: {"execution_id": "12345"} 22 | 400: 23 | $ref: "#/responses/400Error" 24 | 403: 25 | $ref: "#/responses/403Error" 26 | 404: 27 | $ref: "#/responses/404Error" 28 | 422: 29 | $ref: "#/responses/422Error" 30 | -------------------------------------------------------------------------------- /content/swagger/resources/jobs/routes/import.yaml: -------------------------------------------------------------------------------- 1 | post: 2 | summary: Launch import job by code 3 | operationId: "post_job_import" 4 | tags: 5 | - Jobs 6 | x-versions: 7 | - "SaaS" 8 | description: This endpoint allows you to launch an import job by code. 9 | x-body-by-line: "The body is optional and can be be empty. If empty, the import profile options will be used." 10 | parameters: 11 | - name: code 12 | in: path 13 | type: string 14 | description: Job code 15 | required: true 16 | - name: body 17 | in: body 18 | schema: 19 | properties: 20 | import_mode: 21 | type: string 22 | description: "Change the import mode for this job by overriding the profile value. 23 | Available values are: create_only, update_only and create_or_update" 24 | responses: 25 | 200: 26 | description: OK 27 | x-details: Returns the execution ID for the launched job 28 | x-examples-per-version: 29 | - x-version: 'SaaS' 30 | x-example: {"execution_id": "12345"} 31 | 400: 32 | $ref: "#/responses/400Error" 33 | 403: 34 | $ref: "#/responses/403Error" 35 | 404: 36 | $ref: "#/responses/404Error" 37 | 422: 38 | $ref: "#/responses/422Error" 39 | -------------------------------------------------------------------------------- /content/swagger/resources/locales/definitions/locale.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: Locale code 7 | x-immutable: true 8 | enabled: 9 | type: boolean 10 | description: Whether the locale is enabled 11 | default: false 12 | example: { 13 | "code": "en_US", 14 | "enable": true 15 | } 16 | -------------------------------------------------------------------------------- /content/swagger/resources/locales/routes/locales_code.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Get a locale 3 | operationId: "get_locales__code_" 4 | description: This endpoint allows you to get the information about a given locale. 5 | tags: 6 | - Locale 7 | x-versions: 8 | - "1.7" 9 | - "2.x" 10 | - "3.x" 11 | - "4.0" 12 | - "5.0" 13 | - "6.0" 14 | - "7.0" 15 | - "SaaS" 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 200: 20 | description: OK 21 | x-details: Returns the content of the locale in JSON standard format 22 | schema: 23 | $ref: '#/definitions/Locale' 24 | 401: 25 | $ref: "#/responses/401Error" 26 | 403: 27 | $ref: "#/responses/403Error" 28 | 404: 29 | $ref: "#/responses/404Error" 30 | 406: 31 | $ref: "#/responses/406Error" 32 | -------------------------------------------------------------------------------- /content/swagger/resources/measure_families/definitions/measure_family.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: Measure family code 7 | x-immutable: true 8 | standard: 9 | type: string 10 | description: Measure family standard 11 | x-immutable: true 12 | units: 13 | type: array 14 | description: Family units 15 | items: 16 | type: object 17 | properties: 18 | code: 19 | type: string 20 | description: Measure code 21 | x-immutable: true 22 | convert: 23 | type: object 24 | description: Mathematic operation to convert the unit into the standard unit 25 | symbol: 26 | type: string 27 | description: Measure symbol 28 | x-immutable: true 29 | example: { 30 | "code": "Area", 31 | "standard": "SQUARE_METER", 32 | "units": [ 33 | { 34 | "code": "SQUARE_MILLIMETER", 35 | "convert": { 36 | "mul": "0.001" 37 | }, 38 | "symbol": "mm\u00b2" 39 | }, 40 | { 41 | "code": "SQUARE_CENTIMETER", 42 | "convert": { 43 | "mul": "0.001" 44 | }, 45 | "symbol": "cm\u00b2" 46 | }, 47 | ] 48 | } 49 | -------------------------------------------------------------------------------- /content/swagger/resources/measure_families/routes/measure_families_code.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Get a measure family (deprecated as of v5.0) 3 | operationId: "measure_families_get" 4 | description: This endpoint allows you to get the information about a given measure family. 5 | tags: 6 | - Measure family 7 | x-versions: 8 | - "2.x" 9 | - "3.x" 10 | - "4.0" 11 | - "5.0" 12 | - "6.0" 13 | - "7.0" 14 | - "SaaS" 15 | parameters: 16 | - $ref: '#/parameters/code' 17 | responses: 18 | 200: 19 | description: OK 20 | x-details: Returns the content of the measure family in JSON standard format 21 | schema: 22 | $ref: '#/definitions/MeasureFamily' 23 | 401: 24 | $ref: "#/responses/401Error" 25 | 403: 26 | $ref: "#/responses/403Error" 27 | 404: 28 | $ref: "#/responses/404Error" 29 | 406: 30 | $ref: "#/responses/406Error" 31 | -------------------------------------------------------------------------------- /content/swagger/resources/media_files/definitions/media_file.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | code: 4 | type: string 5 | description: Media file code 6 | x-immutable: true 7 | original_filename: 8 | type: string 9 | description: Original filename of the media file 10 | mime_type: 11 | type: string 12 | description: Mime type of the media file 13 | x-read-only: true 14 | size: 15 | type: integer 16 | description: Size of the media file 17 | x-read-only: true 18 | extension: 19 | type: string 20 | description: Extension of the media file 21 | x-read-only: true 22 | example: { 23 | "code": "7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg", 24 | "original_filename": "10806799-1356.jpg", 25 | "mime_type": "image/jpeg", 26 | "size": 16070, 27 | "extension": "jpg" 28 | } 29 | -------------------------------------------------------------------------------- /content/swagger/resources/media_files/definitions/media_file_links.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | _links: 4 | type: object 5 | x-read-only: true 6 | properties: 7 | download: 8 | type: object 9 | properties: 10 | href: 11 | type: string 12 | description: URI to download the binaries of the media file 13 | -------------------------------------------------------------------------------- /content/swagger/resources/media_files/routes/media_files_code.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Get a product media file 3 | operationId: "get_media_files__code_" 4 | description: This endpoint allows you to get the information about a given media file that is used as an attribute value of a product or a product model. 5 | tags: 6 | - Product media file 7 | x-versions: 8 | - "1.7" 9 | - "2.x" 10 | - "3.x" 11 | - "4.0" 12 | - "5.0" 13 | - "6.0" 14 | - "7.0" 15 | - "SaaS" 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 200: 20 | description: OK 21 | x-details: Returns the content of the media file in JSON standard format 22 | schema: 23 | $ref: '#/definitions/MediaFile' 24 | 401: 25 | $ref: "#/responses/401Error" 26 | 403: 27 | $ref: "#/responses/403Error" 28 | 404: 29 | $ref: "#/responses/404Error" 30 | 406: 31 | $ref: "#/responses/406Error" 32 | -------------------------------------------------------------------------------- /content/swagger/resources/media_files/routes/media_files_code_download.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Download a product media file 3 | operationId: "get_media_files__code__download" 4 | description: This endpoint allows you to download a given media file that is used as an attribute value of a product or a product model. 5 | x-content-type: Mime-type of the media file 6 | tags: 7 | - Product media file 8 | x-versions: 9 | - "1.7" 10 | - "2.x" 11 | - "3.x" 12 | - "4.0" 13 | - "5.0" 14 | - "6.0" 15 | - "7.0" 16 | - "SaaS" 17 | parameters: 18 | - $ref: '#/parameters/code' 19 | responses: 20 | 200: 21 | description: OK 22 | x-details: Returns the binary of the media file 23 | x-content-type: Mime-type of the media file 24 | 401: 25 | $ref: "#/responses/401Error" 26 | 403: 27 | $ref: "#/responses/403Error" 28 | 404: 29 | $ref: "#/responses/404Error" 30 | -------------------------------------------------------------------------------- /content/swagger/resources/product_models/routes/product_models_code_draft.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Get a draft 3 | operationId: "get_product_model_draft__code_" 4 | tags: 5 | - Product model 6 | x-versions: 7 | - "2.3" 8 | - "3.x" 9 | - "4.0" 10 | - "5.0" 11 | - "6.0" 12 | - "7.0" 13 | - "SaaS" 14 | x-ee: true 15 | description: This endpoint allows you to get the information about a given product model draft. 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 200: 20 | description: OK 21 | x-details: Returns the content of the draft in JSON standard format 22 | schema: 23 | $ref: '#/definitions/ProductModel' 24 | 401: 25 | $ref: "#/responses/401Error" 26 | 403: 27 | $ref: "#/responses/403Error" 28 | 406: 29 | $ref: "#/responses/406Error" 30 | 404: 31 | $ref: "#/responses/404Error" 32 | -------------------------------------------------------------------------------- /content/swagger/resources/product_models/routes/product_models_code_proposal.yaml: -------------------------------------------------------------------------------- 1 | post: 2 | summary: Submit a draft for approval 3 | operationId: "post_product_model_proposal" 4 | tags: 5 | - Product model 6 | x-versions: 7 | - "2.3" 8 | - "3.x" 9 | - "4.0" 10 | - "5.0" 11 | - "6.0" 12 | - "7.0" 13 | - "SaaS" 14 | x-ee: true 15 | description: This endpoint allows you to submit a product model draft for approval. 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 201: 20 | $ref: "#/responses/Submitted" 21 | 401: 22 | $ref: "#/responses/401Error" 23 | 403: 24 | $ref: "#/responses/403Error" 25 | 415: 26 | $ref: "#/responses/415Error" 27 | 422: 28 | $ref: "#/responses/422Error" 29 | -------------------------------------------------------------------------------- /content/swagger/resources/products/routes/products_code_draft.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Get a draft 3 | operationId: "get_draft__code_" 4 | tags: 5 | - Product [identifier] 6 | x-versions: 7 | - "2.x" 8 | - "3.x" 9 | - "4.0" 10 | - "5.0" 11 | - "6.0" 12 | - "7.0" 13 | - "SaaS" 14 | x-ee: true 15 | description: This endpoint allows you to get the information about a given draft. 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 200: 20 | description: OK 21 | x-details: Returns the content of the draft in JSON standard format 22 | schema: 23 | $ref: '#/definitions/Product' 24 | 401: 25 | $ref: "#/responses/401Error" 26 | 403: 27 | $ref: "#/responses/403Error" 28 | 406: 29 | $ref: "#/responses/406Error" 30 | 404: 31 | $ref: "#/responses/404Error" 32 | -------------------------------------------------------------------------------- /content/swagger/resources/products/routes/products_code_proposal.yaml: -------------------------------------------------------------------------------- 1 | post: 2 | summary: Submit a draft for approval 3 | operationId: "post_proposal" 4 | tags: 5 | - Product [identifier] 6 | x-versions: 7 | - "2.x" 8 | - "3.x" 9 | - "4.0" 10 | - "5.0" 11 | - "6.0" 12 | - "7.0" 13 | - "SaaS" 14 | x-ee: true 15 | description: This endpoint allows you to submit a draft for approval. 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 201: 20 | $ref: "#/responses/Submitted" 21 | 401: 22 | $ref: "#/responses/401Error" 23 | 403: 24 | $ref: "#/responses/403Error" 25 | 415: 26 | $ref: "#/responses/415Error" 27 | 422: 28 | $ref: "#/responses/422Error" 29 | -------------------------------------------------------------------------------- /content/swagger/resources/products_uuid/routes/products_uuid_uuid_draft.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Get a draft 3 | operationId: "get_draft_uuid__uuid_" 4 | tags: 5 | - Product [uuid] 6 | x-versions: 7 | - "7.0" 8 | - "SaaS" 9 | x-ee: true 10 | description: This endpoint allows you to get the information about a given draft. 11 | parameters: 12 | - $ref: '#/parameters/uuid' 13 | responses: 14 | 200: 15 | description: OK 16 | x-details: Returns the content of the draft in JSON standard format 17 | schema: 18 | $ref: '#/definitions/ProductUuid' 19 | 401: 20 | $ref: "#/responses/401Error" 21 | 403: 22 | $ref: "#/responses/403Error" 23 | 406: 24 | $ref: "#/responses/406Error" 25 | 404: 26 | $ref: "#/responses/404Error" 27 | -------------------------------------------------------------------------------- /content/swagger/resources/products_uuid/routes/products_uuid_uuid_proposal.yaml: -------------------------------------------------------------------------------- 1 | post: 2 | summary: Submit a draft for approval 3 | operationId: "post_proposal_uuid" 4 | tags: 5 | - Product [uuid] 6 | x-versions: 7 | - "7.0" 8 | - "SaaS" 9 | x-ee: true 10 | description: This endpoint allows you to submit a draft for approval. 11 | parameters: 12 | - $ref: '#/parameters/uuid' 13 | responses: 14 | 201: 15 | $ref: "#/responses/Submitted" 16 | 401: 17 | $ref: "#/responses/401Error" 18 | 403: 19 | $ref: "#/responses/403Error" 20 | 415: 21 | $ref: "#/responses/415Error" 22 | 422: 23 | $ref: "#/responses/422Error" 24 | -------------------------------------------------------------------------------- /content/swagger/resources/published_products/routes/published_products_code.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Get a published product 3 | operationId: "get_published_products__code_" 4 | tags: 5 | - Published product 6 | x-versions: 7 | - "2.x" 8 | - "3.x" 9 | - "4.0" 10 | - "5.0" 11 | - "6.0" 12 | - "7.0" 13 | - "SaaS" 14 | x-ee: true 15 | description: This endpoint allows you to get the information about a given published product. 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 200: 20 | description: OK 21 | x-details: Returns the content of the published product in JSON standard format 22 | schema: 23 | $ref: '#/definitions/PublishedProduct' 24 | 401: 25 | $ref: "#/responses/401Error" 26 | 403: 27 | $ref: "#/responses/403Error" 28 | 406: 29 | $ref: "#/responses/406Error" 30 | 404: 31 | $ref: "#/responses/404Error" 32 | -------------------------------------------------------------------------------- /content/swagger/resources/reference_entities/definitions/reference_entities.yaml: -------------------------------------------------------------------------------- 1 | type: array 2 | items: 3 | $ref: ../definitions/reference_entity.yaml 4 | example: [ 5 | { 6 | "code": "brands", 7 | "labels": { 8 | "en_US": "Brands", 9 | "fr_FR": "Marques" 10 | }, 11 | "image": "0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png" 12 | }, 13 | { 14 | "code": "colors", 15 | "labels": { 16 | "en_US": "Colors", 17 | "fr_FR": "Couleurs" 18 | } 19 | }, 20 | { 21 | "code": "designers", 22 | "labels": { 23 | "en_US": "Desginers", 24 | "fr_FR": "Designers" 25 | } 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /content/swagger/resources/reference_entities/definitions/reference_entity.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: Reference entity code 7 | x-immutable: true 8 | labels: 9 | type: object 10 | description: Reference entity labels for each locale 11 | x-validation-rules: The `localeCode` is the code of an existing and activated locale 12 | default: {} 13 | properties: 14 | localeCode: 15 | type: string 16 | description: Reference entity label for the locale `localeCode` 17 | image: 18 | type: string 19 | description: Code of the reference entity image 20 | default: null 21 | example: { 22 | "code": "brands", 23 | "labels": { 24 | "en_US": "Brands", 25 | "fr_FR": "Marques" 26 | }, 27 | "image": "0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png" 28 | } 29 | -------------------------------------------------------------------------------- /content/swagger/resources/reference_entities/definitions/reference_entity_links.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | _links: 4 | type: object 5 | x-read-only: true 6 | properties: 7 | image_download: 8 | type: object 9 | properties: 10 | href: 11 | type: string 12 | description: URI to download the binaries of the reference entity image file 13 | -------------------------------------------------------------------------------- /content/swagger/resources/reference_entity_attributes/definitions/reference_entity_attribute_option.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: ["code"] 3 | properties: 4 | code: 5 | type: string 6 | description: Attribute's option code 7 | x-immutable: true 8 | labels: 9 | type: object 10 | description: Attribute labels for each locale 11 | x-validation-rules: The `localeCode` is the code of an existing and activated locale 12 | default: {} 13 | properties: 14 | localeCode: 15 | type: string 16 | description: Attribute label for the locale `localeCode` 17 | example: { 18 | "code": "global_nomad", 19 | "labels": { 20 | "en_US": "Global Nomad", 21 | "fr_FR": "Nomade du Monde" 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /content/swagger/resources/reference_entity_media_files/routes/reference_entity_media_files_code.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: Download the media file associated to a reference entity or a record 3 | operationId: "get_reference_entity_media_files__code" 4 | description: This endpoint allows you to download a given media file that is associated with a reference entity or a record. 5 | x-content-type: Mime-type of the media file 6 | tags: 7 | - Reference entity media file 8 | x-versions: 9 | - "3.x" 10 | - "4.0" 11 | - "5.0" 12 | - "6.0" 13 | - "7.0" 14 | - "SaaS" 15 | x-ee: true 16 | parameters: 17 | - $ref: '#/parameters/code' 18 | responses: 19 | 200: 20 | description: OK 21 | x-details: Returns the binary of the media file 22 | x-content-type: Mime-type of the media file 23 | 401: 24 | $ref: "#/responses/401Error" 25 | 404: 26 | $ref: "#/responses/404Error" 27 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/configuration.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | description: Configuration options that are specific to the UI extension type 3 | properties: 4 | default_label: 5 | type: string 6 | description: Default label, used if there is no translation for the PIM user locale 7 | labels: 8 | type: object 9 | description: Label translations 10 | secret: 11 | type: string 12 | description: Shows ***REDACTED*** if a secret is registered for the extension 13 | url: 14 | type: string 15 | description: Destination URL of the extension 16 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/description.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | description: Short description, shown within the Administration interface 3 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/examples/ui_extension.yaml: -------------------------------------------------------------------------------- 1 | uuid: "d414135b-ff4d-44e1-8cb6-fce64cbe29c0" 2 | name: "my_awesome_button_extension" 3 | type: "iframe" 4 | position: "pim.product.tab" 5 | configuration: 6 | url: "https://www.example.com" 7 | labels: 8 | en_US: "My awesome link extension" 9 | fr_FR: "Ma super link extension" 10 | default_label: "My awesome link extension" 11 | status: "active" 12 | version: "V1.02.3" 13 | description: "A short human readable description." 14 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/examples/ui_extension_patch_body.yaml: -------------------------------------------------------------------------------- 1 | type: "link" 2 | position: "pim.product.header" 3 | version: "V1.02.4" 4 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/examples/ui_extension_patch_response.yaml: -------------------------------------------------------------------------------- 1 | uuid: "d414135b-ff4d-44e1-8cb6-fce64cbe29c0" 2 | name: "my_awesome_button_extension" 3 | type: "link" 4 | position: "pim.product.header" 5 | configuration: 6 | url: "https://www.example.com" 7 | labels: 8 | en_US: "My awesome link extension" 9 | fr_FR: "Ma super link extension" 10 | default_label: "My awesome link extension" 11 | status: "active" 12 | version: "V1.02.4" 13 | description: "A short human readable description." 14 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/examples/ui_extension_post_body.yaml: -------------------------------------------------------------------------------- 1 | uuid: "d414135b-ff4d-44e1-8cb6-fce64cbe29c0" 2 | name: "my_awesome_button_extension" 3 | type: "iframe" 4 | position: "pim.product.tab" 5 | configuration: 6 | url: "https://www.example.com" 7 | labels: 8 | en_US: "My awesome link extension" 9 | fr_FR: "Ma super link extension" 10 | default_label: "My awesome link extension" 11 | version: "V1.02.3" 12 | description: "A short human readable description." 13 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/name.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | description: Name of the extension, shown within the Administration interface 3 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/position.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | description: Position of the UI extension 3 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/responses/404not_found.yaml: -------------------------------------------------------------------------------- 1 | description: UI extension not found 2 | x-details: The UUID given in the URI does not correspond to any existing UI extension 3 | schema: 4 | $ref: "#/definitions/Error" 5 | examples: { 6 | "code": 404, 7 | "message": "This UI Extension does not exist or you don't have access." 8 | } 9 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/status.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | description: Status of the UI extension (active or inactive) 3 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/type.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | description: Type of the UI extension 3 | -------------------------------------------------------------------------------- /content/swagger/resources/ui_extensions/definitions/version.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | description: Version of the extension, shown within the Administration interface 3 | -------------------------------------------------------------------------------- /content/tutorials/homepage/homepage.md: -------------------------------------------------------------------------------- 1 |

Guided Tutorials

2 | 3 |

Filter Tutorial

4 | 5 | Select one use case or one feature to filter the tutorials depending on what you need! 6 | -------------------------------------------------------------------------------- /deployments/modules/dependencies/apis.tf: -------------------------------------------------------------------------------- 1 | resource "google_project_service" "apis" { 2 | for_each = toset(var.google_project_services) 3 | project = var.project_id 4 | service = each.key 5 | disable_dependent_services = true 6 | } 7 | -------------------------------------------------------------------------------- /deployments/modules/dependencies/artifact-registry.tf: -------------------------------------------------------------------------------- 1 | resource "google_artifact_registry_repository" "docker" { 2 | provider = google-beta 3 | project = var.project_id 4 | 5 | location = var.docker_registry_location 6 | repository_id = var.docker_registry_id 7 | description = "Docker Registry" 8 | format = "DOCKER" 9 | 10 | depends_on = [ 11 | google_project_service.apis, 12 | ] 13 | } 14 | 15 | resource "google_artifact_registry_repository_iam_member" "main_docker_iam" { 16 | provider = google-beta 17 | project = var.project_id 18 | 19 | location = google_artifact_registry_repository.docker.location 20 | repository = google_artifact_registry_repository.docker.name 21 | role = "roles/artifactregistry.writer" 22 | member = "serviceAccount:main-service-account@${var.project_id}.iam.gserviceaccount.com" 23 | 24 | depends_on = [ 25 | google_artifact_registry_repository.docker, 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /deployments/modules/dependencies/dns.tf: -------------------------------------------------------------------------------- 1 | resource "google_dns_managed_zone" "project_zone" { 2 | name = "api-${var.stage}-${var.dns_managed_zone}" 3 | dns_name = "api-${var.stage}.${replace(var.dns_managed_zone, "-", ".")}." 4 | description = "api-${var.stage} DNS zone" 5 | project = var.project_id 6 | 7 | dnssec_config { 8 | state = "on" 9 | } 10 | 11 | depends_on = [ 12 | google_project_service.dns, 13 | ] 14 | } 15 | 16 | resource "google_project_service" "dns" { 17 | project = var.project_id 18 | service = "dns.googleapis.com" 19 | disable_dependent_services = true 20 | } 21 | -------------------------------------------------------------------------------- /deployments/modules/dependencies/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | description = "Project ID" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | description = "Region" 9 | } 10 | 11 | variable "stage" { 12 | type = string 13 | description = "Stage" 14 | } 15 | 16 | variable "dns_managed_zone" { 17 | type = string 18 | description = "DNS Managed Zone" 19 | } 20 | 21 | variable "docker_registry_id" { 22 | type = string 23 | description = "Docker Registry ID" 24 | } 25 | 26 | variable "docker_registry_location" { 27 | type = string 28 | description = "Docker Registry Location" 29 | } 30 | 31 | variable "google_project_services" { 32 | type = list(string) 33 | description = "List of all google project APIs to activate" 34 | default = [ 35 | "container.googleapis.com", 36 | "monitoring.googleapis.com", 37 | "logging.googleapis.com", 38 | "servicenetworking.googleapis.com", 39 | "artifactregistry.googleapis.com", 40 | "run.googleapis.com", 41 | "secretmanager.googleapis.com", 42 | ] 43 | } 44 | 45 | data "google_project" "project" { 46 | project_id = var.project_id 47 | } 48 | 49 | locals { 50 | project_number = data.google_project.project.number 51 | } 52 | -------------------------------------------------------------------------------- /deployments/modules/services/main.tf: -------------------------------------------------------------------------------- 1 | module "storage" { 2 | source = "./storage" 3 | project_id = var.project_id 4 | prefix = var.prefix 5 | stage = var.stage 6 | app_version = var.app_version 7 | pull_request = var.pull_request 8 | pull_request_id = var.pull_request_id 9 | } 10 | 11 | module "networking" { 12 | source = "./networking" 13 | project_id = var.project_id 14 | region = var.region 15 | prefix = var.prefix 16 | bucket_name = module.storage.bucket_name 17 | dns_managed_zone = var.dns_managed_zone 18 | domains = var.domains 19 | stage = var.stage 20 | pull_request = var.pull_request 21 | pull_request_id = var.pull_request_id 22 | 23 | depends_on = [ 24 | module.storage 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /deployments/modules/services/networking/backend-bucket.tf: -------------------------------------------------------------------------------- 1 | resource "google_compute_backend_bucket" "front" { 2 | name = "${local.context}-bb" 3 | description = "Contains static files" 4 | bucket_name = var.bucket_name 5 | enable_cdn = true 6 | custom_response_headers = var.stage == "prd" ? [] : ["X-Robots-Tag: noindex"] 7 | } 8 | -------------------------------------------------------------------------------- /deployments/modules/services/networking/dns.tf: -------------------------------------------------------------------------------- 1 | resource "google_dns_record_set" "public" { 2 | name = "${local.public_project_level_fqdn[0]}." 3 | managed_zone = "api-${var.stage}-${var.dns_managed_zone}" 4 | type = "A" 5 | ttl = 300 6 | project = var.project_id 7 | 8 | rrdatas = [google_compute_global_address.default.address] 9 | 10 | depends_on = [ 11 | google_compute_global_address.default 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /deployments/modules/services/networking/locals.tf: -------------------------------------------------------------------------------- 1 | locals { 2 | context = var.pull_request ? "${var.pull_request_id}" : var.stage 3 | dns_prefix = var.pull_request ? "${var.pull_request_id}." : "" 4 | public_project_level_fqdn = [for domain in var.domains : replace("${replace(domain, "/(^[^\\.]+)/", "${local.dns_prefix}$${1}-${var.stage}")}", "'", "")] 5 | public_fqdn = var.stage == "prd" ? var.domains : [for domain in var.domains : replace("${replace(domain, "/(^[^\\.]+)/", "$${1}-${var.stage}")}", "'", "")] 6 | public_domains = var.stage == "prd" ? concat(local.public_project_level_fqdn, local.public_fqdn) : local.public_project_level_fqdn 7 | } 8 | -------------------------------------------------------------------------------- /deployments/modules/services/networking/outputs.tf: -------------------------------------------------------------------------------- 1 | output "public_fqdn" { 2 | value = var.pull_request ? local.public_project_level_fqdn : local.public_fqdn 3 | } 4 | -------------------------------------------------------------------------------- /deployments/modules/services/networking/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | description = "Project ID" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | description = "Region" 9 | } 10 | 11 | variable "prefix" { 12 | type = string 13 | description = "Prefix of all items related to the infrastructure" 14 | } 15 | 16 | variable "bucket_name" { 17 | type = string 18 | description = "Bucket Name" 19 | } 20 | 21 | variable "dns_managed_zone" { 22 | type = string 23 | description = "DNS Managed Zone" 24 | } 25 | 26 | variable "domains" { 27 | type = list(string) 28 | description = "List of all domains to manage" 29 | } 30 | 31 | variable "stage" { 32 | type = string 33 | description = "Stage" 34 | } 35 | 36 | variable "pull_request" { 37 | type = bool 38 | description = "Pull Request context?" 39 | } 40 | 41 | variable "pull_request_id" { 42 | type = string 43 | description = "Pull Request ID" 44 | } 45 | -------------------------------------------------------------------------------- /deployments/modules/services/outputs.tf: -------------------------------------------------------------------------------- 1 | output "service_frontend_public_url" { 2 | value = "https://${module.networking.public_fqdn[0]}" 3 | } 4 | -------------------------------------------------------------------------------- /deployments/modules/services/storage/main.tf: -------------------------------------------------------------------------------- 1 | resource "google_storage_bucket" "front" { 2 | name = "${local.context}-${var.project_id}-front" 3 | location = "EU" 4 | 5 | project = var.project_id 6 | force_destroy = true 7 | 8 | website { 9 | main_page_suffix = "index.html" 10 | } 11 | } 12 | 13 | resource "google_storage_bucket_access_control" "front_read_only" { 14 | bucket = google_storage_bucket.front.name 15 | role = "READER" 16 | entity = "allUsers" 17 | } 18 | 19 | resource "google_storage_default_object_access_control" "front_read_only" { 20 | bucket = google_storage_bucket.front.name 21 | role = "READER" 22 | entity = "allUsers" 23 | } 24 | -------------------------------------------------------------------------------- /deployments/modules/services/storage/outputs.tf: -------------------------------------------------------------------------------- 1 | output "bucket_name" { 2 | value = google_storage_bucket.front.name 3 | } 4 | -------------------------------------------------------------------------------- /deployments/modules/services/storage/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | description = "Project ID" 4 | } 5 | 6 | variable "stage" { 7 | type = string 8 | description = "Stage" 9 | } 10 | 11 | variable "app_version" { 12 | type = string 13 | description = "Application version" 14 | } 15 | 16 | variable "prefix" { 17 | type = string 18 | description = "Prefix of all items related to the infrastructure" 19 | } 20 | 21 | variable "pull_request" { 22 | type = bool 23 | description = "Pull Request context?" 24 | } 25 | 26 | variable "pull_request_id" { 27 | type = string 28 | description = "Pull Request ID" 29 | } 30 | 31 | locals { 32 | context = var.pull_request ? "${var.pull_request_id}" : var.stage 33 | labels = { 34 | env = var.stage 35 | version = lower(var.app_version) 36 | app = var.prefix 37 | project = var.project_id 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /deployments/modules/services/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | description = "Project ID" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | description = "Region" 9 | } 10 | 11 | variable "prefix" { 12 | type = string 13 | description = "Prefix of all items related to the infrastructure" 14 | } 15 | 16 | variable "dns_managed_zone" { 17 | type = string 18 | description = "DNS Managed Zone" 19 | } 20 | 21 | variable "domains" { 22 | type = list(string) 23 | description = "List of all domains to manage" 24 | } 25 | 26 | variable "first_install" { 27 | description = "Is it the first deployment?" 28 | } 29 | 30 | variable "stage" { 31 | type = string 32 | description = "Stage" 33 | } 34 | 35 | variable "app_version" { 36 | type = string 37 | description = "Application version" 38 | } 39 | 40 | variable "pull_request" { 41 | type = bool 42 | description = "Pull Request context?" 43 | default = false 44 | } 45 | 46 | variable "pull_request_id" { 47 | type = string 48 | description = "Pull Request ID" 49 | default = "" 50 | } 51 | -------------------------------------------------------------------------------- /deployments/stages/dev/dependencies/main.tf: -------------------------------------------------------------------------------- 1 | module "dependencies" { 2 | source = "../../../modules/dependencies" 3 | project_id = var.project_id 4 | region = var.region 5 | stage = var.stage 6 | dns_managed_zone = var.dns_managed_zone 7 | docker_registry_id = var.docker_registry_id 8 | docker_registry_location = var.docker_registry_location 9 | } 10 | 11 | terraform { 12 | backend "gcs" { 13 | bucket = "akecld-terraform-pim-api-docs-dev" 14 | prefix = "dependencies/dev" 15 | } 16 | required_version = "= 1.6.5" 17 | } 18 | -------------------------------------------------------------------------------- /deployments/stages/dev/dependencies/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | default = "akecld-prd-pim-api-docs-dev" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | default = "europe-west3" 9 | } 10 | 11 | variable "dns_managed_zone" { 12 | type = string 13 | default = "akeneo-com" 14 | } 15 | 16 | variable "docker_registry_id" { 17 | type = string 18 | default = "docker-repository" 19 | } 20 | 21 | variable "docker_registry_location" { 22 | type = string 23 | default = "europe-west3" 24 | } 25 | 26 | # Custom Parameters 27 | 28 | variable "first_install" { 29 | description = "Is it the first deployment?" 30 | } 31 | 32 | variable "stage" { 33 | type = string 34 | description = "Stage" 35 | } 36 | 37 | variable "app_version" { 38 | type = string 39 | description = "Application version" 40 | } 41 | 42 | variable "pull_request" { 43 | type = bool 44 | description = "Pull Request context?" 45 | default = false 46 | } 47 | 48 | variable "pull_request_id" { 49 | type = string 50 | description = "Pull Request ID" 51 | default = "" 52 | } 53 | -------------------------------------------------------------------------------- /deployments/stages/dev/services/main.tf: -------------------------------------------------------------------------------- 1 | module "services" { 2 | source = "../../../modules/services" 3 | project_id = var.project_id 4 | region = var.region 5 | prefix = var.prefix 6 | dns_managed_zone = var.dns_managed_zone 7 | domains = var.domains 8 | first_install = var.first_install 9 | stage = var.stage 10 | app_version = var.app_version 11 | pull_request = var.pull_request 12 | pull_request_id = var.pull_request_id 13 | } 14 | 15 | terraform { 16 | backend "gcs" { 17 | bucket = "akecld-terraform-pim-api-docs-dev" 18 | prefix = "services/dev" 19 | } 20 | required_version = "= 1.6.5" 21 | } 22 | -------------------------------------------------------------------------------- /deployments/stages/dev/services/outputs.tf: -------------------------------------------------------------------------------- 1 | output "service_frontend_public_url" { 2 | value = module.services.service_frontend_public_url 3 | } 4 | -------------------------------------------------------------------------------- /deployments/stages/dev/services/providers.tf: -------------------------------------------------------------------------------- 1 | provider "google" { 2 | project = var.project_id 3 | } 4 | -------------------------------------------------------------------------------- /deployments/stages/dev/services/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | default = "akecld-prd-pim-api-docs-dev" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | default = "europe-west3" 9 | } 10 | 11 | variable "prefix" { 12 | type = string 13 | description = "Prefix of all items related to the infrastructure" 14 | default = "pim-api-docs" 15 | } 16 | 17 | variable "dns_managed_zone" { 18 | type = string 19 | default = "akeneo-com" 20 | } 21 | 22 | variable "domains" { 23 | type = list(string) 24 | description = "List of all domains to manage" 25 | default = [ 26 | "api.akeneo.com", 27 | ] 28 | } 29 | 30 | # Custom Parameters 31 | 32 | variable "first_install" { 33 | description = "Is it the first deployment?" 34 | } 35 | 36 | variable "stage" { 37 | type = string 38 | description = "Stage" 39 | } 40 | 41 | variable "app_version" { 42 | type = string 43 | description = "Application version" 44 | } 45 | 46 | variable "pull_request" { 47 | type = bool 48 | description = "Pull Request context?" 49 | default = false 50 | } 51 | 52 | variable "pull_request_id" { 53 | type = string 54 | description = "Pull Request ID" 55 | default = "" 56 | } 57 | -------------------------------------------------------------------------------- /deployments/stages/ppd/dependencies/main.tf: -------------------------------------------------------------------------------- 1 | module "dependencies" { 2 | source = "../../../modules/dependencies" 3 | project_id = var.project_id 4 | region = var.region 5 | stage = var.stage 6 | dns_managed_zone = var.dns_managed_zone 7 | docker_registry_id = var.docker_registry_id 8 | docker_registry_location = var.docker_registry_location 9 | } 10 | 11 | terraform { 12 | backend "gcs" { 13 | bucket = "akecld-terraform-pim-api-docs-ppd" 14 | prefix = "dependencies/ppd" 15 | } 16 | required_version = "= 1.6.5" 17 | } 18 | -------------------------------------------------------------------------------- /deployments/stages/ppd/dependencies/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | default = "akecld-prd-pim-api-docs-ppd" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | default = "europe-west3" 9 | } 10 | 11 | variable "dns_managed_zone" { 12 | type = string 13 | default = "akeneo-com" 14 | } 15 | 16 | variable "docker_registry_id" { 17 | type = string 18 | default = "docker-repository" 19 | } 20 | 21 | variable "docker_registry_location" { 22 | type = string 23 | default = "europe-west3" 24 | } 25 | 26 | # Custom Parameters 27 | 28 | variable "first_install" { 29 | description = "Is it the first deployment?" 30 | } 31 | 32 | variable "stage" { 33 | type = string 34 | description = "Stage" 35 | } 36 | 37 | variable "app_version" { 38 | type = string 39 | description = "Application version" 40 | } 41 | -------------------------------------------------------------------------------- /deployments/stages/ppd/services/main.tf: -------------------------------------------------------------------------------- 1 | module "services" { 2 | source = "../../../modules/services" 3 | project_id = var.project_id 4 | region = var.region 5 | prefix = var.prefix 6 | dns_managed_zone = var.dns_managed_zone 7 | domains = var.domains 8 | first_install = var.first_install 9 | stage = var.stage 10 | app_version = var.app_version 11 | } 12 | 13 | terraform { 14 | backend "gcs" { 15 | bucket = "akecld-terraform-pim-api-docs-ppd" 16 | prefix = "services/ppd" 17 | } 18 | required_version = "= 1.6.5" 19 | } 20 | -------------------------------------------------------------------------------- /deployments/stages/ppd/services/outputs.tf: -------------------------------------------------------------------------------- 1 | output "service_frontend_public_url" { 2 | value = module.services.service_frontend_public_url 3 | } 4 | -------------------------------------------------------------------------------- /deployments/stages/ppd/services/providers.tf: -------------------------------------------------------------------------------- 1 | provider "google" { 2 | project = var.project_id 3 | } 4 | -------------------------------------------------------------------------------- /deployments/stages/ppd/services/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | default = "akecld-prd-pim-api-docs-ppd" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | default = "europe-west3" 9 | } 10 | 11 | variable "prefix" { 12 | type = string 13 | description = "Prefix of all items related to the infrastructure" 14 | default = "pim-api-docs" 15 | } 16 | 17 | variable "dns_managed_zone" { 18 | type = string 19 | default = "akeneo-com" 20 | } 21 | 22 | variable "domains" { 23 | type = list(string) 24 | description = "List of all domains to manage" 25 | default = [ 26 | "api.akeneo.com", 27 | ] 28 | } 29 | 30 | # Custom Parameters 31 | 32 | variable "first_install" { 33 | description = "Is it the first deployment?" 34 | } 35 | 36 | variable "stage" { 37 | type = string 38 | description = "Stage" 39 | } 40 | 41 | variable "app_version" { 42 | type = string 43 | description = "Application version" 44 | } 45 | -------------------------------------------------------------------------------- /deployments/stages/prd/dependencies/main.tf: -------------------------------------------------------------------------------- 1 | module "dependencies" { 2 | source = "../../../modules/dependencies" 3 | project_id = var.project_id 4 | region = var.region 5 | stage = var.stage 6 | dns_managed_zone = var.dns_managed_zone 7 | docker_registry_id = var.docker_registry_id 8 | docker_registry_location = var.docker_registry_location 9 | } 10 | 11 | terraform { 12 | backend "gcs" { 13 | bucket = "akecld-terraform-pim-api-docs-prd" 14 | prefix = "dependencies/prd" 15 | } 16 | required_version = "= 1.6.5" 17 | } 18 | -------------------------------------------------------------------------------- /deployments/stages/prd/dependencies/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | default = "akecld-prd-pim-api-docs-prd" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | default = "europe-west3" 9 | } 10 | 11 | variable "dns_managed_zone" { 12 | type = string 13 | default = "akeneo-com" 14 | } 15 | 16 | variable "docker_registry_id" { 17 | type = string 18 | default = "docker-repository" 19 | } 20 | 21 | variable "docker_registry_location" { 22 | type = string 23 | default = "europe-west3" 24 | } 25 | 26 | # Custom Parameters 27 | 28 | variable "first_install" { 29 | description = "Is it the first deployment?" 30 | } 31 | 32 | variable "stage" { 33 | type = string 34 | description = "Stage" 35 | } 36 | 37 | variable "app_version" { 38 | type = string 39 | description = "Application version" 40 | } 41 | -------------------------------------------------------------------------------- /deployments/stages/prd/services/main.tf: -------------------------------------------------------------------------------- 1 | module "services" { 2 | source = "../../../modules/services" 3 | project_id = var.project_id 4 | region = var.region 5 | prefix = var.prefix 6 | dns_managed_zone = var.dns_managed_zone 7 | domains = var.domains 8 | first_install = var.first_install 9 | stage = var.stage 10 | app_version = var.app_version 11 | } 12 | 13 | terraform { 14 | backend "gcs" { 15 | bucket = "akecld-terraform-pim-api-docs-prd" 16 | prefix = "services/prd" 17 | } 18 | required_version = "= 1.6.5" 19 | } 20 | -------------------------------------------------------------------------------- /deployments/stages/prd/services/outputs.tf: -------------------------------------------------------------------------------- 1 | output "service_frontend_public_url" { 2 | value = module.services.service_frontend_public_url 3 | } 4 | -------------------------------------------------------------------------------- /deployments/stages/prd/services/providers.tf: -------------------------------------------------------------------------------- 1 | provider "google" { 2 | project = var.project_id 3 | } 4 | -------------------------------------------------------------------------------- /deployments/stages/prd/services/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | default = "akecld-prd-pim-api-docs-prd" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | default = "europe-west3" 9 | } 10 | 11 | variable "prefix" { 12 | type = string 13 | description = "Prefix of all items related to the infrastructure" 14 | default = "pim-api-docs" 15 | } 16 | 17 | variable "dns_managed_zone" { 18 | type = string 19 | default = "akeneo-com" 20 | } 21 | 22 | variable "domains" { 23 | type = list(string) 24 | description = "List of all domains to manage" 25 | default = [ 26 | "api.akeneo.com", 27 | ] 28 | } 29 | 30 | # Custom Parameters 31 | 32 | variable "first_install" { 33 | description = "Is it the first deployment?" 34 | } 35 | 36 | variable "stage" { 37 | type = string 38 | description = "Stage" 39 | } 40 | 41 | variable "app_version" { 42 | type = string 43 | description = "Application version" 44 | } 45 | -------------------------------------------------------------------------------- /deployments/stages/sdx/dependencies/main.tf: -------------------------------------------------------------------------------- 1 | module "dependencies" { 2 | source = "../../../modules/dependencies" 3 | project_id = var.project_id 4 | region = var.region 5 | stage = var.stage 6 | dns_managed_zone = var.dns_managed_zone 7 | docker_registry_id = var.docker_registry_id 8 | docker_registry_location = var.docker_registry_location 9 | } 10 | 11 | terraform { 12 | backend "gcs" { 13 | bucket = "akecld-terraform-pim-api-docs-sdx" 14 | prefix = "dependencies/sdx" 15 | } 16 | required_version = "= 1.6.5" 17 | } 18 | -------------------------------------------------------------------------------- /deployments/stages/sdx/dependencies/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | default = "akecld-prd-pim-api-docs-sdx" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | default = "europe-west3" 9 | } 10 | 11 | variable "dns_managed_zone" { 12 | type = string 13 | default = "akeneo-com" 14 | } 15 | 16 | variable "docker_registry_id" { 17 | type = string 18 | default = "docker-repository" 19 | } 20 | 21 | variable "docker_registry_location" { 22 | type = string 23 | default = "europe-west3" 24 | } 25 | 26 | # Custom Parameters 27 | 28 | variable "first_install" { 29 | description = "Is it the first deployment?" 30 | } 31 | 32 | variable "stage" { 33 | type = string 34 | description = "Stage" 35 | } 36 | 37 | variable "app_version" { 38 | type = string 39 | description = "Application version" 40 | } 41 | 42 | variable "pull_request" { 43 | type = bool 44 | description = "Pull Request context?" 45 | default = false 46 | } 47 | 48 | variable "pull_request_id" { 49 | type = string 50 | description = "Pull Request ID" 51 | default = "" 52 | } 53 | -------------------------------------------------------------------------------- /deployments/stages/sdx/services/main.tf: -------------------------------------------------------------------------------- 1 | module "services" { 2 | source = "../../../modules/services" 3 | project_id = var.project_id 4 | region = var.region 5 | prefix = var.prefix 6 | dns_managed_zone = var.dns_managed_zone 7 | domains = var.domains 8 | first_install = var.first_install 9 | stage = var.stage 10 | app_version = var.app_version 11 | pull_request = var.pull_request 12 | pull_request_id = var.pull_request_id 13 | } 14 | 15 | terraform { 16 | backend "gcs" { 17 | bucket = "akecld-terraform-pim-api-docs-sdx" 18 | prefix = "services/sdx" 19 | } 20 | required_version = "= 1.6.5" 21 | } 22 | -------------------------------------------------------------------------------- /deployments/stages/sdx/services/outputs.tf: -------------------------------------------------------------------------------- 1 | output "service_frontend_public_url" { 2 | value = module.services.service_frontend_public_url 3 | } 4 | -------------------------------------------------------------------------------- /deployments/stages/sdx/services/providers.tf: -------------------------------------------------------------------------------- 1 | provider "google" { 2 | project = var.project_id 3 | } 4 | -------------------------------------------------------------------------------- /deployments/stages/sdx/services/variables.tf: -------------------------------------------------------------------------------- 1 | variable "project_id" { 2 | type = string 3 | default = "akecld-prd-pim-api-docs-sdx" 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | default = "europe-west3" 9 | } 10 | 11 | variable "prefix" { 12 | type = string 13 | description = "Prefix of all items related to the infrastructure" 14 | default = "pim-api-docs" 15 | } 16 | 17 | variable "dns_managed_zone" { 18 | type = string 19 | default = "akeneo-com" 20 | } 21 | 22 | variable "domains" { 23 | type = list(string) 24 | description = "List of all domains to manage" 25 | default = [ 26 | "api.akeneo.com", 27 | ] 28 | } 29 | 30 | variable "first_install" { 31 | description = "Is it the first deployment?" 32 | } 33 | 34 | variable "stage" { 35 | type = string 36 | description = "Stage" 37 | } 38 | 39 | variable "app_version" { 40 | type = string 41 | description = "Application version" 42 | } 43 | 44 | variable "pull_request" { 45 | type = bool 46 | description = "Pull Request context?" 47 | default = false 48 | } 49 | 50 | variable "pull_request_id" { 51 | type = string 52 | description = "Pull Request ID" 53 | default = "" 54 | } 55 | -------------------------------------------------------------------------------- /src/partials/app-portal.handlebars: -------------------------------------------------------------------------------- 1 | {{!-- Shared template for the documentation page and guide pages, as well as the PHP client doc --}} 2 | {{#> layout title=title description=description }} 3 |
4 |
5 | {{{mainContent}}} 6 |
7 |
8 | {{/layout}} 9 | -------------------------------------------------------------------------------- /src/partials/apps.handlebars: -------------------------------------------------------------------------------- 1 | {{!-- Shared template for the documentation page and guide pages, as well as the PHP client doc --}} 2 | {{#> layout title=title description=description }} 3 |
4 |
5 | {{{mainContent}}} 6 |
7 |
8 | {{/layout}} 9 | -------------------------------------------------------------------------------- /src/partials/back-to-top-button.handlebars: -------------------------------------------------------------------------------- 1 | 2 | 18 | -------------------------------------------------------------------------------- /src/partials/beta.handlebars: -------------------------------------------------------------------------------- 1 | {{!-- Template for the Beta documentation page --}} 2 | {{#> layout }} 3 |
4 |
5 |
6 |

{{{title}}}

7 |
8 |
9 | 15 |
16 | {{{mainContent}}} 17 |
18 |
19 |
20 | {{{referenceIndex}}} 21 |
22 |
23 |
24 | {{/layout}} 25 | -------------------------------------------------------------------------------- /src/partials/documentation.handlebars: -------------------------------------------------------------------------------- 1 | {{!-- Shared template for the documentation page and guide pages, as well as the PHP client doc --}} 2 | {{#> layout title=title description=description }} 3 |
4 |
5 |
6 |

{{{title}}}

7 |
8 | {{#if image}} 9 |
10 | 11 |
12 | {{/if}} 13 |
14 |
15 | {{{mainContent}}} 16 |
17 |
18 | {{/layout}} 19 | -------------------------------------------------------------------------------- /src/partials/events-documentation.handlebars: -------------------------------------------------------------------------------- 1 | {{!-- Shared template for the documentation page and guide pages, as well as the PHP client doc --}} 2 | {{#> layout title=title description=description }} 3 |
4 |
5 |
6 |

7 | {{{title}}} Deprecated 8 |

9 |
10 | {{#if image}} 11 |
12 | 13 |
14 | {{/if}} 15 |
16 |
17 | {{{mainContent}}} 18 |
19 |
20 | {{/layout}} 21 | -------------------------------------------------------------------------------- /src/partials/footer.handlebars: -------------------------------------------------------------------------------- 1 | 27 | -------------------------------------------------------------------------------- /src/partials/misc.handlebars: -------------------------------------------------------------------------------- 1 | {{!-- Template for the misc documentation pages --}} 2 | {{#> layout }} 3 |
4 |
5 |
6 |

{{{title}}}

7 |
8 |
9 |
10 | {{{mainContent}}} 11 |
12 |
13 | {{/layout}} 14 | -------------------------------------------------------------------------------- /src/partials/news.handlebars: -------------------------------------------------------------------------------- 1 | {{!-- Shared template for the documentation page and guide pages, as well as the PHP client doc --}} 2 | {{#> layout title=title description=description}} 3 |
4 |
5 |
6 |

{{{title}}}

7 |
8 | {{#if image}} 9 |
10 | 11 |
12 | {{/if}} 13 |
14 |
15 | {{{mainContent}}} 16 |
17 |
18 | {{/layout}} 19 | -------------------------------------------------------------------------------- /styles/anchor.less: -------------------------------------------------------------------------------- 1 | .affix{ 2 | top: 100px; 3 | } 4 | 5 | a.anchor { 6 | display: block; 7 | position: relative; 8 | top: -@spacing-base * 1.25 - @search-bar-height; 9 | visibility: hidden; 10 | } 11 | 12 | h1, h2, h3, h4, h5, h6{ 13 | &:hover .markdownIt-Anchor{ 14 | color: @brand-info; 15 | } 16 | .markdownIt-Anchor{ 17 | float: left; 18 | padding-right: 4px; 19 | margin-left: -20px; 20 | line-height: 1; 21 | color: white; 22 | } 23 | } 24 | 25 | .tooltip-inner{ 26 | white-space: pre-line; 27 | max-width: 600px; 28 | } -------------------------------------------------------------------------------- /styles/codetabs.less: -------------------------------------------------------------------------------- 1 | .code-tabs { 2 | border: 1px solid rgb(240, 240, 240); 3 | border-radius: 3px; 4 | margin-bottom: 30px; 5 | pre, 6 | input { 7 | display: none; 8 | } 9 | input:checked + pre { 10 | display: block; 11 | margin-bottom: 0px; 12 | } 13 | label { 14 | color: rgba(191, 191, 191, 1); 15 | } 16 | input:checked + label { 17 | color: @brand-primary 18 | } 19 | ul { 20 | font-size: 0; 21 | padding: 0; 22 | margin: 0; 23 | white-space: nowrap; 24 | overflow: auto; 25 | user-select: none; 26 | border-bottom: 1px solid rgb(240, 240, 240); 27 | } 28 | li { 29 | list-style: none; 30 | display: inline-block; 31 | position: relative; 32 | } 33 | label { 34 | cursor: pointer; 35 | user-select: none; 36 | display: inline-block; 37 | padding: 2px 5px; 38 | margin: 5px; 39 | font-size: 14px; 40 | } 41 | li ~ li::before { 42 | content: ""; 43 | height: 12px; 44 | width: 1px; 45 | background: rgba(191, 191, 191, 1); 46 | position: absolute; 47 | top: 50%; 48 | transform: translate(-50%, -50%); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /styles/fa.less: -------------------------------------------------------------------------------- 1 | .fa { 2 | text-transform: uppercase; 3 | &.fa-primary { 4 | color: @brand-primary; 5 | } 6 | &.fa-akeneo, 7 | &.fa-patch { 8 | color: @brand-akeneo; 9 | } 10 | &.fa-info, 11 | &.fa-post { 12 | color: @brand-info; 13 | } 14 | &.fa-success, 15 | &.fa-get { 16 | color: @brand-success; 17 | } 18 | &.fa-danger, 19 | &.fa-delete { 20 | color: @brand-danger; 21 | } 22 | &.fa-warning-color, 23 | &.fa-put { 24 | color: @brand-warning; 25 | } 26 | } -------------------------------------------------------------------------------- /styles/footer.less: -------------------------------------------------------------------------------- 1 | .footer{ 2 | background-color: @gray-lighter; 3 | height: 200px; 4 | position: relative; 5 | width: 100%; 6 | bottom: 0; 7 | margin-top: @spacing-base * 2 ; 8 | &:before{ 9 | background-color: @gray-lighter; 10 | content: ''; 11 | display: block; 12 | position: absolute; 13 | width: 100%; 14 | height: 200px; 15 | z-index: -1; 16 | top: -65px; 17 | left: 0; 18 | .skew(0, -3deg); 19 | } 20 | .container{ 21 | margin-bottom: 30px; 22 | } 23 | .social-icon{ 24 | margin-top: 20px; 25 | height: 20px; 26 | display: flex; 27 | margin-bottom: 0; 28 | a{ 29 | margin: 0 10px; 30 | align-self: center; 31 | img{ 32 | height: 22px; 33 | } 34 | &:hover { 35 | filter: saturate(0.6); 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /styles/img.less: -------------------------------------------------------------------------------- 1 | img.in-article { 2 | margin: @spacing-base/3 auto @spacing-base*2/3 auto; 3 | border: 1px solid @gray-lighter; 4 | } 5 | 6 | .tab-pane { 7 | img.in-article { 8 | margin: auto; 9 | border: none; 10 | } 11 | } 12 | 13 | img.img-banner { 14 | width: 100%; 15 | } 16 | -------------------------------------------------------------------------------- /styles/jumbotron.less: -------------------------------------------------------------------------------- 1 | .jumbotron { 2 | background-color: white; 3 | h2 { 4 | margin-top: 0px; 5 | } 6 | p { 7 | font-size: @font-size-base; 8 | font-weight: 300; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /styles/landing-page.less: -------------------------------------------------------------------------------- 1 | .access-resources { 2 | display: flex; 3 | flex-wrap: wrap; 4 | a { 5 | min-width: 120px; 6 | margin: 0 @spacing-base/3; 7 | flex: 1; 8 | } 9 | } 10 | 11 | .jumbotron h1.emphasis+p.version-choice { 12 | font-size: 36px; 13 | .choice { 14 | margin-left: 25px; 15 | border-bottom: 2px @text-color dashed; 16 | font-weight: normal; 17 | cursor: pointer; 18 | padding-bottom: 8px; 19 | &:hover { 20 | color: @brand-primary; 21 | border-color: @brand-primary; 22 | } 23 | &.selected { 24 | color: @brand-info; 25 | font-weight: normal; 26 | position: relative; 27 | border-color: @brand-info; 28 | &:before { 29 | content: url(../img/icons/icon--check.png); 30 | position: absolute; 31 | color: @brand-info; 32 | left: -24px; 33 | } 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /styles/layout.less: -------------------------------------------------------------------------------- 1 | .main-content { 2 | min-height: calc(~"100vh - 380px"); 3 | margin-top: 70px; 4 | } 5 | 6 | .main-content .apps .table tr > td:first-child { 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /styles/link.less: -------------------------------------------------------------------------------- 1 | a.link-resource { 2 | color: @text-color; 3 | &:hover { 4 | text-decoration: none; 5 | } 6 | img:hover { 7 | transform-origin: 50% 50%; 8 | transform: rotate(3deg) scale(1.05, 1.05); 9 | } 10 | } -------------------------------------------------------------------------------- /styles/list.less: -------------------------------------------------------------------------------- 1 | div.list-group { 2 | margin-top: @spacing-base/4; 3 | a.list-group-item { 4 | color: @text-color; 5 | padding: @spacing-base/5 @spacing-base/4 @spacing-base/4 @spacing-base/4; 6 | .list-group-item-heading { 7 | color: @text-color; 8 | } 9 | .list-group-item-text{ 10 | margin-bottom: 10px; 11 | } 12 | } 13 | } 14 | 15 | ol{ 16 | margin-left: 0; 17 | padding-right: 0; 18 | list-style-type: none; 19 | > li { 20 | counter-increment: step-counter; 21 | &::before { 22 | content: counter(step-counter); 23 | margin-right: 10px; 24 | font-size: 80%; 25 | background-color: lighten(@brand-info,10%); 26 | color: white; 27 | font-weight: bold; 28 | padding: 3px 8px; 29 | border-radius: @border-radius-base; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /styles/modal.less: -------------------------------------------------------------------------------- 1 | .modal{ 2 | &.modal-fullpage .modal-dialog { 3 | width: 100%; 4 | height: 100%; 5 | max-height: 100%; 6 | margin: 0; 7 | position: inherit; 8 | .modal-cancel { 9 | display: inline-block; 10 | width: 32px; 11 | height: 32px; 12 | background: url("../img/icons/icon--close.svg") no-repeat 50% 50%; 13 | cursor: pointer; 14 | position: fixed; 15 | } 16 | } 17 | .modal-content{ 18 | border: none; 19 | border-radius: 0; 20 | height: 100%; 21 | padding: 25px; 22 | max-height: 100%; 23 | overflow: auto; 24 | @media (min-width: @screen-md-min) { 25 | display: flex; 26 | flex-direction: column; 27 | } 28 | h1 { 29 | font-style: italic; 30 | } 31 | .modal-body{ 32 | @media (min-width: @screen-lg-min) { 33 | width: @screen-lg-min; 34 | margin: auto; 35 | } 36 | } 37 | } 38 | p.emphasis{ 39 | text-transform: uppercase; 40 | color: @gray-light; 41 | font-size: @font-size-h3; 42 | font-weight: 400; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /styles/persona.less: -------------------------------------------------------------------------------- 1 | .persona { 2 | cursor: pointer; 3 | border-radius: @border-radius-base; 4 | margin: @spacing-base/2 0 @spacing-base 0; 5 | .transition(all 0.25s); 6 | background-color: #fff; 7 | border: 1px solid @gray-lighter; 8 | padding-bottom: 40px; 9 | img { 10 | padding: 20px 0 20px 0; 11 | } 12 | h2 { 13 | text-align: center; 14 | font-weight: bold; 15 | padding-bottom: @spacing-base / 2; 16 | margin: 0; 17 | font-size: ceil(@font-size-h1 * 1.2); 18 | font-style: italic; 19 | } 20 | p { 21 | color: @text-color; 22 | } 23 | &:hover { 24 | -webkit-transform: scale3d(1.01, 1.01); 25 | -ms-transform: scale3d(1.01, 1.01); 26 | transform: scale3d(1.01, 1.01); 27 | .box-shadow(0 5px 25px 0 @gray-light); 28 | } 29 | a:hover { 30 | text-decoration: none; 31 | } 32 | a:focus { 33 | outline: none; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /styles/sticky.less: -------------------------------------------------------------------------------- 1 | .sticky { 2 | position: sticky; 3 | top: 80px; 4 | } 5 | -------------------------------------------------------------------------------- /tasks/copy-assets.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copy html, css, js and image files into dist directory 3 | */ 4 | var gulp = require('gulp'); 5 | var merge = require('merge-stream'); 6 | 7 | gulp.task('copy-assets', ['clean-dist'], function(){ 8 | var fa = gulp.src(['node_modules/font-awesome/css/font-awesome.min.css', 9 | 'node_modules/prismjs/themes/prism-okaidia.css']) 10 | .pipe(gulp.dest('dist/css/')); 11 | var fonts = gulp.src('content/fonts/*') 12 | .pipe(gulp.dest('dist/fonts/')); 13 | var lib = gulp.src([ 14 | 'node_modules/jquery/dist/jquery.min.js', 15 | 'node_modules/handlebars/handlebars.min.js', 16 | 'node_modules/bootstrap/dist/js/bootstrap.min.js', 17 | 'node_modules/isotope-layout/dist/isotope.pkgd.min.js', 18 | 'node_modules/prismjs/prism.js']) 19 | .pipe(gulp.dest('dist/js/')); 20 | var img = gulp.src('content/img/**') 21 | .pipe(gulp.dest('dist/img/')); 22 | var files = gulp.src('content/files/*') 23 | .pipe(gulp.dest('dist/files/')); 24 | var mapping = gulp.src('content/mapping/**') 25 | .pipe(gulp.dest('dist/mapping/')); 26 | 27 | return merge(fa, fonts, lib, img); 28 | }); 29 | -------------------------------------------------------------------------------- /tasks/landings.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Compile landing pages with Handlebars 3 | */ 4 | var gulp = require('gulp'); 5 | var hbs = require('handlebars'); 6 | var gulpHandlebars = require('gulp-handlebars-html')(hbs); 7 | var rename = require('gulp-rename'); 8 | var flatmap = require('gulp-flatmap'); 9 | var path = require('path'); 10 | var revReplace = require('gulp-rev-replace'); 11 | 12 | gulp.task('landings', ['clean-dist','less'], function() { 13 | return gulp.src('src/*.handlebars') 14 | .pipe(flatmap(function(stream, file){ 15 | return gulp.src(file.path) 16 | .pipe(gulpHandlebars({}, { 17 | partialsDirectory: ['./src/partials'] 18 | })) 19 | .pipe(rename(path.basename(file.path).replace(/\.handlebars$/, '.html'))) 20 | .pipe(revReplace({manifest: gulp.src("./tmp/rev/rev-manifest.json")})) 21 | .pipe(gulp.dest('dist')); 22 | })) 23 | }); 24 | -------------------------------------------------------------------------------- /tasks/less.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Transform less into css file that is put into dist directory 3 | */ 4 | var gulp = require('gulp'); 5 | var less = require('gulp-less'); 6 | var path = require('path'); 7 | var rev = require('gulp-rev'); 8 | 9 | gulp.task('less', ['clean-dist'], function () { 10 | return gulp.src('./styles/variables.less') 11 | .pipe(less({ 12 | paths: [ path.join(__dirname, 'less', 'includes') ] 13 | })) 14 | .pipe(rev()) 15 | .pipe(gulp.dest('./dist/css')) 16 | .pipe(rev.manifest()) 17 | .pipe( gulp.dest('./tmp/rev')); 18 | }); 19 | --------------------------------------------------------------------------------