netresearch / dhl-shipping-m2

DHL multi-division shipping extension for Magento 2
Open Software License 3.0
13 stars 4 forks source link

no more "Shipping Methods for DHL Shipping" #11

Closed YiffyToys closed 3 weeks ago

YiffyToys commented 3 years ago

The old module used "Stores → Konfiguration → Verkäufe → Versandarten → DHL Versenden → Allgemeine Versandeinstellungen → Versandarten für DHL Versenden" to configure alternative offline shipping methods that would allow to create DHL postage. We used this to print DHL postage for orders imported from Amazon. So for these ordres, no human ever went through the Magento checkout process.

It worked fine after the migration. Now we needed to create a new store view specifically for Amazon (so no longer send automated emails). Printing DHL postage is no longer offered for these orders and we can not find a way to connect the offline shipping method to DHL again.

YiffyToys commented 3 years ago

It looks like M2E (large Amazon an Ebay integration platform) has a large number of customers reporting the same issue of no longer being able to buying DHL postage for their Amazon orders since the upgrade. One of the support tickets on their side, about this issue is #140548 (in case anyone wants to get in contact to find a solution that works for both sides).

No idea why it continued working until I had to create that special store view.

ngolatka commented 3 years ago

Hello @YiffyToys

It worked fine after the migration.

Do you mean the migration from the legacy DHL module 0.11.x to the current 1.2.0? Or was that just a typo and you really meant "it worked fine before the migration"?

we can not find a way to connect the offline shipping method to DHL again

Where exactly are you looking? How did you do it previously (which configuration in which module version)?

Sidenote: there are several potential problems when using M2E Pro in conjunction with our DHL module. The support ticket you mentioned may or may not be related to your current issue. Let's not jump to conclusions just yet.

YiffyToys commented 3 years ago

Do you mean the migration from the legacy DHL module 0.11.x to the current 1.2.0? Or was that just a typo and you really meant "it worked fine before the migration"?

No, strangly it continued working after replacing the legacy module with dhl-shipping-m2 in preparation of a future upgrade to Magento 2.4 . We did not delete old db tables when uninstalling the old module to have a way back in case of issues. (DHL is just roo mission critical to risk anything) It failed weeks later, when we had to create a new shop view.

we can not find a way to connect the offline shipping method to DHL again

Where exactly are you looking? How did you do it previously (which configuration in which module version)?

In the old module "dhl-module-shipping-m2" v0.11.x we had done that just as documented in "Stores → Konfiguration → Verkäufe → Versandarten → DHL Versenden → Allgemeine Versandeinstellungen → Versandarten für DHL Versenden" by assigning "m2e shipping" as a shipping method to enable DHL postage. In the new module we checked store->default->checkout->shipping methods store->default->checkout->shipping setting store->default->checkout->dhl settings store->store->checkout->shipping methods store->store->checkout->shipping setting store->store->checkout->dhl settings store->new store view->checkout->shipping methods store->new store view->checkout->shipping setting store->new store view->checkout->dhl settings store->old store view->checkout->shipping methods store->old store view->checkout->shipping setting store->old store view->checkout->dhl settings

ngolatka commented 3 years ago

@YiffyToys What about the menu "Use rates from" as shown here? https://github.com/netresearch/dhl-module-carrier-paket/wiki/Documentation-English#module-configuration

That basically creates the link between a shipping method and the DHL module.

YiffyToys commented 3 years ago

Oh, I didn't realize that this was for more then just shipping-RATES (= prices shown in checkout). Thank you.

ngolatka commented 3 years ago

@YiffyToys Glad I could help. If you can confirm that it works, please close this issue.

YiffyToys commented 3 years ago

Sorry but this setting doesn't exist on Store-View level. It only exists on Store-Level and allows only 1 selection to be made.

For local sales it must have the values "matrix shipping" to present the correct montary values for the invoice item "shipping and handling" and allow for the creation of DHL postage for these sales. For Amazon sales it must have the values "m2e shipping" to allow for the creation of DHL postage.

The old one was a multi-select. Now it's a single select and can't be customized per store-view.

ngolatka commented 3 years ago

Internal ref: DHLGW-953

simonrl commented 3 years ago

Hi, do you have an ETA for DHLGW-953?

I assume it will convert the setting in the backend to a multiselect?

Do you have a workaround for the time being?

Thanks

simonrl commented 3 years ago

@ngolatka

Hi,

sorry to bump, but this is really urgent. I also added a ticket via the Netresearch support page and haven't got an answer yet.

We're trying to switch back to the old module now. We simply can't go to the DHL portal and create a label for each Ebay and amazon order there manually.

If you won't provide a fix for this problem soon, I'd also be happy with a technical documentation how I can extend the DHL Paket functionality to other carriers myself.

Thanks a lot!

ngolatka commented 3 years ago

@simonrl

sorry to bump, but this is really urgent. I also added a ticket via the Netresearch support page and haven't got an answer yet.

I've seen your request and will get back to you.

YiffyToys commented 3 years ago

Tested with version 1.5.0 "Use rates from" is still a store-wide setting, not a store-view setting. Does anyone have code for DHL using the workaround user "plastikschnitzer" mentioned in the linked GLS ticket?

I guess it would go something like this:

  if ($order->getShippingMethod() == "m2eproshipping_m2eproshipping") {
      $order->setShippingMethod("dhlpaket_bestway");
      $order->save();
     $this->logger->debug(__('Module XYZ changed order %1 in status "%2" and state "%3" from shipping method "m2eproshipping_m2eproshipping" to "%4"', $order->getIncrementId(), $order->getStatus(), $order->getState(), $order->getShippingMethod()));
  }
YiffyToys commented 3 years ago

A mass action on for the Sales->Orders -list to convert M2EPro orders to DHL.

Controller/Adminhtml/Order/MassDHL.php

<?php

namespace YiffyToys\Orderbulk\Controller\Adminhtml\Order;

use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
use Magento\Backend\App\Action\Context;
use Magento\Ui\Component\MassAction\Filter;
use Magento\Sales\Model\ResourceModel\Order\CollectionFactory;
use Magento\Sales\Api\OrderManagementInterface;
use Magento\Sales\Model\Order\Invoice;
use Magento\Sales\Model\Order;
use Dhl\ShippingCore\Api\SplitAddress\RecipientStreetLoaderInterface;
use Dhl\ShippingCore\Model\SplitAddress\RecipientStreetLoader;
use Dhl\ShippingCore\Api\SplitAddress\RecipientStreetRepositoryInterface;

class MassDHL extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction {

    /**
     * @var object
     */
     protected $collectionFactory;

        /**
     * @var RecipientStreetRepositoryInterface
     */
    private $recipientStreetRepository;

    /**
     * @var RecipientStreetLoaderInterface[]
     */
    #private $streetLoaders;
    private $streetLoader;

    private $logger;

    /**
     * @param Context $context
     * @param Filter $filter
     * @param CollectionFactory $collectionFactory
     */
    public function __construct(
            Context $context,
            Filter $filter,
            CollectionFactory $collectionFactory,
            \Psr\Log\LoggerInterface $logger,
            RecipientStreetRepositoryInterface $recipientStreetRepository,
            RecipientStreetLoader $streetLoader
#           array $streetLoaders = []
    ) {
        parent::__construct($context, $filter);
        $this->collectionFactory = $collectionFactory;
        $this->logger = $logger;
        $this->recipientStreetRepository = $recipientStreetRepository;
        #$this->streetLoaders = $streetLoaders;
        $this->streetLoader = $streetLoader;
    }

    protected function massAction(AbstractCollection $collection) {

        $countDone = 0;

        foreach ($collection->getItems() as $order) {

                try {
                        $before = $order->getShippingMethod();
                        if ($before == "m2eproshipping_m2eproshipping") {
                                $order->setShippingMethod("dhlpaket_bestway");
                                $this->logger->debug(__('MassDHL order %1 using shipping method "%2" changed to "%3"', $order->getIncrementId(), $before, $order->getShippingMethod()));
                                $order->save();

                                $address = $order->getShippingAddress();
                                $carrierCode = strtok((string)$order->getShippingMethod(), '_');
                                #$streetLoader = $this->streetLoaders[$carrierCode];
                                $streetLoader = $this->streetLoader;
                                $recipientStreet = $streetLoader->load($address);
                                $this->recipientStreetRepository->save($recipientStreet);
                        } else {
                                $this->logger->debug(__('MassDHL order %1 using shipping method "%2" NOT changed', $order->getIncrementId(), $before));
                        }

                        $countDone++;

            } catch (\Exception $e) {
                $this->messageManager->addExceptionMessage($e, $e->getMessage());
                $this->logger->error("Error mass updating orders to DHL", ['exception' => $e]);
                $this->messageManager->addError(__('Error updating shipping method for order %1', $order->getIncrementId()));
            }
        }

        if ($countDone) {
            $this->messageManager->addSuccess(__('Upated shipping method for %1 order(s)', $countDone));
        }

        $resultRedirect = $this->resultRedirectFactory->create();
        $resultRedirect->setPath($this->getComponentRefererUrl());
        return $resultRedirect;
    }
}

view/adminhtml/ui_component/sales_order_grid.xml

<?xml version="1.0" encoding="UTF-8"?>
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
        <!-- Magento 2.1 #
         https://stackoverflow.com/questions/45732142/magento-2-0-and-2-1-massaction-compatibility-issue-admin-back-end
        -->
   <listingToolbar name="listing_top">
        <massaction name="listing_massaction">

           <action name="mark_all_dhl">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="type" xsi:type="string">mark_all_dhl</item>
                        <item name="label" xsi:type="string" translate="true">Change all to DHL</item>
                        <item name="confirm" xsi:type="array">
                           <item name="title" xsi:type="string" translate="true">Change all to DHL?</item>
                           <item name="message" xsi:type="string" translate="true">Change all orders to DHL</item>
                        </item>
                        <item name="url" xsi:type="url" path="markallprinted/order/massDHL"/>
                    </item>
                </argument>

            </action>
        </massaction>
   </listingToolbar>
</listing>

etc/adminhtml/routes.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="admin">
        <route id="markallprinted" frontName="markallprinted">
            <module name="YiffyToys_Orderbulk"  before="Magento_Backend" />
        </route>
    </router>
</config>

etc/module.xml

<?xml version="1.0"?>
<!--
/**
 * @category   YiffyToys
 * @package    YT_Orderbulk
 * @subpackage etc
 */
 -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
        <module name="YiffyToys_Orderbulk" setup_version="1.0.0">
            <sequence>
                <module name="Magento_Sales"/>
            </sequence>
    </module>
</config>
YiffyToys commented 3 years ago

Workaround doesn't quite work. The extra fields with the parsed DHL address are missing. Resulting in "Label could not be created: Hard validation error occured. In der Sendung trat mindestens ein harter Fehler auf. Die eingegebene Adresse ist nicht leitcodierbar. Bitte geben Sie eine Straße an. Bitte geben Sie eine Hausnummer an."

baenschplus commented 3 years ago

So YiffyToys script works fine so far.

when I push the Order Addresses to the table "dhlgw_recipient_street" everything works fine so now need to find a way to do it by script. Does it harm when the table "dhlgw_recipient_street" is completely synched with the order addresses?

mam08ixo commented 3 years ago

The dhlgw_recipient_street database table stores the shipping address split into street name and number.

You can see how an entry is created in the SplitAddress observer.

baenschplus commented 3 years ago

so if I get it right it could work if call the SplitAddress sequence in the module.xml from YiffyToys?

baenschplus commented 3 years ago

ok maybe I do it wrong. so has any one a hint how to force the splitaddress action to the converted addresses?

mam08ixo commented 3 years ago

Everyone, if the legacy module worked for you, then I suggest to just implement what the legacy module did: Register an observer on the sales_order_place_after event and implement your custom logic. That is, inspect the order properties to decide whether or not the carrier code must be changed: purchase point, original shipping method, or whatever helps to determine that the order came from an m2e import.

Here is the UpdateCarrierObserver from the legacy shipping module.

YiffyToys commented 3 years ago

With the code from SplitAddress the workaround works. However we need to have DI fetch us the RecipientStreetLoader instead of the list of all loaders (because that list will end up empty).

baenschplus commented 3 years ago

Do you have a quick Hint How to implement the splitaddress correctly to your workarround? I failed. So Orders were Not Imported because the splitaddress Event Was Not load correctly

YiffyToys commented 3 years ago

I already updated the code above.

plastikschnitzer commented 3 years ago

Hi everyone, @YiffyToys created a mass action with a Magento extension to create the DHL shipments, I am manipulating the orders directly in the database with a script run by cron, no extension needed in Magento this way. So in my case the GLS label creation is running 100% automatically, but as @mam08ixo mentioned in the GLS ticket https://github.com/netresearch/gls-shipping-m2/issues/4#issuecomment-799478630 the cronjob will not work 1:1 for DHL as GLS does not require to split the address which makes things a bit easier for me.

Nevetheless, here is my code: update sales_order set shipping_method="glsgroup_bestway" where store_id="amazon_store_view_id" and created_at >= CURDATE() - INTERVAL 2 HOUR;

Replace amazon_store_view_id with the id of your store view where Amazon orders are imported to and thats it.

You can filter by any other database column you need, key point is that you have the GLS shipping assigned to the method you are updating here (in my case bestway), so the automatic GLS label creation recognizes the order as GLS order and creates the shipping label. The shipping information from GLS is then synced back to Amazon automatically by m2epro. My additional filter on the created_at column is set to prevent historic order data being imported to GLS ;-)

Be careful when setting up things like this, if you manipulate directly in the database, things can go wrong in horrible way … just try a bit with single orders first before you apply any automation here. As we all know, there is no "staging Amazon" so I know its a challenging task.

Good luck!

kruegge82 commented 3 years ago

Hello,

i have rewrite your comments in a php cronjob from magento root folder. the statement search only not processed and not changed orders, and such we dont want to change, like Prime By Seller which are indicated for us with "DE NEXT"

<?php
$cred = (include 'app/etc/env.php');
if($cred['db']['connection']['default']['active']==1) {
    $mysqli = mysqli_connect($cred['db']['connection']['default']['host'], $cred['db']['connection']['default']['username'], $cred['db']['connection']['default']['password'], $cred['db']['connection']['default']['dbname']);

  $carriers=$mysqli->query("SELECT * FROM mg_sales_order WHERE status='processing' AND shipping_description NOT LIKE '%DE NEXT%' AND shipping_description NOT LIKE '%DHL Paket - DHL%' AND shipping_description NOT LIKE '%DHL Versandkostenfrei%'");
  while($carrier=$carriers->fetch_assoc()) {
      $mysqli->query("UPDATE mg_sales_order SET shipping_description='DHL Paket - DHL', shipping_method='dhlpaket_bestway' WHERE entity_id='".$carrier['entity_id']."'");
      $mysqli->query("UPDATE mg_sales_order_grid SET dhlgw_label_status='pending' WHERE entity_id='".$carrier['entity_id']."'");
      $mysqli->query("INSERT INTO mg_dhlgw_label_status SET order_id='".$carrier['entity_id']."', status_code='pending'");
      $streets=$mysqli->query("SELECT * FROM mg_sales_order_address WHERE entity_id='".$carrier['shipping_address_id']."'");
      $street = $streets->fetch_assoc();
      $streetd=explode(" ",trim($street['street']));
      if(count($streetd)==1) {
          $mysqli->query("INSERT INTO mg_dhlgw_recipient_street SET order_address_id='".$carrier['shipping_address_id']."', name='".$streetd[0]."', number=' '");
      }
      if(count($streetd)==2) {
          $mysqli->query("INSERT INTO mg_dhlgw_recipient_street SET order_address_id='".$carrier['shipping_address_id']."', name='".$streetd[0]."', number='$streetd[1]'");
      }
      if(count($streetd)>2) {
          $street2=str_replace($streetd[max($streetd)], "", $streetd['street']);
          $mysqli->query("INSERT INTO mg_dhlgw_recipient_street SET order_address_id='".$carrier['shipping_address_id']."', name='".$streetd['street']."', number='".$streetd[max($streetd)]."'");
      }
  }
}
YiffyToys commented 3 years ago

Thanks. We don't offer PRIME, so we didn't know.

baenschplus commented 3 years ago

so kruegge82 does quite a good job, and all fields in the database are filled correctly. But now I receive the error:

"Hard validation error occured. Please enter a house number. The actual address cannot be routed. Please enter a weight. Please enter a street." any idea?

the latest DHL version fixed the shipping for our Ebay Orders, but Amazon is still a mess.

YiffyToys commented 3 years ago

"Hard validation error occured. Please enter a house number. The actual address cannot be routed. Please enter a weight. Please enter a street." any idea?

Sound like a street+house number not being separated by a space. "$streetd=explode(" ",trim($street['street']));" Should not be related to this issue or the fix. Just a bad address.

ngolatka commented 3 years ago

@YiffyToys wrote:

Just a bad address.

Not sure that's the only problem. Note that @baenschplus 's error message says

Please enter a weight. Please enter a street.

This is not the typical error message if the whitespace between street name and house number is missing (although that might be part of the problem). Seems more like some of the basic information that should have been in the request has been lost.

Check the XML request in the _dhlpaket.log to see what has been transmitted, and in which field (log level: debug). If you need a known-good request as reference, look here.

baenschplus commented 3 years ago

Ok thanks @ngolatka , so I had a look in the dhl_paket.log and the street and name are completely missing. but in the sales_order and the dhlgw_recipient_street table they are correctly listed. so don't know what's wrong.

I tried the the fixed workaround from @YiffyToys, too. but it says:

{"0":"Class YiffyToys\\Orderbulk\\Controller\\Adminhtml\\Order\\MassDHL\\Interceptor does not exist","1":"#1 Magento\\Framework\\Code\\Reader\\ClassReader->getConstructor() called at [vendor\/magento\/framework\/ObjectManager\/Definition\/Runtime.php:54]\n#2 Magento\\Framework\\ObjectManager\\Definition\\Runtime->getParameters() called at [vendor\/magento\/framework\/ObjectManager\/Factory\/Dynamic\/Developer.php:48]\n#3 Magento\\Framework\\ObjectManager\\Factory\\Dynamic\\Developer->create() called at [vendor\/magento\/framework\/ObjectManager\/ObjectManager.php:56]\n#4 Magento\\Framework\\ObjectManager\\ObjectManager->create() called at [vendor\/magento\/framework\/App\/ActionFactory.php:44]\n#5 Magento\\Framework\\App\\ActionFactory->create() called at [vendor\/magento\/framework\/App\/Router\/Base.php:306]\n#6 Magento\\Framework\\App\\Router\\Base->matchAction() called at [vendor\/magento\/framework\/App\/Router\/Base.php:167]\n#7 Magento\\Framework\\App\\Router\\Base->match() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#8 Magento\\Backend\\App\\Router\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#9 Magento\\Backend\\App\\Router\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#10 Magento\\Backend\\App\\Router\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Backend\/App\/Router\/Interceptor.php:23]\n#11 Magento\\Backend\\App\\Router\\Interceptor->match() called at [vendor\/magento\/framework\/App\/FrontController.php:115]\n#12 Magento\\Framework\\App\\FrontController->dispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#13 Magento\\Framework\\App\\FrontController\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#14 Magento\\Framework\\App\\FrontController\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/m2epro\/magento2-extension\/Plugin\/HealthStatus\/Magento\/Framework\/App\/FrontController.php:81]\n#15 Ess\\M2ePro\\Plugin\\HealthStatus\\Magento\\Framework\\App\\FrontController->processDispatch() called at [vendor\/m2epro\/magento2-extension\/Plugin\/AbstractPlugin.php:45]\n#16 Ess\\M2ePro\\Plugin\\AbstractPlugin->execute() called at [vendor\/m2epro\/magento2-extension\/Plugin\/HealthStatus\/Magento\/Framework\/App\/FrontController.php:45]\n#17 Ess\\M2ePro\\Plugin\\HealthStatus\\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:23]\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:23]\n#22 Magento\\Framework\\App\\Http\\Interceptor->launch() called at [vendor\/magento\/framework\/App\/Bootstrap.php:263]\n#23 Magento\\Framework\\App\\Bootstrap->run() called at [pub\/index.php:48]\n","url":"\/index.php\/ltgshops\/markallprinted\/order\/massDHL\/","script_name":"\/pub\/index.php","report_id":"05b3eab2f074e47d7bcdcff5184987f939669ed596199a179e03ddd51dc39b99"}

ngolatka commented 3 years ago

@baenschplus About the missing data in the request: I'm afraid you'll have to debug your way through the code. You could start in the module-carrier-paket/Model/Pipeline/CreateShipments/RequestDataMapper.php function mapRequest, look what's missing, and then work your way backwards.

About the non-existing Interceptor: sorry, no idea.

4irm commented 2 years ago

I'd like to add some remarks here...following business situation here...

10% Online-Shop 40% Amazon (no FBA) and eBay via M2E Pro Extension 50% Retail

Basically we are not able to cover the 40% anymore...at least with this standard approach provided by this extension...We also created a little program which manipulates data base records in order to be able to process Amazon/eBay orders.

But this comes with some issues...e.g. code for carriers are not compatible anymore when M2E uploads the tracking number. We tried to solve this with a second piece of code issued by Cron that would rename the shipping carrier...however this deactivates the possibility to cancel shipments / labels in Magento Admin...

Having this said...

Why is the functionality (select shipping methods to be covered by DHL extension in the configuration) taken away? DHL is loosing revenue by this decision...any chance to file here an request???

powli commented 2 years ago

@4irm

Why is the functionality (select shipping methods to be covered by DHL extension in the configuration) taken away?

There are multiple reasons: This setting was feasible as long as the route (origin->destination) was enough to determine which business unit of DHL should run the shipment (Express, Paket, E-Commerce...). Also, many of the features we now have are much cleaner and easier to implement and maintain with the current solution of having a distinct carrier for DHL.

We were in talks with the M2E team, but not able to find a generalized approach. The underlying challenge did not change: Which orders should be assigned to the DHL carrier depends on the merchant requirements. Thus, the implementation needs to be done by the merchant according to their needs.

We will not and cannot implement a generic solution that works for the individual requirements.

For guidelines on how to approach such implementation, see https://github.com/netresearch/dhl-shipping-m2/issues/11#issuecomment-800547526

YiffyToys commented 2 years ago

Looks like with Version 2 the "Dhl\ShippingCore\Api\SplitAddress\RecipientStreetRepositoryInterface" no longer exists and my module no longer compiles to work around this issue.

powli commented 2 years ago

@YiffyToys the interface moved to the carrier-agnostic module: https://github.com/netresearch/module-shipping-core/blob/master/Api/SplitAddress/RecipientStreetRepositoryInterface.php Hence the major version increase - we did break backward compatibility.

YiffyToys commented 2 years ago

Found it last night and fixed the code of the workaround. It was a simple change in package name for the workaround posted above. (not enough to post new code)

Anyone else doing that 2.0.1 update together with the mandatory 2.4.3 security update, beware of https://github.com/netresearch/dhl-module-carrier-paket/issues/3 and possibly https://github.com/netresearch/gls-shipping-m2/issues/11 .

Marcobede commented 2 years ago

We also have the problem that the Shipping Street and Street Number is seperated, but the API Connection say that there are no Street Number and Name. How you have fixed that Problem? We use Magento 2.4.2-p1 with DHL Module Version 2.2.1

mam08ixo commented 2 years ago

The original concern of this issue was that the shipping methods multiselect was removed in DHL Shipping version 1.

We published a module that brings back the configuration setting and, just like in the legacy module, assigns incoming orders to the DHL Paket carrier: dhl/module-carrier-update.

If that does not really solve a problem, then I encourage all participants of this discussion to contribute to that module in order to make shipping fulfillment of imported orders possible. Due to our lack of knowledge about the M2E processes and merchant requirements around them, this needs to remain a user-driven effort.

In this thread, some ideas and approaches were shared, but they did not lead to an installable, ready-to-go implementation. We are hoping that this additional module and its public repository can serve as a platform for you to meet the challenges and create a common solution.

Thank you

YiffyToys commented 2 years ago

Seems to work fine. Thanks a lot.