having done this before, i do not know why one would need to create a new shipping module.
ZC out of the box contains a store pickup shipping option. i can only assume that module is in use.
what one needs to do is set up a new field for said products, 'products_in_store_only'.
one can then disable all other shipping modules by checking if the cart has any of those items, ie:
Code:
// in the quote method for all other enabled shipping modules (or with an observer if one is available):
$in_store_count = $_SESSION['cart']->in_cart_check('products_in_store_only', 'Y');
if ($in_store_count > 0) {
$messageStack->add_session(
'checkout_shipping',
"Your cart contains items which are only available for in-store pickup.",
'warning'
);
return;
}
this will limit the complete order to only being available for in-store pickup.
adding another shipping method makes little sense to me, as i am not sure what that gives you other than another level of unneeded complexity.
best.
Bookmarks