myparcelnl / magento

The Magento 2 MyParcel plugin
https://developer.myparcel.nl/nl/documentatie/13.magento2.html
MIT License
19 stars 26 forks source link

New and old MyParcel options after upgrade to 4.1.2 #487

Closed bamboekeizer closed 2 years ago

bamboekeizer commented 4 years ago

Describe the bug The creation of a shipment fails with error HTTP 500. The shipment page shows new PostNL parcel settings and the old parcel settings.

To Reproduce Steps to reproduce the behavior:

  1. Create an order and go to shipment page
  2. Select Myparcel consignement creation for PostNL parcel delivery.
  3. Create the shipment
  4. Shipment creation fails with HTTP error 500

Expected behavior Only the new PostNL options set should be displayed. Shipment should be created.

Screenshots Screenshot 2020-09-16 221238

Desktop (please complete the following information):

Additional context Plugin was upgraded from 4.1.1 using composer update. The shipment creation also failed in 4.1.1 as the page loaded halfway. When PostNL location is selected, this address is not saved and is not visible in the order overview and shipment page. The deliver address remains the user home address.

TeunSmit commented 4 years ago

00854578

ArjandenOuden commented 4 years ago

We have the same issue! Pretty disappointing to see we cannot create any labels anymore, just before the most important months of the year. Call to support is not returned. Please advice how to hot-fix or whatever. Right now manually creating labels for 100's of orders each month. Please fix ASAP :-)

500 page means we have /var/report which states: {"0":"Notice: Undefined variable: sourceCode in \/var\/www\/vhosts\/kransmaken.nl\/httpdocs\/vendor\/magento\/module-inventory-shipping\/Observer\/SourceDeductionProcessor.php on line 112","1":"#1 MyParcelNL\Magento\Model\Sales\MagentoOrderCollection->setNewMagentoShipment() called at [vendor\/myparcelnl\/magento\/Controller\/Adminhtml\/Order\/CreateAndPrintMyParcelTrack.php:108]\n#2 MyParcelNL\Magento\Controller\Adminhtml\Order\CreateAndPrintMyParcelTrack->massAction() called at [vendor\/myparcelnl\/magento\/Controller\/Adminhtml\/Order\/CreateAndPrintMyParcelTrack.php:64]\n#3 MyParcelNL\Magento\Controller\Adminhtml\Order\CreateAndPrintMyParcelTrack->execute() called at [vendor\/magento\/framework\/App\/Action\/Action.php:108]\n#4 Magento\Framework\App\Action\Action->dispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#5 MyParcelNL\Magento\Controller\Adminhtml\Order\CreateAndPrintMyParcelTrack\Interceptor->callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#6 MyParcelNL\Magento\Controller\Adminhtml\Order\CreateAndPrintMyParcelTrack\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#7 MyParcelNL\Magento\Controller\Adminhtml\Order\CreateAndPrintMyParcelTrack\Interceptor->callPlugins() called at [generated\/code\/MyParcelNL\/Magento\/Controller\/Adminhtml\/Order\/CreateAndPrintMyParcelTrack\/Interceptor.php:26]\n#8 MyParcelNL\Magento\Controller\Adminhtml\Order\CreateAndPrintMyParcelTrack\Interceptor->dispatch() called at [vendor\/magento\/framework\/App\/FrontController.php:159]\n#9 Magento\Framework\App\FrontController->processRequest() called at [vendor\/magento\/framework\/App\/FrontController.php:99]\n#10 Magento\Framework\App\FrontController->dispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#11 Magento\Framework\App\FrontController\Interceptor->callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#12 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor\/m2epro\/magento2-extension\/Plugin\/HealthStatus\/Magento\/Framework\/App\/FrontController.php:81]\n#13 Ess\M2ePro\Plugin\HealthStatus\Magento\Framework\App\FrontController->processDispatch() called at [vendor\/m2epro\/magento2-extension\/Plugin\/AbstractPlugin.php:45]\n#14 Ess\M2ePro\Plugin\AbstractPlugin->execute() called at [vendor\/m2epro\/magento2-extension\/Plugin\/HealthStatus\/Magento\/Framework\/App\/FrontController.php:45]\n#15 Ess\M2ePro\Plugin\HealthStatus\Magento\Framework\App\FrontController->aroundDispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:135]\n#16 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [app\/code\/Infortis\/Cgen\/Plugin\/Magento\/Framework\/App\/FrontController.php:32]\n#17 Infortis\Cgen\Plugin\Magento\Framework\App\FrontController->aroundDispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:135]\n#18 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#19 Magento\Framework\App\FrontController\Interceptor->callPlugins() called at [generated\/code\/Magento\/Framework\/App\/FrontController\/Interceptor.php:26]\n#20 Magento\Framework\App\FrontController\Interceptor->dispatch() called at [vendor\/magento\/framework\/App\/Http.php:116]\n#21 Magento\Framework\App\Http->launch() called at [generated\/code\/Magento\/Framework\/App\/Http\/Interceptor.php:24]\n#22 Magento\Framework\App\Http\Interceptor->launch() called at [vendor\/magento\/framework\/App\/Bootstrap.php:261]\n#23 Magento\Framework\App\Bootstrap->run() called at [index.php:39]\n","url":"\/admin_17u3ur\/myparcel\/order\/CreateAndPrintMyParcelTrack\/key\/4b27a4b983fc3bdb6b1aa60e140bcb91f15ee191282e08a7233e41d8424c79ba\/?selected_ids=11207&mypa_request_type=download&mypa_package_type=4&mypa_label_amount=1&mypa_paper_size=A4&mypa_positions%5B%5D=2","script_name":"\/index.php","report_id":"3f25dd2eade48f91196067b05b4db1af9c9e85ffc27d476adf9ce0d5a8a75987"}

ArjandenOuden commented 4 years ago

@RichardPerdaan Hi Richard, we liggen stil als bedrijf, kunnen geen labels meer aanmaken door upgrade naar de stabiele 4.1.2 versie.

Vorig jaar deden we een kleine 200 labels in okt, we zijn 50% gegroeid. Gaan we 300 labels met de hand aanmaken deze maand? Importeren in batch dit weekend al als workaround gemaakt maar afhaalpunten kun je weer niet importeren. Kun je ons (Riverlodge, webshop kransmaken.nl) ajb helpen om weer online te komen? We zijn bereikbaar via de bij jullie bekende telefoonnummers. Klantenservice kan niets betekenen, terugbellen wordt niet gedaan. HELP!

ArjandenOuden commented 4 years ago

Ben zeer bereid om je te helpen met testen, troubleshooten etc.

bamboekeizer commented 4 years ago

@ArjandenOuden Dag Arjan, Het beste is om terug te gaan naar de vorige versie die wel goed werkte om je site weer normaal te krijgen. Het is tevens verstandig om een staging site te hebben waarop je de nieuwe versies kun testen. Het is heel eenvoudig vanuit je hosting provider om een je huidige site naar een dergelijke staging site te kopiëren.

ArjandenOuden commented 4 years ago

@bamboekeizer Eens, maar waarom iets een stable release noemen als het dit soort bugs bevat?

bamboekeizer commented 4 years ago

@ArjandenOuden Ik denk dat het bij een nieuwe install wel goed kan gaan, maar ik heb het vermoeden dat het met upgrades te maken heeft. Het zou prettig zijn als de ontwikkelaars een versie mee laten lopen met [meerdere] upgrades om dat specifiek te testen. Ik kom vaker na upgrades voor verrassingen te staan.

ArjandenOuden commented 4 years ago

Downgrade middels: /opt/plesk/php/7.2/bin/php /usr/lib64/plesk-9.0/composer.phar require myparcelnl/magento "3.0.2" --update-with-dependencies lijkt niet te werken.

Na: rm -rf var/di/; rm -rf pub/static/; rm -rf var/cache/; rm -rf var/pagecache/; rm -rf var/generation/; rm -rf var/dir/; rm -rf var/view_preprocessed/; rm -rf var/report/; /opt/plesk/php/7.2/bin/php bin/magento cache:flush && find . -type f -exec chmod 664 {} \; && find . -type d -exec chmod 775 {} \; && /opt/plesk/php/7.2/bin/php bin/magento setup:upgrade && find var generated pub/static pub/media app/etc -type f -exec chmod g+w {} + && find var generated pub/static pub/media app/etc -type d -exec chmod g+ws {} + && /opt/plesk/php/7.2/bin/php bin/magento setup:static-content:deploy en_US nl_NL de_DE && /opt/plesk/php/7.2/bin/php bin/magento setup:di:compile && /opt/plesk/php/7.2/bin/php bin/magento indexer:reindex && /opt/plesk/php/7.2/bin/php bin/magento cache:enable && systemctl restart varnish

Krijg je deze error: PHP Fatal error: Uncaught Error: Call to undefined method MyParcelNL\Magento\Model\Source\DropOffDelayDays::setAttribute() in /var/www/vhosts/kransmaken.nl/httpdocs/vendor/magento/module-eav/Model/Entity/Attribute/AbstractAttribute.php:652 Stack trace:

0 /var/www/vhosts/kransmaken.nl/httpdocs/generated/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute/Interceptor.php(1181): Magento\Eav\Model\Entity\Attribute\AbstractAttribute->getSource()

1 /var/www/vhosts/kransmaken.nl/httpdocs/vendor/magento/module-catalog/Helper/Product/Flat/Indexer.php(311): Magento\Catalog\Model\ResourceModel\Eav\Attribute\Interceptor->getSource()

2 /var/www/vhosts/kransmaken.nl/httpdocs/vendor/magento/module-catalog/Model/Indexer/Product/Flat/TableBuilder.php(73): Magento\Catalog\Helper\Product\Flat\Indexer->getAttributes()

3 /var/www/vhosts/kransmaken.nl/httpdocs/vendor/magento/module-catalog/Model/Indexer/Product/Flat/AbstractAction.php(152): Magento\Catalog\Model\Indexer\Product\Flat\TableBuilder->build('1', Array, '_value')

4 /var/www/vhos in /var/www/vhosts/kransmaken.nl/httpdocs/vendor/magento/module-eav/Model/Entity/Attribute/AbstractAttribute.php on line 652

bojanni commented 4 years ago

Ik heb ook moeten downgraden naar 3.4. Heb de versie in de composer json op 3.3 gezet en composer update gedaan.

Als je een upgrade hebt gedaan naar 4.x zijn er twee kolomnamen gewijzigd in de sales_order en quote tabel. Die moeten weer handmatig gewijzigd worden van myparcel_delivery_options naar delivery_options (zie: https://github.com/myparcelnl/magento/blob/master/Setup/UpgradeSchema.php)

RichardPerdaan commented 4 years ago

Sorry voor de late reactie. Wij hebben deze versie van de plugin meerdere malen door meerdere collega's laten testen. Daarnaast hebben wij de test gedaan doormiddel van een nieuwe installatie maar ook via een update van de plugin. Deze bevindingen zijn bij ons niet in de test voorbij gekomen.

Daarnaast heeft deze versie twee weken op pre-release gestaan waardoor een aantal Magento gebruikers de plugin heeft kunnen testen. De bevindingen die uit de testen zijn gekomen, zijn opgelost.

Als ik de verhalen hierboven lees zie ik 2 problemen:

Sinds versie 4.x is het nodig om een carrier te selecteren en de type zending. Wat we willen aanpassen is dat de type zendingen onder de carrier (PostNL) zal gaan vallen en het daardoor overzichtelijker is.

ArjandenOuden commented 4 years ago

@RichardPerdaan Hoi Richard, dank voor feedback, er is stock voldoende, heb alle orders geprobeerd, continue 500 meldingen. Dit speelt alleen direct na een upgrade naar 4.1.2, dit issue doet zich ook niet voor bij versie 3.0.2 waar we nu naar zijn gedowngrade, nu hebben we echter weer bovenstaande issue. Ik vermoed dat 4.1.2 niet correct omgaat met meerdere sources? Ik zie alleen nergens opties om iets met sources in te stellen?

ArjandenOuden commented 4 years ago

@bojanni @RichardPerdaan @bamboekeizer Uiteindelijk toch weer naar versie 4.1.2 geupgrade, downgraden naar 3.0.2 en dan in mysql handmatig tabellen aanpassen gaat me te ver.

Als ik kijk naar de oorspronkelijke foutmelding die opeens verscheen na een upgrade naar 4.1.2: {"0":"Notice: Undefined variable: sourceCode in /var/www/vhosts/kransmaken.nl/httpdocs/vendor/magento/module-inventory-shipping/Observer/SourceDeductionProcessor.php on line 112

Is het eenvoudig om sourceCode de juiste waarde mee te geven. dit moet 'default' zijn. We werken weliswaar met MSI (multi source inventory) binnen Magento maar dat komt door de bol.com koppeling van bol zelf, niet omdat we MSI verder zelf gebruiken.

Onderstaande eenvoudige toevoeging aan SourceDeductionProcessor.php om de foutmelding te voorkomen, waarna het aanmaken van labels ook gewoon weer werkt:

image

Regel 105 en 106 zijn toegevoegd om variabele sourceCode te vullen op (nu) regel 114.

Vragen aan @RichardPerdaan is getest met MSI en/of een bol.com koppeling? Waarom werkte 3.0.2 versie wel en 4.1.2 niet? Is de aanroep naar std magento functionaliteit om een shipment aan te maken veranderd tussen versie 3.0.2 en 4.1.2? Ik probeer gewoon te begrijpen wat hier gebeurd vandaar.

Tnx voor de replies en feedback all :-)

ArjandenOuden commented 4 years ago

Nog eens wat verder in de lijst met issues gekeken die de myparcel plugin heeft. Mogelijk dat ons issue ook beschreven staat in:

Support Multi Source Inventory (MSI) #224

224

Wanneer is er support voor MSI ingepland? #224 staat al vrij lang open?

ArjandenOuden commented 3 years ago

Shipment creation fails with http 500 staat in tekst topicstarter

Heb nu in /app/bootstrap.php de regel:

ini_set('display_errors', 1);

uit commentaar gehaald.

Label aangemaakt in details van de order, normaal pakketje, geen fratsen. De http 500 die topicstarter kreeg en wij ook laat nu de eigenlijke foutmelding zien:

Fatal error: Uncaught TypeError: Argument 1 passed to MyParcelNL\Sdk\src\Model\Consignment\PostNLConsignment::setPackageType() must be of the type integer, string given, called in /var/www/vhosts/kransmaken.nl/httpdocs/vendor/myparcelnl/magento/Model/Sales/TrackTraceHolder.php on line 194 and defined in /var/www/vhosts/kransmaken.nl/httpdocs/vendor/myparcelnl/sdk/src/Model/Consignment/PostNLConsignment.php:140 Stack trace: #0 /var/www/vhosts/kransmaken.nl/httpdocs/vendor/myparcelnl/magento/Model/Sales/TrackTraceHolder.php(194): MyParcelNL\Sdk\src\Model\Consignment\PostNLConsignment->setPackageType('package') #1 /var/www/vhosts/kransmaken.nl/httpdocs/vendor/myparcelnl/magento/Observer/NewShipment.php(105): MyParcelNL\Magento\Model\Sales\TrackTraceHolder->convertDataFromMagentoToApi(Object(Magento\Sales\Model\Order\Shipment\Track), Array) #2 /var/www/vhosts/kransmaken.nl/httpdocs/vendor/myparcelnl/magento/Observer/NewShipment.php(79): MyParcelNL\Magento\Observer\NewShipment->setMagentoAndMyParcelTrack(Object(Magento\Sales\M in /var/www/vhosts/kransmaken.nl/httpdocs/vendor/myparcelnl/sdk/src/Model/Consignment/PostNLConsignment.php on line 140

Graag asap verhelpen, het is nu onmogelijk om zendingen aan te maken zoals het hoort.

Mitchell-MyParcel commented 3 years ago

@ArjandenOuden @bojanni @bamboekeizer The 500 error is gefixed in de laatste versie. De UX van dit menu zullen we in een van de volgende sprints oppakken.