Git Product home page Git Product logo

pimcore-magento2-bridge's Introduction

Pimcore 5 & 6 Module Magento 2 Integration

This module is a part (1/2) of the Pimcore - Magento connector. It allows for the integration of your Pimcore platform with the Magento 2 e-commerce platform, including synchronization of products, categories and assets.

The second part of this module (Magento 2 - Pimcore Integration Module) is available at DivanteLtd/magento2-pimcore-bridge.

Table of Contents

Description

This plugin allows Pimcore to send all data about products and categories to remote eCommerce systems.

Compatibility

This module is compatible with Pimcore >= 5.4 and Pimcore 6.0.

Installing/Getting started

  • Open your Pimcore
  • Install Pimcore 5 Module Magento 2 Integration via composer composer require divante-ltd/pimcore-magento2-bridge
  • Enable bundle by running bin/console pimcore:bundle:enable DivanteMagentoIntegrationBundle
  • Clear cache by running bin/console cache:clear --no-warmup
  • Install Bundle by running bin/console pimcore:bundle:install DivanteMagentoIntegrationBundle
  • Reload Pimcore
  • Create a new object of class IntegrationConfiguration

Usage/Setting up

Screenshot

  • Go to Settings>Authorisation in your Pimcore panel.
  • Fill in Magento URL and Client Secret with the authorisation data from your Magento2.
  • Save class and reload it.
  • If credentials are correct, please select Magento store. In the other case a "Could not fetch stores" value will be displayed and the authorization data should be checked.
  • Select classes that are used as a product and category classes.
  • Select products and categories synchronization root. When an object of one of the selected classes is published in the given root directory, it will be sent to Magento.
  • Select the default language used in synchronization. If a product has localized fields, only one version of this field will be sent.
  • Select the default classification store used in communication. This classification store will be used as an attribute set in Magento.
  • Go to Settings>Mappings in your Pimcore panel.
  • Fill in the left column with names of your fields in your classes. These attribute names will be mapped to the correct names used in communication with Magento.
  • Save and publish the Integration Configuration object.

Features

  • The general Pimcore to Magento communication scheme goes as follows: Screenshot
  • When a product/category meets the criteria (published, in the selected root tree, has the correct type), information about publication is sent to Magento.
  • Magento sends a request to Pimcore to fetch object data and Pimcore responds with a parsed, mapped object.
  • Endpoints for fetching mapped products, categories.
  • Indicators on product and category views that show synchronization status. Available synchronization statuses: Sent, OK, Error, Deleted. Screenshot
  • Any problem reported by Magento will be stored in object notes and inside Tools -> Application Logger.
  • All assets, if attached to any synchronized product, when updated, will be sent to Magento.
  • Unpublished products will be sent to Magento as deleted. In order to disable a product, set the Enable property to false.

Supported Pimcore types

  • Text
  • Number
  • Date
  • Select
  • Relation
  • Classification store
  • Object bricks
  • Localized fields
  • Image
  • Image gallery

Contributing

If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.

Licensing

The code in this project is licensed under the GPL license.

Standards & Code Quality

This module respects PSR-2 code quality rules and our own PHPCS and PHPMD rulesets.

About the Author

This module has been created by Divante eCommerce Software House.

Divante-logo

Divante is an expert in providing top-notch eCommerce solutions and products for both B2B and B2C segments. Our core competencies are built around Magento, Pimcore and bespoke software projects (we love Symfony3, Node.js, Angular, React, Vue.js). We specialize in sophisticated integration projects trying to connect hardcore IT with good product design and UX.

We work with industry leaders, like T-Mobile, Continental, and 3M, who perceive technology as their key component to success. In Divante, we trust in cooperation, that's why we contribute to open source products and create our own products like Open Loyalty and Vue Storefront.

Divante is part of the OEX Group which is listed on the Warsaw Stock Exchange. Our annual revenue has been growing at a minimum of about 30% year on year.

For more information please visit Divante.co.

pimcore-magento2-bridge's People

Contributors

anitatomaszewska avatar bpwbeck avatar jheimbach avatar kubaplas avatar marcindyguda avatar mbolka avatar prugala avatar vmalyk avatar wpeisert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pimcore-magento2-bridge's Issues

Unable to map localized fields in ObjectBrick

Currently we are working on a PIM project (Pimcore 6.3.6) that uses localized fields heavily. Underneath a simplified example of how our Product Class definition looks like.

product

general

localizedfields

name
attributes
ObjectbrickTypeA
localizefields

supplierName
MultiSelectTags

We followed the mapping using xdebug and came across a bug when using the localizefield in a Objectbrick.

For the localized fields the mapping is done by the "MapStructuredValue" class. And the objectBricks are mapped by "MapObjectBricks" class.

Our products are mapped according the structure MapObjectBricks which goes into MapStructuredValue for ObjectbrickTypeA. In the structured value a ClassDefinition is selected to retrieve it's fields. When the mapper is inside the ObjectbrickTypeA the class name parent class 'Product' is used instead of the objectbrick name. Because of this the mapper is unable to get the fields for the object brick and throws an error getFieldDefinitions() on null.

Transfer only 'Simple Products'

Hello Divante-Team,
we have the following internal PIM Structure of products:

Product-Object
    |--Product-Variant 1
        |--Product-Variant 2
            |--...
                |-- Product-Variant x (Product for Shop)

Only leaf nodes have all information about a product (sku, title, image, etc.) and should be transferred into Magento.
Is there a possibility to transfer a Pimcore-Variant into Magento as 'Simple Product'?

API: No configuration was found for this object.

{
"name": "pimcore/demo-ecommerce",
"type": "project",
"description": "E-Commerce Demo Application for Pimcore 5",
"license": "GPL-3.0-or-later",
"config": {
"optimize-autoloader": true,
"sort-packages": true
},
"require": {
"php": ">=7.1",
"divante-ltd/pimcore-magento2-bridge": "^1.0",
"pimcore/customer-management-framework-bundle": "^1.9",
"pimcore/pimcore": "~5.7.0",
"pimcore/server-side-matomo-tracking": "^0.1",
"pimcore/web2print-tools-bundle": "^2.4",
"wikimedia/composer-merge-plugin": "^1.4"
},
}

I have a problem with webservice API from Pimcore side.

I have object of configuration and properly filled in all necessary fields as described on video from YT:

image

Unfortunately when I save my new category object and run CLI command on magento side, the command edns with no errors but nothing appears in magento's panel. I've discovered that problem is in pimcore and magento try to get object data of category with no success. In Pimcore there is some error in application log like this:

  • No configuration was found for this object
  • Requested object with id 12477 does not exist

image

When I checked this object exists in Pimcore and are properly sent to magento category queue.

Could you help me solving this problem?

Unpublish send an insert/update action

Hi,
I have one problem with the unpublish who send an insert/update request to magento 2.4.3-p2.

That is my log

`[2022-04-15 10:34:58] StreamLogger.INFO: Pimcore data received: {"product_id":91003,"store_view_id":0,"action":"insert/update"} []
[2022-04-15 10:34:58] StreamLogger.INFO:
====REQUEST====
POST https://****/webservice/rest/product/update-status HTTP/1.1
Authorization: Bearer d707622817d7a2b5d3417a6
Content-Type: application/x-www-form-urlencoded
Accept: application/x-www-form-urlencoded

QUERY: instanceUrl=https://&apikey=d7076228d3417a612d61&storeViewId=0
POST: message=product with ID 91003 successfully added to queue&status=SUCCESS&id=91003 [] []
[2022-04-15 10:34:58] StreamLogger.INFO: {"success":true} [] []
[2022-04-15 10:34:58] StreamLogger.INFO: 200 ["Product 91003 has been added to queue"] []
[2022-04-15 10:35:53] StreamLogger.INFO:
====REQUEST====
GET https://
/webservice/rest/product HTTP/1.1
Authorization: Bearer d707622817d7a2b54617a612d61cea2ec256710aee247
Content-Type: application/x-www-form-urlencoded
Accept: application/x-www-form-urlencoded

QUERY: id=91003&instanceUrl=https://&apikey=d707a11530fd3417a612d&storeViewId=0
POST: [] []
[2022-04-15 10:35:54] StreamLogger.INFO:
====REQUEST====
POST https://
/webservice/rest/product/update-status HTTP/1.1
Authorization: Bearer d707622817d7a2b546bb2b48852d61cea2ec
Content-Type: application/x-www-form-urlencoded
Accept: application/x-www-form-urlencoded

QUERY: instanceUrl=https://****&apikey=d70762fd3417a612d61&storeViewId=0
POST: message=Product with ID "91003" has been successfully insert/update&status=SUCCESS&id=91003 [] []
[2022-04-15 10:35:54] StreamLogger.INFO: {"success":true} [] []
`
On my magento log i can see this call :

[15/Apr/2022:10:35:54 +0200] "PUT /rest/V1/bridge/catalog/product/add HTTP/1.1" 200

Anyone for a little help ?

Thank you

IntegrationConfiguration was not found

Hello,

When I am trying to install the bundle it gives me below error.

Installing bundle DivanteMagentoIntegrationBundle

Migrating up to 00000001 from 0

  ++ migrating 00000001

(Class) IntegrationConfiguration was not found
Creating (Class) IntegrationConfiguration
Importing (Class) IntegrationConfiguration from /home/424456.cloudwaysapps.com/basgqzbfqu/public_html/vendor/divante-ltd/pimcore-magento2-bridge/src/Divante/MagentoIntegrationBundle/Resources/install/classes/class_IntegrationConfiguration_export.json
Successfully imported (Class) IntegrationConfiguration

Migration 00000001 was executed but did not result in any SQL statements

Please advice the fixes.

Thanks,

Base table does not exists

I am getting error while syncing the Products. I noticed that if I have prefix in Magento tables then the sync does not consider the Prefix and throws the below error.

Base table or view not found: 1146 Table '<db_name>.eav_attribute_label' doesn't exist, query was: SELECT eav_attribute_label.value, eav_attribute_label.store_idFROMeav_attribute_label WHERE (attribute_id = 285)

Whereas, my table look like mguu_eav_attribute_label so the prefix mguu_ for every table in Magento DB.

Please assit me how I can fix this issue.

Product on Magento getting unpublished

I am syncing from from Pimcore to Magento. But on magento product goes unpublised. I do not see any "status" attribute in IntegrationConfiguration -> Product Mapping.
How i can add a new column "status"? Will that work?

Attempted to load class "IntegrationConfiguration" from namespace "Pimcore\Model\DataObject".

Hello everyone,

Environement : Ubuntu 18.04, PHP 7.2, Fresh Pimcore 6.8.11 "squeleton" tested with "demo" version too.
plugin version : dev-develop-v2

Impossible to procced at the plugin install.
I have the same problem on current preprod pimcore 6.5.3 server.

Attempted to load class "IntegrationConfiguration" from namespace "Pimcore\Model\DataObject". 
Did you forget a "use" statement for "Divante\MagentoIntegrationBundle\Domain\DataObject\IntegrationConfiguration"?

Server threw exception - could not perform action. Please reload the admin interface and try again.

see file attachement
Capture

Have you any idea to fix this ?
Thank's for your help.

Install via composer

how to install composer version for branch 'develop-v2' on Pimcore clean installation?

Version shouldn't be sent to Magento if Parent is not published

We noticed a problem, that if you publish version of the product first, after that you will publish parent it causes problems in Magento instance. According to the FIFO queue, when you publish version of the product, the parent/configurable parent should be published first automatically.

IntegrationConfiguration class overwritting existing class during installation

Hello,

we've managed to install magento bridge successfully on Pimcore v6.4.2, but somehow the IntegrationConfiguration class has overwritten one of already existing classes with ID = 4. I couldn't find any information in the documentation about this case or in existing issues neither. Is this class supposed to have this ID reserved, or is it some kind of a bug during installation?
Could you please help me fix this issue?

Error Loading MapperService Class From Namespace

Successfully installed and created a configuration. However, after an item is saved and published in Pimcore, Magento successfully receives notice of the changed product by Pimcore Object ID, but then there is a Symfony error on the Pimcore side when Magento makes the request to get the remaining product information.

Attempted to load class 'MapperService' from namespace 'Divante\MagentoIntegrationBundle\Service'. Did you forget a 'use' statement for 'Divante\ObjectMapperBundle\Service\MapperService'?

Setup Information

  • pimcore-magento2-bridge: 1.0.2
  • Pimcore 5.6.5

Call To Pimcore Server

Logger.INFO:
====REQUEST====
POST http://PIMCORE_IP/webservice/rest/product/update-status HTTP/1.1
Authorization: Bearer AUTHORIZATION_TOKEN
Content-Type: application/x-www-form-urlencoded
Accept: application/x-www-form-urlencoded

QUERY: instanceUrl=http://MAGENTO_IP_ADDRESS&apikey=API_KEY&storeViewId=1
POST: message=product with ID 2314 successfully added to queue&status=SUCCESS&id=2314 

Response from Pimcore Server

Logger.INFO:
{
    "success": false,
    "msg": "Attempted to load class \u0022MapperService\u0022 from namespace \u0022Divante\\MagentoIntegrationBundle\\Service\u0022. Did you forget a \u0022use\u0022 statement for \u0022Divante\\ObjectMapperBundle\\Service\\MapperService\u0022?",
    "trace": [
        {
            "file": "\/var\/www\/html\/pimcore\/var\/cache\/dev\/ContainerVwbatcn\/appDevDebugProjectContainer.php",
            "line": 2325,
            "function": "require"
        },
        {
            "file": "\/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Component\/DependencyInjection\/Container.php",
            "line": 304,
            "function": "load",
            "class": "ContainerVwbatcn\\appDevDebugProjectContainer",
            "type": "-\u003E",
            "args": [
                "getProductStatusServiceService.php"
            ]
        },
        {
            "file": "\/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Bundle\/FrameworkBundle\/Controller\/ControllerTrait.php",
            "line": 67,
            "function": "get",
            "class": "Symfony\\Component\\DependencyInjection\\Container",
            "type": "-\u003E",
            "args": [
                "Divante\\MagentoIntegrationBundle\\Service\\Product\\ProductStatusService"
            ]
        },
        {
            "file": "\/var\/www\/html\/pimcore\/vendor\/divante-ltd\/pimcore-magento2-bridge\/src\/Divante\/MagentoIntegrationBundle\/Controller\/Rest\/ProductController.php",
            "line": 141,
            "function": "get",
            "class": "Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller",
            "type": "-\u003E",
            "args": [
                "Divante\\MagentoIntegrationBundle\\Service\\Product\\ProductStatusService"
            ]
        },
        {
            "file": "\/var\/www\/html\/pimcore\/vendor\/divante-ltd\/pimcore-magento2-bridge\/src\/Divante\/MagentoIntegrationBundle\/Controller\/Rest\/ProductController.php",
            "line": 132,
            "function": "getProductStatusService",
            "class": "Divante\\MagentoIntegrationBundle\\Controller\\Rest\\ProductController",
            "type": "-\u003E",
            "args": []
        },
        {
            "file": "\/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Component\/HttpKernel\/HttpKernel.php",
            "line": 151,
            "function": "updateStatusAction",
            "class": "Divante\\MagentoIntegrationBundle\\Controller\\Rest\\ProductController",
            "type": "-\u003E",
            "args": [
                {
                    "id": 2313,
                    "status": "SUCCESS",
                    "message": "product with ID 2313 successfully added to queue",
                    "instaceUrl": "http:\/\/192.168.1.141",
                    "storeViewId": 1
                }
            ]
        },
        {
            "file": "\/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Component\/HttpKernel\/HttpKernel.php",
            "line": 68,
            "function": "handleRaw",
            "class": "Symfony\\Component\\HttpKernel\\HttpKernel",
            "type": "-\u003E",
            "args": [
                {
                    "attributes": {},
                    "request": {},
                    "query": {},
                    "server": {},
                    "files": {},
                    "cookies": {},
                    "headers": {}
                },
                1
            ]
        },
        {
            "file": "\/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Component\/HttpKernel\/Kernel.php",
            "line": 200,
            "function": "handle",
            "class": "Symfony\\Component\\HttpKernel\\HttpKernel",
            "type": "-\u003E",
            "args": [
                {
                    "attributes": {},
                    "request": {},
                    "query": {},
                    "server": {},
                    "files": {},
                    "cookies": {},
                    "headers": {}
                },
                1,
                true
            ]
        },
        {
            "file": "\/var\/www\/html\/pimcore\/web\/app.php",
            "line": 42,
            "function": "handle",
            "class": "Symfony\\Component\\HttpKernel\\Kernel",
            "type": "-\u003E",
            "args": [
                {
                    "attributes": {},
                    "request": {},
                    "query": {},
                    "server": {},
                    "files": {},
                    "cookies": {},
                    "headers": {}
                }
            ]
        }
    ],
    "traceString": "#0 \/var\/www\/html\/pimcore\/var\/cache\/dev\/ContainerVwbatcn\/appDevDebugProjectContainer.php(2325): require() #1 \/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Component\/DependencyInjection\/Container.php(304): ContainerVwbatcn\\appDevDebugProjectContainer-\u003Eload(\u0027getProductStatu...\u0027) #2 \/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Bundle\/FrameworkBundle\/Controller\/ControllerTrait.php(67): Symfony\\Component\\DependencyInjection\\Container-\u003Eget(\u0027Divante\\\\Magento...\u0027) #3 \/var\/www\/html\/pimcore\/vendor\/divante-ltd\/pimcore-magento2-bridge\/src\/Divante\/MagentoIntegrationBundle\/Controller\/Rest\/ProductController.php(141): Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller-\u003Eget(\u0027Divante\\\\Magento...\u0027) #4 \/var\/www\/html\/pimcore\/vendor\/divante-ltd\/pimcore-magento2-bridge\/src\/Divante\/MagentoIntegrationBundle\/Controller\/Rest\/ProductController.php(132): Divante\\MagentoIntegrationBundle\\Controller\\Rest\\ProductController-\u003EgetProductStatusService() #5 \/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Component\/HttpKernel\/HttpKernel.php(151): Divante\\MagentoIntegrationBundle\\Controller\\Rest\\ProductController-\u003EupdateStatusAction(Object(Divante\\MagentoIntegrationBundle\\Model\\Request\\UpdateStatus)) #6 \/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Component\/HttpKernel\/HttpKernel.php(68): Symfony\\Component\\HttpKernel\\HttpKernel-\u003EhandleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1) #7 \/var\/www\/html\/pimcore\/vendor\/symfony\/symfony\/src\/Symfony\/Component\/HttpKernel\/Kernel.php(200): Symfony\\Component\\HttpKernel\\HttpKernel-\u003Ehandle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true) #8 \/var\/www\/html\/pimcore\/web\/app.php(42): Symfony\\Component\\HttpKernel\\Kernel-\u003Ehandle(Object(Symfony\\Component\\HttpFoundation\\Request)) #9 {main}"
}

Error In Installation

While Installing it is giving error

I have pimcore version 6.6.10

Installing bundle DivanteMagentoIntegrationBundle Migrating up to 00000001 from 0 ++ migrating 00000001 In Installer.php line 111: Attempted to load class "IntegrationConfiguration" from namespace "Pimcore\Model\DataObject". Did you forget a "use" statement for "Divante\MagentoIntegrationBundle\Model\DataObject\IntegrationConfiguration"?

Exception during instalation process

{
"name": "pimcore/demo-ecommerce",
"type": "project",
"description": "E-Commerce Demo Application for Pimcore 5",
"license": "GPL-3.0-or-later",
"config": {
"optimize-autoloader": true,
"sort-packages": true
},
"require": {
"php": ">=7.1",
"divante-ltd/pimcore-magento2-bridge": "^1.0",
"pimcore/customer-management-framework-bundle": "^1.9",
"pimcore/pimcore": "~5.7.0",
"pimcore/server-side-matomo-tracking": "^0.1",
"pimcore/web2print-tools-bundle": "^2.4",
"wikimedia/composer-merge-plugin": "^1.4"
},
}

I was installing your module according to description of installation process.
There is point:

Install Bundle by running bin/console pimcore:bundle:install DivanteMagentoIntegrationBundle

After running this command I have got an exception like below:

vagrant@vps617093:/var/www/vagrant/pimcore.project$ bin/console pimcore:bundle:install DivanteMagentoIntegrationBundle
Installing bundle DivanteMagentoIntegrationBundle

Migrating up to 00000001 from 0

++ migrating 00000001

11:04:36 ERROR [pimcore] Exception: There is no class with the name: integrationConfiguration in /var/www/vagrant/pimcore.project/vendor/pimcore/pimcore/models/DataObject/ClassDefinition.php:232
Stack trace:
#0 /var/www/vagrant/pimcore.project/vendor/divanteltd/pimcoredevkit/src/PimcoreDevkitBundle/Service/InstallerService.php(169): Pimcore\Model\DataObject\ClassDefinition::getByName('integrationConf...')
#1 /var/www/vagrant/pimcore.project/vendor/divanteltd/pimcoredevkit/src/PimcoreDevkitBundle/Service/InstallerService.php(157): PimcoreDevkitBundle\Service\InstallerService->createClassDefinitionFromString('integrationConf...', '{\n "id": "4"...')
#2 /var/www/vagrant/pimcore.project/vendor/divante-ltd/pimcore-magento2-bridge/src/Divante/MagentoIntegrationBundle/Migrations/Installer.php(72): PimcoreDevkitBundle\Service\InstallerService->createClassDefinition('integrationConf...', '/var/www/vagran...')
#3 /var/www/vagrant/pimcore.project/vendor/pimcore/pimcore/lib/Migrations/Migration/InstallMigration.php(44): Divante\MagentoIntegrationBundle\Migrations\Installer->migrateInstall(Object(ProxyManagerGeneratedProxy_PM_\Doctrine\DBAL\Schema\Schema\Generated93cb4e52be36d1a0ab1c551957e06e24), Object(Pimcore\Migrations\InstallVersion))
#4 /var/www/vagrant/pimcore.project/vendor/pimcore/pimcore/lib/Migrations/Version.php(312): Pimcore\Migrations\Migration\InstallMigration->up(Object(ProxyManagerGeneratedProxy_PM_\Doctrine\DBAL\Schema\Schema\Generated93cb4e52be36d1a0ab1c551957e06e24))
#5 /var/www/vagrant/pimcore.project/vendor/doctrine/migrations/lib/Doctrine/DBAL/Migrations/Migration.php(172): Pimcore\Migrations\Version->execute('up', false, false)
#6 /var/www/vagrant/pimcore.project/vendor/pimcore/pimcore/lib/Extension/Bundle/Installer/MigrationInstaller.php(351): Doctrine\DBAL\Migrations\Migration->migrate('00000001', false)
#7 /var/www/vagrant/pimcore.project/vendor/pimcore/pimcore/lib/Extension/Bundle/Installer/MigrationInstaller.php(145): Pimcore\Extension\Bundle\Installer\MigrationInstaller->executeInstallMigration(true)
#8 /var/www/vagrant/pimcore.project/vendor/pimcore/pimcore/lib/Extension/Bundle/PimcoreBundleManager.php(484): Pimcore\Extension\Bundle\Installer\MigrationInstaller->install()
#9 /var/www/vagrant/pimcore.project/vendor/pimcore/pimcore/bundles/CoreBundle/Command/Bundle/InstallCommand.php(45): Pimcore\Extension\Bundle\PimcoreBundleManager->install(Object(Divante\MagentoIntegrationBundle\DivanteMagentoIntegrationBundle))
#10 /var/www/vagrant/pimcore.project/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php(255): Pimcore\Bundle\CoreBundle\Command\Bundle\InstallCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 /var/www/vagrant/pimcore.project/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(978): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 /var/www/vagrant/pimcore.project/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(86): Symfony\Component\Console\Application->doRunCommand(Object(Pimcore\Bundle\CoreBundle\Command\Bundle\InstallCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /var/www/vagrant/pimcore.project/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(255): Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand(Object(Pimcore\Bundle\CoreBundle\Command\Bundle\InstallCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 /var/www/vagrant/pimcore.project/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(74): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 /var/www/vagrant/pimcore.project/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(148): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 /var/www/vagrant/pimcore.project/bin/console(26): Symfony\Component\Console\Application->run()
#17 {main}
Migration 00000001 was executed but did not result in any SQL statements.

Despite this exception, the module was installed and I was able to configure it in Pimcore.

Future of this project (Pimcore X, REST API)

Is there going to be the "V2" version mentioned in #87 or is this project getting phased out?
Pimcore X removed the REST API, meaning one of our projects using this won't be able to upgrade to Pimcore X, is that correct?
Thank you for any answer on this issue in advance!

Install issue on pimcore 6.0 clean install, how to fix?

Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for divante-ltd/pimcore-magento2-bridge ^1.1 -> satisfiable by divante-ltd/pimcore-magento2-bridge[1.1.1].
- divante-ltd/pimcore-magento2-bridge 1.1.1 requires coreshop/resource-bundle dev-master -> satisfiable by coreshop/resource-bundle[dev-master] but these conflict with your requirements or minimum-stability.

Spam send with w-vision data-definition plugin

I try with you (after contacting the author of the plugin 'data-definition' of w-vision) if you can give me a tips to solve my problem.

When I import with the w-vision plugin, my import slows down or freezes completely. This is due to a spam loop and in my magento journal I see that ...

[2020-04-24 14:20:08] StreamLogger.INFO: Pimcore data received:  {"product_id":69892,"store_view_id":0,"action":"insert/update"} []
> [2020-04-24 14:20:08] StreamLogger.INFO: 200 ["Product 69892 has been added to queue"] []
> [2020-04-24 14:20:08] StreamLogger.INFO: Pimcore data received:  {"product_id":69892,"store_view_id":0,"action":"insert/update"} []
> [2020-04-24 14:20:08] StreamLogger.INFO: 200 ["Product 69892 has been added to queue"] []
> [2020-04-24 14:20:08] StreamLogger.INFO: Pimcore data received:  {"product_id":69892,"store_view_id":0,"action":"insert/update"} []
> [2020-04-24 14:20:08] StreamLogger.INFO: 200 ["Product 69892 has been added to queue"] []
> [2020-04-24 14:20:09] StreamLogger.INFO: Pimcore data received:  {"product_id":69892,"store_view_id":0,"action":"insert/update"} []
> [2020-04-24 14:20:09] StreamLogger.INFO: 200 ["Product 69892 has been added to queue"] []
> [2020-04-24 14:20:09] StreamLogger.INFO: Pimcore data received:  {"product_id":69892,"store_view_id":0,"action":"insert/update"} []
> [2020-04-24 14:20:09] StreamLogger.INFO: 200 ["Product 69892 has been added to queue"] []

When i try to apply in mass publishing from pimcore directly all are ok and i can push more 3000 products easily without spam.

here my magento log with import without data-definition :

QUERY: instanceUrl=http://dev.magento.com&apikey=eb9402b0f11f67e4ce791405c32d0e186e9a33f193acbdd8c2d97fa18ea5024b&storeViewId=0
POST: message=product with ID 81860 successfully added to queue&status=SUCCESS&id=81860 [] []
[2020-04-27 10:29:14] StreamLogger.INFO: {"success":true,"msg":null} [] []
[2020-04-27 10:29:14] StreamLogger.INFO: 200 ["Product 81860 has been added to queue"] []
[2020-04-27 10:29:15] StreamLogger.INFO: Pimcore data received:  {"product_id":81861,"store_view_id":0,"action":"delete"} []
[2020-04-27 10:29:15] StreamLogger.INFO:
====REQUEST====
POST http://dev.pimcore.com/webservice/rest/product/update-status HTTP/1.1
Authorization: Bearer eb9402b0f11f67e4ce791405c32d0e186e9a33f193acbdd8c2d97fa18ea5024b
Content-Type: application/x-www-form-urlencoded
Accept: application/x-www-form-urlencoded

QUERY: instanceUrl=http://dev.magento.com&apikey=eb9402b0f11f67e4ce791405c32d0e186e9a33f193acbdd8c2d97fa18ea5024b&storeViewId=0
POST: message=product with ID 81861 successfully added to queue&status=SUCCESS&id=81861 [] []
[2020-04-27 10:29:15] StreamLogger.INFO: {"success":true,"msg":null} [] []
[2020-04-27 10:29:15] StreamLogger.INFO: 200 ["Product 81861 has been added to queue"] []
[2020-04-27 10:29:16] StreamLogger.INFO: Pimcore data received:  {"product_id":81862,"store_view_id":0,"action":"delete"} []
[2020-04-27 10:29:16] StreamLogger.INFO:
====REQUEST====
POST http://dev.pimcore.com/webservice/rest/product/update-status HTTP/1.1
Authorization: Bearer eb9402b0f11f67e4ce791405c32d0e186e9a33f193acbdd8c2d97fa18ea5024b
Content-Type: application/x-www-form-urlencoded
Accept: application/x-www-form-urlencoded

QUERY: instanceUrl=http://dev.magento.com&apikey=eb9402b0f11f67e4ce791405c32d0e186e9a33f193acbdd8c2d97fa18ea5024b&storeViewId=0
POST: message=product with ID 81862 successfully added to queue&status=SUCCESS&id=81862 [] []
[2020-04-27 10:29:16] StreamLogger.INFO: {"success":true,"msg":null} [] []
[2020-04-27 10:29:16] StreamLogger.INFO: 200 ["Product 81862 has been added to queue"] []
[2020-04-27 10:29:17] StreamLogger.INFO: Pimcore data received:  {"product_id":81863,"store_view_id":0,"action":"delete"} []
[2020-04-27 10:29:17] StreamLogger.INFO:
====REQUEST====
POST http://dev.pimcore.com/webservice/rest/product/update-status HTTP/1.1
Authorization: Bearer eb9402b0f11f67e4ce791405c32d0e186e9a33f193acbdd8c2d97fa18ea5024b
Content-Type: application/x-www-form-urlencoded
Accept: application/x-www-form-urlencoded

QUERY: instanceUrl=http://dev.magento.com&apikey=eb9402b0f11f67e4ce791405c32d0e186e9a33f193acbdd8c2d97fa18ea5024b&storeViewId=0
POST: message=product with ID 81863 successfully added to queue&status=SUCCESS&id=81863 [] []
[2020-04-27 10:29:17] StreamLogger.INFO: {"success":true,"msg":null} [] []
[2020-04-27 10:29:17] StreamLogger.INFO: 200 ["Product 81863 has been added to queue"] []

If you can help me to fix my problem i will be very happy .... thx for your answer

error missing configuration when save and publish

We installed the bridge succesfully but can't sync the categories and product. In the log we get the message:

[ERROR] Missing configuration for object: 12481, instanceUrl:****, store view: 0.

in the product-status-log

Magento site log said:

StreamLogger.CRITICAL: Notice: Undefined index: data in /home/a*****/app/code/Divante/PimcoreIntegration/Http/Response/Transformator/CategoryUpdateTransformator.php on line 67 [] []

any tips how to debug?

Products or Categories not getting synced with Magento

We installed the bridge successfully, configured the pimcore integration class and Magento configuration but can't sync the categories and product. In the log we get the multiple log messages:

This log is created when we save and publish the category in pimcore.

  • Could not update status for object with id: 12484. Status: SUCCESS. Message: category with ID 12484 successfully added to queue

The below logs are created when we run commands in Magento to sync the category

  • [ERROR] Missing configuration for object: 12484, instanceUrl:*******, store view: 0.

  • Requested object with id 12484 does not exist.

  • Could not update status for object with id: 12484. Status: ERROR. Message: An error occurred while insert/update category "12484": Notice: Undefined index: data in /microcloud/domains/tondev/domains/dev5.tonsoftiles.co.uk/http/app/code/Divante/PimcoreIntegration/Http/Response/Transformator/CategoryUpdateTransformator.php on line 67

any tips how to debug?

Dynamic 'select' element options

Hi,

I have created a Data Component of the type 'select' and instead of adding options manually I have added an 'Options Provider Class'. This is working fine in pimcore, displaying and saving the object properly but when it comes to sync to magento the saved option value is not in the object.

Saving multiple objects in a loop is extremely slow

In our project, we have several console commands that modify lots of Pimcore objects (products), in a loop (synchronization of external data to Pimcore). These are called with CRON.

When we set up the connector / bridge, these commands basically slow down to the point of not working (think ~50 processed objects over 20 hours, whereas when we unpublish the connector configuration, we are able to process tens of thousands in about 4 hours).

Could this be related to #63 in any way? Is there a way of temporarily disabling the connector for specific actions, for the duration of the process (unregistering the event listeners, maybe)?

Will #41 with version 2.0 solve this, and if so, when will it be out, and can we help somehow? Thanks!

Unpublish button not remove a product

How to remove a product from Magento?
The unpublish button does nothing, the product still exists in Magento and has not been removed.
Is there any setting in Pimcore?

It does not work on the develop version.

Attempted to load class "IntegrationConfiguration"

Using Pimcore 6.0

composer require divante-ltd/pimcore-magento2-bridge:dev-develop-v2

getting below error :

Attempted to load class "IntegrationConfiguration" from namespace "Pimcore\Model\DataObject".
Did you forget a "use" statement for "Divante\MagentoIntegrationBundle\Domain\DataObject\IntegrationConfiguration"?

image

Importing products in pimcore slow down the process.

I am importing the 100 products in Pimcore, but due to the connector the import process take huge time.
Almost 1 product can take upto 1minute.

Please advice how I can improve the Product import process in my Pimcore along with the Magento Sync.

Thanks

Integrated category & Integrated product Class are not created.

Hello,
I've installed pimcore-magento2-bridge extension but it doesn't create IntegratedCategory & IntegratedProduct class after installation.
Also, I got below error after execution of bin/console pimcore:bundle:install DivanteMagentoIntegrationBundle with pimcore 5.8 version.

Stack trace:

#0 /var/www/html/pim-ecom/vendor/divanteltd/pimcoredevkit/src/PimcoreDevkitBundle/Service/InstallerService.php(169): Pimcore\Model\DataObject\ClassDefinition::getByName('integrationConf...')
#1 /var/www/html/pim-ecom/vendor/divanteltd/pimcoredevkit/src/PimcoreDevkitBundle/Service/InstallerService.php(157): PimcoreDevkitBundle\Service\InstallerService->createClassDefinitionFromString('integrationConf...', '{\n "id": "4"...')
#2 /var/www/html/pim-ecom/vendor/divante-ltd/pimcore-magento2-bridge/src/Divante/MagentoIntegrationBundle/Migrations/Installer.php(72): PimcoreDevkitBundle\Service\InstallerService->createClassDefinition('integrationConf...', '/var/www/html/p...')
#3 /var/www/html/pim-ecom/vendor/pimcore/pimcore/lib/Migrations/Migration/InstallMigration.php(44): Divante\MagentoIntegrationBundle\Migrations\Installer->migrateInstall(Object(ProxyManagerGeneratedProxy_PM_\Doctrine\DBAL\Schema\Schema\Generateda7193b54919e65c954d994217ebb5fab), Object(Pimcore\Migrations\InstallVersion))
#4 /var/www/html/pim-ecom/vendor/pimcore/pimcore/lib/Migrations/Version.php(312): Pimcore\Migrations\Migration\InstallMigration->up(Object(ProxyManagerGeneratedProxy_PM_\Doctrine\DBAL\Schema\Schema\Generateda7193b54919e65c954d994217ebb5fab))
#5 /var/www/html/pim-ecom/vendor/doctrine/migrations/lib/Doctrine/DBAL/Migrations/Migration.php(172): Pimcore\Migrations\Version->execute('up', false, false)
#6 /var/www/html/pim-ecom/vendor/pimcore/pimcore/lib/Extension/Bundle/Installer/MigrationInstaller.php(351): Doctrine\DBAL\Migrations\Migration->migrate('00000001', false)
#7 /var/www/html/pim-ecom/vendor/pimcore/pimcore/lib/Extension/Bundle/Installer/MigrationInstaller.php(145): Pimcore\Extension\Bundle\Installer\MigrationInstaller->executeInstallMigration(true)
#8 /var/www/html/pim-ecom/vendor/pimcore/pimcore/lib/Extension/Bundle/PimcoreBundleManager.php(484): Pimcore\Extension\Bundle\Installer\MigrationInstaller->install()
#9 /var/www/html/pim-ecom/vendor/pimcore/pimcore/bundles/CoreBundle/Command/Bundle/InstallCommand.php(45): Pimcore\Extension\Bundle\PimcoreBundleManager->install(Object(Divante\MagentoIntegrationBundle\DivanteMagentoIntegrationBundle))
#10 /var/www/html/pim-ecom/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php(255): Pimcore\Bundle\CoreBundle\Command\Bundle\InstallCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 /var/www/html/pim-ecom/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(987): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 /var/www/html/pim-ecom/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(86): Symfony\Component\Console\Application->doRunCommand(Object(Pimcore\Bundle\CoreBundle\Command\Bundle\InstallCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /var/www/html/pim-ecom/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(255): Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand(Object(Pimcore\Bundle\CoreBundle\Command\Bundle\InstallCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 /var/www/html/pim-ecom/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(74): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 /var/www/html/pim-ecom/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(148): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 /var/www/html/pim-ecom/bin/console(26): Symfony\Component\Console\Application->run()
#17 {main}
Migration 00000001 was executed but did not result in any SQL statements.

++ migrated (1.14s)


++ finished in 1.14s
++ 1 migrations executed
++ 0 sql queries

Can you please help me to fix this thing?

Thanks

Real time syncronization

Is there any way we can sync. products and category real time instead getting queued and run the command?

Also, everytime when I update the product its create the new attribute set in Magento. How we can prevent that?

Product/Category Class Templates

Hi,
are there templates available on how a product/category class should be look like?
Or do we have todo that manually and check which mappings are availble?

Thank you.

Quantity Value not supported & MultiStore Configuration

I have several fields as QuantityValue datatype such as Weight, Price(MultiCurrency) etc., but it doesnot get sync with Magento and shows the below error.

Error while syncing object: 6475 with instance: magento-412155-1344050.cloudwaysapps.com for store view: 1. Message: An error occurred while insert/update product "6475": Invalid attribute type: "quantityValue"

Also, I would like to know what configuration I need to do in order to Support multiple store in Magento. Do I need to create separate IntegrationConfiguration Objects for each store?

Fatal error while installation

getting error after bin/console pimcore:bundle:enable DivanteMagentoIntegrationBundle
(pimcore 6.0.2)

Fatal error: Uncaught Symfony\Component\DependencyInjection\Exception\RuntimeException: Cannot autowire service "Divante\MagentoIntegrationBundle\Service\Product\ProductStatusService": argument "$mapper" of method "Divante\MagentoIntegrationBundle\Service\AbstractObjectService::__construct()" references interface "Divante\MagentoIntegrationBundle\Interfaces\MapperInterface" but no such service exists. Did you create a class that implements this interface? in /var/www/html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/DefinitionErrorExceptionPass.php:54
Stack trace:
#0 /var/www/html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/AbstractRecursivePass.php(82): Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue(Object(Symfony\Component\DependencyInjection\Definition), true)
#1 /var/www/html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/DefinitionErrorExceptionPass.php(32): Symfony\Component\DependencyInje in /var/www/html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/DefinitionErrorExceptionPass.php on line 54

Issue while saving "integrationConfiguration" object in Pimcore

Getting following error while saving object of "integrationConfiguration" class.

Timestamp: Fri Dec 28 2018 15:18:53 GMT+0530 (IST)
Status: 500 | Internal Server Error
URL: /admin/object-mapper/get-columns-product
Method: GET
Message: Attempted to load class "FromColumn" from namespace "Divante\MagentoIntegrationBundle\Model\Mapping".
Did you forget a "use" statement for another namespace?

Need to figure it out for setup completion.

Does not work with composer 2

Installing using composer 2 causes a lot of errors of the type 'Class ... located in ... does not comply with psr-4 autoloading standard. Skipping.' After that process completes the bundle does not appear at all in pimcore:bundle:list and it cannot be enabled or installed. Downgrading to composer 1 works.

services.yml - ParserException

I wanted to install this module, however when I try to run bin/console pimcore:bundle:enable DivanteMagentoIntegrationBundle I immedately get an uncaught exception from the YAML parser for the services.yml file:

Fatal error: Uncaught Symfony\Component\Yaml\Exception\ParseException: Malformed inline YAML string at line 77 (near "- "@file_locator" ") in /var/www/share/pimcore.yourhost.com/htdocs/vendor/symfony/symfony/src/Symfony/Component/Yaml/Parser.php:1208.

Is there a fix for this?

Bundle "DivanteMagentoIntegrationBundle" does not exist or it is not enabled.

Hi! After a clean install of Pimcore and following the steps for installation I come to this command with an error:

bin/console pimcore:bundle:install DivanteMagentoIntegrationBundle

In Kernel.php line 231:

Bundle "DivanteMagentoIntegrationBundle" does not exist or it is not enabled. Maybe you forgot to add it in the "registerBundles()" method of your "AppKernel.php" file?

What could be wrong here?

Installation error

when I want to install the module it returns an error
Method "Divante\MagentoIntegrationBundle\Application\Validator\Rules\Category\CategoryParentsMustBePublished::getPriority()" should return a string (got "integer").

I have a clean instalation PIMCore.
which vendor is missing?

regards

REST doesn't return any of the inputfields

Hello,

When I try to add a category it gives me

Error while syncing object: 12484 with instance: http://localhost for store view: 1. Message: An error occurred while insert/update category "12484": Notice: Undefined index: name in /var/www/html/app/code/Divante/PimcoreIntegration/Http/Response/Transformator/CategoryUpdateTransformator.php on line 67

After some more research and browsing the rest api, I found out that the elements data is empty.

Rest api get request:

http://localhost/webservice/rest/category?id=12484&status=SUCCESS&message=Test&instanceUrl=http://localhost&storeViewId=1&apikey=KEY

Response:

{
    "data": {
        "12484": {
            "path": "/",
            "creationDate": 1556956347,
            "modificationDate": 1556960424,
            "userModification": 19,
            "elements": {},
            "className": "integrationCategory",
            "id": 12484,
            "parentId": 12474,
            "key": "cat99",
            "published": true,
            "type": "object",
            "userOwner": 19,
            "properties": {
                "synchronize-status": {
                    "name": "synchronize-status",
                    "data": "ERROR",
                    "type": "text",
                    "inheritable": null,
                    "inherited": null
                }
            },
            "index": null,
            "isRoot": true
        }
    },
    "missing_objects": [],
    "success": true
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.