2011-06-17 19 views
5

मैं लोगों को मैं इस कोड के साथ एक मॉड्यूल से एक कस्टम उत्पाद बनाने का प्रयास करें:prestashop में एक मॉड्यूल से उत्पाद बनाएं

$defaultLanguage = new Language((int)(Configuration::get('PS_LANG_DEFAULT'))); 
/* Add a new product */ 
$object = new Product(); 
$object->price = 22; 
$object->id_tax_rules_group = 0; 
$object->name = 'test'; 
$object->id_manufacturer = 0; 
$object->id_supplier = 0; 
$object->quantity = 1; 
$object->minimal_quantity = 1; 
$object->additional_shipping_cost = 0; 
$object->wholesale_price = 0; 
$object->ecotax = 0; 
$object->width = 0; 
$object->height = 0; 
$object->depth = 0; 
$object->weight = 0; 
$object->out_of_stock = 0; 
$object->active = 0; 
$object->id_category_default = 18; 
$object->category = 18; 
$object->available_for_order = 0; 
$object->show_price = 1; 
$object->on_sale = 0; 
$object->online_only = 1; 
$object->meta_keywords = 'test'; 
if($object->save()) 
    $object->add(); 
echo "produit ajouté"; 

कोड ठीक काम करता है, उत्पाद डेटाबेस में जोड़ा गया था, लेकिन प्रदर्शित नहीं किया गया था बैक ऑफिस में, किसी को इस समस्या को हल करने का विचार है?

उत्तर

12

नाम और मेटा कीवर्ड फ़ील्ड दोनों बहु-भाषा सरणी हैं। आप व्यवस्थापक/टैब में AdminImport.php को देखें, तो आप एक समारोह के लिए परिभाषा मिल जाएगा:

private static function createMultiLangField($field) 

कॉपी इस समारोह अपने मॉड्यूल में और आप इन बहु भाषा क्षेत्रों के लिए एक उपयुक्त सरणी बनाने के लिए इसका उपयोग कर सकते हैं यदि आप $field पैरामीटर के रूप में अपना टेक्स्ट पास करके इसे कॉल करते हैं (यह आपके द्वारा पारित स्ट्रिंग में सभी भाषाओं के लिए मान निर्धारित करेगा)। तुम भी description_short और link_rewrite क्षेत्रों के लिए एक डिफ़ॉल्ट मान सेट करना चाहिए:

$object->description_short = array((int)(Configuration::get('PS_LANG_DEFAULT')) => ''); 

और

$object->link_rewrite = array((int)(Configuration::get('PS_LANG_DEFAULT')) => ''); 

दूसरी बात, हालांकि आप डिफ़ॉल्ट श्रेणी निर्धारित किया है, तो आप भी स्पष्ट रूप से सेट करना होगा कि है id_category एक सरणी के रूप में उदाहरण के लिए

$object->category=array(18); 

मैं भी लगता है कि तुम तो साथ स्पष्ट रूप से श्रेणियों स्थापित करना चाहिए:

$object->updateCategories($object->category, true); 

यह तो सूची में दिखाई देनी चाहिए।

0

आप इस उदाहरण का संदर्भ ले सकते हैं जहां लेखक ने उत्पादों को आयात करने के लिए एक आयात प्रक्रिया बनाई थी।

Custom Product Import

आप डाउनलोड करने के बाद देख सकते हैं ProductImporter.php कि id_lang प्रत्येक प्रॉपर्टी में जोड़ा जाता है है।

-1

उत्पाद उपलब्ध बनाने के लिए, आप इस को बदलने की जरूरत:

$object->active = 1; // sets the product as active for shop 

-rk-

संबंधित मुद्दे