814ck ارسال شده در بهمن 26، 2018 گزارش Share ارسال شده در بهمن 26، 2018 سلام خدمت اساتید ورژن پرستا : prestashop_1.6.1.18_rtl_1.0 برای فروش محصولات یک قنادی لازمه بتونیم وزن کالا رو بصورت اعشاری هم قرار بدیم مثلا فروش 2.5 کیلوگرم کیک ... با کمی سرچ در انجمن های خارجی مشاهده شد اینکار با تغییر در کدها امکان پذیر هست لینک در روش فوق int با float جایگزین میشه ( در حین نوشتن این مطلب دیدم گفتن intval هم به floatval تغییر بدیم که هنوز انجام ندادم) البته در مرحله 1 گفته تغییراتی در دیتابیس داده بشه که موفق به انجامش نشدم 1) Change the database quantity related fields type to DECIMAL (17,2). ps_product: quantity, minimal_quantity ps_order_return_detail: product_quantity ps_pack: quantity ps_product_attribute: quantity, minimal_quantity ps_product_sale: quantity ps_stock: physical_quantity, usable_quantity ps_cart_rule: quantity, quantity_per_user ps_customization: quantity, quantity_refunded, quantity_returned ps_order_detail: product_quantity, product_quantity_in_stock, product_quantity_refunded, product_quantity_return ps_specific_price_rule: from_quantity ps_order_slip_detail: product_quantity ps_supply_order_detail: quantity_recieved, quantity_expected ps_stock_avaible: quantity ps_cart_product: quantity ps_stock_mvt: physical_quantity ps_cart_rule_product_rule_group: quantity مثلا خواسته در ps_product مقدار quantity, minimal_quantity به عددی اعشاری مثل 17.2 تغییر بدیم بنده در لوکال و قسمت phpmyadmin به دیتابیس مورد نظر رفتم و تغییراتو انجام دادم ولی وقتی مثلا 17.2 رو در فیلد وارد میکنم اتوماتیک 17 جایگزین میشه در مرحله بعد سعی کردم استپ افزایش تعداد محصولات رو تغییر بدم یعنی وقتی + یا - میزنیم به جای 1 واحد 0.5 واحد اضافه و کم بشه لینک روش جالبیه،میتونیم برای هر شاخه یه مقدار دلخواه بزاریم اینجا هم اومدم در فایل Product.tpl دقیقا بعد از <div class="product_attributes clearfix"> کد رو به این صورت تغییر دادم <input type="number" min="1" step="0.5" name="qty" فقط یه step="0.5" اضاف کردم فایل Product.js هم به این صورت تغییر دادم // The button to increment the product value $(document).on('click', '.product_quantity_up', function(e){ e.preventDefault(); fieldName = $(this).data('field-qty'); var currentVal = parseFloat($('input[name='+fieldName+']').val()); if (!allowBuyWhenOutOfStock && quantityAvailable > 0) quantityAvailableT = quantityAvailable; else quantityAvailableT = 100000000; if (!isNaN(currentVal) && currentVal < quantityAvailableT) $('input[name='+fieldName+']').val(currentVal + 0.5).trigger('keyup'); else $('input[name='+fieldName+']').val(quantityAvailableT); $('#quantity_wanted').change(); }); // The button to decrement the product value $(document).on('click', '.product_quantity_down', function(e){ e.preventDefault(); fieldName = $(this).data('field-qty'); var currentVal = parseFloat($('input[name='+fieldName+']').val()); if (!isNaN(currentVal) && currentVal > 1 && currentVal > 0.5) $('input[name='+fieldName+']').val(currentVal - 0.5).trigger('keyup'); else $('input[name='+fieldName+']').val(0.5); $('#quantity_wanted').change(); }); http://uupload.ir/files/z3bm_site.png در نهایت با پاک کردن کش،همونجور که در تصویر میبینید step ها 0.5 اضاف میکنه و تا اینجا اوکی بود ولی وقتی اضافه به سبد میزینم مثلا برای مقدار 3.5، 3 رو به سبد اضاف میکنه و مشکل دوم اینکه هنوز در سبد + - که بزنیم 1 عدد زیاد یا کم میشه،اینو به نظرم باید تغییراتی در cart-summary.js انجام داد که هنوز نتونستم کد مورد نظر رو پیدا کنم 2) For Cart page In the cart-summary.js you need to replace the script qty = 1; to qty = 0.1; الان برای حل مشکلم دو راه دارم 1) وزن رو به کیلوگرم بزارم و step هارو به 0.5 تغییر بدم برای رسیدن به این منظور که ایده الم همینه،باید کاری کنم که مثلا 3.5 هم به سبد اضاف بشه و در سبد هم با زدن + یا - مقدار 0.5 اضاف و کم بشه 2) اگر نشد عدد اعشاری به سبد اضاف کرد وزن رو به گرم بزارم step هارو به 500 و min رو به 1000 تغییر بدم در این حالت فقط باید مشکل + - در سبد حل بشه البته هر دو حالت یه مشکل دیگه هم دارن که مشتری اگه در فیلد تعداد بصورت دستی عدد وارد کنه به سبد اضاف میشه مثلا در حالت دوم اگه دستی بزنه 1001 به سبد اضاف میشه در صورتی که ما میخوایم فقط 1000+500x بتونه به سبد اضاف بشه این پست رو به صورت تیکت هم ارسال میکنم در آخر هم اگه فکر میکنین راهی نداره و سیستم مدیریت محتوایی میشناسید که این نیاز منو برطرف کنه ممنون میشم معرفی کنید برای کوچ ممنون که وقت گذاشتین و پست منو مطالعه کردین نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
814ck ارسال شده در بهمن 27، 2018 مالک گزارش Share ارسال شده در بهمن 27، 2018 2) اگر نشد عدد اعشاری به سبد اضاف کرد وزن رو به گرم بزارم step هارو به 500 و min رو به 1000 تغییر بدم در این حالت فقط باید مشکل + - در سبد حل بشه مشکل + - در سبد هم حل شد themes\default-bootstrap\js\cart-summary.js function upQuantity(id, qty) { if (typeof(qty) == 'undefined' || !qty) qty = 500; function downQuantity(id, qty) { var val = $('input[name=quantity_' + id + ']').val(); var newVal = val; if(typeof(qty) == 'undefined' || !qty) { qty = 500; newVal = val - 1; البته هنوز مشتری میتونه به صورت دستی عددی مثل 1200 وارد کنه و به سبد اضافه کنه درصورتی که ما میخوایم فقط اعداد 1000+500x قابل اضاف شدن به سبد داشته باشن اگر در این ضمینه بتونین راهنمایی کنین ممنون میشم نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
دانوش ارسال شده در بهمن 28، 2018 گزارش Share ارسال شده در بهمن 28، 2018 در پوشه classes فایل Product.php را باز کنید و دنبال متد زیر باشید: public function checkQty در این متد همون ابتدا میتونید شرطی بذارید که اگر باقیمانده مقدار بر مثلا ۵۰۰ عدد صفر نبود false بشه و محصول به سبد اضافه نشهاین برای افزودن یا تغییر سبد در هر جایی از فروشگاه کار خواهد کرد. if ($qty%500 !=0) return false; واکنش ها : 814ck 1 نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
814ck ارسال شده در بهمن 28، 2018 مالک گزارش Share ارسال شده در بهمن 28، 2018 در پوشه classes فایل Product.php را باز کنید و دنبال متد زیر باشید: ممنون انجام شد /** * Check product availability * * @param int $qty Quantity desired * @return bool True if product is available with this quantity */ public function checkQty($qty) { if (Pack::isPack((int)$this->id) && !Pack::isInStock((int)$this->id)) { return false; } if ($this->isAvailableWhenOutOfStock(StockAvailable::outOfStock($this->id))) { return true; } if (isset($this->id_product_attribute)) { $id_product_attribute = $this->id_product_attribute; } if ($qty%500 !=0) { return false; } else { $id_product_attribute = 0; } return ($qty <= StockAvailable::getQuantityAvailableByProduct($this->id, $id_product_attribute)); } فقط الان اگه بشه پیام خطا رو هم بدون ترجمه و با کد بهش بدیم خوبه چون الان پیام میده موجودی کافی نیست با ترجمه اصلاحش کردم به این صورت سعی کردم پیامو وارد کنم ولی درست عمل نکرد if ($qty%500 !=0) { alert("Quantity is incorrect"); return false; } واکنش ها : admin 1 نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
814ck ارسال شده در اسفند 8، 2018 مالک گزارش Share ارسال شده در اسفند 8، 2018 بنده موفق شدم مقدار اعشاری رو به سبد خرید اضافه کنم هدف این بود بتونیم هم مثلا 1.5 کیلو کیک بتونیم بفروشیم هم 1 بسته شکلات هنوز مشکلاتی داره ولی روش انجامشو شرح میدم،کامل که شد یه pdf درست میکنم و تو پست اول قرار میدم فایل زیر را دانلود کنید لینک Password : ipresta.ir ابتدا باید مقادیر بعضی از جدول های دیتابیس به decimal و یک عدد اعشاری مثل 17,2 تغییر کنن در فایل Reed Me جدول هایی که باید تغییر کنن نوشته شده واسه نمونه هم چند عکس قرار دادم به عنوان مثال : ps_product: quantity, minimal_quantity,out_of_stock به جدول ps_product رفته و از تب Structure مقادیر quantity و minimal_quantity و out_of_stock را به Decimal و 17,2 تغییر میدیم 17,2 مثال هست و هر عدد اعشاری قابل قبوله، فقط دقت شود از , به جای . برای اعشار استفاده کنید بعد از اینکه کلیه جدول ها تغییر دادیم نوبت به تغییر int به float هست مطابق با فایل Read Me این تغییرات رو انجام میدیم در آخر هم کش رو پاک میکنیم و تمام واکنش ها : admin 1 نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
814ck ارسال شده در اسفند 8، 2018 مالک گزارش Share ارسال شده در اسفند 8، 2018 مشکلاتی که تا الان داره 1) جمع مقادیر کالا رو به درستی نشان نمیده،مثلا اگر 1.5+2.5+3.5= 7.5 کالا به سبد اضافه کنیم،مقدار 7 نشون میده در عکس های زیر این مطلب واضح تر قابل مشاهده است عکس 1 عکس 2 عکس 3 عکس 4 2) مقدار کالا در آفیس به صورت اعشاری نشون داده نمیشه عکس 5 3) در ایمیلی که بعد از ثبت سفارش برای ما ارسال میشه عدد 2 به جای 2.5 نشون میده،ولی قیمت درسته البته ایمیلی که به مشتری ارسال میشه کاملا درسته واکنش ها : admin 1 نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
814ck ارسال شده در اسفند 11، 2018 مالک گزارش Share ارسال شده در اسفند 11، 2018 تغییرات جدیدی که دادم themes\default-bootstrap\modules\blockcart\blockcart-json.tpl خط 34 "quantity": {$product.cart_quantity|floatval}, با انجام این تغییر مقدار اعشاری بعد از اضاف کردن به سبد درست شد عکس 1 عکس 2 themes\default-bootstrap\js\cart-summary.js خط 880 nbrProducts += parseFloat(product_list.quantity); بعد از انجام این تغییر عبارت محتويات سبد خريد شما: محصولات فقط بعد از زدن + یا - در سبد خرید درست نشون میده عکس قبل از زدن + یا - عکس 3 عکس بعد از زدن + یا - عکس 4 مشکل اصلی نشون ندادن مقدار اعشاری در بک آفیس هست که هنوز حل نشده ولی قبلا به صورت تک رقمی بود،یعنی فقط مینوشت 5 عدد یا 2 عدد،الان مینویسه 5.00 یا 2.00 عکس 5 admin\themes\default\template\controllers\orders\_product_line.tpl خط 78 <td class="productQuantity text-center"> <span class="product_quantity_show{if (float)$product['product_quantity'] > 1} badge{/if}">{$product['product_quantity']}</span> {if $can_edit} <span class="product_quantity_edit" style="display:none;"> <input type="text" name="product_quantity" class="edit_product_quantity" value="{$product['product_quantity']|htmlentities}"/> </span> {/if} </td> الان همه چی درسته جز 2 مورد 1) محتويات سبد خريد شما: x محصولات 2) نشان ندادن مقدار اعشاری در بک آفیس مشکل 1 قابل چشم پوشیه ولی در مورد مشکل 2 هر پیشنهادی دارین ممنون میشم در میون بزارین هر فایلی که به نظرتون میاد بفرمایید تغییر بدم واکنش ها : admin 1 نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
814ck ارسال شده در اسفند 14، 2018 مالک گزارش Share ارسال شده در اسفند 14، 2018 کلیه مشکلات با کمترین تغییرات حل شد اضافه به سبد خلاصه پرداخت تاریخچه سفارشات بک آفیس ایمیل ارسالی به کاربر ReedMe.txt فکر نکنم نیاز به توضیح خاصی داشته باشه فقط دو فایل product.tpl و product.js بسته به نیازتون باید تغییر داده بشه کدها جوری هست که میتونین در یه شاخه با افزایش استپ 0.5 کالا قرار بدین در یه شاخه 0.1 در یه شاخه 1 یا 2 یا هر عددی که لازم دارین واکنش ها : admin 1 نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .