Hi Aman,
I'll see if I can help here. if you open up the checkout.definition.json file you'll see the list of slots as you mentioned, which i've pulled out below for the first slot named "CheckoutInformation".
"slots": {
"checkoutInformation": {
"friendlyName": "Checkout Information",
"description": "This contains the checkout information like shipping address, payment instrument and etc. This content is in the left slot ",
"max": 10,
"min": 1,
"allowedTypes": [
"checkout-express",
"checkout-shipping-address",
"checkout-billing-address",
"checkout-guest-profile",
"checkout-delivery-options",
"checkout-gift-card",
"checkout-loyalty",
"checkout-section-container",
"checkout-payment-instrument",
"checkout-terms-and-conditions",
"text-block",
"checkout-customer-account-payment",
"checkout-pickup"
],
"allowedCategories": ["checkout_checkoutInformation"]
},
Notice there is an allowedTypes list of modules that are allowed, so one option as you mentioned is to add a new module type. To do this you'll need do a module definition file override in your theme, here are instructions: docs.microsoft.com/.../theme-module-extensions. You may also need to modify the checkout view file if you want to lay the new module out differently than the module does currently.
However, there is an easier way, notice the "allowedCategories" above is set to "checkout_checkoutInformation", if you just add this to your custom module definition file "categories" section then the new module will be allowed to be a child of that slot. Below is an example custom module definition file:
{
"$type": "contentModule",
"friendlyName": "my-custom-checkout-info",
"name": "my-custom-checkout-info",
"description": "",
"categories": ["checkout_checkoutInformation"],
"tags": [""],
"dataActions": {
}
}
Once you now package and build the module and upload to your environment, you should now be able to add the custom module to the checkout module slot.
I hope that helps,
Sam