Как получить product_id для события product_add_after? - PullRequest
0 голосов
/ 05 июня 2019

У меня есть модуль, который запускается по событию after_product_add в OpenCart 3.0.3.1. В коде я хочу добавить информацию о продукте, но для этого мне нужен product_id, который не входит в массив данных, которые я получаю из события.

Кто-нибудь знает решение помимо изменения исходного кода OpenCart?

Справочная информация: Модуль будет синхронизировать продукты с другой системой, при создании я хочу сохранить guid в базе данных. Для этого мне нужен product_id.

Массив, который я получаю из триггера события: массив ( [0] => Массив ( [product_description] => Массив ( [1] => Массив ( [name] => test25 [описание] => [meta_title] => test25 [meta_description] => [meta_keyword] => [tag] => )

            )

        [model] => test25
        [sku] => 
        [upc] => 
        [ean] => 
        [jan] => 
        [isbn] => 
        [mpn] => 
        [location] => 
        [price] => 
        [tax_class_id] => 0
        [quantity] => 1
        [minimum] => 1
        [subtract] => 1
        [stock_status_id] => 6
        [shipping] => 1
        [date_available] => 2019-06-04
        [length] => 
        [width] => 
        [height] => 
        [length_class_id] => 1
        [weight] => 
        [weight_class_id] => 1
        [status] => 1
        [sort_order] => 1
        [manufacturer] => 
        [manufacturer_id] => 0
        [category] => 
        [filter] => 
        [product_store] => Array
            (
                [0] => 0
            )

        [download] => 
        [related] => 
        [option] => 
        [image] => 
        [points] => 
        [product_reward] => Array
            (
                [1] => Array
                    (
                        [points] => 
                    )

            )

        [product_seo_url] => Array
            (
                [0] => Array
                    (
                        [1] => 
                    )

            )

        [product_layout] => Array
            (
                [0] => 
            )

    )

)

Я искал форумы и документацию для разработчиков. Единственные ссылки, которые я нахожу, говорят мне, что нет больше информации, чем у меня уже есть. Я пытался получить идентификатор продукта из запроса

public function createproduct($route, $args) {
    if ($this->config->get('module_umrlzconn_status')) {
        if ($this->config->get('module_umrlzconn_productsync')) {
            $this->load->model('extension/module/umrlzconn');
            file_put_contents(DIR_STORAGE .'UMRLZ/prodcreate.log', print_r($args,true));
            $productguid = $this->NewGuid();
            $this->model_extension_module_umrlzconn->setProductGuid($this->request->get['product_id'], $productguid);
        }
    }
}

Я бы хотел получить product_id для только что созданного продукта, чтобы я мог использовать его для добавления информации.

1 Ответ

0 голосов
/ 05 июня 2019

Любой, кто ищет ответ, благодаря DigitCart на форуме OpenCart, product_id отправляется как третья переменная вместе с event-action.Таким образом, вы можете получить идентификатор продукта следующим образом:

public function createproduct($route, $args, $product_id) {
 // Do your thing
}  
...