Jump to content
Sign in to follow this  
Frunky

Генерация 6000 купонов

Recommended Posts

Доброго времени суток!
Столкнулся с такой проблемой, на сайте нужно сделать 6000 купонов с 3% скидкой, кол-во использования - неограниченно, срок действия - бесконечный, нумерация купонов от 0001-6000(т.е 0002,0003,0004..5292,5293 и.тд)

Естественно, создавать каждый купон отдельно, это не очень круто:)
У меня в таблице купонов уже есть 3 купона, какой sql запрос нужно сделать, чтобы он автоматически сгенерировал все купоны по подобию. В целом, я имею представление, что нужно зациклить все это создание купонов, но как реализовать не знаю.

Может быть вообще есть такой модуль? или как-нибудь экспортировать купоны из таблицы excel'a.

Спасибо за внимание, надеюсь на Вашу помощь.

Share this post


Link to post
Share on other sites

можно php, можно excel можно и просто phpmyadmin

используйте любой инструмент который знаете.

Share this post


Link to post
Share on other sites

мне нужно было в меньших количествах - для себя использовал запрос в базу через phpMyAdmin:

insert into `oc_coupon` (`name`,`code`,`type`,`discount`,`logged`,`shipping`,`total`,`date_start`,`date_end`,`uses_total`,`uses_customer`,`status`,`date_added`)
 VALUES
 ('Я СВОБОДЕН','Номер','P','40','0','0','6000',STR_TO_DATE('2015-10-28', '%Y-%m-%d'),STR_TO_DATE('2015-11-30', '%Y-%m-%d'),'1','1','1',STR_TO_DATE('2015-10-28', '%Y-%m-%d'))

Share this post


Link to post
Share on other sites

Всем доброго времени суток!

Срочно нужна помощь с купонами. Нужно создать 7000 купонов с одинаковыми параметрами,единственное различие это - номера купонов, их нумерация должна быть в такой последовательности: 0000,0001,0002...6996,6997,6998,6999,7000.и т.д

Параметры: скидка 3%, срок действия бесконечный ну или лет 50.

Каким способом это можно реализовать? Было бы здорово,если был бы какой-нибудь модуль,но такового я не нашёл. Экспорт через Excel?тогда как именно заполнить документ? Или же сделать sql запрос? Какой?

Прошу помощи, спасибо большое!

Share this post


Link to post
Share on other sites
INSERT INTO `oc15512`.`oc_coupon` (
`name` , `code` , `type` , `discount` , `logged` , `shipping` , `total` , `date_start` , `date_end` , `uses_total` , `uses_customer` , `status` ,  `date_added` ) 
SELECT SELECT 
CONCAT( 'moй_купон', zone_id ),
'P',
'50',
0,
0,
'2015-01-01 00:00:00',
'2065-01-01 00:00:00',
'',
'',
1
NOW() FROM oc_zone WHERE zone_id<3500

Как-то так

 

ЗА непрерывную последовательность не ручаюсь

 

Но лучше обратитесь к специалистам.

Edited by chukcha

Share this post


Link to post
Share on other sites

Друг, спасибо большое, но , к сожалению, не создает 7000 купонов, а лишь один. нужно как-то зациклить 'code' до 7000 с 0000

Share this post


Link to post
Share on other sites

следующая тема будет как создать 8000 купонов?

Share this post


Link to post
Share on other sites

В запросе есть ошибка, но человек который захочет разобраться самостоятельно - разберется.

Share this post


Link to post
Share on other sites

Друг, спасибо большое, но , к сожалению, не создает 7000 купонов, а лишь один. нужно как-то зациклить 'code' до 7000 с 0000

Все правильно понял, по этому запросу создается один купон, мне надо было десяток сгенерить, лень было руками, поэтому написал запрос и выполнил его несколько раз. Дубово, но все равно лучше чем мартышкиным трудом заниматься, а модуля такого я не нашел - идея для разработчиков))

Share this post


Link to post
Share on other sites

Всем спасибо большое, разобрался)
 

Edited by Frunky

Share this post


Link to post
Share on other sites

Кому надо, вот, готовый скрипт: 

<?php
    init_pdo();
    function init_pdo ()
    {
        try {
            $dsn = "mysql:dbname=dbname;host=localhost";
            $pdo = new PDO($dsn, 'dbuser', 'password', array(
                PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
            ));
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


            for($i=0; $i <= 7000; $i++){


                $coupon = '';
                if($i < 10) {
                    $coupon = '000'.$i;
                } else if($i < 100) {
                    $coupon = '00'.$i;
                } else if($i < 1000) {
                    $coupon = '0'.$i;
                } else if($i <= 7000) {
                    $coupon = $i;
                }


                $sql = "insert into `oc_coupon` (`name`, `code`, `type`,`discount`,`logged`,`shipping`,`total`,`date_start`,`date_end`,`uses_total`,`uses_customer`,`status`,`date_added`) values ('Купоны', '".(string) $coupon."' ,'P','3','0','0','0',STR_TO_DATE('2015-10-28', '%Y-%m-%d'),STR_TO_DATE('2085-11-30', '%Y-%m-%d'),'1','1','1',STR_TO_DATE('2015-10-28', '%Y-%m-%d'))";
                $q = $pdo->prepare($sql);
                $q->execute();
            }


        }
        catch(PDOException $e)
        {
            var_dump($e);
            die;
        }
        return $pdo;
    }
?>
Edited by Frunky

Share this post


Link to post
Share on other sites

мАмА дАрАгАя
 
т.е.
об
 

$coupon = str_pad($i, 4, "0", STR_PAD_LEFT);

речи вообще не идет, а тем не менее Пушку в виде PDO использовали

Share this post


Link to post
Share on other sites

да... смешной код. Удалите тему, не учите плохому.

Share this post


Link to post
Share on other sites

Блин, как же бесят такие люди, да, может и плохой код, но он - работает, и это гораздо лучше, чем писать бесполезные сообщения..

Share this post


Link to post
Share on other sites

Бесят люди которые выдают чистый бред, даже не приложив ни грамма своих умственных  способностей.

 

Извините, это ответ вашему ответу.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.