People who code: we want your input. Take the Survey
5

Similar question here, I left the teaser for the out of stock bit, but nobody picked up on it :( I wrote a plugin that pulls back all the options for multiple modifiers, you can then use JavaScript to query the information and change what options are available for each modifier. So when they select the colour, you can look at what trims are in stock and ...


4

My solution was to add the product form button on the /donate page inside the {exp:store:checkout} {if no_items} tag, and using jQuery to submit the form when the page loads. This ensures there is always a product in the cart. Then, the user completes the single page checkout form fields with their desired donation amount (which updates the quantity of the "...


4

If you were using 2.4 you probably need to update FreeMember to the latest version to address changes in EE for the 2.7.x releases. Safecracker is now part of the channel module. You can download the latest version at https://github.com/expressodev/freemember


3

It's not possible using Store's built in tags. You could do this by writing your own plugin though, if you're comfortable getting your hands dirty with a bit of PHP. To programatically change an order status in Store 2, you can find an order by ID like so: $order = Store\Model\Order::find($entry_id); You can then find and change the status like this: $...


3

Store wont support that natively as far as I know but I'd personally look to use Stash to set a variable and then call it either elsewhere in that template or carry across to other templates. Setting the variable is as pretty much as simple as {exp:stash:set} giving it a name and setting a few specific options, and then calling it with {exp:stash:get}. It's ...


3

A list of Expresso Store hooks can be found in their documentation here: https://exp-resso.com/docs/extension_hooks.html I don't see a hook that does what you're asking. But you can build something on your own using the EE Email Class as detailed here: http://ellislab.com/expressionengine/user-guide/development/usage/email.html


3

ExpressionEngine automatically creates a 'member' area on each standard installation, by default this is /member/. Looking at your site I would say the spam bots are registering through the generic /member/register URL -> https://www.peopleplacestraining.org/member/register In the ExpressionEngine control panel, under Members -> Preferences -> ...


3

Probably the most basic way to do it yourself is probably using Navicat and Excel. Create one discount that matches how you want it work. Export the SQL table to your desktop as a CSV or XLS file. Open that in Excel and duplicate the rows adjusting the code column as you want to show differences. Then import those rows back into the database. You could do it ...


3

Low Search doesnt work, Free Form doesnt work, Free members - basically asks if your sure you want to login as some things might not be secure. These add-ons usually use what you have configured in your "Admin > General Configuration > URL to the root directory of your site". You can also set/override the General Configuration settings using the /system/...


3

You could do this pretty simply with this: {exp:query sql="SELECT order_hash FROM exp_store_orders WHERE order_completed_date > 1356998400 AND order_completed_date < 1420070400"} {exp:store:orders order_hash="{order_hash}"} Order #{order_id} {/exp:store:orders} {/exp:query} Brad


3

ExpressionEngine is a free and open source product now. Downloading, installing, and using commercially is free. Third-party add-ons and product support from EllisLab still costs money, but if you don't need add-ons or support, it really is free.


2

Unfortunately FreeMember (or even other Member modules) wont be able to help with what you're trying to achieve there. When a member is logged it they are given a unique session ID which is stored in the database in the exp_sessions table. This may be with session alone, cookies alone, or with both. So if the user is logged in as Admin or anyone else then ...


2

You can also use the Query Module to grab the available regions are. <select> {exp:query sql="SELECT * FROM exp_store_regions WHERE site_id = '1' GROUP BY country_code"} <option value="{region_code}"> {region_name} </option> {/exp:query} </select>


2

You can do this in Store 1.x by simply adding rows to the exp_store_promo_codes table. You can look at existing rows in the table to see the format. Basically you just need to enter a promo_code, set enabled to y, and set the use_limit to 1. In Store 2, this table is named exp_store_discounts. You can use a tool such as phpMyAdmin to access the database, ...


2

I doubt this is something Expresso supports as it's so project specific. One option is to use jQuery Cookie to track this: http://plugins.jquery.com/cookie/ Set a cookie on the success page and have it expire after 24 hrs or whatever time limit you want... Then on the purchase page, write a conditional against the cookie to determine if you should let them ...


2

Assuming you have already set up some shipping rules, and marked digital products as "free shipping", then Store will automatically calculate the shipping cost at $0 for orders which contain only items with free shipping enabled. If you have set up a "default shipping method", then all other orders will already have an estimated shipping cost using the ...


2

There are a few hooks available which will allow you to latch on to the process at various points. If you want to run an extension after payment has been processed then store_order_payment_end (docs link) is the hook you'd need to look to use in your custom extension.


2

That syntax you pointed out on line 397 is PHP 5.3 only. You are likely on an older version of PHP.


2

I've been using DataGrab for the same thing. As of the current version, only Store 1 is supported, however, it's fairly easy to modify the Store datatype to support Store 2. Once you set up the import in DataGrab, it provides you a URL which you can hit with cron to regularly import updates.


2

There is nothing built-in. You could as Anna mentioned build an extension that would allow to send it. There area few ways you could approach this, I have seen in the past an extension that changes the order status which triggers an email based upon the assigned status. Alternatively you could use Objective HTML's PostMaster add-on. You would need to setup ...


2

Given that Store doesn't let you register members without creating an order, and you mentioned that these spam registrations aren't creating orders, it's almost certain that these registrations aren't coming in through Store. Also, captchas aren't necessary with Store, because no spammer in their right mind would bother going through a credit card payment ...


2

There is nothing built into Store that allows it to take cash orders but you could easily create an admin page with Store templates for your employee's then use the Manual gateway which is perfect for cash, checks or similar orders. With phone orders you could do the same thing or if customers are giving their card number over the phone you could use ...


2

Take a look at the Orders Tag: The order_hash should be present in the "success" page URL as a segment and you can grab that and pass it to another template with a link like this: <a href="/checkout/print/{segment_3}">Print Invoice</a> Then in your "Print" template use the following to get your invoice data: {exp:store:orders order_hash="{...


2

My billing/shipping fields are coded like this and the info is autofilled: <div class="field {if error:billing_phone}error{/if}"> <label for="billing_phone">Phone *</label> <div class="controls"> {field:billing_phone} {error:billing_phone} </div> </div> OR, as per the Checkout Tag "Billing ...


2

You can use normal input fields instead of using the {field:billing_name} convention. So in your checkout template you can do something along the lines of. {exp:store:checkout} <label for="billing_name">Name</label> {!-- -- You can add any additional parameters to the input that you need. -- Having a value="{field_name}" will pre-populate ...


2

The quick fix I found was just to change the dbdriver to 'mysql' not mysqli in the database config, however this is not so much a fix as a work around.


2

Store relies on a library called expressodev/laravel-codeigniter-db. The latest version of this library does support mysqli, but the version that comes packaged with Store is older and does not contain mysqli support. Replace your system/expressionengine/third_party/store/vendor/expressodev/laravel-codeigniter-db folder with the latest version found here: ...


2

A concern would be that whatever you do to adjust price calculation, you have to be sure it's being adjusted in all instances - not just display of a product, but basket addition, basket display, quantity adjustments, right through to handshaking with the payment provider. You may even have to lookup the tax adjustments if you're dealing with differing tax ...


2

When the store_order_recalculate_end hook is fired, all calculations have already taken place. See picture. So you need to calculate and set the order_total yourself.


2

You would probably want to use price_val in your conditionals since it will output just the value minus any currency formatting. {if price_val > 0}Hello{/if} If you have a product with a price of £10.00 price_val would output 10.00 You can add _val to any of the price related tags like {sale_price_val} or {price_inc_mod_val} From the docs: All ...


Only top voted, non community-wiki answers of a minimum length are eligible