Jump to content

Edit History

4presta

4presta

Hi.

You need to create your carrier correctly, then everything will work.
Example of how the carrier should be created:

$carrier = new Carrier();
$carrier->name = $this->l('my new carrier');
$carrier->active = 1;
$carrier->deleted = 0;
$carrier->shipping_handling = 0;
$carrier->range_behavior = 0;

$languages = \Language::getLanguages(false);
$delays = [];
$descriptions = [];
foreach ($languages as $language) {
    $delays[$language['id_lang']] = 'my new carrier';
    $descriptions[$language['id_lang']] = 'here is my new carrier';
}
$carrier->delay = $delays;

$carrier->description = $descriptions;

$carrier->shipping_external = 1;
$carrier->is_module = 1;
$carrier->external_module_name = $this->name;
$carrier->need_range = 1;

// carrier logo
if (file_exists(dirname(__FILE__) . 'logo.jpg')) {
    copy(dirname(__FILE__) . 'logo.jpg', _PS_SHIP_IMG_DIR_ . '/' . (int) $carrier->id . '.jpg');
}

$db = Db::getInstance();

$groups = Group::getGroups(true);
$zones = Zone::getZones(true);
$shops = Shop::getShops(true);

if ($carrier->add()) {
    foreach ($groups as $group) {
        $db->insert(
           'carrier_group', 
            array(
                'id_carrier' => (int) $carrier->id,
                'id_group' => (int) $group['id_group']
            ), 
        );
    }

    foreach ($zones as $zone) {
        $db->insert(
           'carrier_zone', 
            array(
                'id_carrier' => (int) $carrier->id,
                'id_zone' => (int) $zone['id_zone']
            ), 
        );
    }

    foreach ($shops as $shop) {
        $db->insert(
           'carrier_shop', 
            array(
                'id_carrier' => (int) $carrier->id,
                'id_shop' => (int) $shop['id_shop']
            ), 
        );
    }
}

 

and call hook:

public function hookDisplayCarrierExtraContent($params)
{
    $myCarrierId = $this->id;
    if ($params['moduleId'] == $myCarrierId) {
        return $this->display(__FILE__, 'views/templates/admin/carrier/carrier_extra_content.html.tpl');
    }
} 

 

4presta

4presta

Hi.

You need to create your carrier correctly, then everything will work.
Example of how the carrier should be created:

$carrier = new Carrier();
$carrier->name = $this->l('my new carrier');
$carrier->active = 1;
$carrier->deleted = 0;
$carrier->shipping_handling = 0;
$carrier->range_behavior = 0;

$languages = \Language::getLanguages(false);
$delays = [];
$descriptions = [];
foreach ($languages as $language) {
    $delays[$language['id_lang']] = 'my new carrier';
    $descriptions[$language['id_lang']] = 'here is my new carrier';
}
$carrier->delay = $delays;

$carrier->description = $descriptions;

$carrier->shipping_external = 1;
$carrier->is_module = 1;
$carrier->external_module_name = $this->name;
$carrier->need_range = 1;

// carrier logo
if (file_exists(dirname(__FILE__) . 'logo.jpg')) {
    copy(dirname(__FILE__) . 'logo.jpg', _PS_SHIP_IMG_DIR_ . '/' . (int) $carrier->id . '.jpg');
}

$db = Db::getInstance();

$groups = Group::getGroups(true);
$zones = Zone::getZones(true);
$shops = Shop::getShops(true);

if ($carrier->add()) {
    foreach ($groups as $group) {
        $db->insert(
           'carrier_group', 
            array(
                'id_carrier' => (int) $carrier->id,
                'id_group' => (int) $group['id_group']
            ), 
        );
    }

    foreach ($zones as $zone) {
        $db->insert(
           'carrier_zone', 
            array(
                'id_carrier' => (int) $carrier->id,
                'id_zone' => (int) $zone['id_zone']
            ), 
        );
    }

    foreach ($shops as $shop) {
        $db->insert(
           'carrier_shop', 
            array(
                'id_carrier' => (int) $carrier->id,
                'id_shop' => (int) $shop['id_shop']
            ), 
        );
    }
}

 

×
×
  • Create New...