Example #1
0
    /**
     * Called when a product is updated
     *
     */
    public function hookUpdateProduct($params)
    {
        if (!isset($params['product']->id) && !isset($params['id_product'])) {
            return false;
        }
        if (!($id_product = (int) $params['product']->id)) {
            if (!($id_product = (int) $params['id_product'])) {
                return false;
            }
        }
        if (!$this->ebay_profile instanceof EbayProfile) {
            return false;
        }
        $sql = array();
        $ebay_profiles = eBayProfile::getProfilesByIdShop();
        foreach ($ebay_profiles as $profile) {
            $sql[] = 'SELECT `id_product`, ' . $profile['id_ebay_profile'] . ' AS `id_ebay_profile`, ' . $profile['id_lang'] . ' AS `id_lang` 
			FROM `' . _DB_PREFIX_ . 'product`
			WHERE `id_product` = ' . $id_product . '
			AND `active` = 1
			AND `id_category_default` IN
			(' . EbayCategoryConfiguration::getCategoriesQuery(new EbayProfile($profile['id_ebay_profile'])) . ')';
        }
        foreach ($sql as $q) {
            if ($products = Db::getInstance()->executeS($q)) {
                if (Configuration::get('EBAY_SYNC_PRODUCTS_BY_CRON')) {
                    foreach ($products as $product) {
                        EbayProductModified::addProduct($product['id_ebay_profile'], $product['id_product']);
                    }
                } else {
                    EbaySynchronizer::syncProducts($products, $this->context, $products[0]['id_lang'], 'hookUpdateProduct');
                }
            }
        }
    }
Example #2
0
    /**
     * Called when a product is added to the shop
     *
     * @param array $params hook parameters
     **/
    public function hookAddProduct($params)
    {
        if (!isset($params['product']->id)) {
            return false;
        }
        if (!($id_product = (int) $params['product']->id)) {
            return false;
        }
        $sql = 'SELECT `id_product`
			FROM `' . _DB_PREFIX_ . 'product`
			WHERE `id_product` = ' . $id_product . '
			AND `active` = 1
			AND `id_category_default` IN
			(' . EbayCategoryConfiguration::getCategoriesQuery(Configuration::get('EBAY_SYNC_PRODUCTS_MODE')) . ')';
        if ($products = Db::getInstance()->executeS($sql)) {
            EbaySynchronizer::syncProducts($products, $this->context, $this->ebay_country->getIdLang());
        }
    }