Remove shipping method step from the Checkout
I have some digital products and I want to remove shipping step from the checkout completely.I tried to remove it and noticed it's breaking some other functionalities on the checkout.
Is there any product configuration that I can use for my product that remove the shipping step from the checkout? If removing from the code is the only way, can someone guide me what's the best way to do this without breaking anything?
Comments
-
Hi,
Have you taken a look at this post?
https://forum.commercequest.space/discussion/comment/28919#Comment_28919
please: let us know what errors you get when removing the step1 -
In the previous example you can see how to override the StepFactory to remove the shipment steps.
You have to also override the SummaryStep creation and the summarystep to remove the shipment logic.
Remove also the Shipment state from your state machine1 -
Thanks! I will give it a try again.
0 -
It is also possible to add a no-cost shipping method specific to those products using an availability plugin. While this doesn't remove the shipment step it can achieve the same goal of not charging for shipping.
0 -
@creilly Thanks for your reply. We are selling digital products. so I think removing or hiding the shipping step is the best approach.
Can you please explain me how no-cost shipping method can be used? What changes I need to do?0 -
Hey @dipen.vyas, if you are only selling digital products (and therefore all products will use one no-cost method) simply go into the back office Administration→Delivery Methods→edit→set price and tax to 0.
However if you have to implement multiple shipping methods and want the no-cost method to only show for digital products and not physical ones, you will have to create an availibility plugin. That will have to extend Spryker\Zed\Kernel\Communication\AbstractPlugin and implement Spryker\Zed\ShipmentExtension\Dependency\Plugin\ShipmentMethodAvailabilityPluginInterface. You can then add it to src/Pyz/Shipment/ShipmentDependencyProvider.php::getAvailabilityPlugins() and then use it in the back office
0
Categories
- All Categories
- 42 Getting Started & Guidelines
- 7 Getting Started in the Community
- 8 Additional Resources
- 7 Community Ideas and Feedback
- 92 Spryker News
- 1K Developer Corner
- 855 Spryker Development
- 93 Spryker Dev Environment
- 362 Spryker Releases
- 3 Oryx frontend framework
- 36 Propel ORM
- 68 Community Projects
- 3 Community Ideation Board
- 30 Hackathon
- 3 PHP Bridge
- 6 Gacela Project
- 35 Job Opportunities
- 3.2K 📜 Slack Archives
- 116 Academy
- 5 Business Users
- 370 Docker
- 551 Slack General
- 2K Help
- 75 Knowledge Sharing
- 6 Random Stuff
- 4 Code Testing
- 34 Product & Business Questions
- 70 Spryker Safari Questions
- 51 Random