Prestashop ean13 ve upc alanlarında format kontrolü kaldırma

Merhabalar,

upc ve ean13 alanlarını farklı bir amaçla kullanmak istiyorum. fakat belli bir formatta kullanabiliyoruz o alanları “classes/Product.php” kısmından kaldırdım fakat kombinasyonlarda kalkmadı. diğer sayfalarda gördüğümü değiştirdim. hatta “classess/Validate.php” dosyasından da fonksiyonu düzenledim fakat kombinasyonlar kısmına etki etmedi. hala upc alanı geçersiz diyor. bunun için ne yapabilirim?

6 thoughts on “Prestashop ean13 ve upc alanlarında format kontrolü kaldırma

  1. SedatKar - 30 Mart 2017 at 00:00

    Herşeyi doğru yapmışssınız gibi gözüküyor.

    vertabanından toblolarını kontrol ettinizmi ? detaylı bakmadım tablo alanlarında kısıtlama olabilir.

    Cevap
  2. rameajans - 30 Mart 2017 at 00:00

    öncelikle teşekkürler cevabınız için. dikkatimden kaçmış bir alan varmış oyüzden hata vermiş. çözdüm hatayı teşekkürler. birşey daha sormak istiyorum size. yeni ve indirimli ürünleri bizim seçmemiz mümkün mü? sistem otomatik seçmese? böyle bir modül var mı?

    Cevap
  3. SedatKar - 30 Mart 2017 at 00:00

    Ücretli  var bu konuda,

    ücretsiz bir kod paylaşımı yaparım ben sadece kendi seçtiğin ürünlerin id lerini , haftaya paylaşım sağlayıp burdan linkini paylaşırım , inş.

    NewProductsController.php

    BestSalesController.php

    PricesDropController.php

    dosyları içinde esitleme yepılacak şekilde düzenlenebilir.

    modül olarak yapılacak iş bu dosyalara override yapılarak olabilir yada prestashop hookları içine register edilerek yapılabilir.

    Cevap
  4. rameajans - 30 Mart 2017 at 00:00

    Ücretli  var bu konuda,

    ücretsiz bir kod paylaşımı yaparım ben sadece kendi seçtiğin ürünlerin id lerini , haftaya paylaşım sağlayıp burdan linkini paylaşırım , inş.

    NewProductsController.php

    BestSalesController.php

    PricesDropController.php

    dosyları içinde esitleme yepılacak şekilde düzenlenebilir.

    modül olarak yapılacak iş bu dosyalara override yapılarak olabilir yada prestashop hookları içine register edilerek yapılabilir.

    Ücretli modüller nelerdir? Ayrıca bu konuda yazınızı bekliyorum. NewProductsController.php dosyasının içeriğini paylaştım aşağıda. Ben yeni ürünler diye bir kategori oluşturdum. O kategorinin içine attığım ürünler yeni olarak etiketlensin istiyorum. Bunun için nasıl bir değişiklik yapabilirim? orderby kısmında date_add en büyük değer şeklinde sıralanmış fakat burada sorguya kategori_id yi nasıl eklerim bulamadım. Örnek olarak gösterebilirseniz diğer sayfalara da uygulayabilirim aynı sistemi.

     <?php /* * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * *  @author PrestaShop SA <contact@prestashop.com> *  @copyright  2007-2015 PrestaShop SA *  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0) *  International Registered Trademark & Property of PrestaShop SA */   class NewProductsControllerCore extends FrontController {     public $php_self = 'new-products';       public function setMedia()     {         parent::setMedia();         $this->addCSS(_THEME_CSS_DIR_.'product_list.css');     }       /**      * Assign template vars related to page content      * @see FrontController::initContent()      */     public function initContent()     {         parent::initContent();           $this->productSort();           // Override default configuration values: cause the new products page must display latest products first.         if (!Tools::getIsset('orderway') || !Tools::getIsset('orderby')) {             $this->orderBy = 'date_add';             $this->orderWay = 'DESC';         }           $nb_products = (int)Product::getNewProducts(             $this->context->language->id,             (isset($this->p) ? (int)$this->p - 1 : null),             (isset($this->n) ? (int)$this->n : null),             true         );           $this->pagination($nb_products);           $products = Product::getNewProducts($this->context->language->id, (int)$this->p - 1, (int)$this->n, false, $this->orderBy, $this->orderWay);         $this->addColorsToProductList($products);           $this->context->smarty->assign(array(             'products' => $products,             'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),             'nbProducts' => (int)$nb_products,             'homeSize' => Image::getSize(ImageType::getFormatedName('home')),             'comparator_max_item' => Configuration::get('PS_COMPARATOR_MAX_ITEM')         ));           $this->setTemplate(_PS_THEME_DIR_.'new-products.tpl');     } } 

    Cevap
  5. SedatKar - 30 Mart 2017 at 00:00

    Selamlar,

    kusura bakma yoğunluktan geç cevap verebildim.

    ücretli olarak

    http://addons.presta…d-products.html

    bu modülü kullanmıştım geçen sene.

    yeni ürünler vs. de istediğin ürünleri göstermek ile ilgili bir aksilik çıkmassa bugün detaylı bir yazı hazırlarım foruma

    iyi çalışmalar..

    Cevap
  6. rameajans - 30 Mart 2017 at 00:00

    Merhabalar,

    Yazınızı bekledim ama göremedim. classes/Product.php dosyasının bir kısmını aşağıda paylaştım. SQL’de ps_product tablosunda “yeni_urun” adında int formatında bir sütun oluşturdum. 0 değeri normal ürün, 1 değeri yeni ürün olarak çalışsın istiyorum. Admin panelinde ürün düzenleme sayfasında information bölümüne radio button koyarak bu değerin değişmesini sağladım. Yani yönetim panelinden değiştirebiliyorum “yeni_urun” sütunundaki 0 ve 1 değerini. Fakat classes/Product.php dosyasında bu düzenlemeyi yapamadım. date_add alanlarını temizleyip yeni_urun = 1 ise yeni ürün olarak belirtilsin istiyorum. bunu nasıl sağlayabilirim? nasıl bir düzenleme yapmam gerek? Kodlar aşağıdadır. Hangi alanları ekleyip silmem gerek?

         /**     * Get new products     *     * @param int $id_lang Language id     * @param int $pageNumber Start from (optional)     * @param int $nbProducts Number of products to return (optional)     * @return array New products     */     public static function getNewProducts($id_lang, $page_number = 0, $nb_products = 10, $count = false, $order_by = null, $order_way = null, Context $context = null)     {         if (!$context) {             $context = Context::getContext();         }          $front = true;         if (!in_array($context->controller->controller_type, array('front', 'modulefront'))) {             $front = false;         }          if ($page_number < 0) {             $page_number = 0;         }         if ($nb_products < 1) {             $nb_products = 10;         }         if (empty($order_by) || $order_by == 'position') {             $order_by = 'date_add';         }         if (empty($order_way)) {             $order_way = 'DESC';         }         if ($order_by == 'id_product' || $order_by == 'price' || $order_by == 'date_add' || $order_by == 'date_upd') {             $order_by_prefix = 'product_shop';         } elseif ($order_by == 'name') {             $order_by_prefix = 'pl';         }         if (!Validate::isOrderBy($order_by) || !Validate::isOrderWay($order_way)) {             die(Tools::displayError());         }          $sql_groups = '';         if (Group::isFeatureActive()) {             $groups = FrontController::getCurrentCustomerGroups();             $sql_groups = ' AND EXISTS(SELECT 1 FROM `'._DB_PREFIX_.'category_product` cp 				JOIN `'._DB_PREFIX_.'category_group` cg ON (cp.id_category = cg.id_category AND cg.`id_group` '.(count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1').') 				WHERE cp.`id_product` = p.`id_product`)';         }          if (strpos($order_by, '.') > 0) {             $order_by = explode('.', $order_by);             $order_by_prefix = $order_by[0];             $order_by = $order_by[1];         }          if ($count) {             $sql = 'SELECT COUNT(p.`id_product`) AS nb 					FROM `'._DB_PREFIX_.'product` p 					'.Shop::addSqlAssociation('product', 'p').' 					WHERE product_shop.`active` = 1 					AND product_shop.`date_add` > "'.date('Y-m-d', strtotime('-'.(Configuration::get('PS_NB_DAYS_NEW_PRODUCT') ? (int)Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY')).'" 					'.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').' 					'.$sql_groups;             return (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);         }          $sql = new DbQuery();         $sql->select(             'p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, 			pl.`meta_keywords`, pl.`meta_title`, pl.`name`, pl.`available_now`, pl.`available_later`, image_shop.`id_image` id_image, il.`legend`, m.`name` AS manufacturer_name, 			product_shop.`date_add` > "'.date('Y-m-d', strtotime('-'.(Configuration::get('PS_NB_DAYS_NEW_PRODUCT') ? (int)Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY')).'" as new'         );          $sql->from('product', 'p');         $sql->join(Shop::addSqlAssociation('product', 'p'));         $sql->leftJoin('product_lang', 'pl', ' 			p.`id_product` = pl.`id_product` 			AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl')         );         $sql->leftJoin('image_shop', 'image_shop', 'image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop='.(int)$context->shop->id);         $sql->leftJoin('image_lang', 'il', 'image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang);         $sql->leftJoin('manufacturer', 'm', 'm.`id_manufacturer` = p.`id_manufacturer`');          $sql->where('product_shop.`active` = 1');         if ($front) {             $sql->where('product_shop.`visibility` IN ("both", "catalog")');         }         $sql->where('product_shop.`date_add` > "'.date('Y-m-d', strtotime('-'.(Configuration::get('PS_NB_DAYS_NEW_PRODUCT') ? (int)Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY')).'"');         if (Group::isFeatureActive()) {             $groups = FrontController::getCurrentCustomerGroups();             $sql->where('EXISTS(SELECT 1 FROM `'._DB_PREFIX_.'category_product` cp 				JOIN `'._DB_PREFIX_.'category_group` cg ON (cp.id_category = cg.id_category AND cg.`id_group` '.(count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1').') 				WHERE cp.`id_product` = p.`id_product`)');         }          $sql->orderBy((isset($order_by_prefix) ? pSQL($order_by_prefix).'.' : '').'`'.pSQL($order_by).'` '.pSQL($order_way));         $sql->limit($nb_products, $page_number * $nb_products);          if (Combination::isFeatureActive()) {             $sql->select('product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, IFNULL(product_attribute_shop.id_product_attribute,0) id_product_attribute');             $sql->leftJoin('product_attribute_shop', 'product_attribute_shop', 'p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop='.(int)$context->shop->id);         }         $sql->join(Product::sqlStock('p', 0));          $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);          if (!$result) {             return false;         }          if ($order_by == 'price') {             Tools::orderbyPrice($result, $order_way);         }          $products_ids = array();         foreach ($result as $row) {             $products_ids[] = $row['id_product'];         }         // Thus you can avoid one query per product, because there will be only one query for all the products of the cart         Product::cacheFrontFeatures($products_ids, $id_lang);         return Product::getProductsProperties((int)$id_lang, $result);     } 
    Cevap

Cevap bırakın