Товар (........) окончен.PrestaShop 1.7 - PullRequest
0 голосов
/ 03 февраля 2020

При добавлении стороннего продукта в корзину. Я хочу изменить количество товаров в корзине. Получить уведомление Продукт (........) окончен.

<code>if(is_array($arCartPrice)){
        //if($arCartPrice['OPTIONS']['MINIMUM']>1){$QUANTITY=$arCartPrice['OPTIONS']['MINIMUM'];}else{$QUANTITY=1;}
        $QUANTITY=$arCartPrice['AVAILABLE_NUM'];
        $DefaultCategory = 12;
        $DefaultTaxGroup = 0;
        $Price = $arCartPrice['PRICE_CONVERTED'];
        $PriceVAT = round($Price);
        $Reference = $arCartPrice['ARTICLE'].' / '.$arCartPrice['BRAND'];

        //Presta init
        global $context;
        if(!$context){$context = Context::getContext();}
        $logged = $context->cookie->__get('logged');
        $id_cart = $context->cookie->__get('id_cart');
        $id_lang = $context->cookie->__get('id_lang');
        $id_guest = $context->cookie->__get('id_guest');
        $id_currency = $context->cookie->__get('id_currency');

        // Add cart if no cart found
        if (!$id_cart){
            $context->cart = new Cart();
            $context->cart->id_customer = $context->customer->id;
            $context->cart->id_currency = $id_currency;
            $context->cart->add();
            if($context->cart->id){
                $context->cookie->id_cart = (int)$context->cart->id;
            }
            $id_cart = (int)$context->cart->id;
        }

        $doAdd="Y";
        //if(!$logged>0){$doAdd="N"; $TCore->arErrorMessages[] = 'You must be <a href="/index.php?controller=my-account">logged in</a> to buy products';}
        //if(trim($Reference)=='' OR !$Price>0 OR !$QUANTITY>0){$doAdd="N"; $TCore->arErrorMessages[] = 'Add to cart data is missing!';}
        if(!$id_cart>0){$doAdd="N"; ErAdd("Your cookie <b>id_cart</b> is wrong!",1);}
        if(!$id_lang>0){$doAdd="N"; ErAdd("Your cookie <b>id_lang</b> is wrong!",1);}
        if($doAdd!="N"){
            //Check avail. tecdoc item in Presta
            $sql = 'SELECT p.`id_product`, pl.`name` FROM `'._DB_PREFIX_.'product` p
                    LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product`)
                    WHERE pl.`id_lang` = '.$id_lang.' AND
                    p.`price` = '.$Price.' AND
                    p.`reference` = "'.$Reference.'"
                    ';
            $arRes = Db::getInstance()->executeS($sql);
            if(count($arRes)>0){
                $NewTID = $arRes[0]['id_product'];
            }else{
                    //Supplier data (for 1C integration)
                    $supplierName = $arCartPrice['SUPPLIER_STOCK'];
                    $supplierId = $suppliers = (Supplier::getIdByName($supplierName));
                    if (!$supplierId) {
                        $supplier = new Supplier();
                        $supplier->name = $supplierName;
                        $supplier->active = 1;
                        $supplier->add();
                        $supplierId = $supplier->id;
                    }

                    $obProduct = new Product(false,false,$id_lang);
                    $obProduct->id_category_default = $DefaultCategory;
                    $obProduct->unity = $arCartPrice['ADD_URL'];
                    $obProduct->name = $arCartPrice['ARTICLE'] .' / '.substr($arCartPrice['NAME'],0,400).' / '.$arCartPrice['BRAND'];
                    $obProduct->description = 'This product is created automatically by ';
                    $obProduct->description_short = $arCartPrice['SUPPLIER_STOCK'].' ['.$arCartPrice['DAY'].' days]';
                    $obProduct->price = $Price;
                    $obProduct->wholesale_price = $arCartPrice['PRICE'];
                    $obProduct->reference = $Reference;
                    $obProduct->link_rewrite = $arCartPrice['CPID'];
                    $obProduct->available_for_order = 1; //true
                    $obProduct->visibility = 'none';
                    $obProduct->is_virtual = 0;
                    //$obProduct->weight = round($arCartPrice['OPTIONS']['WEIGHT']/1000,2);
                    $obProduct->minimal_quantity = 1;
                    $obProduct->condition = 'used';
                    $obProduct->condition = 'refurbished';
                    $obProduct->available_now = $arCartPrice['AVAILABLE_NUM'];
                    $obProduct->quantity = $arCartPrice['AVAILABLE_NUM'];



                    //supplier
                    $obProduct->supplier_name = $supplierName;
                    $obProduct->id_supplier = $supplierId;

                    $obProduct->id_tax_rules_group = $DefaultTaxGroup;
                    //echo '<br><pre>';print_r($obProduct);echo '
'; d ie (); $ ObProduct-> Add (); if ($ obProduct-> id> 0) {$ NewTID = $ obProduct-> id; $ ObProduct-> setWsCategories (Array (Array ( "ID" => $ DefaultCategory))); // Добавить изображение if ($ arCartPrice ['IMG_SR C']! = '' AND $ NewTID> 0) {$ shops = Shop :: getShops (true, null, true); $ image = new Image (); $ image-> id_product = $ NewTID; $ image-> position = Image :: getHighestPosition ($ NewTID) +1; $ image-> cover = true; // или ложь; if (($ image-> validateFields (false, true)) === true && ($ image-> validateFieldsLang (false, true)) === true && $ image-> add ()) {$ image-> associateTo ($ магазинов); $ tmpfile = tempnam (_PS_TMP_IMG_DIR_, 'ps_import'); if (Tools :: copy ($ arCartPrice ['IMG_SR C'], $ tmpfile)) {$ path = $ image-> getPathForCreation (); ImageManager :: resize ($ tmpfile, $ path. '. Jpg'); } unlink ($ tmpfile); }}} else {ErAdd («Prestashop новый идентификатор элемента имеет значение false», 1); } unset ($ obProduct); } if ($ NewTID> 0) {// if ($ arCartPrice ['AVAILABLE']> 0) {StockAvailable :: setQuantity ($ NewTID, false, $ arCartPrice ['AVAILABLE']);} StockAvailable :: setQuantity ($ NewTID, 0, (int) $ arCartPrice ['AVAILABLE']); $ obCart = новая корзина ($ id_cart); $ obCart-> id_lang = $ id_lang; $ obCart-> id_currency = $ id_currency; if ($ obCart-> updateQty ((int) $ QUANTITY = 1, (int) $ NewTID)) {Header ('Расположение: http: //'.$_SERVER [' HTTP_HOST ']. $ _ SERVER [' REQUEST_URI '] ); д ie (); } else {ErAdd ("Добавить в корзину неверно. NewTID =". $ NewTID, 1); }

Как исправить код, чтобы вы могли обновлять количество товаров в вашей корзине. И количество 10 штук. 1 штука добавлена ​​в корзину. Я хочу добавить больше в мою корзину. Как это реализовать? Когда я добавляю 2 штуки. Я получаю сообщение Продукт (........) закончен .. введите описание изображения здесь

1 Ответ

0 голосов
/ 21 февраля 2020

Прежде всего, после того, как вы создали продукт, проверьте в Backoffice, правильно ли хранится количество (если количество вновь созданного продукта равно $ arCartPrice ['AVAILABLE_NUM'])) Возможно, вы можете попробовать с включенным «Разрешить заказ» когда нет в наличии ".

...