Jump to content
  • 0

Kombinacje atrybutów dla produktów wirtualnych


kamild13

Question

Witajcie!

 

Potrzebuję uruchomić dla moich produktów wirtualnych (oprogramowanie) kombinacje atrybutów. Dla standardowego produktu nie ma z tym problemu, ale dla wirtualnych ta opcja jest nie dostępna, wręcz Presta odpowiada, że: Produkt wirtualny nie może mieć kombinacji... Czy ktoś z Was wie może jak taki problem rozwiązać?

 

Będę niezmiernie wdzięczny za jakiekolwiek sugestie z Waszej strony.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

thx! zaraz się za to zabieram... :)

 

działa w 100% na Presta 1.6 :) jeżeli ktoś będzie jeszcze z tego chciał skorzystać, to nie sugerujcie się numerami wierszy w tutorialu, natomiast całkowicie sprawę załatwia CTRL+F w edytorze; no i jeśli ktoś jeszcze nie wie, to pliki typu *.*.js możecie edytować w SciTE

Edited by kamild13 (see edit history)
Link to comment
Share on other sites

  • 0

Czy ktoś próbował tego w 1.6.08? Po wejściu w produkty mam białą stronę.

 

Plik AdminProductsController.php ma wyglądać tak?

<?php 
class AdminProductsController extends AdminProductsControllerCore
{
}
if ($this->product_exists_in_shop)
            {
                if ($product->is_virtual)
                {
                    $data->assign('product', $product);
                    $this->displayWarning($this->l('A virtual product cannot have combinations.'));
                }
                else
                {
                    $attribute_js = array();
                    $attributes = Attribute::getAttributes($this->context->language->id, true);
                    foreach ($attributes as $k => $attribute)
                        $attribute_js[$attribute['id_attribute_group']][$attribute['id_attribute']] = $attribute['name'];
                    $currency = $this->context->currency;
                    $data->assign('attributeJs', $attribute_js);
                    $data->assign('attributes_groups', AttributeGroup::getAttributesGroups($this->context->language->id));
 
                    $data->assign('currency', $currency);
 
                    $images = Image::getImages($this->context->language->id, $product->id);
 
                    $data->assign('tax_exclude_option', Tax::excludeTaxeOption());
                    $data->assign('ps_weight_unit', Configuration::get('PS_WEIGHT_UNIT'));
 
                    $data->assign('ps_use_ecotax', Configuration::get('PS_USE_ECOTAX'));
                    $data->assign('field_value_unity', $this->getFieldValue($product, 'unity'));
 
                    $data->assign('reasons', $reasons = StockMvtReason::getStockMvtReasons($this->context->language->id));
                    $data->assign('ps_stock_mvt_reason_default', $ps_stock_mvt_reason_default = Configuration::get('PS_STOCK_MVT_REASON_DEFAULT'));
                    $data->assign('minimal_quantity', $this->getFieldValue($product, 'minimal_quantity') ? $this->getFieldValue($product, 'minimal_quantity') : 1);
                    $data->assign('available_date', ($this->getFieldValue($product, 'available_date') != 0) ? stripslashes(htmlentities($this->getFieldValue($product, 'available_date'), $this->context->language->id)) : '0000-00-00');
 
                    $i = 0;
                    $data->assign('imageType', ImageType::getByNameNType('small_default', 'products'));
                    $data->assign('imageWidth', (isset($image_type['width']) ? (int)($image_type['width']) : 64) + 25);
                    foreach ($images as $k => $image)
                    {
                        $images[$k]['obj'] = new Image($image['id_image']);
                        ++$i;
                    }
                    $data->assign('images', $images);
 
                    $data->assign($this->tpl_form_vars);
                    $data->assign(array(
                        'list' => $this->renderListAttributes($product, $currency),
                        'product' => $product,
                        'id_category' => $product->getDefaultCategory(),
                        'token_generator' => Tools::getAdminTokenLite('AdminAttributeGenerator'),
                        'combination_exists' => (Shop::isFeatureActive() && (Shop::getContextShopGroup()->share_stock) && count(AttributeGroup::getAttributesGroups($this->context->language->id)) > 0 && $product->hasAttributes())
                    ));
                }
            }
            else
                $this->displayWarning($this->l('You must save the product in this shop before adding combinations.'));

Can you see where it reads if ($product->is_virtual)? Get rid of this if/else, so it looks like this:

Edited by pawand (see edit history)
Link to comment
Share on other sites

  • 0

Witam,

Wszystko zrobiłem jak w tutorialu, jednak po etapie usunięcia pliku class_index.php  z folderu cache/ w Panelu Administracyjnym po wejściu w zakładkę Katalog / Produkty wyświetla się biała strona.

Jeśli nie usunę tego pliku wszelkie modyfikacje nic nie dają. W dalszym ciągu nie można dodać kombinacji do Wirtualnego porduktu.

Czy ktoś rozgryzł ten problem ?

Pozdrawiam serdecznie,
 

Link to comment
Share on other sites

  • 0

Na preście 1.6.1.6 nie ruszyło. :(

 

W podesłanym tutorialu jest chyba błąd... 

zamiast tego

} else
    $this->displayWarning($this->l('You must save the product in this shop before adding combinations.'));

powinno być 

} else {
    $this->displayWarning($this->l('You must save the product in this shop before adding combinations.'));
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...