Подарки в SS

Тема в разделе "Shop-script", создана пользователем danila_master, 2 дек 2008.

Статус темы:
Закрыта.
Модераторы: kadurinho
  1. danila_master

    danila_master Постоялец

    Регистр.:
    16 апр 2008
    Сообщения:
    60
    Симпатии:
    10
    Добрый день!

    К сожалению я не сильна в PHP, но уж очень бы хотелось реализовать данную функцию в магазине.

    Попытаюсь описать как я это вижу и возможно мы все вместе сможем довести данную функцию до логического конца.

    1. Создаём отдельную категорию "Подарки" в магазине.
    2. Добавляем нужные товары с ценой 0
    3. При оформлении корзины, выставить условие, что если общая сумма заказа без скидки больше *своё значение*, то выдавать ссылку на категорию "Подарки" с текстом "Вы можете выбрать 1 товар из раздела "Подарки"

    т.е. фактически надо отредактировать код файла я так понимаю shopping_cart.tpl.html
    у меня сейчас код такой:
    PHP:
    {* shopping cart *}

    {if 
    $this_is_a_popup_cart_window}

    <
    html>

    <
    head>

    <
    link rel=STYLESHEET href="style1.css" type="text/css">

    <
    meta http-equiv="Content-Type" content="text/html; charset={$smarty.const.DEFAULT_CHARSET}">
    <
    title>{$smarty.const.CART_TITLE}</title>

    </
    head>

    <
    body>

    {/if}

    <
    center>

    {if 
    $cart_content}

        <
    table width=75border=0>

            <
    tr>
                <
    td>
                    <
    b>{$smarty.const.CART_TITLE}:</b>
                </
    td>

                <
    td align=right>
                    <
    a href="{$cart_php_file}?shopping_cart=yes&clear_cart=yes">
                        <
    img src="images/remove.jpg" border=
                            <
    u>{$smarty.const.CART_CLEAR}</u>
                        </
    img>
                    </
    a>
                </
    td>

            </
    tr>

            {if 
    $make_more_exact_cart_content}
            <
    tr>
                <
    td colspan=2>
                    <
    font color=red>
                        <
    b>{$smarty.const.STRING_MAKE_MORE_EXACT_CART_CONTENT}</b>
                    </
    font>
                </
    td>
            </
    tr>
            {/if}

        </
    table>

        {if 
    $cart_amount<$smarty.const.CONF_MINIMAL_ORDER_AMOUNT}
        <
    div id="id_too_small_order_amount" class="error_message"{if !$minOrderstyle="display:none;"{/if}>{$smarty.const.CART_TOO_SMALL_ORDER_AMOUNT} {$cart_min}</div>
        {/if}
        {
    counter name=product_count start=1 skip=print=false}

        <
    form action="{$cart_php_file}?shopping_cart=yes" method=post>
        <
    b><FONT COLOR=RED>ОБЯЗАТЕЛЬНО ОБНОВИТЕ ЗАКАЗ НАЖАВ НА КНОПКУ "ОБНОВИТЬ" ПОСЛЕ ДОБАВЛЕНИЯ ВСЕХ ТОВАРОВ</FONT></b>
        <
    table width={if $this_is_a_popup_cart_window}100{else}75{/if}% border=0 cellspacing=1 cellpadding=2 bgcolor=#{$smarty.const.CONF_DARK_COLOR}>
            
    <tr align=center bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR}>
                
    <td>
                    {
    $smarty.const.TABLE_PRODUCT_NAME}
                </
    td>
                <
    td>
                    {
    $smarty.const.TABLE_PRODUCT_ARTIKUL}
                </
    td>
                <
    td>
                    {
    $smarty.const.TABLE_PRODUCT_PICTURE}
                </
    td>
                <
    td>
                    {
    $smarty.const.TABLE_PRODUCT_QUANTITY}
                </
    td>
                <
    td>
                    {
    $smarty.const.TABLE_PRODUCT_COST}, {$currency_name}
                </
    td>
                <
    td width=20>
                </
    td>
            </
    tr>

        {if 
    $this_is_a_popup_cart_window}
            {
    assign var="ProductsNum" value=0}
        {/if}
         {
    section loop=$cart_content name=i}

            {
    counter name=product_count print=false}

            <
    tr bgcolor=white>
                <
    td>
                    {if 
    $this_is_a_popup_cart_window}
                        <
    b>{$cart_content[i].name}</b>
                    {else}
                        <
    a href='{$cart_php_file}?productID={$cart_content[i].productID}'>{$cart_content[i].name}</a>
                    {/if}
                </
    td>

                <
    td>
                    {if 
    $this_is_a_popup_cart_window}
                        <
    b>{$cart_content[i].product_code}</b>
                    {else}
                        <
    a href='{$cart_php_file}?productID={$cart_content[i].productID}'>{$cart_content[i].product_code}</a>
                    {/if}
                </
    td>
                <
    td>
                    {if 
    $this_is_a_popup_cart_window}
                        <
    img src="products_pictures/{$cart_content[i].picture_product}border=0 width=50 >
                    {else}
                        <
    a href='{$cart_php_file}?productID={$cart_content[i].productID}'>{$cart_content[i].picture_product}</a>
                    {/if}
                </
    td>

                <
    td align=center>
                    {if 
    $this_is_a_popup_cart_window}
                        {
    assign var="ProductsNum" value=$ProductsNum+$cart_content[i].quantity}
                    {/if}
                    {if 
    $session_items}
                        <
    input type="text" name="count_{$session_items[i]}size=5 value="{$cart_content[i].quantity}">
                    {else}
                        <
    input type="text" name="count_{$cart_content[i].id}size=5 value="{$cart_content[i].quantity}">
                    {/if}
                    <
    br>
                    {if 
    $cart_content[i].min_order_amount}
                        <
    font color=red>
                            <
    b>
                                {
    $smarty.const.STRING_MIN_ORDER_AMOUNT
                                    {
    $cart_content[i].min_order_amount
                                {
    $smarty.const.STRING_ITEM}
                            </
    b>
                        </
    font>
                    {/if}
                </
    td>

                <
    td align=center>
                    {
    $cart_content[i].cost|replace:'&amp;':'&'}
                </
    td>
                {if 
    $session_items}
                    <
    td align=center>
                        <
    a href="{$cart_php_file}?shopping_cart=yes&remove={$session_items[i]}"><img src="images/remove.jpg" border=0 alt="{$smarty.const.DELETE_BUTTON}">
                        </
    a>
                    </
    td>
                {else}
                    <
    td align=center>
                        <
    a href="{$cart_php_file}?shopping_cart=yes&remove={$cart_content[i].id}"><img src="images/remove.jpg" border=0 alt="{$smarty.const.DELETE_BUTTON}">
                        </
    a>
                    </
    td>
                {/if}
            </
    tr>
         {/
    section}

        {if 
    $discount_prompt != 0}

            {
    counter name=product_count print=false}

            {if 
    $discount_prompt == && $discount_percent != 0}
            <
    tr bgcolor=white>
                <
    td colspan=4>
                    {
    $smarty.const.ADMIN_DISCOUNT} {$discount_percent}
                </
    td>

                
                <
    td align=center>
                    {
    $discount_value}    
                </
    td>
                <
    td>
                    &
    nbsp;
                </
    td>
            </
    tr>
            {/if}

            {if 
    $discount_prompt == 2}

            {
    counter name=product_count print=false}

            <
    tr bgcolor=white>
                <
    td colspan=6>
                    {
    $smarty.const.STRING_UNREGISTERED_CUSTOMER_DISCOUNT_PROMPT}
                </
    td>
            </
    tr>
            {/if}

            {if 
    $discount_prompt == && $discount_percent != 0}

            {
    counter name=product_count print=false}

            <
    tr bgcolor=white>
                <
    td colspan=4>
                    {
    $smarty.const.ADMIN_DISCOUNT} {$discount_percent}
                    <
    br>
                    {
    $smarty.const.STRING_UNREGISTERED_CUSTOMER_COMBINED_DISCOUNT_PROMPT}
                
                <
    td align=center>
                    {
    $discount_value}    
                </
    td>
                <
    td>
                    &
    nbsp;
                </
    td>
            </
    tr>
            {/if}

        {/if}


        <
    tr bgcolor=white>
            <
    td>
                <
    font class=cat><b>{$smarty.const.TABLE_TOTAL}</b></font>
            </
    td>
            <
    td colspan=3>
                <
    br><br>
            </
    td>
            <
    td bgcolor=#{$smarty.const.CONF_LIGHT_COLOR} align=center>
                
    <font class=cat><b>{$cart_total}</b>
                </
    font>
            </
    td>
            <
    td></td>
        </
    tr>
    </
    table>

        <
    input type=hidden name=update value=1>
        <
    input type=hidden name=shopping_cart value=1>

        <
    p>
        <
    table width=75border=0>
            <
    tr>
                <
    td align=right>
                    <
    input type="submit" value="{$smarty.const.UPDATE_BUTTON}">
                </
    td>
            </
    tr>
        </
    table>
        </
    form>

        <
    form action="index.php" method=get>
            <
    table width=75border=0>
                <
    tr>
                    <
    td align=center>
                     {if 
    $this_is_a_popup_cart_window}
                        <
    input type="button" 
                            
    value="{$smarty.const.CLOSE_BUTTON}
                            
    onClick="JavaScript:window.close();">
                     {else}
                        <
    input type="button" 
                            
    value="{$smarty.const.STRING_BACK_TO_SHOPPING}
                            
    onClick="JavaScript:window.location='{$cart_php_file}';">
                     {/if}
                    </
    td>
                    <
    td align=center>
                        <
    input type="button" value="{$smarty.const.CART_PROCEED_TO_CHECKOUT}onClick="{if $cart_amount<$smarty.const.CONF_MINIMAL_ORDER_AMOUNT}document.getElementById('id_too_small_order_amount').style.display='block';return false;{/if}window{if $this_is_a_popup_cart_window}.opener{/if}.location='index.php?{if $log ne NULL}order2_shipping=yes&shippingAddressID={$shippingAddressID}{else}register_authorization=yes{/if}';{if $this_is_a_popup_cart_window}window.close();{/if}">
                    </
    td>
                </
    tr>
            </
    table>
        </
    form>

    {else}

    <
    p><font>{$smarty.const.CART_EMPTY}</font>

    {/if}

    </
    center>

    {if 
    $this_is_a_popup_cart_window}

    {* 
    adjust cart window height *}
    <
    script>
    {
    literal}
    function 
    adjust_cart_window(counter)
    {
        var 
    scr_h screen.availHeight 50;
        var 
    wnd_h 210 counter*30;
        
    window.resizeTo500Math.min(scr_hwnd_h) );
        
    }
    {/
    literal}
        
    adjust_cart_window({counter name=product_count});
        {if 
    $this_is_a_popup_cart_window}
            {if 
    $ProductsNum}
                
    window.opener.document.getElementById('shpcrtgc').innerHTML="{$ProductsNum} {$smarty.const.STRING_PRODUCTS}"
                
    window.opener.document.getElementById('shpcrtca').innerHTML='{$cart_total}'
            
    {else}
                
    window.opener.document.getElementById('shpcrtgc').innerHTML="{$smarty.const.CART_CONTENT_EMPTY}"
                
    window.opener.document.getElementById('shpcrtca').innerHTML="<br />"
            
    {/if}
        {/if}
    </script>

    </body>
    </html>

    {/if}
    я так понимаю, что нужно выставлять условие, используя переменную STRING_PRED_TOTAL

    т.е. IF STRING_PRED_TOTAL > *своя сумма* <a href=раздел магазина "Подарки">Вы можете выбрать 1 товар из раздела "Подарки"</a>

    Правильно?
     
  2. fominsa

    fominsa

    Регистр.:
    12 фев 2008
    Сообщения:
    234
    Симпатии:
    229
    тебе шоп не даствыбрать товар с ценой 0
    даже если он даст почему нельзя сохранить ссылку и не открыть подарки заного и выбрать десять подарков
     
    danila_master нравится это.
  3. danila_master

    danila_master Постоялец

    Регистр.:
    16 апр 2008
    Сообщения:
    60
    Симпатии:
    10
    fominsa, действительно я не подумала, что 0 не даст выбрать :( эх, а думалось, что можно обойти коды как-то...
     
  4. Zolinger

    Zolinger Постоялец

    Регистр.:
    29 сен 2008
    Сообщения:
    111
    Симпатии:
    69
    шелест извилин...

    С одной стороны фишка интересная, но универсальной её сделать скорее всего не получится. ИМХО.

    Тут даже не техническое решения задачи, а сама логика работы. Вот что сразу приходит в голову:

    - количество подарков. думаю это не 1000 и не 100, а не больше 10-20 позиций.
    - после выбора подарка, его покупатель получает сразу или вместе с заказанным товаром. отсЭда напрашивается вопрос о самом товаре. т.е. товар материальный или виртуальный? (Кирпичи, ведра, рефераты, mp3-ишки...)
    - непонятка с он-лайн платежом тоже... есть или нет.

    Сама реализация - цельный мод. Делать от недели до двух... и то при наличии желания и свободного времени.
     
  5. fominsa

    fominsa

    Регистр.:
    12 фев 2008
    Сообщения:
    234
    Симпатии:
    229
    да придется расписывать что и где и как работает, т.е. сначало продумать как это будет а уж потом начинать делать либо заказывать у фрилансеров. 2-недели ты помоему загнул я думаю что при нормальном ТЗ можно дня за 3 сделать....
     
  6. Zolinger

    Zolinger Постоялец

    Регистр.:
    29 сен 2008
    Сообщения:
    111
    Симпатии:
    69
    Да, за 3 дня тоже можно (если делать только это)... Но лучше спокойно и размеренно. Плюс еще потестировать нужно; баги, если проявятся, устранить...
     
  7. alexander-x

    alexander-x Постоялец

    Регистр.:
    20 май 2007
    Сообщения:
    130
    Симпатии:
    26
    насчёт цены 0 - под подарком следует понимать покупку за 1 копейку :)
     
Статус темы:
Закрыта.